DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000020_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000020_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_000020_PKG                                        |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : China Accrual Basis                                    |
14 |      Code    : JA_CN_ACCRUAL                                          |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 06:03:13 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_000020_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_000020_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_000020_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_000020_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
307  WHEN xla_exceptions_pkg.application_exception THEN
304                ,p_module   => l_log_module);
305      END IF;
306      RAISE;
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);
313       END IF;
314       RAISE;
315  WHEN OTHERS THEN
316        xla_exceptions_pkg.raise_message
317            (p_location => 'XLA_00200_AAD_S_000020_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
443   l_source := SUBSTR(p_source_6,1,1996);
440     l_description :=  SUBSTR(CONCAT(l_description,'Document Sequence Name:'),1,2000);
441     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
442  END IF;   
444   IF l_source IS NOT NULL THEN
445     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
446     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
447   END IF;  
448  IF 
449 l_ledger_language = 'US' THEN
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
572      END IF;
569                (p_msg      => 'ERROR: '||sqlerrm
570                ,p_level    => C_LEVEL_EXCEPTION
571                ,p_module   => l_log_module);
573      RAISE;
574  WHEN xla_exceptions_pkg.application_exception THEN
575       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
576       trace
577          (p_msg      => 'ERROR: '||sqlerrm
578          ,p_level    => C_LEVEL_EXCEPTION
579          ,p_module   => l_log_module);
580       END IF;
581       RAISE;
582  WHEN OTHERS THEN
583        xla_exceptions_pkg.raise_message
584            (p_location => 'XLA_00200_AAD_S_000020_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);
710                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
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,
711   IF l_source IS NOT NULL THEN
712     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
713     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
714   END IF;  
715  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'
836   END IF;
833            ,p_level    => C_LEVEL_PROCEDURE
834            ,p_module   => l_log_module);
835 
837   RETURN l_description;
838 
839  END IF;
840 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
841       trace
842          (p_msg      => 'END of Description_3'
843          ,p_level    => C_LEVEL_PROCEDURE
844          ,p_module   => l_log_module);
845 END IF;
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_000020_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(
980                  ,p_token_3                 => 'PAD_NAME'
977                                                         'XLA_OWNER_TYPE'
978                                                         ,l_component_type_code
979                                                         )
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(
984                                                         'XLA_OWNER_TYPE'
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_000020_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                                                           )
1111                                                         ,l_component_type_code
1108                  ,p_token_2                 => 'OWNER'
1109                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1110                                                         'XLA_OWNER_TYPE'
1112                                                         )
1113                  ,p_token_3                 => 'PAD_NAME'
1114                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_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_000020_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'
1236                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1233                                                         ,l_component_type_code
1234                                                         )
1235                  ,p_token_3                 => 'PAD_NAME'
1237                  ,p_token_4                 => 'PAD_OWNER'
1238                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1239                                                         'XLA_OWNER_TYPE'
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_000020_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
1369                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1366                                                           , l_amb_context_code
1367                                                           )
1368                  ,p_token_2                 => 'OWNER'
1370                                                         'XLA_OWNER_TYPE'
1371                                                         ,l_component_type_code
1372                                                         )
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_000020_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 
1506 
1503        RETURN '#$NO_OVERRIDE#$';
1504     END IF;
1505  END IF;
1507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1508 
1509       trace
1510          (p_msg      => 'END of AcctDerRule_8(invalid)'
1511          ,p_level    => C_LEVEL_PROCEDURE
1512          ,p_module   => l_log_module);
1513 
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_000020_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'
1632   END IF;
1629          ,p_level    => C_LEVEL_PROCEDURE
1630          ,p_module   => l_log_module);
1631 
1633   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1634   x_value_segment_code    := 'GL_ACCOUNT' ;
1635   x_value_type_code       := 'S';
1636   l_output_value          :=  null;
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_000020_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;
1755 
1752 x_accounting_coa_id      :=  null;
1753 x_flexfield_segment_code := 'GL_ACCOUNT';
1754 x_flex_value_set_id      :=  null ;
1756 
1757  IF NVL(p_source_15,'
1758 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1759 NVL(p_source_22,'
1760 ') =  'INVENTORY'
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_000020_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 
1884          ,p_module   => l_log_module);
1881       trace
1882          (p_msg      => 'BEGIN of AcctDerRule_11'
1883          ,p_level    => C_LEVEL_PROCEDURE
1885 
1886 END IF;
1887 
1888 l_component_type         := 'AMB_ADR';
1889 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
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'
2025                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2022                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2023                                                         )
2024                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2026                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_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_000020_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
2154                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2151                  ,p_token_4                 => 'PAD_OWNER'
2152                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2153                                                         'XLA_OWNER_TYPE'
2155                                                         )
2156                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
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_000020_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                                                           )
2288                                                         ,l_component_type_code
2285                  ,p_token_2                 => 'OWNER'
2286                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2287                                                         'XLA_OWNER_TYPE'
2289                                                         )
2290                  ,p_token_3                 => 'PAD_NAME'
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_000020_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                                                           )
2421                                                         ,l_component_type_code
2418                  ,p_token_2                 => 'OWNER'
2419                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2420                                                         'XLA_OWNER_TYPE'
2422                                                         )
2423                  ,p_token_3                 => 'PAD_NAME'
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_000020_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'
2546                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2543                                                         ,l_component_type_code
2544                                                         )
2545                  ,p_token_3                 => 'PAD_NAME'
2547                  ,p_token_4                 => 'PAD_OWNER'
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_000020_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_000020_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_000020_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 
2942 
2939        RETURN '#$NO_OVERRIDE#$';
2940     END IF;
2941  END IF;
2943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
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_000020_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_000020_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_000020_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_000020_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_000020_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';
3567 x_flex_value_set_id      :=  null ;
3571 ') =  'BALANCING_SEGMENT' AND 
3568 
3569 
3570  IF NVL(p_source_15,'
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_000020_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';
3696 l_component_type_code    := 'S';
3700 x_accounting_coa_id      :=  null;
3697 l_component_appl_id      :=  200;
3698 l_amb_context_code       := 'DEFAULT';
3699 x_transaction_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_000020_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
3823          ,p_module   => l_log_module);
3824 
3828 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
3825 END IF;
3826 
3827 l_component_type         := 'AMB_ADR';
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_000020_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
3952          ,p_module   => l_log_module);
3953 END IF;
3957 l_component_type_code    := 'S';
3954 --
3955 l_component_type         := 'AMB_ADR';
3956 l_component_code         := 'AP_BANK_CHARGES';
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_000020_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
4079          ,p_module   => l_log_module);
4080 END IF;
4084 l_component_type_code    := 'S';
4081 --
4082 l_component_type         := 'AMB_ADR';
4083 l_component_code         := 'AP_BANK_ERRORS';
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_000020_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';
4207 l_component_appl_id      :=  200;
4208 l_amb_context_code       := 'DEFAULT';
4212 
4209 x_transaction_coa_id     :=  null;
4210 x_accounting_coa_id      :=  null;
4211 --
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_000020_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;
4332 --
4333 
4337 ') <>  'ACCOUNT_SEGMENT_VALUE'
4334  IF NVL(p_source_19,'
4335 ') =  'SYSTEM' AND 
4336 NVL(p_source_15,'
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 --
4504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4505       trace
4509 END IF;
4506          (p_msg      => 'END of AcctDerRule_29(invalid)'
4507          ,p_level    => C_LEVEL_PROCEDURE
4508          ,p_module   => l_log_module);
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_000020_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;
4625   x_value_type_code := 'S';
4629  ELSIF NVL(p_source_22,'
4626   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4627   RETURN l_output_value;
4628 
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_000020_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) ;
4755       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4752 l_output_value         NUMBER        ;
4753 BEGIN
4754 IF g_log_enabled THEN
4756 END IF;
4757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4758       trace
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                                                         )
4887                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4891 );
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
4890                  ,p_ae_header_id            => NULL
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_000020_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_000020_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_000020_PKG.AcctDerRule_33');
5129 END AcctDerRule_33;
5130 --
5131 
5132 ---------------------------------------
5133 --
5134 -- PRIVATE FUNCTION
5138 FUNCTION AcctDerRule_34 (
5135 --         AcctDerRule_34
5136 --
5137 ---------------------------------------
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_000020_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 --Bank Cash Clearing Account
5247  , p_source_35            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_PMT_CASH_CLEAR';
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_35));
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_000020_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 --Invoice Distribution Account
5351  , p_source_30            IN NUMBER
5352 --Prepaid Expense Account Source Option
5353  , p_source_31            IN VARCHAR2
5354  , p_source_31_meaning    IN VARCHAR2
5355 --Purchase Order Number
5356  , p_source_32            IN VARCHAR2
5357 --Invoice Distribution Type
5358  , p_source_33            IN VARCHAR2
5359  , p_source_33_meaning    IN VARCHAR2
5360 --Purchase Order Charge Account
5361  , p_source_45            IN NUMBER
5362 , x_transaction_coa_id         OUT NOCOPY NUMBER
5363 , x_accounting_coa_id          OUT NOCOPY NUMBER
5364 , x_value_type_code            OUT NOCOPY VARCHAR2
5365 )
5366 RETURN NUMBER
5367 IS
5368 l_component_type       VARCHAR2(80)  ;
5369 l_component_code       VARCHAR2(30)  ;
5370 l_component_type_code  VARCHAR2(1)   ;
5371 l_component_appl_id    INTEGER       ;
5372 l_amb_context_code     VARCHAR2(30)  ;
5373 l_log_module           VARCHAR2(240) ;
5374 l_output_value         NUMBER        ;
5375 BEGIN
5376 IF g_log_enabled THEN
5377       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5378 END IF;
5379 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5380       trace
5381          (p_msg      => 'BEGIN of AcctDerRule_36'
5382          ,p_level    => C_LEVEL_PROCEDURE
5383          ,p_module   => l_log_module);
5384 END IF;
5385 --
5386 l_component_type         := 'AMB_ADR';
5390 l_amb_context_code       := 'DEFAULT';
5387 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
5388 l_component_type_code    := 'S';
5389 l_component_appl_id      :=  200;
5391 x_transaction_coa_id     :=  null;
5392 x_accounting_coa_id      :=  null;
5393 --
5394 
5395  IF NVL(p_source_31,'
5396 ') <>  'Y' OR 
5397 (NVL(p_source_31,'
5398 ') =  'Y' AND 
5399 p_source_32 IS NULL )
5400  THEN 
5401  --
5402   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5403       trace
5404          (p_msg      => 'END of AcctDerRule_36'
5405          ,p_level    => C_LEVEL_PROCEDURE
5406          ,p_module   => l_log_module);
5407   END IF;
5408   x_value_type_code := 'S';
5409   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5410   RETURN l_output_value;
5411 
5412  ELSIF NVL(p_source_31,'
5413 ') =  'Y' AND 
5414 p_source_32 IS NOT NULL AND 
5415 NVL(p_source_33,'
5416 ') =  'ITEM'
5417  THEN 
5418  --
5419   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5420       trace
5421          (p_msg      => 'END of AcctDerRule_36'
5422          ,p_level    => C_LEVEL_PROCEDURE
5423          ,p_module   => l_log_module);
5424   END IF;
5425   x_value_type_code := 'S';
5426   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
5427   RETURN l_output_value;
5428 
5429  END IF;
5430 --
5431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5432       trace
5433          (p_msg      => 'END of AcctDerRule_36(invalid)'
5434          ,p_level    => C_LEVEL_PROCEDURE
5435          ,p_module   => l_log_module);
5436 END IF;
5437 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5438 x_value_type_code := null;
5439 l_output_value    := null;
5440 xla_accounting_err_pkg.build_message
5441                  (p_appli_s_name            => 'XLA'
5442                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5443                  ,p_token_1                 => 'COMPONENT_NAME'
5444                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5445                                                             l_component_type
5446                                                           , l_component_code
5447                                                           , l_component_type_code
5448                                                           , l_component_appl_id
5449                                                           , l_amb_context_code
5450                                                           )
5451                  ,p_token_2                 => 'OWNER'
5452                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5453                                                         'XLA_OWNER_TYPE'
5454                                                         ,l_component_type_code
5455                                                         )
5456                  ,p_token_3                 => 'PAD_NAME'
5457                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5458                  ,p_token_4                 => 'PAD_OWNER'
5459                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5460                                                         'XLA_OWNER_TYPE'
5461                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5462                                                         )
5463                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5464                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5465                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5466                  ,p_ae_header_id            => NULL
5467 );
5468 RETURN l_output_value;
5469 EXCEPTION
5470   WHEN xla_exceptions_pkg.application_exception THEN
5471       RAISE;
5472   WHEN OTHERS THEN
5473        xla_exceptions_pkg.raise_message
5474            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_36');
5475 END AcctDerRule_36;
5476 --
5477 
5478 ---------------------------------------
5479 --
5480 -- PRIVATE FUNCTION
5481 --         AcctDerRule_37
5482 --
5483 ---------------------------------------
5484 FUNCTION AcctDerRule_37 (
5485   p_application_id              IN NUMBER
5486 , p_ae_header_id                IN NUMBER
5487 , p_side                        IN VARCHAR2 
5488 --Automatic Offsets Value
5489  , p_source_15            IN VARCHAR2
5490  , p_source_15_meaning    IN VARCHAR2
5491 --Invoice Distribution Account
5492  , p_source_30            IN NUMBER
5493 --Internal Realized Gain Account
5494  , p_source_36            IN NUMBER
5495 --Bank Gain Account
5496  , p_source_37            IN NUMBER
5497 , x_transaction_coa_id         OUT NOCOPY NUMBER
5498 , x_accounting_coa_id          OUT NOCOPY NUMBER
5499 , x_value_type_code            OUT NOCOPY VARCHAR2
5500 )
5501 RETURN NUMBER
5502 IS
5503 l_component_type       VARCHAR2(80)  ;
5504 l_component_code       VARCHAR2(30)  ;
5505 l_component_type_code  VARCHAR2(1)   ;
5506 l_component_appl_id    INTEGER       ;
5507 l_amb_context_code     VARCHAR2(30)  ;
5508 l_log_module           VARCHAR2(240) ;
5509 l_output_value         NUMBER        ;
5510 BEGIN
5511 IF g_log_enabled THEN
5512       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5513 END IF;
5514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5515       trace
5516          (p_msg      => 'BEGIN of AcctDerRule_37'
5517          ,p_level    => C_LEVEL_PROCEDURE
5518          ,p_module   => l_log_module);
5519 END IF;
5520 --
5524 l_component_appl_id      :=  200;
5521 l_component_type         := 'AMB_ADR';
5522 l_component_code         := 'AP_REAL_GAIN';
5523 l_component_type_code    := 'S';
5525 l_amb_context_code       := 'DEFAULT';
5526 x_transaction_coa_id     :=  null;
5527 x_accounting_coa_id      :=  null;
5528 --
5529 
5530  IF NVL(p_source_15,'
5531 ') <>  'ACCOUNT_SEGMENT_VALUE'
5532  THEN 
5533  --
5534   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5535       trace
5536          (p_msg      => 'END of AcctDerRule_37'
5537          ,p_level    => C_LEVEL_PROCEDURE
5538          ,p_module   => l_log_module);
5539   END IF;
5540   x_value_type_code := 'S';
5541   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
5542   RETURN l_output_value;
5543 
5544  ELSIF NVL(p_source_15,'
5545 ') <>  'ACCOUNT_SEGMENT_VALUE'
5546  THEN 
5547  --
5548   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5549       trace
5550          (p_msg      => 'END of AcctDerRule_37'
5551          ,p_level    => C_LEVEL_PROCEDURE
5552          ,p_module   => l_log_module);
5553   END IF;
5554   x_value_type_code := 'S';
5555   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_37));
5556   RETURN l_output_value;
5557 
5558  ELSIF NVL(p_source_15,'
5559 ') =  'ACCOUNT_SEGMENT_VALUE'
5560  THEN 
5561  --
5562   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5563       trace
5564          (p_msg      => 'END of AcctDerRule_37'
5565          ,p_level    => C_LEVEL_PROCEDURE
5566          ,p_module   => l_log_module);
5567   END IF;
5568   x_value_type_code := 'S';
5569   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5570   RETURN l_output_value;
5571 
5572  END IF;
5573 --
5574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5575       trace
5576          (p_msg      => 'END of AcctDerRule_37(invalid)'
5577          ,p_level    => C_LEVEL_PROCEDURE
5578          ,p_module   => l_log_module);
5579 END IF;
5580 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5581 x_value_type_code := null;
5582 l_output_value    := null;
5583 xla_accounting_err_pkg.build_message
5584                  (p_appli_s_name            => 'XLA'
5585                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5586                  ,p_token_1                 => 'COMPONENT_NAME'
5587                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5588                                                             l_component_type
5589                                                           , l_component_code
5590                                                           , l_component_type_code
5591                                                           , l_component_appl_id
5592                                                           , l_amb_context_code
5593                                                           )
5594                  ,p_token_2                 => 'OWNER'
5595                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5596                                                         'XLA_OWNER_TYPE'
5597                                                         ,l_component_type_code
5598                                                         )
5599                  ,p_token_3                 => 'PAD_NAME'
5600                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5601                  ,p_token_4                 => 'PAD_OWNER'
5602                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5603                                                         'XLA_OWNER_TYPE'
5604                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5605                                                         )
5606                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5607                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5608                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5609                  ,p_ae_header_id            => NULL
5610 );
5611 RETURN l_output_value;
5612 EXCEPTION
5613   WHEN xla_exceptions_pkg.application_exception THEN
5614       RAISE;
5615   WHEN OTHERS THEN
5616        xla_exceptions_pkg.raise_message
5617            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_37');
5618 END AcctDerRule_37;
5619 --
5620 
5621 ---------------------------------------
5622 --
5623 -- PRIVATE FUNCTION
5624 --         AcctDerRule_38
5625 --
5626 ---------------------------------------
5627 FUNCTION AcctDerRule_38 (
5628   p_application_id              IN NUMBER
5629 , p_ae_header_id                IN NUMBER
5630 , p_side                        IN VARCHAR2 
5631 --Automatic Offsets Value
5632  , p_source_15            IN VARCHAR2
5633  , p_source_15_meaning    IN VARCHAR2
5634 --Invoice Distribution Account
5635  , p_source_30            IN NUMBER
5636 --Internal Realized Loss Account
5637  , p_source_38            IN NUMBER
5638 --Bank Loss Account
5639  , p_source_39            IN NUMBER
5640 , x_transaction_coa_id         OUT NOCOPY NUMBER
5641 , x_accounting_coa_id          OUT NOCOPY NUMBER
5642 , x_value_type_code            OUT NOCOPY VARCHAR2
5643 )
5644 RETURN NUMBER
5645 IS
5646 l_component_type       VARCHAR2(80)  ;
5647 l_component_code       VARCHAR2(30)  ;
5648 l_component_type_code  VARCHAR2(1)   ;
5652 l_output_value         NUMBER        ;
5649 l_component_appl_id    INTEGER       ;
5650 l_amb_context_code     VARCHAR2(30)  ;
5651 l_log_module           VARCHAR2(240) ;
5653 BEGIN
5654 IF g_log_enabled THEN
5655       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5656 END IF;
5657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5658       trace
5659          (p_msg      => 'BEGIN of AcctDerRule_38'
5660          ,p_level    => C_LEVEL_PROCEDURE
5661          ,p_module   => l_log_module);
5662 END IF;
5663 --
5664 l_component_type         := 'AMB_ADR';
5665 l_component_code         := 'AP_REAL_LOSS';
5666 l_component_type_code    := 'S';
5667 l_component_appl_id      :=  200;
5668 l_amb_context_code       := 'DEFAULT';
5669 x_transaction_coa_id     :=  null;
5670 x_accounting_coa_id      :=  null;
5671 --
5672 
5673  IF NVL(p_source_15,'
5674 ') <>  'ACCOUNT_SEGMENT_VALUE'
5675  THEN 
5676  --
5677   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5678       trace
5679          (p_msg      => 'END of AcctDerRule_38'
5680          ,p_level    => C_LEVEL_PROCEDURE
5681          ,p_module   => l_log_module);
5682   END IF;
5683   x_value_type_code := 'S';
5684   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_38));
5685   RETURN l_output_value;
5686 
5687  ELSIF NVL(p_source_15,'
5688 ') <>  'ACCOUNT_SEGMENT_VALUE'
5689  THEN 
5690  --
5691   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5692       trace
5693          (p_msg      => 'END of AcctDerRule_38'
5694          ,p_level    => C_LEVEL_PROCEDURE
5695          ,p_module   => l_log_module);
5696   END IF;
5697   x_value_type_code := 'S';
5698   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_39));
5699   RETURN l_output_value;
5700 
5701  ELSIF NVL(p_source_15,'
5702 ') =  'ACCOUNT_SEGMENT_VALUE'
5703  THEN 
5704  --
5705   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5706       trace
5707          (p_msg      => 'END of AcctDerRule_38'
5708          ,p_level    => C_LEVEL_PROCEDURE
5709          ,p_module   => l_log_module);
5710   END IF;
5711   x_value_type_code := 'S';
5712   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5713   RETURN l_output_value;
5714 
5715  END IF;
5716 --
5717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5718       trace
5719          (p_msg      => 'END of AcctDerRule_38(invalid)'
5720          ,p_level    => C_LEVEL_PROCEDURE
5721          ,p_module   => l_log_module);
5722 END IF;
5723 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5724 x_value_type_code := null;
5725 l_output_value    := null;
5726 xla_accounting_err_pkg.build_message
5727                  (p_appli_s_name            => 'XLA'
5728                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5729                  ,p_token_1                 => 'COMPONENT_NAME'
5730                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5731                                                             l_component_type
5732                                                           , l_component_code
5733                                                           , l_component_type_code
5734                                                           , l_component_appl_id
5735                                                           , l_amb_context_code
5736                                                           )
5737                  ,p_token_2                 => 'OWNER'
5738                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5739                                                         'XLA_OWNER_TYPE'
5740                                                         ,l_component_type_code
5741                                                         )
5742                  ,p_token_3                 => 'PAD_NAME'
5743                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5744                  ,p_token_4                 => 'PAD_OWNER'
5745                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5746                                                         'XLA_OWNER_TYPE'
5747                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5748                                                         )
5749                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5750                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5751                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5752                  ,p_ae_header_id            => NULL
5753 );
5754 RETURN l_output_value;
5755 EXCEPTION
5756   WHEN xla_exceptions_pkg.application_exception THEN
5757       RAISE;
5758   WHEN OTHERS THEN
5759        xla_exceptions_pkg.raise_message
5760            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_38');
5761 END AcctDerRule_38;
5762 --
5763 
5764 ---------------------------------------
5765 --
5766 -- PRIVATE FUNCTION
5767 --         AcctDerRule_39
5768 --
5769 ---------------------------------------
5770 FUNCTION AcctDerRule_39 (
5771   p_application_id              IN NUMBER
5772 , p_ae_header_id                IN NUMBER
5773 , p_side                        IN VARCHAR2 
5774 --Automatic Offsets Value
5775  , p_source_15            IN VARCHAR2
5776  , p_source_15_meaning    IN VARCHAR2
5777 --Invoice Distribution Account
5778  , p_source_30            IN NUMBER
5782 , x_accounting_coa_id          OUT NOCOPY NUMBER
5779 --Retainage Related Item Distribution Account
5780  , p_source_42            IN NUMBER
5781 , x_transaction_coa_id         OUT NOCOPY NUMBER
5783 , x_value_type_code            OUT NOCOPY VARCHAR2
5784 )
5785 RETURN NUMBER
5786 IS
5787 l_component_type       VARCHAR2(80)  ;
5788 l_component_code       VARCHAR2(30)  ;
5789 l_component_type_code  VARCHAR2(1)   ;
5790 l_component_appl_id    INTEGER       ;
5791 l_amb_context_code     VARCHAR2(30)  ;
5792 l_log_module           VARCHAR2(240) ;
5793 l_output_value         NUMBER        ;
5794 BEGIN
5795 IF g_log_enabled THEN
5796       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_39';
5797 END IF;
5798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5799       trace
5800          (p_msg      => 'BEGIN of AcctDerRule_39'
5801          ,p_level    => C_LEVEL_PROCEDURE
5802          ,p_module   => l_log_module);
5803 END IF;
5804 --
5805 l_component_type         := 'AMB_ADR';
5806 l_component_code         := 'AP_RETAINAGE';
5807 l_component_type_code    := 'S';
5808 l_component_appl_id      :=  200;
5809 l_amb_context_code       := 'DEFAULT';
5810 x_transaction_coa_id     :=  null;
5811 x_accounting_coa_id      :=  null;
5812 --
5813 
5814  IF NVL(p_source_15,'
5815 ') <>  'ACCOUNT_SEGMENT_VALUE'
5816  THEN 
5817  --
5818   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5819       trace
5820          (p_msg      => 'END of AcctDerRule_39'
5821          ,p_level    => C_LEVEL_PROCEDURE
5822          ,p_module   => l_log_module);
5823   END IF;
5824   x_value_type_code := 'S';
5825   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5826   RETURN l_output_value;
5827 
5828  ELSIF NVL(p_source_15,'
5829 ') =  'ACCOUNT_SEGMENT_VALUE'
5830  THEN 
5831  --
5832   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5833       trace
5834          (p_msg      => 'END of AcctDerRule_39'
5835          ,p_level    => C_LEVEL_PROCEDURE
5836          ,p_module   => l_log_module);
5837   END IF;
5838   x_value_type_code := 'S';
5839   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_42));
5840   RETURN l_output_value;
5841 
5842  END IF;
5843 --
5844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5845       trace
5846          (p_msg      => 'END of AcctDerRule_39(invalid)'
5847          ,p_level    => C_LEVEL_PROCEDURE
5848          ,p_module   => l_log_module);
5849 END IF;
5850 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5851 x_value_type_code := null;
5852 l_output_value    := null;
5853 xla_accounting_err_pkg.build_message
5854                  (p_appli_s_name            => 'XLA'
5855                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5856                  ,p_token_1                 => 'COMPONENT_NAME'
5857                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5858                                                             l_component_type
5859                                                           , l_component_code
5860                                                           , l_component_type_code
5861                                                           , l_component_appl_id
5862                                                           , l_amb_context_code
5863                                                           )
5864                  ,p_token_2                 => 'OWNER'
5865                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5866                                                         'XLA_OWNER_TYPE'
5867                                                         ,l_component_type_code
5868                                                         )
5869                  ,p_token_3                 => 'PAD_NAME'
5870                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5871                  ,p_token_4                 => 'PAD_OWNER'
5872                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5873                                                         'XLA_OWNER_TYPE'
5874                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5875                                                         )
5876                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5877                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5878                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5879                  ,p_ae_header_id            => NULL
5880 );
5881 RETURN l_output_value;
5882 EXCEPTION
5883   WHEN xla_exceptions_pkg.application_exception THEN
5884       RAISE;
5885   WHEN OTHERS THEN
5886        xla_exceptions_pkg.raise_message
5887            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_39');
5888 END AcctDerRule_39;
5889 --
5890 
5891 ---------------------------------------
5892 --
5893 -- PRIVATE FUNCTION
5894 --         AcctDerRule_40
5895 --
5896 ---------------------------------------
5897 FUNCTION AcctDerRule_40 (
5898   p_application_id              IN NUMBER
5899 , p_ae_header_id                IN NUMBER
5900 , p_side                        IN VARCHAR2 
5901 --Automatic Offsets Value
5902  , p_source_15            IN VARCHAR2
5903  , p_source_15_meaning    IN VARCHAR2
5904 --Invoice Distribution Account
5908 , x_transaction_coa_id         OUT NOCOPY NUMBER
5905  , p_source_30            IN NUMBER
5906 --Payables Options Rounding Account
5907  , p_source_48            IN NUMBER
5909 , x_accounting_coa_id          OUT NOCOPY NUMBER
5910 , x_value_type_code            OUT NOCOPY VARCHAR2
5911 )
5912 RETURN NUMBER
5913 IS
5914 l_component_type       VARCHAR2(80)  ;
5915 l_component_code       VARCHAR2(30)  ;
5916 l_component_type_code  VARCHAR2(1)   ;
5917 l_component_appl_id    INTEGER       ;
5918 l_amb_context_code     VARCHAR2(30)  ;
5919 l_log_module           VARCHAR2(240) ;
5920 l_output_value         NUMBER        ;
5921 BEGIN
5922 IF g_log_enabled THEN
5923       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_40';
5924 END IF;
5925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5926       trace
5927          (p_msg      => 'BEGIN of AcctDerRule_40'
5928          ,p_level    => C_LEVEL_PROCEDURE
5929          ,p_module   => l_log_module);
5930 END IF;
5931 --
5932 l_component_type         := 'AMB_ADR';
5933 l_component_code         := 'AP_ROUNDING';
5934 l_component_type_code    := 'S';
5935 l_component_appl_id      :=  200;
5936 l_amb_context_code       := 'DEFAULT';
5937 x_transaction_coa_id     :=  null;
5938 x_accounting_coa_id      :=  null;
5939 --
5940 
5941  IF NVL(p_source_15,'
5942 ') <>  'ACCOUNT_SEGMENT_VALUE'
5943  THEN 
5944  --
5945   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5946       trace
5947          (p_msg      => 'END of AcctDerRule_40'
5948          ,p_level    => C_LEVEL_PROCEDURE
5949          ,p_module   => l_log_module);
5950   END IF;
5951   x_value_type_code := 'S';
5952   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_48));
5953   RETURN l_output_value;
5954 
5955  ELSIF NVL(p_source_15,'
5956 ') =  'ACCOUNT_SEGMENT_VALUE'
5957  THEN 
5958  --
5959   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5960       trace
5961          (p_msg      => 'END of AcctDerRule_40'
5962          ,p_level    => C_LEVEL_PROCEDURE
5963          ,p_module   => l_log_module);
5964   END IF;
5965   x_value_type_code := 'S';
5966   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5967   RETURN l_output_value;
5968 
5969  END IF;
5970 --
5971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5972       trace
5973          (p_msg      => 'END of AcctDerRule_40(invalid)'
5974          ,p_level    => C_LEVEL_PROCEDURE
5975          ,p_module   => l_log_module);
5976 END IF;
5977 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5978 x_value_type_code := null;
5979 l_output_value    := null;
5980 xla_accounting_err_pkg.build_message
5981                  (p_appli_s_name            => 'XLA'
5982                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5983                  ,p_token_1                 => 'COMPONENT_NAME'
5984                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5985                                                             l_component_type
5986                                                           , l_component_code
5987                                                           , l_component_type_code
5988                                                           , l_component_appl_id
5989                                                           , l_amb_context_code
5990                                                           )
5991                  ,p_token_2                 => 'OWNER'
5992                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5993                                                         'XLA_OWNER_TYPE'
5994                                                         ,l_component_type_code
5995                                                         )
5996                  ,p_token_3                 => 'PAD_NAME'
5997                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5998                  ,p_token_4                 => 'PAD_OWNER'
5999                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6000                                                         'XLA_OWNER_TYPE'
6001                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6002                                                         )
6003                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6004                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6005                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6006                  ,p_ae_header_id            => NULL
6007 );
6008 RETURN l_output_value;
6009 EXCEPTION
6010   WHEN xla_exceptions_pkg.application_exception THEN
6011       RAISE;
6012   WHEN OTHERS THEN
6013        xla_exceptions_pkg.raise_message
6014            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_40');
6015 END AcctDerRule_40;
6016 --
6017 
6018 ---------------------------------------
6019 --
6020 -- PRIVATE FUNCTION
6021 --         AcctDerRule_41
6022 --
6023 ---------------------------------------
6024 FUNCTION AcctDerRule_41 (
6025   p_application_id              IN NUMBER
6026 , p_ae_header_id                IN NUMBER
6027 , p_side                        IN VARCHAR2 
6028 --Self-Assessed Tax Account
6029  , p_source_49            IN NUMBER
6030 , x_transaction_coa_id         OUT NOCOPY NUMBER
6034 RETURN NUMBER
6031 , x_accounting_coa_id          OUT NOCOPY NUMBER
6032 , x_value_type_code            OUT NOCOPY VARCHAR2
6033 )
6035 IS
6036 l_component_type       VARCHAR2(80)  ;
6037 l_component_code       VARCHAR2(30)  ;
6038 l_component_type_code  VARCHAR2(1)   ;
6039 l_component_appl_id    INTEGER       ;
6040 l_amb_context_code     VARCHAR2(30)  ;
6041 l_log_module           VARCHAR2(240) ;
6042 l_output_value         NUMBER        ;
6043 BEGIN
6044 IF g_log_enabled THEN
6045       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_41';
6046 END IF;
6047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6048       trace
6049          (p_msg      => 'BEGIN of AcctDerRule_41'
6050          ,p_level    => C_LEVEL_PROCEDURE
6051          ,p_module   => l_log_module);
6052 END IF;
6053 --
6054 l_component_type         := 'AMB_ADR';
6055 l_component_code         := 'AP_SELF_ASSESSED_TAX';
6056 l_component_type_code    := 'S';
6057 l_component_appl_id      :=  200;
6058 l_amb_context_code       := 'DEFAULT';
6059 x_transaction_coa_id     :=  null;
6060 x_accounting_coa_id      :=  null;
6061 --
6062 
6063  --
6064   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6065       trace
6066          (p_msg      => 'END of AcctDerRule_41'
6067          ,p_level    => C_LEVEL_PROCEDURE
6068          ,p_module   => l_log_module);
6069   END IF;
6070   x_value_type_code := 'S';
6071   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_49));
6072   RETURN l_output_value;
6073 
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_000020_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 Liability 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);
6156 END IF;
6160 l_component_type_code    := 'S';
6157 --
6158 l_component_type         := 'AMB_ADR';
6159 l_component_code         := 'AP_SELF_ASSESSED_TAX_LIAB';
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_000020_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 --Recoverable Tax 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_TAX_ACCOUNT';
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';
6279   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_51));
6280   RETURN l_output_value;
6281 
6282 --
6283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6287          ,p_module   => l_log_module);
6284       trace
6285          (p_msg      => 'END of AcctDerRule_43(invalid)'
6286          ,p_level    => C_LEVEL_PROCEDURE
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_000020_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 --Automatic Offsets Value
6341  , p_source_15            IN VARCHAR2
6342  , p_source_15_meaning    IN VARCHAR2
6343 --Invoice Distribution Account
6344  , p_source_30            IN NUMBER
6345 --Payables Options Tax Difference Account
6346  , p_source_41            IN NUMBER
6347 , x_transaction_coa_id         OUT NOCOPY NUMBER
6348 , x_accounting_coa_id          OUT NOCOPY NUMBER
6349 , x_value_type_code            OUT NOCOPY VARCHAR2
6350 )
6351 RETURN NUMBER
6352 IS
6353 l_component_type       VARCHAR2(80)  ;
6354 l_component_code       VARCHAR2(30)  ;
6355 l_component_type_code  VARCHAR2(1)   ;
6356 l_component_appl_id    INTEGER       ;
6357 l_amb_context_code     VARCHAR2(30)  ;
6358 l_log_module           VARCHAR2(240) ;
6359 l_output_value         NUMBER        ;
6360 BEGIN
6361 IF g_log_enabled THEN
6362       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_44';
6363 END IF;
6364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6365       trace
6366          (p_msg      => 'BEGIN of AcctDerRule_44'
6367          ,p_level    => C_LEVEL_PROCEDURE
6368          ,p_module   => l_log_module);
6369 END IF;
6370 --
6371 l_component_type         := 'AMB_ADR';
6372 l_component_code         := 'AP_TAX_DIFFERENCE';
6373 l_component_type_code    := 'S';
6374 l_component_appl_id      :=  200;
6375 l_amb_context_code       := 'DEFAULT';
6376 x_transaction_coa_id     :=  null;
6377 x_accounting_coa_id      :=  null;
6378 --
6379 
6380  IF NVL(p_source_15,'
6381 ') <>  'ACCOUNT_SEGMENT_VALUE'
6382  THEN 
6383  --
6384   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6385       trace
6386          (p_msg      => 'END of AcctDerRule_44'
6387          ,p_level    => C_LEVEL_PROCEDURE
6388          ,p_module   => l_log_module);
6389   END IF;
6390   x_value_type_code := 'S';
6391   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
6392   RETURN l_output_value;
6393 
6394  ELSIF NVL(p_source_15,'
6395 ') =  'ACCOUNT_SEGMENT_VALUE'
6396  THEN 
6397  --
6398   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6399       trace
6400          (p_msg      => 'END of AcctDerRule_44'
6401          ,p_level    => C_LEVEL_PROCEDURE
6402          ,p_module   => l_log_module);
6403   END IF;
6404   x_value_type_code := 'S';
6408  END IF;
6405   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
6406   RETURN l_output_value;
6407 
6409 --
6410 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6411       trace
6412          (p_msg      => 'END of AcctDerRule_44(invalid)'
6413          ,p_level    => C_LEVEL_PROCEDURE
6414          ,p_module   => l_log_module);
6415 END IF;
6416 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6417 x_value_type_code := null;
6418 l_output_value    := null;
6419 xla_accounting_err_pkg.build_message
6420                  (p_appli_s_name            => 'XLA'
6421                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6422                  ,p_token_1                 => 'COMPONENT_NAME'
6423                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6424                                                             l_component_type
6425                                                           , l_component_code
6426                                                           , l_component_type_code
6427                                                           , l_component_appl_id
6428                                                           , l_amb_context_code
6429                                                           )
6430                  ,p_token_2                 => 'OWNER'
6431                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6432                                                         'XLA_OWNER_TYPE'
6433                                                         ,l_component_type_code
6434                                                         )
6435                  ,p_token_3                 => 'PAD_NAME'
6436                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6437                  ,p_token_4                 => 'PAD_OWNER'
6438                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6439                                                         'XLA_OWNER_TYPE'
6440                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6441                                                         )
6442                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6443                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6444                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6445                  ,p_ae_header_id            => NULL
6446 );
6447 RETURN l_output_value;
6448 EXCEPTION
6449   WHEN xla_exceptions_pkg.application_exception THEN
6450       RAISE;
6451   WHEN OTHERS THEN
6452        xla_exceptions_pkg.raise_message
6453            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_44');
6454 END AcctDerRule_44;
6455 --
6456 
6457 ---------------------------------------
6458 --
6459 -- PRIVATE FUNCTION
6460 --         AcctDerRule_45
6461 --
6462 ---------------------------------------
6463 FUNCTION AcctDerRule_45 (
6464   p_application_id              IN NUMBER
6465 , p_ae_header_id                IN NUMBER
6466 , p_side                        IN VARCHAR2 
6467 --Automatic Offsets Value
6468  , p_source_15            IN VARCHAR2
6469  , p_source_15_meaning    IN VARCHAR2
6470 --Invoice Distribution Account
6471  , p_source_30            IN NUMBER
6472 --Withholding Related Distribution Account
6473  , p_source_43            IN NUMBER
6474 , x_transaction_coa_id         OUT NOCOPY NUMBER
6475 , x_accounting_coa_id          OUT NOCOPY NUMBER
6476 , x_value_type_code            OUT NOCOPY VARCHAR2
6477 )
6478 RETURN NUMBER
6479 IS
6480 l_component_type       VARCHAR2(80)  ;
6481 l_component_code       VARCHAR2(30)  ;
6482 l_component_type_code  VARCHAR2(1)   ;
6483 l_component_appl_id    INTEGER       ;
6484 l_amb_context_code     VARCHAR2(30)  ;
6485 l_log_module           VARCHAR2(240) ;
6486 l_output_value         NUMBER        ;
6487 BEGIN
6488 IF g_log_enabled THEN
6489       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_45';
6490 END IF;
6491 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6492       trace
6493          (p_msg      => 'BEGIN of AcctDerRule_45'
6494          ,p_level    => C_LEVEL_PROCEDURE
6495          ,p_module   => l_log_module);
6496 END IF;
6497 --
6498 l_component_type         := 'AMB_ADR';
6499 l_component_code         := 'AP_WH_DIST_ACCT';
6500 l_component_type_code    := 'S';
6501 l_component_appl_id      :=  200;
6502 l_amb_context_code       := 'DEFAULT';
6503 x_transaction_coa_id     :=  null;
6504 x_accounting_coa_id      :=  null;
6505 --
6506 
6507  IF NVL(p_source_15,'
6508 ') <>  'ACCOUNT_SEGMENT_VALUE'
6509  THEN 
6510  --
6511   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6512       trace
6513          (p_msg      => 'END of AcctDerRule_45'
6514          ,p_level    => C_LEVEL_PROCEDURE
6515          ,p_module   => l_log_module);
6516   END IF;
6517   x_value_type_code := 'S';
6518   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
6519   RETURN l_output_value;
6520 
6521  ELSIF NVL(p_source_15,'
6522 ') =  'ACCOUNT_SEGMENT_VALUE'
6523  THEN 
6524  --
6525   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6526       trace
6527          (p_msg      => 'END of AcctDerRule_45'
6528          ,p_level    => C_LEVEL_PROCEDURE
6529          ,p_module   => l_log_module);
6530   END IF;
6531   x_value_type_code := 'S';
6535  END IF;
6532   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_43));
6533   RETURN l_output_value;
6534 
6536 --
6537 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6538       trace
6539          (p_msg      => 'END of AcctDerRule_45(invalid)'
6540          ,p_level    => C_LEVEL_PROCEDURE
6541          ,p_module   => l_log_module);
6542 END IF;
6543 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6544 x_value_type_code := null;
6545 l_output_value    := null;
6546 xla_accounting_err_pkg.build_message
6547                  (p_appli_s_name            => 'XLA'
6548                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6549                  ,p_token_1                 => 'COMPONENT_NAME'
6550                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6551                                                             l_component_type
6552                                                           , l_component_code
6553                                                           , l_component_type_code
6554                                                           , l_component_appl_id
6555                                                           , l_amb_context_code
6556                                                           )
6557                  ,p_token_2                 => 'OWNER'
6558                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6559                                                         'XLA_OWNER_TYPE'
6560                                                         ,l_component_type_code
6561                                                         )
6562                  ,p_token_3                 => 'PAD_NAME'
6563                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6564                  ,p_token_4                 => 'PAD_OWNER'
6565                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6566                                                         'XLA_OWNER_TYPE'
6567                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6568                                                         )
6569                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6570                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6571                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6572                  ,p_ae_header_id            => NULL
6573 );
6574 RETURN l_output_value;
6575 EXCEPTION
6576   WHEN xla_exceptions_pkg.application_exception THEN
6577       RAISE;
6578   WHEN OTHERS THEN
6579        xla_exceptions_pkg.raise_message
6580            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctDerRule_45');
6581 END AcctDerRule_45;
6582 --
6583 
6584 ---------------------------------------
6585 --
6586 -- PRIVATE FUNCTION
6587 --         AcctLineType_46
6588 --
6589 ---------------------------------------
6590 PROCEDURE AcctLineType_46 (
6591   p_application_id        IN NUMBER
6592  ,p_event_id              IN NUMBER
6593  ,p_calculate_acctd_flag  IN VARCHAR2
6594  ,p_calculate_g_l_flag    IN VARCHAR2
6595  ,p_actual_flag           IN OUT VARCHAR2
6596  ,p_balance_type_code     OUT VARCHAR2
6597  ,p_gain_or_loss_ref      OUT VARCHAR2
6598  
6599 --Invoice Distribution Description
6600  , p_source_1            IN VARCHAR2
6601 --Invoice Distribution Ledger Amount
6602  , p_source_21            IN NUMBER
6603 --Invoice Distribution Account
6604  , p_source_30            IN NUMBER
6605 --Invoice Distribution Type
6606  , p_source_33            IN VARCHAR2
6607  , p_source_33_meaning    IN VARCHAR2
6608 --Accounting Reversal Indicator
6609  , p_source_52            IN VARCHAR2
6610 --Distribution Link Type
6611  , p_source_54            IN VARCHAR2
6612 --Allocation to Main Distribution Identifier
6613  , p_source_56            IN NUMBER
6614 --Invoice Identifier
6615  , p_source_57            IN NUMBER
6616 --Business Flow Purchasing Application Identifier
6617  , p_source_58            IN NUMBER
6618 --Business Flow Purchase Order Distribution Type
6619  , p_source_59            IN VARCHAR2
6620 --Business Flow Purchase Order Entity Code
6621  , p_source_60            IN VARCHAR2
6622 --Business Flow Purchase Order Distribution Identifier
6623  , p_source_61            IN NUMBER
6624 --Business Flow Purchasing Document Identifier
6625  , p_source_62            IN NUMBER
6626 --Invoice Distribution Identifier
6627  , p_source_63            IN NUMBER
6628 --Payables Encumbrance Upgrade Credit Account
6629  , p_source_64            IN NUMBER
6630 --Payables Encumbrance Upgrade Credit Amount
6631  , p_source_65            IN NUMBER
6632 --Invoice Currency Code
6633  , p_source_66            IN VARCHAR2
6634 --Payables Encumbrance Upgrade Credit Base Amount
6635  , p_source_67            IN NUMBER
6636 --Payables Encumbrance Upgrade Debit Account
6637  , p_source_68            IN NUMBER
6638 --Payables Encumbrance Upgrade Debit Amount
6639  , p_source_69            IN NUMBER
6640 --Payables Encumbrance Upgrade Debit Base Amount
6641  , p_source_70            IN NUMBER
6642 --Payables Encumbrance Upgrade Option
6643  , p_source_71            IN VARCHAR2
6644 --Invoice Distribution Amount
6645  , p_source_72            IN NUMBER
6646 --Purchase Order Exchange Rate Date
6647  , p_source_73            IN DATE
6648 --Purchase Order Exchange Rate
6652 --Deferred Accounting End Date
6649  , p_source_74            IN NUMBER
6650 --Purchase Order Exchange Rate Type
6651  , p_source_75            IN VARCHAR2
6653  , p_source_76            IN DATE
6654 --Deferred Accounting Option
6655  , p_source_77            IN VARCHAR2
6656 --Deferred Accounting Start Date
6657  , p_source_78            IN DATE
6658 --Override Accounted Amount Indicator
6659  , p_source_79            IN VARCHAR2
6660  , p_source_79_meaning    IN VARCHAR2
6661 --Invoice Supplier Identifier
6662  , p_source_80            IN NUMBER
6663 --Invoice Supplier Site Identifier
6664  , p_source_81            IN NUMBER
6665 --Third Party Type
6666  , p_source_82            IN VARCHAR2
6667 --Parent Reversal Identifier
6668  , p_source_83            IN NUMBER
6669 --Invoice Distribution Statistical Amount
6670  , p_source_84            IN NUMBER
6671 --Invoice Distribution Tax Line Identifier
6672  , p_source_85            IN NUMBER
6673 --Invoice Distribution Tax Distribution Identifier from Tax
6674  , p_source_86            IN NUMBER
6675 --Invoice Distribution Summary Tax Line Identifier
6676  , p_source_87            IN NUMBER
6677 --Payables Upgrade Credit Encumbrance Type Identifier
6678  , p_source_88            IN NUMBER
6679 --Payables Upgrade Debit Encumbrance Type Identifier
6680  , p_source_89            IN NUMBER
6681 )
6682 IS
6683 
6684 l_component_type              VARCHAR2(80);
6685 l_component_code              VARCHAR2(30);
6686 l_component_type_code         VARCHAR2(1);
6687 l_component_appl_id           INTEGER;
6688 l_amb_context_code            VARCHAR2(30);
6689 l_entity_code                 VARCHAR2(30);
6690 l_event_class_code            VARCHAR2(30);
6691 l_ae_header_id                NUMBER;
6692 l_event_type_code             VARCHAR2(30);
6693 l_line_definition_code        VARCHAR2(30);
6694 l_line_definition_owner_code  VARCHAR2(1);
6695 --
6696 -- adr variables
6697 l_segment                     VARCHAR2(30);
6698 l_ccid                        NUMBER;
6699 l_adr_transaction_coa_id      NUMBER;
6700 l_adr_accounting_coa_id       NUMBER;
6701 l_adr_flexfield_segment_code  VARCHAR2(30);
6702 l_adr_flex_value_set_id       NUMBER;
6703 l_adr_value_type_code         VARCHAR2(30);
6704 l_adr_value_combination_id    NUMBER;
6705 l_adr_value_segment_code      VARCHAR2(30);
6706 
6707 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6708 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6709 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6710 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6711 
6712 -- 4262811 Variables ------------------------------------------------------------------------------------------
6713 l_entered_amt_idx             NUMBER;
6714 l_accted_amt_idx              NUMBER;
6715 l_acc_rev_flag                VARCHAR2(1);
6716 l_accrual_line_num            NUMBER;
6717 l_tmp_amt                     NUMBER;
6718 l_acc_rev_natural_side_code   VARCHAR2(1);
6719 
6720 l_num_entries                 NUMBER;
6721 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6722 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6723 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6724 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6725 l_recog_line_1                NUMBER;
6726 l_recog_line_2                NUMBER;
6727 
6728 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6729 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6730 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6731 
6732 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6733 
6734 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6735 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6736 
6737 ---------------------------------------------------------------------------------------------------------------
6738 
6739 
6740 --
6741 -- bulk performance
6742 --
6743 l_balance_type_code           VARCHAR2(1);
6744 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6745 l_log_module                  VARCHAR2(240);
6746 
6747 --
6748 -- Upgrade strategy
6749 --
6750 l_actual_upg_option           VARCHAR2(1);
6751 l_enc_upg_option           VARCHAR2(1);
6752 
6753 --
6754 BEGIN
6755 --
6756 IF g_log_enabled THEN
6757       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
6758 END IF;
6759 --
6760 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6761 
6762       trace
6763          (p_msg      => 'BEGIN of AcctLineType_46'
6764          ,p_level    => C_LEVEL_PROCEDURE
6765          ,p_module   => l_log_module);
6766 
6767 END IF;
6768 --
6769 l_component_type             := 'AMB_JLT';
6770 l_component_code             := 'AP_ACCRUAL_CM';
6771 l_component_type_code        := 'S';
6772 l_component_appl_id          :=  200;
6773 l_amb_context_code           := 'DEFAULT';
6774 l_entity_code                := 'AP_INVOICES';
6775 l_event_class_code           := 'CREDIT MEMOS';
6776 l_event_type_code            := 'CREDIT MEMOS_ALL';
6777 l_line_definition_owner_code := 'S';
6778 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
6779 --
6783 l_adr_transaction_coa_id      := NULL;
6780 l_balance_type_code          := 'A';
6781 l_segment                     := NULL;
6782 l_ccid                        := NULL;
6784 l_adr_accounting_coa_id       := NULL;
6785 l_adr_flexfield_segment_code  := NULL;
6786 l_adr_flex_value_set_id       := NULL;
6787 l_adr_value_type_code         := NULL;
6788 l_adr_value_combination_id    := NULL;
6789 l_adr_value_segment_code      := NULL;
6790 
6791 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6792 l_bflow_class_code           := '';    -- 4219869 Business Flow
6793 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6794 l_budgetary_control_flag     := 'N';
6795 
6796 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6797 l_bflow_applied_to_amt       := NULL; -- 5132302
6798 l_entered_amt_idx            := NULL;          -- 4262811
6799 l_accted_amt_idx             := NULL;          -- 4262811
6800 l_acc_rev_flag               := NULL;          -- 4262811
6801 l_accrual_line_num           := NULL;          -- 4262811
6802 l_tmp_amt                    := NULL;          -- 4262811
6803 --
6804  
6805 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6806     l_balance_type_code <> 'B' THEN
6807 IF NVL(p_source_33,'
6808 ') =  'RETROACCRUAL' OR 
6809 NVL(p_source_33,'
6810 ') =  'ACCRUAL'
6811  THEN 
6812 
6813    --
6814    XLA_AE_LINES_PKG.SetNewLine;
6815 
6816    p_balance_type_code          := l_balance_type_code;
6817    -- set the flag so later we will know whether the gain loss line needs to be created
6818    
6819    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6820      p_actual_flag :='A';
6821    END IF;
6822 
6823    --
6824    -- bulk performance
6825    --
6826    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6827                                       p_header_num   => 0); -- 4262811
6828    --
6829    -- set accounting line options
6830    --
6831    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6832            p_natural_side_code          => 'D'
6833          , p_gain_or_loss_flag          => 'N'
6834          , p_gl_transfer_mode_code      => 'S'
6835          , p_acct_entry_type_code       => 'A'
6836          , p_switch_side_flag           => 'Y'
6837          , p_merge_duplicate_code       => 'A'
6838          );
6839    --
6840    l_acc_rev_natural_side_code := 'C';  -- 4262811
6841    -- 
6842    --
6843    -- set accounting line type info
6844    --
6845    xla_ae_lines_pkg.SetAcctLineType
6846       (p_component_type             => l_component_type
6847       ,p_event_type_code            => l_event_type_code
6848       ,p_line_definition_owner_code => l_line_definition_owner_code
6849       ,p_line_definition_code       => l_line_definition_code
6850       ,p_accounting_line_code       => l_component_code
6851       ,p_accounting_line_type_code  => l_component_type_code
6852       ,p_accounting_line_appl_id    => l_component_appl_id
6853       ,p_amb_context_code           => l_amb_context_code
6854       ,p_entity_code                => l_entity_code
6855       ,p_event_class_code           => l_event_class_code);
6856    --
6857    -- set accounting class
6858    --
6859    xla_ae_lines_pkg.SetAcctClass(
6860            p_accounting_class_code  => 'ACCRUAL'
6861          , p_ae_header_id           => l_ae_header_id
6862          );
6863 
6864    --
6865    -- set rounding class
6866    --
6867    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6868                       'ACCRUAL';
6869 
6870    --
6871    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6872    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6873    --
6874    -- bulk performance
6875    --
6876    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6877 
6878    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6879       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6880 
6881    -- 4955764
6882    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6883       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6884 
6885    -- 4458381 Public Sector Enh
6886    
6887    --
6888    -- set accounting attributes for the line type
6889    --
6890    l_entered_amt_idx := 23;
6891    l_accted_amt_idx  := 28;
6892    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6893    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6894    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
6895    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
6896    l_rec_acct_attrs.array_num_value(2)  := 
6897 xla_ae_sources_pkg.GetSystemSourceNum(
6898    p_source_code           => 'XLA_EVENT_APPL_ID'
6899  , p_source_type_code      => 'Y'
6900  , p_source_application_id =>  602
6901 );
6902    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
6903    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
6904    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
6905    l_rec_acct_attrs.array_char_value(4)  := 
6906 xla_ae_sources_pkg.GetSystemSourceChar(
6910 );
6907    p_source_code           => 'XLA_ENTITY_CODE'
6908  , p_source_type_code      => 'Y'
6909  , p_source_application_id =>  602
6911    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
6912    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
6913    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
6914    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
6915    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
6916    l_rec_acct_attrs.array_num_value(7)  := p_source_58;
6917    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6918    l_rec_acct_attrs.array_char_value(8)  := p_source_59;
6919    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
6920    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
6921    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
6922    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_61);
6923    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6924    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_62);
6925    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
6926    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
6927    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
6928    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
6929    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
6930    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
6931    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
6932    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
6933    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
6934    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
6935    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
6936    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
6937    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
6938    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
6939    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
6940    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
6941    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
6942    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
6943    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
6944    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
6945    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
6946    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
6947    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
6948    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
6949    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
6950    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
6951    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
6952    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
6953    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
6954    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
6955    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
6956    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
6957    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
6958    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
6959    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
6960    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
6961    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
6962    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
6963    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
6964    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
6965    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
6966    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
6967    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
6968    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
6969    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
6970    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
6971    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
6972    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
6973    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
6974    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
6975    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
6976    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
6977    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
6978    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
6979    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
6980    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
6981    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
6982    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
6983    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
6984    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
6985    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
6986    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
6987    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
6988    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
6989 
6990    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6991    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6992 
6996    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6993    ---------------------------------------------------------------------------------------------------------------
6994    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6995    ---------------------------------------------------------------------------------------------------------------
6997 
6998    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6999    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7000 
7001    IF xla_accounting_cache_pkg.GetValueChar
7002          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7003          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7004    AND l_bflow_method_code = 'PRIOR_ENTRY'
7005 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7006    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7007          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7008        )
7009    THEN
7010          xla_ae_lines_pkg.BflowUpgEntry
7011            (p_business_method_code    => l_bflow_method_code
7012            ,p_business_class_code     => l_bflow_class_code
7013            ,p_balance_type            => l_balance_type_code);
7014    ELSE
7015       NULL;
7016 -- No business flow processing for business flow method of NONE.
7017    END IF;
7018 
7019    --
7020    -- call analytical criteria
7021    --
7022    
7023    --
7024    -- call description
7025    --
7026    
7027 xla_ae_lines_pkg.SetLineDescription(
7028    p_ae_header_id => l_ae_header_id
7029   ,p_description  => Description_1 (
7030      p_application_id         => p_application_id
7031    , p_ae_header_id           => l_ae_header_id 
7032 , p_source_1 => p_source_1
7033    )
7034 );
7035 
7036 
7037    --
7038    -- call ADRs
7039    -- Bug 4922099
7040    --
7041    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7042         (NVL(l_actual_upg_option, 'N') = 'O') OR
7043         (NVL(l_enc_upg_option, 'N') = 'O')
7044       )
7045    THEN
7046    NULL;
7047    --
7048    --
7049    
7050   l_ccid := AcctDerRule_33(
7051            p_application_id           => p_application_id
7052          , p_ae_header_id             => l_ae_header_id 
7053 , p_source_30 => p_source_30
7054          , x_transaction_coa_id       => l_adr_transaction_coa_id
7055          , x_accounting_coa_id        => l_adr_accounting_coa_id
7056          , x_value_type_code          => l_adr_value_type_code
7057          , p_side                     => 'NA'
7058    );
7059 
7060    xla_ae_lines_pkg.set_ccid(
7061     p_code_combination_id          => l_ccid
7062   , p_value_type_code              => l_adr_value_type_code
7063   , p_transaction_coa_id           => l_adr_transaction_coa_id
7064   , p_accounting_coa_id            => l_adr_accounting_coa_id
7065   , p_adr_code                     => 'AP_INVOICE_DIST'
7066   , p_adr_type_code                => 'S'
7067   , p_component_type               => l_component_type
7068   , p_component_code               => l_component_code
7069   , p_component_type_code          => l_component_type_code
7070   , p_component_appl_id            => l_component_appl_id
7071   , p_amb_context_code             => l_amb_context_code
7072   , p_side                         => 'NA'
7073   );
7074 
7075 
7076    --
7077    --
7078    END IF;
7079    --
7080    -- Bug 4922099
7081    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7082           (NVL(l_enc_upg_option, 'N') = 'O')
7083         ) AND
7084         (l_bflow_method_code = 'PRIOR_ENTRY')
7085       )
7086    THEN
7087       IF
7088       --
7089       1 = 2
7090       --
7091       THEN
7092       xla_accounting_err_pkg.build_message
7093                                     (p_appli_s_name            => 'XLA'
7094                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7095                                     ,p_token_1                 => 'LINE_NUMBER'
7096                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7097                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7098                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7099                                                                              l_component_type
7100                                                                             ,l_component_code
7101                                                                             ,l_component_type_code
7102                                                                             ,l_component_appl_id
7103                                                                             ,l_amb_context_code
7104                                                                             ,l_entity_code
7105                                                                             ,l_event_class_code
7106                                                                            )
7107                                     ,p_token_3                 => 'OWNER'
7108                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7109                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7113                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7110                                                                           ,p_lookup_code    => l_component_type_code
7111                                                                          )
7112                                     ,p_token_4                 => 'PRODUCT_NAME'
7114                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7115                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7116                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7117                                     ,p_ae_header_id            =>  NULL
7118                                        );
7119 
7120         IF (C_LEVEL_ERROR>= g_log_level) THEN
7121                  trace
7122                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7123                       ,p_level    => C_LEVEL_ERROR
7124                       ,p_module   => l_log_module);
7125         END IF;
7126       END IF;
7127    END IF;
7128    --
7129    --
7130    ------------------------------------------------------------------------------------------------
7131    -- 4219869 Business Flow
7132    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7133    -- Prior Entry.  Currently, the following code is always generated.
7134    ------------------------------------------------------------------------------------------------
7135    XLA_AE_LINES_PKG.ValidateCurrentLine;
7136 
7137    ------------------------------------------------------------------------------------
7138    -- 4219869 Business Flow
7139    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7140    ------------------------------------------------------------------------------------
7141    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7142 
7143    ----------------------------------------------------------------------------------
7144    -- 4219869 Business Flow
7145    -- Update journal entry status -- Need to generate this within IF <condition>
7146    ----------------------------------------------------------------------------------
7147    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7148          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7149          ,p_balance_type_code => l_balance_type_code
7150          );
7151 
7152    -------------------------------------------------------------------------------------------
7153    -- 4262811 - Generate the Accrual Reversal lines
7154    -------------------------------------------------------------------------------------------
7155    BEGIN
7156       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7157                               (g_array_event(p_event_id).array_value_num('header_index'));
7158       IF l_acc_rev_flag IS NULL THEN
7159          l_acc_rev_flag := 'N';
7160       END IF;
7161    EXCEPTION
7162       WHEN OTHERS THEN
7163          l_acc_rev_flag := 'N';
7164    END;
7165    --
7166    IF (l_acc_rev_flag = 'Y') THEN
7167 
7168        -- 4645092  ------------------------------------------------------------------------------
7169        -- To allow MPA report to determine if it should generate report process
7170        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7171        ------------------------------------------------------------------------------------------
7172 
7173        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7174        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7175    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7176    -- call ADRs
7177    -- Bug 4922099
7178    --
7179    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7180         (NVL(l_actual_upg_option, 'N') = 'O') OR
7181         (NVL(l_enc_upg_option, 'N') = 'O')
7182       )
7183    THEN
7184    NULL;
7185    --
7186    --
7187    
7188   l_ccid := AcctDerRule_33(
7189            p_application_id           => p_application_id
7190          , p_ae_header_id             => l_ae_header_id 
7191 , p_source_30 => p_source_30
7192          , x_transaction_coa_id       => l_adr_transaction_coa_id
7193          , x_accounting_coa_id        => l_adr_accounting_coa_id
7194          , x_value_type_code          => l_adr_value_type_code
7195          , p_side                     => 'NA'
7196    );
7197 
7198    xla_ae_lines_pkg.set_ccid(
7199     p_code_combination_id          => l_ccid
7200   , p_value_type_code              => l_adr_value_type_code
7201   , p_transaction_coa_id           => l_adr_transaction_coa_id
7202   , p_accounting_coa_id            => l_adr_accounting_coa_id
7203   , p_adr_code                     => 'AP_INVOICE_DIST'
7204   , p_adr_type_code                => 'S'
7205   , p_component_type               => l_component_type
7206   , p_component_code               => l_component_code
7207   , p_component_type_code          => l_component_type_code
7208   , p_component_appl_id            => l_component_appl_id
7209   , p_amb_context_code             => l_amb_context_code
7210   , p_side                         => 'NA'
7211   );
7212 
7213 
7214    --
7215    --
7216    END IF;
7217 
7218        --
7219        -- Update the line information that should be overwritten
7220        --
7224 
7221        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7222                                          p_header_num   => 1);
7223        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7225        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7226 
7227        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7228           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7229        END IF;
7230 
7231       --
7232       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7233       --
7234       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7235           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7236       ELSE
7237           ---------------------------------------------------------------------------------------------------
7238           -- 4262811a Switch Sign
7239           ---------------------------------------------------------------------------------------------------
7240           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7241           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7242                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7243           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7244                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7245           -- 5132302
7246           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7247                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7248 
7249       END IF;
7250 
7251       -- 4955764
7252       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7253       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7254 
7255 
7256       XLA_AE_LINES_PKG.ValidateCurrentLine;
7257       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7258 
7259       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7260                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7261                ,p_balance_type_code => l_balance_type_code);
7262 
7263    END IF;
7264 
7265    -----------------------------------------------------------------------------------------
7266    -- 4262811 Multiperiod Accounting
7267    -----------------------------------------------------------------------------------------
7268      -- No MPA option is assigned.
7269 
7270 
7271 END IF;
7272 END IF;
7273 --
7274 
7275 --
7276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7277    trace
7278       (p_msg      => 'END of AcctLineType_46'
7279       ,p_level    => C_LEVEL_PROCEDURE
7280       ,p_module   => l_log_module);
7281 END IF;
7282 --
7283 EXCEPTION
7284   WHEN xla_exceptions_pkg.application_exception THEN
7285       RAISE;
7286   WHEN OTHERS THEN
7287        xla_exceptions_pkg.raise_message
7288            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_46');
7289 END AcctLineType_46;
7290 --
7291 
7292 ---------------------------------------
7293 --
7294 -- PRIVATE FUNCTION
7295 --         AcctLineType_47
7296 --
7297 ---------------------------------------
7298 PROCEDURE AcctLineType_47 (
7299   p_application_id        IN NUMBER
7300  ,p_event_id              IN NUMBER
7301  ,p_calculate_acctd_flag  IN VARCHAR2
7302  ,p_calculate_g_l_flag    IN VARCHAR2
7303  ,p_actual_flag           IN OUT VARCHAR2
7304  ,p_balance_type_code     OUT VARCHAR2
7305  ,p_gain_or_loss_ref      OUT VARCHAR2
7306  
7307 --Invoice Distribution Description
7308  , p_source_1            IN VARCHAR2
7309 --Invoice Distribution Ledger Amount
7310  , p_source_21            IN NUMBER
7311 --Invoice Distribution Account
7312  , p_source_30            IN NUMBER
7313 --Invoice Distribution Type
7314  , p_source_33            IN VARCHAR2
7315  , p_source_33_meaning    IN VARCHAR2
7316 --Accounting Reversal Indicator
7317  , p_source_52            IN VARCHAR2
7318 --Distribution Link Type
7319  , p_source_54            IN VARCHAR2
7320 --Allocation to Main Distribution Identifier
7321  , p_source_56            IN NUMBER
7322 --Invoice Identifier
7323  , p_source_57            IN NUMBER
7324 --Business Flow Purchasing Application Identifier
7325  , p_source_58            IN NUMBER
7326 --Business Flow Purchase Order Distribution Type
7327  , p_source_59            IN VARCHAR2
7328 --Business Flow Purchase Order Entity Code
7329  , p_source_60            IN VARCHAR2
7330 --Business Flow Purchase Order Distribution Identifier
7331  , p_source_61            IN NUMBER
7332 --Business Flow Purchasing Document Identifier
7333  , p_source_62            IN NUMBER
7334 --Invoice Distribution Identifier
7335  , p_source_63            IN NUMBER
7336 --Payables Encumbrance Upgrade Credit Account
7337  , p_source_64            IN NUMBER
7338 --Payables Encumbrance Upgrade Credit Amount
7339  , p_source_65            IN NUMBER
7340 --Invoice Currency Code
7341  , p_source_66            IN VARCHAR2
7342 --Payables Encumbrance Upgrade Credit Base Amount
7346 --Payables Encumbrance Upgrade Debit Amount
7343  , p_source_67            IN NUMBER
7344 --Payables Encumbrance Upgrade Debit Account
7345  , p_source_68            IN NUMBER
7347  , p_source_69            IN NUMBER
7348 --Payables Encumbrance Upgrade Debit Base Amount
7349  , p_source_70            IN NUMBER
7350 --Payables Encumbrance Upgrade Option
7351  , p_source_71            IN VARCHAR2
7352 --Invoice Distribution Amount
7353  , p_source_72            IN NUMBER
7354 --Purchase Order Exchange Rate Date
7355  , p_source_73            IN DATE
7356 --Purchase Order Exchange Rate
7357  , p_source_74            IN NUMBER
7358 --Purchase Order Exchange Rate Type
7359  , p_source_75            IN VARCHAR2
7360 --Deferred Accounting End Date
7361  , p_source_76            IN DATE
7362 --Deferred Accounting Option
7363  , p_source_77            IN VARCHAR2
7364 --Deferred Accounting Start Date
7365  , p_source_78            IN DATE
7366 --Override Accounted Amount Indicator
7367  , p_source_79            IN VARCHAR2
7368  , p_source_79_meaning    IN VARCHAR2
7369 --Invoice Supplier Identifier
7370  , p_source_80            IN NUMBER
7371 --Invoice Supplier Site Identifier
7372  , p_source_81            IN NUMBER
7373 --Third Party Type
7374  , p_source_82            IN VARCHAR2
7375 --Parent Reversal Identifier
7376  , p_source_83            IN NUMBER
7377 --Invoice Distribution Tax Line Identifier
7378  , p_source_85            IN NUMBER
7379 --Invoice Distribution Tax Distribution Identifier from Tax
7380  , p_source_86            IN NUMBER
7381 --Invoice Distribution Summary Tax Line Identifier
7382  , p_source_87            IN NUMBER
7383 --Payables Upgrade Credit Encumbrance Type Identifier
7384  , p_source_88            IN NUMBER
7385 --Payables Upgrade Debit Encumbrance Type Identifier
7386  , p_source_89            IN NUMBER
7387 )
7388 IS
7389 
7390 l_component_type              VARCHAR2(80);
7391 l_component_code              VARCHAR2(30);
7392 l_component_type_code         VARCHAR2(1);
7393 l_component_appl_id           INTEGER;
7394 l_amb_context_code            VARCHAR2(30);
7395 l_entity_code                 VARCHAR2(30);
7396 l_event_class_code            VARCHAR2(30);
7397 l_ae_header_id                NUMBER;
7398 l_event_type_code             VARCHAR2(30);
7399 l_line_definition_code        VARCHAR2(30);
7400 l_line_definition_owner_code  VARCHAR2(1);
7401 --
7402 -- adr variables
7403 l_segment                     VARCHAR2(30);
7404 l_ccid                        NUMBER;
7405 l_adr_transaction_coa_id      NUMBER;
7406 l_adr_accounting_coa_id       NUMBER;
7407 l_adr_flexfield_segment_code  VARCHAR2(30);
7408 l_adr_flex_value_set_id       NUMBER;
7409 l_adr_value_type_code         VARCHAR2(30);
7410 l_adr_value_combination_id    NUMBER;
7411 l_adr_value_segment_code      VARCHAR2(30);
7412 
7413 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7414 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7415 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7416 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7417 
7418 -- 4262811 Variables ------------------------------------------------------------------------------------------
7419 l_entered_amt_idx             NUMBER;
7420 l_accted_amt_idx              NUMBER;
7421 l_acc_rev_flag                VARCHAR2(1);
7422 l_accrual_line_num            NUMBER;
7423 l_tmp_amt                     NUMBER;
7424 l_acc_rev_natural_side_code   VARCHAR2(1);
7425 
7426 l_num_entries                 NUMBER;
7427 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7428 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7429 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7430 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7431 l_recog_line_1                NUMBER;
7432 l_recog_line_2                NUMBER;
7433 
7434 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7435 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7436 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7437 
7438 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7439 
7440 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7441 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7442 
7443 ---------------------------------------------------------------------------------------------------------------
7444 
7445 
7446 --
7447 -- bulk performance
7448 --
7449 l_balance_type_code           VARCHAR2(1);
7450 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7451 l_log_module                  VARCHAR2(240);
7452 
7453 --
7454 -- Upgrade strategy
7455 --
7456 l_actual_upg_option           VARCHAR2(1);
7457 l_enc_upg_option           VARCHAR2(1);
7458 
7459 --
7460 BEGIN
7461 --
7462 IF g_log_enabled THEN
7463       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
7464 END IF;
7465 --
7466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7467 
7468       trace
7469          (p_msg      => 'BEGIN of AcctLineType_47'
7470          ,p_level    => C_LEVEL_PROCEDURE
7471          ,p_module   => l_log_module);
7472 
7473 END IF;
7474 --
7478 l_component_appl_id          :=  200;
7475 l_component_type             := 'AMB_JLT';
7476 l_component_code             := 'AP_ACCRUAL_DM';
7477 l_component_type_code        := 'S';
7479 l_amb_context_code           := 'DEFAULT';
7480 l_entity_code                := 'AP_INVOICES';
7481 l_event_class_code           := 'DEBIT MEMOS';
7482 l_event_type_code            := 'DEBIT MEMOS_ALL';
7483 l_line_definition_owner_code := 'S';
7484 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
7485 --
7486 l_balance_type_code          := 'A';
7487 l_segment                     := NULL;
7488 l_ccid                        := NULL;
7489 l_adr_transaction_coa_id      := NULL;
7490 l_adr_accounting_coa_id       := NULL;
7491 l_adr_flexfield_segment_code  := NULL;
7492 l_adr_flex_value_set_id       := NULL;
7493 l_adr_value_type_code         := NULL;
7494 l_adr_value_combination_id    := NULL;
7495 l_adr_value_segment_code      := NULL;
7496 
7497 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7498 l_bflow_class_code           := '';    -- 4219869 Business Flow
7499 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7500 l_budgetary_control_flag     := 'N';
7501 
7502 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7503 l_bflow_applied_to_amt       := NULL; -- 5132302
7504 l_entered_amt_idx            := NULL;          -- 4262811
7505 l_accted_amt_idx             := NULL;          -- 4262811
7506 l_acc_rev_flag               := NULL;          -- 4262811
7507 l_accrual_line_num           := NULL;          -- 4262811
7508 l_tmp_amt                    := NULL;          -- 4262811
7509 --
7510  
7511 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7512     l_balance_type_code <> 'B' THEN
7513 IF NVL(p_source_33,'
7514 ') =  'RETROACCRUAL' OR 
7515 NVL(p_source_33,'
7516 ') =  'ACCRUAL'
7517  THEN 
7518 
7519    --
7520    XLA_AE_LINES_PKG.SetNewLine;
7521 
7522    p_balance_type_code          := l_balance_type_code;
7523    -- set the flag so later we will know whether the gain loss line needs to be created
7524    
7525    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7526      p_actual_flag :='A';
7527    END IF;
7528 
7529    --
7530    -- bulk performance
7531    --
7532    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7533                                       p_header_num   => 0); -- 4262811
7534    --
7535    -- set accounting line options
7536    --
7537    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7538            p_natural_side_code          => 'D'
7539          , p_gain_or_loss_flag          => 'N'
7540          , p_gl_transfer_mode_code      => 'S'
7541          , p_acct_entry_type_code       => 'A'
7542          , p_switch_side_flag           => 'Y'
7543          , p_merge_duplicate_code       => 'A'
7544          );
7545    --
7546    l_acc_rev_natural_side_code := 'C';  -- 4262811
7547    -- 
7548    --
7549    -- set accounting line type info
7550    --
7551    xla_ae_lines_pkg.SetAcctLineType
7552       (p_component_type             => l_component_type
7553       ,p_event_type_code            => l_event_type_code
7554       ,p_line_definition_owner_code => l_line_definition_owner_code
7555       ,p_line_definition_code       => l_line_definition_code
7556       ,p_accounting_line_code       => l_component_code
7557       ,p_accounting_line_type_code  => l_component_type_code
7558       ,p_accounting_line_appl_id    => l_component_appl_id
7559       ,p_amb_context_code           => l_amb_context_code
7560       ,p_entity_code                => l_entity_code
7561       ,p_event_class_code           => l_event_class_code);
7562    --
7563    -- set accounting class
7564    --
7565    xla_ae_lines_pkg.SetAcctClass(
7566            p_accounting_class_code  => 'ACCRUAL'
7567          , p_ae_header_id           => l_ae_header_id
7568          );
7569 
7570    --
7571    -- set rounding class
7572    --
7573    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7574                       'ACCRUAL';
7575 
7576    --
7577    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7578    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7579    --
7580    -- bulk performance
7581    --
7582    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7583 
7584    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7585       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7586 
7587    -- 4955764
7588    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7589       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7590 
7591    -- 4458381 Public Sector Enh
7592    
7593    --
7594    -- set accounting attributes for the line type
7595    --
7596    l_entered_amt_idx := 23;
7597    l_accted_amt_idx  := 28;
7598    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7599    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7600    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
7601    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7602    l_rec_acct_attrs.array_num_value(2)  := 
7606  , p_source_application_id =>  602
7603 xla_ae_sources_pkg.GetSystemSourceNum(
7604    p_source_code           => 'XLA_EVENT_APPL_ID'
7605  , p_source_type_code      => 'Y'
7607 );
7608    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7609    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
7610    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7611    l_rec_acct_attrs.array_char_value(4)  := 
7612 xla_ae_sources_pkg.GetSystemSourceChar(
7613    p_source_code           => 'XLA_ENTITY_CODE'
7614  , p_source_type_code      => 'Y'
7615  , p_source_application_id =>  602
7616 );
7617    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7618    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
7619    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7620    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
7621    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7622    l_rec_acct_attrs.array_num_value(7)  := p_source_58;
7623    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7624    l_rec_acct_attrs.array_char_value(8)  := p_source_59;
7625    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7626    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
7627    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7628    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_61);
7629    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7630    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_62);
7631    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7632    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
7633    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7634    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
7635    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7636    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
7637    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7638    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
7639    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7640    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
7641    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7642    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
7643    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7644    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
7645    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7646    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
7647    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7648    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
7649    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7650    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
7651    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7652    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
7653    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7654    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
7655    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7656    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
7657    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7658    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
7659    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7660    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
7661    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7662    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
7663    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7664    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
7665    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7666    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
7667    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7668    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
7669    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7670    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
7671    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7672    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
7673    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7674    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
7675    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7676    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
7677    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7678    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
7679    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7680    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
7681    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7682    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
7683    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
7684    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
7685    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
7686    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
7687    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
7688    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
7689    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
7690    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
7694    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7691    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
7692    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
7693 
7695    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7696 
7697    ---------------------------------------------------------------------------------------------------------------
7698    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7699    ---------------------------------------------------------------------------------------------------------------
7700    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7701 
7702    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7703    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7704 
7705    IF xla_accounting_cache_pkg.GetValueChar
7706          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7707          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7708    AND l_bflow_method_code = 'PRIOR_ENTRY'
7709 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7710    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7711          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7712        )
7713    THEN
7714          xla_ae_lines_pkg.BflowUpgEntry
7715            (p_business_method_code    => l_bflow_method_code
7716            ,p_business_class_code     => l_bflow_class_code
7717            ,p_balance_type            => l_balance_type_code);
7718    ELSE
7719       NULL;
7720 -- No business flow processing for business flow method of NONE.
7721    END IF;
7722 
7723    --
7724    -- call analytical criteria
7725    --
7726    
7727    --
7728    -- call description
7729    --
7730    
7731 xla_ae_lines_pkg.SetLineDescription(
7732    p_ae_header_id => l_ae_header_id
7733   ,p_description  => Description_1 (
7734      p_application_id         => p_application_id
7735    , p_ae_header_id           => l_ae_header_id 
7736 , p_source_1 => p_source_1
7737    )
7738 );
7739 
7740 
7741    --
7742    -- call ADRs
7743    -- Bug 4922099
7744    --
7745    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7746         (NVL(l_actual_upg_option, 'N') = 'O') OR
7747         (NVL(l_enc_upg_option, 'N') = 'O')
7748       )
7749    THEN
7750    NULL;
7751    --
7752    --
7753    
7754   l_ccid := AcctDerRule_33(
7755            p_application_id           => p_application_id
7756          , p_ae_header_id             => l_ae_header_id 
7757 , p_source_30 => p_source_30
7758          , x_transaction_coa_id       => l_adr_transaction_coa_id
7759          , x_accounting_coa_id        => l_adr_accounting_coa_id
7760          , x_value_type_code          => l_adr_value_type_code
7761          , p_side                     => 'NA'
7762    );
7763 
7764    xla_ae_lines_pkg.set_ccid(
7765     p_code_combination_id          => l_ccid
7766   , p_value_type_code              => l_adr_value_type_code
7767   , p_transaction_coa_id           => l_adr_transaction_coa_id
7768   , p_accounting_coa_id            => l_adr_accounting_coa_id
7769   , p_adr_code                     => 'AP_INVOICE_DIST'
7770   , p_adr_type_code                => 'S'
7771   , p_component_type               => l_component_type
7772   , p_component_code               => l_component_code
7773   , p_component_type_code          => l_component_type_code
7774   , p_component_appl_id            => l_component_appl_id
7775   , p_amb_context_code             => l_amb_context_code
7776   , p_side                         => 'NA'
7777   );
7778 
7779 
7780    --
7781    --
7782    END IF;
7783    --
7784    -- Bug 4922099
7785    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7786           (NVL(l_enc_upg_option, 'N') = 'O')
7787         ) AND
7788         (l_bflow_method_code = 'PRIOR_ENTRY')
7789       )
7790    THEN
7791       IF
7792       --
7793       1 = 2
7794       --
7795       THEN
7796       xla_accounting_err_pkg.build_message
7797                                     (p_appli_s_name            => 'XLA'
7798                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7799                                     ,p_token_1                 => 'LINE_NUMBER'
7800                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7801                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7802                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7803                                                                              l_component_type
7804                                                                             ,l_component_code
7805                                                                             ,l_component_type_code
7806                                                                             ,l_component_appl_id
7807                                                                             ,l_amb_context_code
7808                                                                             ,l_entity_code
7809                                                                             ,l_event_class_code
7810                                                                            )
7814                                                                           ,p_lookup_code    => l_component_type_code
7811                                     ,p_token_3                 => 'OWNER'
7812                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7813                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7815                                                                          )
7816                                     ,p_token_4                 => 'PRODUCT_NAME'
7817                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7818                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7819                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7820                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7821                                     ,p_ae_header_id            =>  NULL
7822                                        );
7823 
7824         IF (C_LEVEL_ERROR>= g_log_level) THEN
7825                  trace
7826                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7827                       ,p_level    => C_LEVEL_ERROR
7828                       ,p_module   => l_log_module);
7829         END IF;
7830       END IF;
7831    END IF;
7832    --
7833    --
7834    ------------------------------------------------------------------------------------------------
7835    -- 4219869 Business Flow
7836    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7837    -- Prior Entry.  Currently, the following code is always generated.
7838    ------------------------------------------------------------------------------------------------
7839    XLA_AE_LINES_PKG.ValidateCurrentLine;
7840 
7841    ------------------------------------------------------------------------------------
7842    -- 4219869 Business Flow
7843    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7844    ------------------------------------------------------------------------------------
7845    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7846 
7847    ----------------------------------------------------------------------------------
7848    -- 4219869 Business Flow
7849    -- Update journal entry status -- Need to generate this within IF <condition>
7850    ----------------------------------------------------------------------------------
7851    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7852          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7853          ,p_balance_type_code => l_balance_type_code
7854          );
7855 
7856    -------------------------------------------------------------------------------------------
7857    -- 4262811 - Generate the Accrual Reversal lines
7858    -------------------------------------------------------------------------------------------
7859    BEGIN
7860       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7861                               (g_array_event(p_event_id).array_value_num('header_index'));
7862       IF l_acc_rev_flag IS NULL THEN
7863          l_acc_rev_flag := 'N';
7864       END IF;
7865    EXCEPTION
7866       WHEN OTHERS THEN
7867          l_acc_rev_flag := 'N';
7868    END;
7869    --
7870    IF (l_acc_rev_flag = 'Y') THEN
7871 
7872        -- 4645092  ------------------------------------------------------------------------------
7873        -- To allow MPA report to determine if it should generate report process
7874        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7875        ------------------------------------------------------------------------------------------
7876 
7877        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7878        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7879    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7880    -- call ADRs
7881    -- Bug 4922099
7882    --
7883    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7884         (NVL(l_actual_upg_option, 'N') = 'O') OR
7885         (NVL(l_enc_upg_option, 'N') = 'O')
7886       )
7887    THEN
7888    NULL;
7889    --
7890    --
7891    
7892   l_ccid := AcctDerRule_33(
7893            p_application_id           => p_application_id
7894          , p_ae_header_id             => l_ae_header_id 
7895 , p_source_30 => p_source_30
7896          , x_transaction_coa_id       => l_adr_transaction_coa_id
7897          , x_accounting_coa_id        => l_adr_accounting_coa_id
7898          , x_value_type_code          => l_adr_value_type_code
7899          , p_side                     => 'NA'
7900    );
7901 
7902    xla_ae_lines_pkg.set_ccid(
7903     p_code_combination_id          => l_ccid
7904   , p_value_type_code              => l_adr_value_type_code
7905   , p_transaction_coa_id           => l_adr_transaction_coa_id
7906   , p_accounting_coa_id            => l_adr_accounting_coa_id
7907   , p_adr_code                     => 'AP_INVOICE_DIST'
7908   , p_adr_type_code                => 'S'
7909   , p_component_type               => l_component_type
7910   , p_component_code               => l_component_code
7911   , p_component_type_code          => l_component_type_code
7912   , p_component_appl_id            => l_component_appl_id
7913   , p_amb_context_code             => l_amb_context_code
7917 
7914   , p_side                         => 'NA'
7915   );
7916 
7918    --
7919    --
7920    END IF;
7921 
7922        --
7923        -- Update the line information that should be overwritten
7924        --
7925        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7926                                          p_header_num   => 1);
7927        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7928 
7929        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7930 
7931        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7932           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7933        END IF;
7934 
7935       --
7936       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7937       --
7938       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7939           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7940       ELSE
7941           ---------------------------------------------------------------------------------------------------
7942           -- 4262811a Switch Sign
7943           ---------------------------------------------------------------------------------------------------
7944           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7945           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7946                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7947           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7948                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7949           -- 5132302
7950           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7951                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7952 
7953       END IF;
7954 
7955       -- 4955764
7956       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7957       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7958 
7959 
7960       XLA_AE_LINES_PKG.ValidateCurrentLine;
7961       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7962 
7963       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7964                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7965                ,p_balance_type_code => l_balance_type_code);
7966 
7967    END IF;
7968 
7969    -----------------------------------------------------------------------------------------
7970    -- 4262811 Multiperiod Accounting
7971    -----------------------------------------------------------------------------------------
7972      -- No MPA option is assigned.
7973 
7974 
7975 END IF;
7976 END IF;
7977 --
7978 
7979 --
7980 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7981    trace
7982       (p_msg      => 'END of AcctLineType_47'
7983       ,p_level    => C_LEVEL_PROCEDURE
7984       ,p_module   => l_log_module);
7985 END IF;
7986 --
7987 EXCEPTION
7988   WHEN xla_exceptions_pkg.application_exception THEN
7989       RAISE;
7990   WHEN OTHERS THEN
7991        xla_exceptions_pkg.raise_message
7992            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_47');
7993 END AcctLineType_47;
7994 --
7995 
7996 ---------------------------------------
7997 --
7998 -- PRIVATE FUNCTION
7999 --         AcctLineType_48
8000 --
8001 ---------------------------------------
8002 PROCEDURE AcctLineType_48 (
8003   p_application_id        IN NUMBER
8004  ,p_event_id              IN NUMBER
8005  ,p_calculate_acctd_flag  IN VARCHAR2
8006  ,p_calculate_g_l_flag    IN VARCHAR2
8007  ,p_actual_flag           IN OUT VARCHAR2
8008  ,p_balance_type_code     OUT VARCHAR2
8009  ,p_gain_or_loss_ref      OUT VARCHAR2
8010  
8011 --Invoice Distribution Description
8012  , p_source_1            IN VARCHAR2
8013 --Invoice Distribution Ledger Amount
8014  , p_source_21            IN NUMBER
8015 --Invoice Distribution Account
8016  , p_source_30            IN NUMBER
8017 --Invoice Distribution Type
8018  , p_source_33            IN VARCHAR2
8019  , p_source_33_meaning    IN VARCHAR2
8020 --Accounting Reversal Indicator
8021  , p_source_52            IN VARCHAR2
8022 --Distribution Link Type
8023  , p_source_54            IN VARCHAR2
8024 --Allocation to Main Distribution Identifier
8025  , p_source_56            IN NUMBER
8026 --Invoice Identifier
8027  , p_source_57            IN NUMBER
8028 --Business Flow Purchasing Application Identifier
8029  , p_source_58            IN NUMBER
8030 --Business Flow Purchase Order Distribution Type
8031  , p_source_59            IN VARCHAR2
8032 --Business Flow Purchase Order Entity Code
8033  , p_source_60            IN VARCHAR2
8034 --Business Flow Purchase Order Distribution Identifier
8035  , p_source_61            IN NUMBER
8036 --Business Flow Purchasing Document Identifier
8037  , p_source_62            IN NUMBER
8038 --Invoice Distribution Identifier
8042 --Payables Encumbrance Upgrade Credit Amount
8039  , p_source_63            IN NUMBER
8040 --Payables Encumbrance Upgrade Credit Account
8041  , p_source_64            IN NUMBER
8043  , p_source_65            IN NUMBER
8044 --Invoice Currency Code
8045  , p_source_66            IN VARCHAR2
8046 --Payables Encumbrance Upgrade Credit Base Amount
8047  , p_source_67            IN NUMBER
8048 --Payables Encumbrance Upgrade Debit Account
8049  , p_source_68            IN NUMBER
8050 --Payables Encumbrance Upgrade Debit Amount
8051  , p_source_69            IN NUMBER
8052 --Payables Encumbrance Upgrade Debit Base Amount
8053  , p_source_70            IN NUMBER
8054 --Payables Encumbrance Upgrade Option
8055  , p_source_71            IN VARCHAR2
8056 --Invoice Distribution Amount
8057  , p_source_72            IN NUMBER
8058 --Purchase Order Exchange Rate Date
8059  , p_source_73            IN DATE
8060 --Purchase Order Exchange Rate
8061  , p_source_74            IN NUMBER
8062 --Purchase Order Exchange Rate Type
8063  , p_source_75            IN VARCHAR2
8064 --Deferred Accounting End Date
8065  , p_source_76            IN DATE
8066 --Deferred Accounting Option
8067  , p_source_77            IN VARCHAR2
8068 --Deferred Accounting Start Date
8069  , p_source_78            IN DATE
8070 --Override Accounted Amount Indicator
8071  , p_source_79            IN VARCHAR2
8072  , p_source_79_meaning    IN VARCHAR2
8073 --Invoice Supplier Identifier
8074  , p_source_80            IN NUMBER
8075 --Invoice Supplier Site Identifier
8076  , p_source_81            IN NUMBER
8077 --Third Party Type
8078  , p_source_82            IN VARCHAR2
8079 --Parent Reversal Identifier
8080  , p_source_83            IN NUMBER
8081 --Invoice Distribution Statistical Amount
8082  , p_source_84            IN NUMBER
8083 --Invoice Distribution Tax Line Identifier
8084  , p_source_85            IN NUMBER
8085 --Invoice Distribution Tax Distribution Identifier from Tax
8086  , p_source_86            IN NUMBER
8087 --Invoice Distribution Summary Tax Line Identifier
8088  , p_source_87            IN NUMBER
8089 --Payables Upgrade Credit Encumbrance Type Identifier
8090  , p_source_88            IN NUMBER
8091 --Payables Upgrade Debit Encumbrance Type Identifier
8092  , p_source_89            IN NUMBER
8093 )
8094 IS
8095 
8096 l_component_type              VARCHAR2(80);
8097 l_component_code              VARCHAR2(30);
8098 l_component_type_code         VARCHAR2(1);
8099 l_component_appl_id           INTEGER;
8100 l_amb_context_code            VARCHAR2(30);
8101 l_entity_code                 VARCHAR2(30);
8102 l_event_class_code            VARCHAR2(30);
8103 l_ae_header_id                NUMBER;
8104 l_event_type_code             VARCHAR2(30);
8105 l_line_definition_code        VARCHAR2(30);
8106 l_line_definition_owner_code  VARCHAR2(1);
8107 --
8108 -- adr variables
8109 l_segment                     VARCHAR2(30);
8110 l_ccid                        NUMBER;
8111 l_adr_transaction_coa_id      NUMBER;
8112 l_adr_accounting_coa_id       NUMBER;
8113 l_adr_flexfield_segment_code  VARCHAR2(30);
8114 l_adr_flex_value_set_id       NUMBER;
8115 l_adr_value_type_code         VARCHAR2(30);
8116 l_adr_value_combination_id    NUMBER;
8117 l_adr_value_segment_code      VARCHAR2(30);
8118 
8119 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8120 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8121 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8122 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8123 
8124 -- 4262811 Variables ------------------------------------------------------------------------------------------
8125 l_entered_amt_idx             NUMBER;
8126 l_accted_amt_idx              NUMBER;
8127 l_acc_rev_flag                VARCHAR2(1);
8128 l_accrual_line_num            NUMBER;
8129 l_tmp_amt                     NUMBER;
8130 l_acc_rev_natural_side_code   VARCHAR2(1);
8131 
8132 l_num_entries                 NUMBER;
8133 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8134 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8135 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8136 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8137 l_recog_line_1                NUMBER;
8138 l_recog_line_2                NUMBER;
8139 
8140 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8141 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8142 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8143 
8144 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8145 
8146 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8147 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8148 
8149 ---------------------------------------------------------------------------------------------------------------
8150 
8151 
8152 --
8153 -- bulk performance
8154 --
8155 l_balance_type_code           VARCHAR2(1);
8156 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8157 l_log_module                  VARCHAR2(240);
8158 
8159 --
8160 -- Upgrade strategy
8161 --
8162 l_actual_upg_option           VARCHAR2(1);
8163 l_enc_upg_option           VARCHAR2(1);
8164 
8165 --
8166 BEGIN
8167 --
8168 IF g_log_enabled THEN
8172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8169       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
8170 END IF;
8171 --
8173 
8174       trace
8175          (p_msg      => 'BEGIN of AcctLineType_48'
8176          ,p_level    => C_LEVEL_PROCEDURE
8177          ,p_module   => l_log_module);
8178 
8179 END IF;
8180 --
8181 l_component_type             := 'AMB_JLT';
8182 l_component_code             := 'AP_ACCRUAL_INV';
8183 l_component_type_code        := 'S';
8184 l_component_appl_id          :=  200;
8185 l_amb_context_code           := 'DEFAULT';
8186 l_entity_code                := 'AP_INVOICES';
8187 l_event_class_code           := 'INVOICES';
8188 l_event_type_code            := 'INVOICES_ALL';
8189 l_line_definition_owner_code := 'S';
8190 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
8191 --
8192 l_balance_type_code          := 'A';
8193 l_segment                     := NULL;
8194 l_ccid                        := NULL;
8195 l_adr_transaction_coa_id      := NULL;
8196 l_adr_accounting_coa_id       := NULL;
8197 l_adr_flexfield_segment_code  := NULL;
8198 l_adr_flex_value_set_id       := NULL;
8199 l_adr_value_type_code         := NULL;
8200 l_adr_value_combination_id    := NULL;
8201 l_adr_value_segment_code      := NULL;
8202 
8203 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8204 l_bflow_class_code           := '';    -- 4219869 Business Flow
8205 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8206 l_budgetary_control_flag     := 'N';
8207 
8208 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8209 l_bflow_applied_to_amt       := NULL; -- 5132302
8210 l_entered_amt_idx            := NULL;          -- 4262811
8211 l_accted_amt_idx             := NULL;          -- 4262811
8212 l_acc_rev_flag               := NULL;          -- 4262811
8213 l_accrual_line_num           := NULL;          -- 4262811
8214 l_tmp_amt                    := NULL;          -- 4262811
8215 --
8216  
8217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8218     l_balance_type_code <> 'B' THEN
8219 IF NVL(p_source_33,'
8220 ') =  'RETROACCRUAL' OR 
8221 NVL(p_source_33,'
8222 ') =  'ACCRUAL'
8223  THEN 
8224 
8225    --
8226    XLA_AE_LINES_PKG.SetNewLine;
8227 
8228    p_balance_type_code          := l_balance_type_code;
8229    -- set the flag so later we will know whether the gain loss line needs to be created
8230    
8231    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8232      p_actual_flag :='A';
8233    END IF;
8234 
8235    --
8236    -- bulk performance
8237    --
8238    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8239                                       p_header_num   => 0); -- 4262811
8240    --
8241    -- set accounting line options
8242    --
8243    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8244            p_natural_side_code          => 'D'
8245          , p_gain_or_loss_flag          => 'N'
8246          , p_gl_transfer_mode_code      => 'S'
8247          , p_acct_entry_type_code       => 'A'
8248          , p_switch_side_flag           => 'Y'
8249          , p_merge_duplicate_code       => 'A'
8250          );
8251    --
8252    l_acc_rev_natural_side_code := 'C';  -- 4262811
8253    -- 
8254    --
8255    -- set accounting line type info
8256    --
8257    xla_ae_lines_pkg.SetAcctLineType
8258       (p_component_type             => l_component_type
8259       ,p_event_type_code            => l_event_type_code
8260       ,p_line_definition_owner_code => l_line_definition_owner_code
8261       ,p_line_definition_code       => l_line_definition_code
8262       ,p_accounting_line_code       => l_component_code
8263       ,p_accounting_line_type_code  => l_component_type_code
8264       ,p_accounting_line_appl_id    => l_component_appl_id
8265       ,p_amb_context_code           => l_amb_context_code
8266       ,p_entity_code                => l_entity_code
8267       ,p_event_class_code           => l_event_class_code);
8268    --
8269    -- set accounting class
8270    --
8271    xla_ae_lines_pkg.SetAcctClass(
8272            p_accounting_class_code  => 'ACCRUAL'
8273          , p_ae_header_id           => l_ae_header_id
8274          );
8275 
8276    --
8277    -- set rounding class
8278    --
8279    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8280                       'ACCRUAL';
8281 
8282    --
8283    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8284    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8285    --
8286    -- bulk performance
8287    --
8288    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8289 
8290    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8291       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8292 
8293    -- 4955764
8294    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8295       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8296 
8297    -- 4458381 Public Sector Enh
8298    
8299    --
8303    l_accted_amt_idx  := 29;
8300    -- set accounting attributes for the line type
8301    --
8302    l_entered_amt_idx := 24;
8304    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
8305    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8306    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
8307    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8308    l_rec_acct_attrs.array_num_value(2)  := 
8309 xla_ae_sources_pkg.GetSystemSourceNum(
8310    p_source_code           => 'XLA_EVENT_APPL_ID'
8311  , p_source_type_code      => 'Y'
8312  , p_source_application_id =>  602
8313 );
8314    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8315    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
8316    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8317    l_rec_acct_attrs.array_char_value(4)  := 
8318 xla_ae_sources_pkg.GetSystemSourceChar(
8319    p_source_code           => 'XLA_ENTITY_CODE'
8320  , p_source_type_code      => 'Y'
8321  , p_source_application_id =>  602
8322 );
8323    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8324    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
8325    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8326    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
8327    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
8328    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
8329    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
8330    l_rec_acct_attrs.array_num_value(8)  := p_source_58;
8331    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8332    l_rec_acct_attrs.array_char_value(9)  := p_source_59;
8333    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
8334    l_rec_acct_attrs.array_char_value(10)  := p_source_60;
8335    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
8336    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_61);
8337    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8338    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_62);
8339    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
8340    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
8341    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
8342    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
8343    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8344    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
8345    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8346    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
8347    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8348    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
8349    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8350    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
8351    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
8352    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
8353    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
8354    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
8355    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
8356    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
8357    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
8358    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
8359    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
8360    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
8361    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
8362    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
8363    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
8364    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
8365    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
8366    l_rec_acct_attrs.array_date_value(26)  := p_source_73;
8367    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
8368    l_rec_acct_attrs.array_num_value(27)  := p_source_74;
8369    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
8370    l_rec_acct_attrs.array_char_value(28)  := p_source_75;
8371    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
8372    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
8373    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
8374    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
8375    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
8376    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
8377    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
8378    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
8379    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
8380    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
8381    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
8382    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
8383    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
8384    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
8385    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
8386    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
8387    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
8388    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
8389    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
8393    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8390    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
8391    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
8392    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
8394    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
8395    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8396    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
8397    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8398    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
8399    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8400    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
8401    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8402    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
8403 
8404    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8405    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8406 
8407    ---------------------------------------------------------------------------------------------------------------
8408    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8409    ---------------------------------------------------------------------------------------------------------------
8410    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8411 
8412    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8413    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8414 
8415    IF xla_accounting_cache_pkg.GetValueChar
8416          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8417          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8418    AND l_bflow_method_code = 'PRIOR_ENTRY'
8419 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8420    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8421          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8422        )
8423    THEN
8424          xla_ae_lines_pkg.BflowUpgEntry
8425            (p_business_method_code    => l_bflow_method_code
8426            ,p_business_class_code     => l_bflow_class_code
8427            ,p_balance_type            => l_balance_type_code);
8428    ELSE
8429       NULL;
8430 -- No business flow processing for business flow method of NONE.
8431    END IF;
8432 
8433    --
8434    -- call analytical criteria
8435    --
8436    
8437    --
8438    -- call description
8439    --
8440    
8441 xla_ae_lines_pkg.SetLineDescription(
8442    p_ae_header_id => l_ae_header_id
8443   ,p_description  => Description_1 (
8444      p_application_id         => p_application_id
8445    , p_ae_header_id           => l_ae_header_id 
8446 , p_source_1 => p_source_1
8447    )
8448 );
8449 
8450 
8451    --
8452    -- call ADRs
8453    -- Bug 4922099
8454    --
8455    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8456         (NVL(l_actual_upg_option, 'N') = 'O') OR
8457         (NVL(l_enc_upg_option, 'N') = 'O')
8458       )
8459    THEN
8460    NULL;
8461    --
8462    --
8463    
8464   l_ccid := AcctDerRule_33(
8465            p_application_id           => p_application_id
8466          , p_ae_header_id             => l_ae_header_id 
8467 , p_source_30 => p_source_30
8468          , x_transaction_coa_id       => l_adr_transaction_coa_id
8469          , x_accounting_coa_id        => l_adr_accounting_coa_id
8470          , x_value_type_code          => l_adr_value_type_code
8471          , p_side                     => 'NA'
8472    );
8473 
8474    xla_ae_lines_pkg.set_ccid(
8475     p_code_combination_id          => l_ccid
8476   , p_value_type_code              => l_adr_value_type_code
8477   , p_transaction_coa_id           => l_adr_transaction_coa_id
8478   , p_accounting_coa_id            => l_adr_accounting_coa_id
8479   , p_adr_code                     => 'AP_INVOICE_DIST'
8480   , p_adr_type_code                => 'S'
8481   , p_component_type               => l_component_type
8482   , p_component_code               => l_component_code
8483   , p_component_type_code          => l_component_type_code
8484   , p_component_appl_id            => l_component_appl_id
8485   , p_amb_context_code             => l_amb_context_code
8486   , p_side                         => 'NA'
8487   );
8488 
8489 
8490    --
8491    --
8492    END IF;
8493    --
8494    -- Bug 4922099
8495    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8496           (NVL(l_enc_upg_option, 'N') = 'O')
8497         ) AND
8498         (l_bflow_method_code = 'PRIOR_ENTRY')
8499       )
8500    THEN
8501       IF
8502       --
8503       1 = 2
8504       --
8505       THEN
8506       xla_accounting_err_pkg.build_message
8507                                     (p_appli_s_name            => 'XLA'
8508                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8509                                     ,p_token_1                 => 'LINE_NUMBER'
8510                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8511                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8515                                                                             ,l_component_type_code
8512                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8513                                                                              l_component_type
8514                                                                             ,l_component_code
8516                                                                             ,l_component_appl_id
8517                                                                             ,l_amb_context_code
8518                                                                             ,l_entity_code
8519                                                                             ,l_event_class_code
8520                                                                            )
8521                                     ,p_token_3                 => 'OWNER'
8522                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8523                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8524                                                                           ,p_lookup_code    => l_component_type_code
8525                                                                          )
8526                                     ,p_token_4                 => 'PRODUCT_NAME'
8527                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8528                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8529                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8530                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8531                                     ,p_ae_header_id            =>  NULL
8532                                        );
8533 
8534         IF (C_LEVEL_ERROR>= g_log_level) THEN
8535                  trace
8536                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8537                       ,p_level    => C_LEVEL_ERROR
8538                       ,p_module   => l_log_module);
8539         END IF;
8540       END IF;
8541    END IF;
8542    --
8543    --
8544    ------------------------------------------------------------------------------------------------
8545    -- 4219869 Business Flow
8546    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8547    -- Prior Entry.  Currently, the following code is always generated.
8548    ------------------------------------------------------------------------------------------------
8549    XLA_AE_LINES_PKG.ValidateCurrentLine;
8550 
8551    ------------------------------------------------------------------------------------
8552    -- 4219869 Business Flow
8553    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8554    ------------------------------------------------------------------------------------
8555    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8556 
8557    ----------------------------------------------------------------------------------
8558    -- 4219869 Business Flow
8559    -- Update journal entry status -- Need to generate this within IF <condition>
8560    ----------------------------------------------------------------------------------
8561    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8562          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8563          ,p_balance_type_code => l_balance_type_code
8564          );
8565 
8566    -------------------------------------------------------------------------------------------
8567    -- 4262811 - Generate the Accrual Reversal lines
8568    -------------------------------------------------------------------------------------------
8569    BEGIN
8570       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8571                               (g_array_event(p_event_id).array_value_num('header_index'));
8572       IF l_acc_rev_flag IS NULL THEN
8573          l_acc_rev_flag := 'N';
8574       END IF;
8575    EXCEPTION
8576       WHEN OTHERS THEN
8577          l_acc_rev_flag := 'N';
8578    END;
8579    --
8580    IF (l_acc_rev_flag = 'Y') THEN
8581 
8582        -- 4645092  ------------------------------------------------------------------------------
8583        -- To allow MPA report to determine if it should generate report process
8584        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8585        ------------------------------------------------------------------------------------------
8586 
8587        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8588        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8589    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8590    -- call ADRs
8591    -- Bug 4922099
8592    --
8593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8594         (NVL(l_actual_upg_option, 'N') = 'O') OR
8595         (NVL(l_enc_upg_option, 'N') = 'O')
8596       )
8597    THEN
8598    NULL;
8599    --
8600    --
8601    
8602   l_ccid := AcctDerRule_33(
8603            p_application_id           => p_application_id
8604          , p_ae_header_id             => l_ae_header_id 
8605 , p_source_30 => p_source_30
8606          , x_transaction_coa_id       => l_adr_transaction_coa_id
8607          , x_accounting_coa_id        => l_adr_accounting_coa_id
8608          , x_value_type_code          => l_adr_value_type_code
8609          , p_side                     => 'NA'
8610    );
8611 
8612    xla_ae_lines_pkg.set_ccid(
8613     p_code_combination_id          => l_ccid
8614   , p_value_type_code              => l_adr_value_type_code
8618   , p_adr_type_code                => 'S'
8615   , p_transaction_coa_id           => l_adr_transaction_coa_id
8616   , p_accounting_coa_id            => l_adr_accounting_coa_id
8617   , p_adr_code                     => 'AP_INVOICE_DIST'
8619   , p_component_type               => l_component_type
8620   , p_component_code               => l_component_code
8621   , p_component_type_code          => l_component_type_code
8622   , p_component_appl_id            => l_component_appl_id
8623   , p_amb_context_code             => l_amb_context_code
8624   , p_side                         => 'NA'
8625   );
8626 
8627 
8628    --
8629    --
8630    END IF;
8631 
8632        --
8633        -- Update the line information that should be overwritten
8634        --
8635        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8636                                          p_header_num   => 1);
8637        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8638 
8639        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8640 
8641        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8642           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8643        END IF;
8644 
8645       --
8646       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8647       --
8648       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8649           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8650       ELSE
8651           ---------------------------------------------------------------------------------------------------
8652           -- 4262811a Switch Sign
8653           ---------------------------------------------------------------------------------------------------
8654           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8655           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8656                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8657           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8658                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8659           -- 5132302
8660           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8661                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8662 
8663       END IF;
8664 
8665       -- 4955764
8666       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8667       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8668 
8669 
8670       XLA_AE_LINES_PKG.ValidateCurrentLine;
8671       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8672 
8673       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8674                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8675                ,p_balance_type_code => l_balance_type_code);
8676 
8677    END IF;
8678 
8679    -----------------------------------------------------------------------------------------
8680    -- 4262811 Multiperiod Accounting
8681    -----------------------------------------------------------------------------------------
8682      -- No MPA option is assigned.
8683 
8684 
8685 END IF;
8686 END IF;
8687 --
8688 
8689 --
8690 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8691    trace
8692       (p_msg      => 'END of AcctLineType_48'
8693       ,p_level    => C_LEVEL_PROCEDURE
8694       ,p_module   => l_log_module);
8695 END IF;
8696 --
8697 EXCEPTION
8698   WHEN xla_exceptions_pkg.application_exception THEN
8699       RAISE;
8700   WHEN OTHERS THEN
8701        xla_exceptions_pkg.raise_message
8702            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_48');
8703 END AcctLineType_48;
8704 --
8705 
8706 ---------------------------------------
8707 --
8708 -- PRIVATE FUNCTION
8709 --         AcctLineType_49
8710 --
8711 ---------------------------------------
8712 PROCEDURE AcctLineType_49 (
8713   p_application_id        IN NUMBER
8714  ,p_event_id              IN NUMBER
8715  ,p_calculate_acctd_flag  IN VARCHAR2
8716  ,p_calculate_g_l_flag    IN VARCHAR2
8717  ,p_actual_flag           IN OUT VARCHAR2
8718  ,p_balance_type_code     OUT VARCHAR2
8719  ,p_gain_or_loss_ref      OUT VARCHAR2
8720  
8721 --Invoice Distribution Description
8722  , p_source_1            IN VARCHAR2
8723 --Invoice Distribution Ledger Amount
8724  , p_source_21            IN NUMBER
8725 --Invoice Distribution Account
8726  , p_source_30            IN NUMBER
8727 --Invoice Distribution Type
8728  , p_source_33            IN VARCHAR2
8729  , p_source_33_meaning    IN VARCHAR2
8730 --Accounting Reversal Indicator
8731  , p_source_52            IN VARCHAR2
8732 --Distribution Link Type
8733  , p_source_54            IN VARCHAR2
8734 --Allocation to Main Distribution Identifier
8735  , p_source_56            IN NUMBER
8736 --Invoice Identifier
8737  , p_source_57            IN NUMBER
8738 --Invoice Distribution Identifier
8739  , p_source_63            IN NUMBER
8743  , p_source_65            IN NUMBER
8740 --Payables Encumbrance Upgrade Credit Account
8741  , p_source_64            IN NUMBER
8742 --Payables Encumbrance Upgrade Credit Amount
8744 --Invoice Currency Code
8745  , p_source_66            IN VARCHAR2
8746 --Payables Encumbrance Upgrade Credit Base Amount
8747  , p_source_67            IN NUMBER
8748 --Payables Encumbrance Upgrade Debit Account
8749  , p_source_68            IN NUMBER
8750 --Payables Encumbrance Upgrade Debit Amount
8751  , p_source_69            IN NUMBER
8752 --Payables Encumbrance Upgrade Debit Base Amount
8753  , p_source_70            IN NUMBER
8754 --Payables Encumbrance Upgrade Option
8755  , p_source_71            IN VARCHAR2
8756 --Invoice Distribution Amount
8757  , p_source_72            IN NUMBER
8758 --Purchase Order Exchange Rate Date
8759  , p_source_73            IN DATE
8760 --Purchase Order Exchange Rate
8761  , p_source_74            IN NUMBER
8762 --Purchase Order Exchange Rate Type
8763  , p_source_75            IN VARCHAR2
8764 --Deferred Accounting End Date
8765  , p_source_76            IN DATE
8766 --Deferred Accounting Option
8767  , p_source_77            IN VARCHAR2
8768 --Deferred Accounting Start Date
8769  , p_source_78            IN DATE
8770 --Override Accounted Amount Indicator
8771  , p_source_79            IN VARCHAR2
8772  , p_source_79_meaning    IN VARCHAR2
8773 --Invoice Supplier Identifier
8774  , p_source_80            IN NUMBER
8775 --Invoice Supplier Site Identifier
8776  , p_source_81            IN NUMBER
8777 --Third Party Type
8778  , p_source_82            IN VARCHAR2
8779 --Parent Reversal Identifier
8780  , p_source_83            IN NUMBER
8781 --Invoice Distribution Statistical Amount
8782  , p_source_84            IN NUMBER
8783 --Invoice Distribution Tax Line Identifier
8784  , p_source_85            IN NUMBER
8785 --Invoice Distribution Tax Distribution Identifier from Tax
8786  , p_source_86            IN NUMBER
8787 --Invoice Distribution Summary Tax Line Identifier
8788  , p_source_87            IN NUMBER
8789 --Payables Upgrade Credit Encumbrance Type Identifier
8790  , p_source_88            IN NUMBER
8791 --Payables Upgrade Debit Encumbrance Type Identifier
8792  , p_source_89            IN NUMBER
8793 --Business Flow Accounts Payable Application Identifier
8794  , p_source_90            IN NUMBER
8795 --Business Flow Invoice Distribution Type
8796  , p_source_91            IN VARCHAR2
8797 --Business Flow Invoice Entity Code
8798  , p_source_92            IN VARCHAR2
8799 --Business Flow Invoice Distribution Identifier
8800  , p_source_93            IN NUMBER
8801 --Business Flow Invoice Identifier
8802  , p_source_94            IN NUMBER
8803 )
8804 IS
8805 
8806 l_component_type              VARCHAR2(80);
8807 l_component_code              VARCHAR2(30);
8808 l_component_type_code         VARCHAR2(1);
8809 l_component_appl_id           INTEGER;
8810 l_amb_context_code            VARCHAR2(30);
8811 l_entity_code                 VARCHAR2(30);
8812 l_event_class_code            VARCHAR2(30);
8813 l_ae_header_id                NUMBER;
8814 l_event_type_code             VARCHAR2(30);
8815 l_line_definition_code        VARCHAR2(30);
8816 l_line_definition_owner_code  VARCHAR2(1);
8817 --
8818 -- adr variables
8819 l_segment                     VARCHAR2(30);
8820 l_ccid                        NUMBER;
8821 l_adr_transaction_coa_id      NUMBER;
8822 l_adr_accounting_coa_id       NUMBER;
8823 l_adr_flexfield_segment_code  VARCHAR2(30);
8824 l_adr_flex_value_set_id       NUMBER;
8825 l_adr_value_type_code         VARCHAR2(30);
8826 l_adr_value_combination_id    NUMBER;
8827 l_adr_value_segment_code      VARCHAR2(30);
8828 
8829 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8830 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8831 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8832 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8833 
8834 -- 4262811 Variables ------------------------------------------------------------------------------------------
8835 l_entered_amt_idx             NUMBER;
8836 l_accted_amt_idx              NUMBER;
8837 l_acc_rev_flag                VARCHAR2(1);
8838 l_accrual_line_num            NUMBER;
8839 l_tmp_amt                     NUMBER;
8840 l_acc_rev_natural_side_code   VARCHAR2(1);
8841 
8842 l_num_entries                 NUMBER;
8843 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8844 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8845 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8846 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8847 l_recog_line_1                NUMBER;
8848 l_recog_line_2                NUMBER;
8849 
8850 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8851 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8852 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8853 
8854 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8855 
8856 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8857 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8858 
8859 ---------------------------------------------------------------------------------------------------------------
8860 
8861 
8862 --
8863 -- bulk performance
8864 --
8868 
8865 l_balance_type_code           VARCHAR2(1);
8866 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8867 l_log_module                  VARCHAR2(240);
8869 --
8870 -- Upgrade strategy
8871 --
8872 l_actual_upg_option           VARCHAR2(1);
8873 l_enc_upg_option           VARCHAR2(1);
8874 
8875 --
8876 BEGIN
8877 --
8878 IF g_log_enabled THEN
8879       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
8880 END IF;
8881 --
8882 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8883 
8884       trace
8885          (p_msg      => 'BEGIN of AcctLineType_49'
8886          ,p_level    => C_LEVEL_PROCEDURE
8887          ,p_module   => l_log_module);
8888 
8889 END IF;
8890 --
8891 l_component_type             := 'AMB_JLT';
8892 l_component_code             := 'AP_ACCRUAL_PREPAY';
8893 l_component_type_code        := 'S';
8894 l_component_appl_id          :=  200;
8895 l_amb_context_code           := 'DEFAULT';
8896 l_entity_code                := 'AP_INVOICES';
8897 l_event_class_code           := 'PREPAYMENTS';
8898 l_event_type_code            := 'PREPAYMENTS_ALL';
8899 l_line_definition_owner_code := 'S';
8900 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
8901 --
8902 l_balance_type_code          := 'A';
8903 l_segment                     := NULL;
8904 l_ccid                        := NULL;
8905 l_adr_transaction_coa_id      := NULL;
8906 l_adr_accounting_coa_id       := NULL;
8907 l_adr_flexfield_segment_code  := NULL;
8908 l_adr_flex_value_set_id       := NULL;
8909 l_adr_value_type_code         := NULL;
8910 l_adr_value_combination_id    := NULL;
8911 l_adr_value_segment_code      := NULL;
8912 
8913 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8914 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
8915 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8916 l_budgetary_control_flag     := 'N';
8917 
8918 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8919 l_bflow_applied_to_amt       := NULL; -- 5132302
8920 l_entered_amt_idx            := NULL;          -- 4262811
8921 l_accted_amt_idx             := NULL;          -- 4262811
8922 l_acc_rev_flag               := NULL;          -- 4262811
8923 l_accrual_line_num           := NULL;          -- 4262811
8924 l_tmp_amt                    := NULL;          -- 4262811
8925 --
8926  
8927 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8928     l_balance_type_code <> 'B' THEN
8929 IF NVL(p_source_33,'
8930 ') =  'RETROACCRUAL' OR 
8931 NVL(p_source_33,'
8932 ') =  'ACCRUAL'
8933  THEN 
8934 
8935    --
8936    XLA_AE_LINES_PKG.SetNewLine;
8937 
8938    p_balance_type_code          := l_balance_type_code;
8939    -- set the flag so later we will know whether the gain loss line needs to be created
8940    
8941    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8942      p_actual_flag :='A';
8943    END IF;
8944 
8945    --
8946    -- bulk performance
8947    --
8948    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8949                                       p_header_num   => 0); -- 4262811
8950    --
8951    -- set accounting line options
8952    --
8953    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8954            p_natural_side_code          => 'D'
8955          , p_gain_or_loss_flag          => 'N'
8956          , p_gl_transfer_mode_code      => 'S'
8957          , p_acct_entry_type_code       => 'A'
8958          , p_switch_side_flag           => 'Y'
8959          , p_merge_duplicate_code       => 'A'
8960          );
8961    --
8962    l_acc_rev_natural_side_code := 'C';  -- 4262811
8963    -- 
8964    --
8965    -- set accounting line type info
8966    --
8967    xla_ae_lines_pkg.SetAcctLineType
8968       (p_component_type             => l_component_type
8969       ,p_event_type_code            => l_event_type_code
8970       ,p_line_definition_owner_code => l_line_definition_owner_code
8971       ,p_line_definition_code       => l_line_definition_code
8972       ,p_accounting_line_code       => l_component_code
8973       ,p_accounting_line_type_code  => l_component_type_code
8974       ,p_accounting_line_appl_id    => l_component_appl_id
8975       ,p_amb_context_code           => l_amb_context_code
8976       ,p_entity_code                => l_entity_code
8977       ,p_event_class_code           => l_event_class_code);
8978    --
8979    -- set accounting class
8980    --
8981    xla_ae_lines_pkg.SetAcctClass(
8982            p_accounting_class_code  => 'ACCRUAL'
8983          , p_ae_header_id           => l_ae_header_id
8984          );
8985 
8986    --
8987    -- set rounding class
8988    --
8989    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8990                       'ACCRUAL';
8991 
8992    --
8993    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8994    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8995    --
8996    -- bulk performance
8997    --
8998    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8999 
9000    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9004    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9001       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9002 
9003    -- 4955764
9005       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9006 
9007    -- 4458381 Public Sector Enh
9008    
9009    --
9010    -- set accounting attributes for the line type
9011    --
9012    l_entered_amt_idx := 23;
9013    l_accted_amt_idx  := 28;
9014    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
9015    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9016    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
9017    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9018    l_rec_acct_attrs.array_num_value(2)  := 
9019 xla_ae_sources_pkg.GetSystemSourceNum(
9020    p_source_code           => 'XLA_EVENT_APPL_ID'
9021  , p_source_type_code      => 'Y'
9022  , p_source_application_id =>  602
9023 );
9024    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9025    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
9026    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9027    l_rec_acct_attrs.array_char_value(4)  := 
9028 xla_ae_sources_pkg.GetSystemSourceChar(
9029    p_source_code           => 'XLA_ENTITY_CODE'
9030  , p_source_type_code      => 'Y'
9031  , p_source_application_id =>  602
9032 );
9033    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9034    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
9035    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9036    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
9037    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9038    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
9039    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9040    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
9041    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9042    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
9043    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9044    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
9045    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9046    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
9047    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9048    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
9049    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9050    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
9051    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9052    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
9053    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9054    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
9055    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9056    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
9057    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9058    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
9059    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9060    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
9061    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9062    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
9063    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9064    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
9065    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9066    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
9067    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9068    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
9069    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
9070    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
9071    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
9072    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
9073    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
9074    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
9075    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
9076    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
9077    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
9078    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
9079    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
9080    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
9081    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
9082    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
9083    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
9084    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
9085    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
9086    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
9087    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
9088    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
9089    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
9090    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
9091    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
9092    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
9093    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
9094    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
9098    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
9095    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
9096    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
9097    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
9099    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
9100    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
9101    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
9102    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
9103    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
9104    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
9105    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
9106    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
9107    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
9108    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
9109    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
9110    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
9111 
9112    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9113    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9114 
9115    ---------------------------------------------------------------------------------------------------------------
9116    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9117    ---------------------------------------------------------------------------------------------------------------
9118    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9119 
9120    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9121    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9122 
9123    IF xla_accounting_cache_pkg.GetValueChar
9124          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9125          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9126    AND l_bflow_method_code = 'PRIOR_ENTRY'
9127 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9128    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9129          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9130        )
9131    THEN
9132          xla_ae_lines_pkg.BflowUpgEntry
9133            (p_business_method_code    => l_bflow_method_code
9134            ,p_business_class_code     => l_bflow_class_code
9135            ,p_balance_type            => l_balance_type_code);
9136    ELSE
9137       NULL;
9138 -- No business flow processing for business flow method of NONE.
9139    END IF;
9140 
9141    --
9142    -- call analytical criteria
9143    --
9144    
9145    --
9146    -- call description
9147    --
9148    
9149 xla_ae_lines_pkg.SetLineDescription(
9150    p_ae_header_id => l_ae_header_id
9151   ,p_description  => Description_1 (
9152      p_application_id         => p_application_id
9153    , p_ae_header_id           => l_ae_header_id 
9154 , p_source_1 => p_source_1
9155    )
9156 );
9157 
9158 
9159    --
9160    -- call ADRs
9161    -- Bug 4922099
9162    --
9163    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9164         (NVL(l_actual_upg_option, 'N') = 'O') OR
9165         (NVL(l_enc_upg_option, 'N') = 'O')
9166       )
9167    THEN
9168    NULL;
9169    --
9170    --
9171    
9172   l_ccid := AcctDerRule_33(
9173            p_application_id           => p_application_id
9174          , p_ae_header_id             => l_ae_header_id 
9175 , p_source_30 => p_source_30
9176          , x_transaction_coa_id       => l_adr_transaction_coa_id
9177          , x_accounting_coa_id        => l_adr_accounting_coa_id
9178          , x_value_type_code          => l_adr_value_type_code
9179          , p_side                     => 'NA'
9180    );
9181 
9182    xla_ae_lines_pkg.set_ccid(
9183     p_code_combination_id          => l_ccid
9184   , p_value_type_code              => l_adr_value_type_code
9185   , p_transaction_coa_id           => l_adr_transaction_coa_id
9186   , p_accounting_coa_id            => l_adr_accounting_coa_id
9187   , p_adr_code                     => 'AP_INVOICE_DIST'
9188   , p_adr_type_code                => 'S'
9189   , p_component_type               => l_component_type
9190   , p_component_code               => l_component_code
9191   , p_component_type_code          => l_component_type_code
9192   , p_component_appl_id            => l_component_appl_id
9193   , p_amb_context_code             => l_amb_context_code
9194   , p_side                         => 'NA'
9195   );
9196 
9197 
9198    --
9199    --
9200    END IF;
9201    --
9202    -- Bug 4922099
9203    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9204           (NVL(l_enc_upg_option, 'N') = 'O')
9205         ) AND
9206         (l_bflow_method_code = 'PRIOR_ENTRY')
9207       )
9208    THEN
9209       IF
9210       --
9211       1 = 2
9212       --
9213       THEN
9214       xla_accounting_err_pkg.build_message
9215                                     (p_appli_s_name            => 'XLA'
9216                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9217                                     ,p_token_1                 => 'LINE_NUMBER'
9221                                                                              l_component_type
9218                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9219                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9220                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9222                                                                             ,l_component_code
9223                                                                             ,l_component_type_code
9224                                                                             ,l_component_appl_id
9225                                                                             ,l_amb_context_code
9226                                                                             ,l_entity_code
9227                                                                             ,l_event_class_code
9228                                                                            )
9229                                     ,p_token_3                 => 'OWNER'
9230                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9231                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9232                                                                           ,p_lookup_code    => l_component_type_code
9233                                                                          )
9234                                     ,p_token_4                 => 'PRODUCT_NAME'
9235                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9236                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9237                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9238                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9239                                     ,p_ae_header_id            =>  NULL
9240                                        );
9241 
9242         IF (C_LEVEL_ERROR>= g_log_level) THEN
9243                  trace
9244                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9245                       ,p_level    => C_LEVEL_ERROR
9246                       ,p_module   => l_log_module);
9247         END IF;
9248       END IF;
9249    END IF;
9250    --
9251    --
9252    ------------------------------------------------------------------------------------------------
9253    -- 4219869 Business Flow
9254    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9255    -- Prior Entry.  Currently, the following code is always generated.
9256    ------------------------------------------------------------------------------------------------
9257    XLA_AE_LINES_PKG.ValidateCurrentLine;
9258 
9259    ------------------------------------------------------------------------------------
9260    -- 4219869 Business Flow
9261    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9262    ------------------------------------------------------------------------------------
9263    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9264 
9265    ----------------------------------------------------------------------------------
9266    -- 4219869 Business Flow
9267    -- Update journal entry status -- Need to generate this within IF <condition>
9268    ----------------------------------------------------------------------------------
9269    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9270          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9271          ,p_balance_type_code => l_balance_type_code
9272          );
9273 
9274    -------------------------------------------------------------------------------------------
9275    -- 4262811 - Generate the Accrual Reversal lines
9276    -------------------------------------------------------------------------------------------
9277    BEGIN
9278       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9279                               (g_array_event(p_event_id).array_value_num('header_index'));
9280       IF l_acc_rev_flag IS NULL THEN
9281          l_acc_rev_flag := 'N';
9282       END IF;
9283    EXCEPTION
9284       WHEN OTHERS THEN
9285          l_acc_rev_flag := 'N';
9286    END;
9287    --
9288    IF (l_acc_rev_flag = 'Y') THEN
9289 
9290        -- 4645092  ------------------------------------------------------------------------------
9291        -- To allow MPA report to determine if it should generate report process
9292        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9293        ------------------------------------------------------------------------------------------
9294 
9295        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9296        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9297    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9298    -- call ADRs
9299    -- Bug 4922099
9300    --
9301    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9302         (NVL(l_actual_upg_option, 'N') = 'O') OR
9303         (NVL(l_enc_upg_option, 'N') = 'O')
9304       )
9305    THEN
9306    NULL;
9307    --
9308    --
9309    
9310   l_ccid := AcctDerRule_33(
9311            p_application_id           => p_application_id
9315          , x_accounting_coa_id        => l_adr_accounting_coa_id
9312          , p_ae_header_id             => l_ae_header_id 
9313 , p_source_30 => p_source_30
9314          , x_transaction_coa_id       => l_adr_transaction_coa_id
9316          , x_value_type_code          => l_adr_value_type_code
9317          , p_side                     => 'NA'
9318    );
9319 
9320    xla_ae_lines_pkg.set_ccid(
9321     p_code_combination_id          => l_ccid
9322   , p_value_type_code              => l_adr_value_type_code
9323   , p_transaction_coa_id           => l_adr_transaction_coa_id
9324   , p_accounting_coa_id            => l_adr_accounting_coa_id
9325   , p_adr_code                     => 'AP_INVOICE_DIST'
9326   , p_adr_type_code                => 'S'
9327   , p_component_type               => l_component_type
9328   , p_component_code               => l_component_code
9329   , p_component_type_code          => l_component_type_code
9330   , p_component_appl_id            => l_component_appl_id
9331   , p_amb_context_code             => l_amb_context_code
9332   , p_side                         => 'NA'
9333   );
9334 
9335 
9336    --
9337    --
9338    END IF;
9339 
9340        --
9341        -- Update the line information that should be overwritten
9342        --
9343        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9344                                          p_header_num   => 1);
9345        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9346 
9347        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9348 
9349        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9350           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9351        END IF;
9352 
9353       --
9354       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9355       --
9356       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9357           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9358       ELSE
9359           ---------------------------------------------------------------------------------------------------
9360           -- 4262811a Switch Sign
9361           ---------------------------------------------------------------------------------------------------
9362           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9363           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9364                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9365           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9366                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9367           -- 5132302
9368           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9369                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9370 
9371       END IF;
9372 
9373       -- 4955764
9374       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9375       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9376 
9377 
9378       XLA_AE_LINES_PKG.ValidateCurrentLine;
9379       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9380 
9381       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9382                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9383                ,p_balance_type_code => l_balance_type_code);
9384 
9385    END IF;
9386 
9387    -----------------------------------------------------------------------------------------
9388    -- 4262811 Multiperiod Accounting
9389    -----------------------------------------------------------------------------------------
9390      -- No MPA option is assigned.
9391 
9392 
9393 END IF;
9394 END IF;
9395 --
9396 
9397 --
9398 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9399    trace
9400       (p_msg      => 'END of AcctLineType_49'
9401       ,p_level    => C_LEVEL_PROCEDURE
9402       ,p_module   => l_log_module);
9403 END IF;
9404 --
9405 EXCEPTION
9406   WHEN xla_exceptions_pkg.application_exception THEN
9407       RAISE;
9408   WHEN OTHERS THEN
9409        xla_exceptions_pkg.raise_message
9410            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_49');
9411 END AcctLineType_49;
9412 --
9413 
9414 ---------------------------------------
9415 --
9416 -- PRIVATE FUNCTION
9417 --         AcctLineType_50
9418 --
9419 ---------------------------------------
9420 PROCEDURE AcctLineType_50 (
9421   p_application_id        IN NUMBER
9422  ,p_event_id              IN NUMBER
9423  ,p_calculate_acctd_flag  IN VARCHAR2
9424  ,p_calculate_g_l_flag    IN VARCHAR2
9425  ,p_actual_flag           IN OUT VARCHAR2
9426  ,p_balance_type_code     OUT VARCHAR2
9427  ,p_gain_or_loss_ref      OUT VARCHAR2
9428  
9429 --Invoice Distribution Description
9430  , p_source_1            IN VARCHAR2
9431 --Automatic Offsets Value
9432  , p_source_15            IN VARCHAR2
9433  , p_source_15_meaning    IN VARCHAR2
9437  , p_source_21            IN NUMBER
9434 --Purchase Order Rate Variance Gain Account
9435  , p_source_20            IN NUMBER
9436 --Invoice Distribution Ledger Amount
9438 --Destination Type of the PO Distribution
9439  , p_source_22            IN VARCHAR2
9440  , p_source_22_meaning    IN VARCHAR2
9441 --Purchase Order Rate Variance Loss Account
9442  , p_source_23            IN NUMBER
9443 --Invoice Distribution Account
9444  , p_source_30            IN NUMBER
9445 --Invoice Distribution Type
9446  , p_source_33            IN VARCHAR2
9447  , p_source_33_meaning    IN VARCHAR2
9448 --Automatic Offsets Flag
9449  , p_source_47            IN VARCHAR2
9450  , p_source_47_meaning    IN VARCHAR2
9451 --Accounting Reversal Indicator
9452  , p_source_52            IN VARCHAR2
9453 --Distribution Link Type
9454  , p_source_54            IN VARCHAR2
9455 --Allocation to Main Distribution Identifier
9456  , p_source_56            IN NUMBER
9457 --Invoice Identifier
9458  , p_source_57            IN NUMBER
9459 --Invoice Distribution Identifier
9460  , p_source_63            IN NUMBER
9461 --Payables Encumbrance Upgrade Credit Account
9462  , p_source_64            IN NUMBER
9463 --Payables Encumbrance Upgrade Credit Amount
9464  , p_source_65            IN NUMBER
9465 --Invoice Currency Code
9466  , p_source_66            IN VARCHAR2
9467 --Payables Encumbrance Upgrade Credit Base Amount
9468  , p_source_67            IN NUMBER
9469 --Payables Encumbrance Upgrade Debit Account
9470  , p_source_68            IN NUMBER
9471 --Payables Encumbrance Upgrade Debit Amount
9472  , p_source_69            IN NUMBER
9473 --Payables Encumbrance Upgrade Debit Base Amount
9474  , p_source_70            IN NUMBER
9475 --Payables Encumbrance Upgrade Option
9476  , p_source_71            IN VARCHAR2
9477 --Deferred Accounting End Date
9478  , p_source_76            IN DATE
9479 --Deferred Accounting Option
9480  , p_source_77            IN VARCHAR2
9481 --Deferred Accounting Start Date
9482  , p_source_78            IN DATE
9483 --Override Accounted Amount Indicator
9484  , p_source_79            IN VARCHAR2
9485  , p_source_79_meaning    IN VARCHAR2
9486 --Invoice Supplier Identifier
9487  , p_source_80            IN NUMBER
9488 --Invoice Supplier Site Identifier
9489  , p_source_81            IN NUMBER
9490 --Third Party Type
9491  , p_source_82            IN VARCHAR2
9492 --Parent Reversal Identifier
9493  , p_source_83            IN NUMBER
9494 --Invoice Distribution Statistical Amount
9495  , p_source_84            IN NUMBER
9496 --Invoice Distribution Tax Line Identifier
9497  , p_source_85            IN NUMBER
9498 --Invoice Distribution Tax Distribution Identifier from Tax
9499  , p_source_86            IN NUMBER
9500 --Invoice Distribution Summary Tax Line Identifier
9501  , p_source_87            IN NUMBER
9502 --Payables Upgrade Credit Encumbrance Type Identifier
9503  , p_source_88            IN NUMBER
9504 --Payables Upgrade Debit Encumbrance Type Identifier
9505  , p_source_89            IN NUMBER
9506 --Business Flow Accounts Payable Application Identifier
9507  , p_source_90            IN NUMBER
9508 --Business Flow Invoice Distribution Type
9509  , p_source_91            IN VARCHAR2
9510 --Business Flow Invoice Entity Code
9511  , p_source_92            IN VARCHAR2
9512 --Business Flow Invoice Distribution Identifier
9513  , p_source_93            IN NUMBER
9514 --Business Flow Invoice Identifier
9515  , p_source_94            IN NUMBER
9516 )
9517 IS
9518 
9519 l_component_type              VARCHAR2(80);
9520 l_component_code              VARCHAR2(30);
9521 l_component_type_code         VARCHAR2(1);
9522 l_component_appl_id           INTEGER;
9523 l_amb_context_code            VARCHAR2(30);
9524 l_entity_code                 VARCHAR2(30);
9525 l_event_class_code            VARCHAR2(30);
9526 l_ae_header_id                NUMBER;
9527 l_event_type_code             VARCHAR2(30);
9528 l_line_definition_code        VARCHAR2(30);
9529 l_line_definition_owner_code  VARCHAR2(1);
9530 --
9531 -- adr variables
9532 l_segment                     VARCHAR2(30);
9533 l_ccid                        NUMBER;
9534 l_adr_transaction_coa_id      NUMBER;
9535 l_adr_accounting_coa_id       NUMBER;
9536 l_adr_flexfield_segment_code  VARCHAR2(30);
9537 l_adr_flex_value_set_id       NUMBER;
9538 l_adr_value_type_code         VARCHAR2(30);
9539 l_adr_value_combination_id    NUMBER;
9540 l_adr_value_segment_code      VARCHAR2(30);
9541 
9542 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9543 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9544 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9545 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9546 
9547 -- 4262811 Variables ------------------------------------------------------------------------------------------
9548 l_entered_amt_idx             NUMBER;
9549 l_accted_amt_idx              NUMBER;
9550 l_acc_rev_flag                VARCHAR2(1);
9551 l_accrual_line_num            NUMBER;
9552 l_tmp_amt                     NUMBER;
9553 l_acc_rev_natural_side_code   VARCHAR2(1);
9554 
9555 l_num_entries                 NUMBER;
9556 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9557 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9558 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9562 
9559 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9560 l_recog_line_1                NUMBER;
9561 l_recog_line_2                NUMBER;
9563 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9564 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9565 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9566 
9567 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9568 
9569 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9570 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9571 
9572 ---------------------------------------------------------------------------------------------------------------
9573 
9574 
9575 --
9576 -- bulk performance
9577 --
9578 l_balance_type_code           VARCHAR2(1);
9579 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9580 l_log_module                  VARCHAR2(240);
9581 
9582 --
9583 -- Upgrade strategy
9584 --
9585 l_actual_upg_option           VARCHAR2(1);
9586 l_enc_upg_option           VARCHAR2(1);
9587 
9588 --
9589 BEGIN
9590 --
9591 IF g_log_enabled THEN
9592       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
9593 END IF;
9594 --
9595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9596 
9597       trace
9598          (p_msg      => 'BEGIN of AcctLineType_50'
9599          ,p_level    => C_LEVEL_PROCEDURE
9600          ,p_module   => l_log_module);
9601 
9602 END IF;
9603 --
9604 l_component_type             := 'AMB_JLT';
9605 l_component_code             := 'AP_ALC_EX_RATE_VAR_CM';
9606 l_component_type_code        := 'S';
9607 l_component_appl_id          :=  200;
9608 l_amb_context_code           := 'DEFAULT';
9609 l_entity_code                := 'AP_INVOICES';
9610 l_event_class_code           := 'CREDIT MEMOS';
9611 l_event_type_code            := 'CREDIT MEMOS_ALL';
9612 l_line_definition_owner_code := 'S';
9613 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
9614 --
9615 l_balance_type_code          := 'A';
9616 l_segment                     := NULL;
9617 l_ccid                        := NULL;
9618 l_adr_transaction_coa_id      := NULL;
9619 l_adr_accounting_coa_id       := NULL;
9620 l_adr_flexfield_segment_code  := NULL;
9621 l_adr_flex_value_set_id       := NULL;
9622 l_adr_value_type_code         := NULL;
9623 l_adr_value_combination_id    := NULL;
9624 l_adr_value_segment_code      := NULL;
9625 
9626 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9627 l_bflow_class_code           := '';    -- 4219869 Business Flow
9628 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9629 l_budgetary_control_flag     := 'N';
9630 
9631 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9632 l_bflow_applied_to_amt       := NULL; -- 5132302
9633 l_entered_amt_idx            := NULL;          -- 4262811
9634 l_accted_amt_idx             := NULL;          -- 4262811
9635 l_acc_rev_flag               := NULL;          -- 4262811
9636 l_accrual_line_num           := NULL;          -- 4262811
9637 l_tmp_amt                    := NULL;          -- 4262811
9638 --
9639 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9640             (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
9641                return;
9642   END IF;
9643   
9644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9645     l_balance_type_code <> 'B' THEN
9646 IF NVL(p_source_33,'
9647 ') =  'ACCRUAL'
9648  THEN 
9649 
9650    --
9651    XLA_AE_LINES_PKG.SetNewLine;
9652 
9653    p_balance_type_code          := l_balance_type_code;
9654    -- set the flag so later we will know whether the gain loss line needs to be created
9655    
9656    IF(l_balance_type_code = 'A' ) THEN
9657      p_actual_flag :='G';
9658    END IF;
9659 
9660    --
9661    -- bulk performance
9662    --
9663    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9664                                       p_header_num   => 0); -- 4262811
9665    --
9666    -- set accounting line options
9667    --
9668    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9669            p_natural_side_code          => 'G'
9670          , p_gain_or_loss_flag          => 'N'
9671          , p_gl_transfer_mode_code      => 'S'
9672          , p_acct_entry_type_code       => 'A'
9673          , p_switch_side_flag           => ''
9674          , p_merge_duplicate_code       => 'A'
9675          );
9676    --
9677    l_acc_rev_natural_side_code := 'C';  -- 4262811
9678    -- 
9679    --
9680    -- set accounting line type info
9681    --
9682    xla_ae_lines_pkg.SetAcctLineType
9683       (p_component_type             => l_component_type
9684       ,p_event_type_code            => l_event_type_code
9685       ,p_line_definition_owner_code => l_line_definition_owner_code
9686       ,p_line_definition_code       => l_line_definition_code
9687       ,p_accounting_line_code       => l_component_code
9688       ,p_accounting_line_type_code  => l_component_type_code
9689       ,p_accounting_line_appl_id    => l_component_appl_id
9693    --
9690       ,p_amb_context_code           => l_amb_context_code
9691       ,p_entity_code                => l_entity_code
9692       ,p_event_class_code           => l_event_class_code);
9694    -- set accounting class
9695    --
9696    xla_ae_lines_pkg.SetAcctClass(
9697            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9698          , p_ae_header_id           => l_ae_header_id
9699          );
9700 
9701    --
9702    -- set rounding class
9703    --
9704    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9705                       'EXCHANGE_RATE_VARIANCE';
9706 
9707    --
9708    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9709    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9710    --
9711    -- bulk performance
9712    --
9713    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9714 
9715    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9716       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9717 
9718    -- 4955764
9719    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9720       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9721 
9722    -- 4458381 Public Sector Enh
9723    
9724    --
9725    -- set accounting attributes for the line type
9726    --
9727    l_entered_amt_idx := NULL;
9728    l_accted_amt_idx  := 23;
9729    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
9730    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9731    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
9732    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9733    l_rec_acct_attrs.array_num_value(2)  := 
9734 xla_ae_sources_pkg.GetSystemSourceNum(
9735    p_source_code           => 'XLA_EVENT_APPL_ID'
9736  , p_source_type_code      => 'Y'
9737  , p_source_application_id =>  602
9738 );
9739    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9740    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
9741    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9742    l_rec_acct_attrs.array_char_value(4)  := 
9743 xla_ae_sources_pkg.GetSystemSourceChar(
9744    p_source_code           => 'XLA_ENTITY_CODE'
9745  , p_source_type_code      => 'Y'
9746  , p_source_application_id =>  602
9747 );
9748    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9749    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
9750    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9751    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
9752    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9753    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
9754    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9755    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
9756    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9757    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
9758    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9759    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
9760    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9761    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
9762    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9763    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
9764    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9765    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
9766    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9767    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
9768    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9769    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
9770    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9771    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
9772    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9773    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
9774    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9775    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
9776    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9777    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
9778    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9779    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
9780    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9781    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
9782    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9783    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
9784    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
9785    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
9786    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
9787    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
9788    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
9789    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
9790    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
9791    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
9795    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
9792    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
9793    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
9794    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
9796    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
9797    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
9798    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
9799    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
9800    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
9801    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
9802    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
9803    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
9804    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
9805    l_rec_acct_attrs.array_num_value(33)  := p_source_84;
9806    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
9807    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
9808    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
9809    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
9810    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
9811    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
9812    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
9813    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
9814    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
9815    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
9816 
9817    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9818    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9819 
9820    ---------------------------------------------------------------------------------------------------------------
9821    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9822    ---------------------------------------------------------------------------------------------------------------
9823    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9824 
9825    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9826    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9827 
9828    IF xla_accounting_cache_pkg.GetValueChar
9829          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9830          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9831    AND l_bflow_method_code = 'PRIOR_ENTRY'
9832 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9833    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9834          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9835        )
9836    THEN
9837          xla_ae_lines_pkg.BflowUpgEntry
9838            (p_business_method_code    => l_bflow_method_code
9839            ,p_business_class_code     => l_bflow_class_code
9840            ,p_balance_type            => l_balance_type_code);
9841    ELSE
9842       NULL;
9843 -- No business flow processing for business flow method of NONE.
9844    END IF;
9845 
9846    --
9847    -- call analytical criteria
9848    --
9849    
9850    --
9851    -- call description
9852    --
9853    
9854 xla_ae_lines_pkg.SetLineDescription(
9855    p_ae_header_id => l_ae_header_id
9856   ,p_description  => Description_1 (
9857      p_application_id         => p_application_id
9858    , p_ae_header_id           => l_ae_header_id 
9859 , p_source_1 => p_source_1
9860    )
9861 );
9862 
9863 
9864    --
9865    -- call ADRs
9866    -- Bug 4922099
9867    --
9868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9869         (NVL(l_actual_upg_option, 'N') = 'O') OR
9870         (NVL(l_enc_upg_option, 'N') = 'O')
9871       )
9872    THEN
9873    NULL;
9874    --
9875    --
9876    
9877   l_ccid := AcctDerRule_30(
9878            p_application_id           => p_application_id
9879          , p_ae_header_id             => l_ae_header_id 
9880 , p_source_15 => p_source_15
9881 , p_source_15_meaning => p_source_15_meaning
9882 , p_source_20 => p_source_20
9883 , p_source_21 => p_source_21
9884 , p_source_22 => p_source_22
9885 , p_source_22_meaning => p_source_22_meaning
9886 , p_source_23 => p_source_23
9887 , p_source_30 => p_source_30
9888 , p_source_47 => p_source_47
9889 , p_source_47_meaning => p_source_47_meaning
9890          , x_transaction_coa_id       => l_adr_transaction_coa_id
9891          , x_accounting_coa_id        => l_adr_accounting_coa_id
9892          , x_value_type_code          => l_adr_value_type_code
9893          , p_side                     => 'ALL'
9894    );
9895 
9896    xla_ae_lines_pkg.set_ccid(
9897     p_code_combination_id          => l_ccid
9898   , p_value_type_code              => l_adr_value_type_code
9899   , p_transaction_coa_id           => l_adr_transaction_coa_id
9900   , p_accounting_coa_id            => l_adr_accounting_coa_id
9901   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
9902   , p_adr_type_code                => 'S'
9903   , p_component_type               => l_component_type
9904   , p_component_code               => l_component_code
9905   , p_component_type_code          => l_component_type_code
9909   );
9906   , p_component_appl_id            => l_component_appl_id
9907   , p_amb_context_code             => l_amb_context_code
9908   , p_side                         => 'ALL'
9910 
9911 
9912    l_segment := AcctDerRule_9(
9913            p_application_id           => p_application_id
9914          , p_ae_header_id             => l_ae_header_id 
9915 , p_source_15 => p_source_15
9916 , p_source_15_meaning => p_source_15_meaning
9917 , p_source_20 => p_source_20
9918 , p_source_22 => p_source_22
9919 , p_source_22_meaning => p_source_22_meaning
9920          , x_transaction_coa_id       => l_adr_transaction_coa_id
9921          , x_accounting_coa_id        => l_adr_accounting_coa_id
9922          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9923          , x_flex_value_set_id        => l_adr_flex_value_set_id
9924          , x_value_type_code          => l_adr_value_type_code
9925          , x_value_combination_id     => l_adr_value_combination_id
9926          , x_value_segment_code       => l_adr_value_segment_code
9927          , p_side                     => 'DEBIT'
9928          , p_override_seg_flag        => 'Y'
9929    );
9930 
9931    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9932 
9933       xla_ae_lines_pkg.set_segment(
9934           p_to_segment_code         => 'GL_ACCOUNT'
9935         , p_segment_value           => l_segment
9936         , p_from_segment_code       => l_adr_value_segment_code
9937         , p_from_combination_id     => l_adr_value_combination_id
9938         , p_value_type_code         => l_adr_value_type_code
9939         , p_transaction_coa_id      => l_adr_transaction_coa_id
9940         , p_accounting_coa_id       => l_adr_accounting_coa_id
9941         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9942         , p_flex_value_set_id       => l_adr_flex_value_set_id
9943         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
9944         , p_adr_type_code           => 'S'
9945         , p_component_type          => l_component_type
9946         , p_component_code          => l_component_code
9947         , p_component_type_code     => l_component_type_code
9948         , p_component_appl_id       => l_component_appl_id
9949         , p_amb_context_code        => l_amb_context_code
9950         , p_entity_code             => 'AP_INVOICES'
9951         , p_event_class_code        => 'CREDIT MEMOS'
9952         , p_side                    => 'DEBIT'
9953         );
9954 
9955   END IF;
9956 
9957    l_segment := AcctDerRule_10(
9958            p_application_id           => p_application_id
9959          , p_ae_header_id             => l_ae_header_id 
9960 , p_source_15 => p_source_15
9961 , p_source_15_meaning => p_source_15_meaning
9962 , p_source_22 => p_source_22
9963 , p_source_22_meaning => p_source_22_meaning
9964 , p_source_23 => p_source_23
9965          , x_transaction_coa_id       => l_adr_transaction_coa_id
9966          , x_accounting_coa_id        => l_adr_accounting_coa_id
9967          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
9968          , x_flex_value_set_id        => l_adr_flex_value_set_id
9969          , x_value_type_code          => l_adr_value_type_code
9970          , x_value_combination_id     => l_adr_value_combination_id
9971          , x_value_segment_code       => l_adr_value_segment_code
9972          , p_side                     => 'CREDIT'
9973          , p_override_seg_flag        => 'Y'
9974    );
9975 
9976    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
9977 
9978       xla_ae_lines_pkg.set_segment(
9979           p_to_segment_code         => 'GL_ACCOUNT'
9980         , p_segment_value           => l_segment
9981         , p_from_segment_code       => l_adr_value_segment_code
9982         , p_from_combination_id     => l_adr_value_combination_id
9983         , p_value_type_code         => l_adr_value_type_code
9984         , p_transaction_coa_id      => l_adr_transaction_coa_id
9985         , p_accounting_coa_id       => l_adr_accounting_coa_id
9986         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
9987         , p_flex_value_set_id       => l_adr_flex_value_set_id
9988         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
9989         , p_adr_type_code           => 'S'
9990         , p_component_type          => l_component_type
9991         , p_component_code          => l_component_code
9992         , p_component_type_code     => l_component_type_code
9993         , p_component_appl_id       => l_component_appl_id
9994         , p_amb_context_code        => l_amb_context_code
9995         , p_entity_code             => 'AP_INVOICES'
9996         , p_event_class_code        => 'CREDIT MEMOS'
9997         , p_side                    => 'CREDIT'
9998         );
9999 
10000   END IF;
10001 
10002    l_segment := AcctDerRule_23(
10003            p_application_id           => p_application_id
10004          , p_ae_header_id             => l_ae_header_id 
10005 , p_source_15 => p_source_15
10006 , p_source_15_meaning => p_source_15_meaning
10007 , p_source_22 => p_source_22
10008 , p_source_22_meaning => p_source_22_meaning
10009 , p_source_30 => p_source_30
10010          , x_transaction_coa_id       => l_adr_transaction_coa_id
10011          , x_accounting_coa_id        => l_adr_accounting_coa_id
10012          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10013          , x_flex_value_set_id        => l_adr_flex_value_set_id
10014          , x_value_type_code          => l_adr_value_type_code
10015          , x_value_combination_id     => l_adr_value_combination_id
10016          , x_value_segment_code       => l_adr_value_segment_code
10020 
10017          , p_side                     => 'ALL'
10018          , p_override_seg_flag        => 'Y'
10019    );
10021    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10022 
10023       xla_ae_lines_pkg.set_segment(
10024           p_to_segment_code         => 'GL_BALANCING'
10025         , p_segment_value           => l_segment
10026         , p_from_segment_code       => l_adr_value_segment_code
10027         , p_from_combination_id     => l_adr_value_combination_id
10028         , p_value_type_code         => l_adr_value_type_code
10029         , p_transaction_coa_id      => l_adr_transaction_coa_id
10030         , p_accounting_coa_id       => l_adr_accounting_coa_id
10031         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10032         , p_flex_value_set_id       => l_adr_flex_value_set_id
10033         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10034         , p_adr_type_code           => 'S'
10035         , p_component_type          => l_component_type
10036         , p_component_code          => l_component_code
10037         , p_component_type_code     => l_component_type_code
10038         , p_component_appl_id       => l_component_appl_id
10039         , p_amb_context_code        => l_amb_context_code
10040         , p_entity_code             => 'AP_INVOICES'
10041         , p_event_class_code        => 'CREDIT MEMOS'
10042         , p_side                    => 'ALL'
10043         );
10044 
10045   END IF;
10046 
10047    --
10048    --
10049    END IF;
10050    --
10051    -- Bug 4922099
10052    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10053           (NVL(l_enc_upg_option, 'N') = 'O')
10054         ) AND
10055         (l_bflow_method_code = 'PRIOR_ENTRY')
10056       )
10057    THEN
10058       IF
10059       --
10060       1 = 2
10061       --
10062       THEN
10063       xla_accounting_err_pkg.build_message
10064                                     (p_appli_s_name            => 'XLA'
10065                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10066                                     ,p_token_1                 => 'LINE_NUMBER'
10067                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10068                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10069                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10070                                                                              l_component_type
10071                                                                             ,l_component_code
10072                                                                             ,l_component_type_code
10073                                                                             ,l_component_appl_id
10074                                                                             ,l_amb_context_code
10075                                                                             ,l_entity_code
10076                                                                             ,l_event_class_code
10077                                                                            )
10078                                     ,p_token_3                 => 'OWNER'
10079                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10080                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10081                                                                           ,p_lookup_code    => l_component_type_code
10082                                                                          )
10083                                     ,p_token_4                 => 'PRODUCT_NAME'
10084                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10085                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10086                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10087                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10088                                     ,p_ae_header_id            =>  NULL
10089                                        );
10090 
10091         IF (C_LEVEL_ERROR>= g_log_level) THEN
10092                  trace
10093                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10094                       ,p_level    => C_LEVEL_ERROR
10095                       ,p_module   => l_log_module);
10096         END IF;
10097       END IF;
10098    END IF;
10099    --
10100    --
10101    ------------------------------------------------------------------------------------------------
10102    -- 4219869 Business Flow
10103    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10104    -- Prior Entry.  Currently, the following code is always generated.
10105    ------------------------------------------------------------------------------------------------
10106    XLA_AE_LINES_PKG.ValidateCurrentLine;
10107 
10108    ------------------------------------------------------------------------------------
10109    -- 4219869 Business Flow
10110    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10111    ------------------------------------------------------------------------------------
10115    -- 4219869 Business Flow
10112    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10113 
10114    ----------------------------------------------------------------------------------
10116    -- Update journal entry status -- Need to generate this within IF <condition>
10117    ----------------------------------------------------------------------------------
10118    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10119          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10120          ,p_balance_type_code => l_balance_type_code
10121          );
10122 
10123    -------------------------------------------------------------------------------------------
10124    -- 4262811 - Generate the Accrual Reversal lines
10125    -------------------------------------------------------------------------------------------
10126    BEGIN
10127       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10128                               (g_array_event(p_event_id).array_value_num('header_index'));
10129       IF l_acc_rev_flag IS NULL THEN
10130          l_acc_rev_flag := 'N';
10131       END IF;
10132    EXCEPTION
10133       WHEN OTHERS THEN
10134          l_acc_rev_flag := 'N';
10135    END;
10136    --
10137    IF (l_acc_rev_flag = 'Y') THEN
10138 
10139        -- 4645092  ------------------------------------------------------------------------------
10140        -- To allow MPA report to determine if it should generate report process
10141        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10142        ------------------------------------------------------------------------------------------
10143 
10144        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10145        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10146    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10147    -- call ADRs
10148    -- Bug 4922099
10149    --
10150    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10151         (NVL(l_actual_upg_option, 'N') = 'O') OR
10152         (NVL(l_enc_upg_option, 'N') = 'O')
10153       )
10154    THEN
10155    NULL;
10156    --
10157    --
10158    
10159   l_ccid := AcctDerRule_30(
10160            p_application_id           => p_application_id
10161          , p_ae_header_id             => l_ae_header_id 
10162 , p_source_15 => p_source_15
10163 , p_source_15_meaning => p_source_15_meaning
10164 , p_source_20 => p_source_20
10165 , p_source_21 => p_source_21
10166 , p_source_22 => p_source_22
10167 , p_source_22_meaning => p_source_22_meaning
10168 , p_source_23 => p_source_23
10169 , p_source_30 => p_source_30
10170 , p_source_47 => p_source_47
10171 , p_source_47_meaning => p_source_47_meaning
10172          , x_transaction_coa_id       => l_adr_transaction_coa_id
10173          , x_accounting_coa_id        => l_adr_accounting_coa_id
10174          , x_value_type_code          => l_adr_value_type_code
10175          , p_side                     => 'ALL'
10176    );
10177 
10178    xla_ae_lines_pkg.set_ccid(
10179     p_code_combination_id          => l_ccid
10180   , p_value_type_code              => l_adr_value_type_code
10181   , p_transaction_coa_id           => l_adr_transaction_coa_id
10182   , p_accounting_coa_id            => l_adr_accounting_coa_id
10183   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10184   , p_adr_type_code                => 'S'
10185   , p_component_type               => l_component_type
10186   , p_component_code               => l_component_code
10187   , p_component_type_code          => l_component_type_code
10188   , p_component_appl_id            => l_component_appl_id
10189   , p_amb_context_code             => l_amb_context_code
10190   , p_side                         => 'ALL'
10191   );
10192 
10193 
10194    l_segment := AcctDerRule_9(
10195            p_application_id           => p_application_id
10196          , p_ae_header_id             => l_ae_header_id 
10197 , p_source_15 => p_source_15
10198 , p_source_15_meaning => p_source_15_meaning
10199 , p_source_20 => p_source_20
10200 , p_source_22 => p_source_22
10201 , p_source_22_meaning => p_source_22_meaning
10202          , x_transaction_coa_id       => l_adr_transaction_coa_id
10203          , x_accounting_coa_id        => l_adr_accounting_coa_id
10204          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10205          , x_flex_value_set_id        => l_adr_flex_value_set_id
10206          , x_value_type_code          => l_adr_value_type_code
10207          , x_value_combination_id     => l_adr_value_combination_id
10208          , x_value_segment_code       => l_adr_value_segment_code
10209          , p_side                     => 'DEBIT'
10210          , p_override_seg_flag        => 'Y'
10211    );
10212 
10213    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10214 
10215       xla_ae_lines_pkg.set_segment(
10216           p_to_segment_code         => 'GL_ACCOUNT'
10217         , p_segment_value           => l_segment
10218         , p_from_segment_code       => l_adr_value_segment_code
10219         , p_from_combination_id     => l_adr_value_combination_id
10220         , p_value_type_code         => l_adr_value_type_code
10221         , p_transaction_coa_id      => l_adr_transaction_coa_id
10222         , p_accounting_coa_id       => l_adr_accounting_coa_id
10223         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10224         , p_flex_value_set_id       => l_adr_flex_value_set_id
10225         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10229         , p_component_type_code     => l_component_type_code
10226         , p_adr_type_code           => 'S'
10227         , p_component_type          => l_component_type
10228         , p_component_code          => l_component_code
10230         , p_component_appl_id       => l_component_appl_id
10231         , p_amb_context_code        => l_amb_context_code
10232         , p_entity_code             => 'AP_INVOICES'
10233         , p_event_class_code        => 'CREDIT MEMOS'
10234         , p_side                    => 'DEBIT'
10235         );
10236 
10237   END IF;
10238 
10239    l_segment := AcctDerRule_10(
10240            p_application_id           => p_application_id
10241          , p_ae_header_id             => l_ae_header_id 
10242 , p_source_15 => p_source_15
10243 , p_source_15_meaning => p_source_15_meaning
10244 , p_source_22 => p_source_22
10245 , p_source_22_meaning => p_source_22_meaning
10246 , p_source_23 => p_source_23
10247          , x_transaction_coa_id       => l_adr_transaction_coa_id
10248          , x_accounting_coa_id        => l_adr_accounting_coa_id
10249          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10250          , x_flex_value_set_id        => l_adr_flex_value_set_id
10251          , x_value_type_code          => l_adr_value_type_code
10252          , x_value_combination_id     => l_adr_value_combination_id
10253          , x_value_segment_code       => l_adr_value_segment_code
10254          , p_side                     => 'CREDIT'
10255          , p_override_seg_flag        => 'Y'
10256    );
10257 
10258    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10259 
10260       xla_ae_lines_pkg.set_segment(
10261           p_to_segment_code         => 'GL_ACCOUNT'
10262         , p_segment_value           => l_segment
10263         , p_from_segment_code       => l_adr_value_segment_code
10264         , p_from_combination_id     => l_adr_value_combination_id
10265         , p_value_type_code         => l_adr_value_type_code
10266         , p_transaction_coa_id      => l_adr_transaction_coa_id
10267         , p_accounting_coa_id       => l_adr_accounting_coa_id
10268         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10269         , p_flex_value_set_id       => l_adr_flex_value_set_id
10270         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10271         , p_adr_type_code           => 'S'
10272         , p_component_type          => l_component_type
10273         , p_component_code          => l_component_code
10274         , p_component_type_code     => l_component_type_code
10275         , p_component_appl_id       => l_component_appl_id
10276         , p_amb_context_code        => l_amb_context_code
10277         , p_entity_code             => 'AP_INVOICES'
10278         , p_event_class_code        => 'CREDIT MEMOS'
10279         , p_side                    => 'CREDIT'
10280         );
10281 
10282   END IF;
10283 
10284    l_segment := AcctDerRule_23(
10285            p_application_id           => p_application_id
10286          , p_ae_header_id             => l_ae_header_id 
10287 , p_source_15 => p_source_15
10288 , p_source_15_meaning => p_source_15_meaning
10289 , p_source_22 => p_source_22
10290 , p_source_22_meaning => p_source_22_meaning
10291 , p_source_30 => p_source_30
10292          , x_transaction_coa_id       => l_adr_transaction_coa_id
10293          , x_accounting_coa_id        => l_adr_accounting_coa_id
10294          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10295          , x_flex_value_set_id        => l_adr_flex_value_set_id
10296          , x_value_type_code          => l_adr_value_type_code
10297          , x_value_combination_id     => l_adr_value_combination_id
10298          , x_value_segment_code       => l_adr_value_segment_code
10299          , p_side                     => 'ALL'
10300          , p_override_seg_flag        => 'Y'
10301    );
10302 
10303    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10304 
10305       xla_ae_lines_pkg.set_segment(
10306           p_to_segment_code         => 'GL_BALANCING'
10307         , p_segment_value           => l_segment
10308         , p_from_segment_code       => l_adr_value_segment_code
10309         , p_from_combination_id     => l_adr_value_combination_id
10310         , p_value_type_code         => l_adr_value_type_code
10311         , p_transaction_coa_id      => l_adr_transaction_coa_id
10312         , p_accounting_coa_id       => l_adr_accounting_coa_id
10313         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10314         , p_flex_value_set_id       => l_adr_flex_value_set_id
10315         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10316         , p_adr_type_code           => 'S'
10317         , p_component_type          => l_component_type
10318         , p_component_code          => l_component_code
10319         , p_component_type_code     => l_component_type_code
10320         , p_component_appl_id       => l_component_appl_id
10321         , p_amb_context_code        => l_amb_context_code
10322         , p_entity_code             => 'AP_INVOICES'
10323         , p_event_class_code        => 'CREDIT MEMOS'
10324         , p_side                    => 'ALL'
10325         );
10326 
10327   END IF;
10328 
10329    --
10330    --
10331    END IF;
10332 
10333        --
10334        -- Update the line information that should be overwritten
10335        --
10336        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10340        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10337                                          p_header_num   => 1);
10338        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10339 
10341 
10342        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10343           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10344        END IF;
10345 
10346       --
10347       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10348       --
10349       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10350           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10351       ELSE
10352           ---------------------------------------------------------------------------------------------------
10353           -- 4262811a Switch Sign
10354           ---------------------------------------------------------------------------------------------------
10355           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10356           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10357                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10358           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10359                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10360           -- 5132302
10361           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10362                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10363 
10364       END IF;
10365 
10366       -- 4955764
10367       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10368       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10369 
10370 
10371       XLA_AE_LINES_PKG.ValidateCurrentLine;
10372       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10373 
10374       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10375                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10376                ,p_balance_type_code => l_balance_type_code);
10377 
10378    END IF;
10379 
10380    -----------------------------------------------------------------------------------------
10381    -- 4262811 Multiperiod Accounting
10382    -----------------------------------------------------------------------------------------
10383      -- No MPA option is assigned.
10384 
10385 
10386 END IF;
10387 END IF;
10388 --
10389 
10390 --
10391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10392    trace
10393       (p_msg      => 'END of AcctLineType_50'
10394       ,p_level    => C_LEVEL_PROCEDURE
10395       ,p_module   => l_log_module);
10396 END IF;
10397 --
10398 EXCEPTION
10399   WHEN xla_exceptions_pkg.application_exception THEN
10400       RAISE;
10401   WHEN OTHERS THEN
10402        xla_exceptions_pkg.raise_message
10403            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_50');
10404 END AcctLineType_50;
10405 --
10406 
10407 ---------------------------------------
10408 --
10409 -- PRIVATE FUNCTION
10410 --         AcctLineType_51
10411 --
10412 ---------------------------------------
10413 PROCEDURE AcctLineType_51 (
10414   p_application_id        IN NUMBER
10415  ,p_event_id              IN NUMBER
10416  ,p_calculate_acctd_flag  IN VARCHAR2
10417  ,p_calculate_g_l_flag    IN VARCHAR2
10418  ,p_actual_flag           IN OUT VARCHAR2
10419  ,p_balance_type_code     OUT VARCHAR2
10420  ,p_gain_or_loss_ref      OUT VARCHAR2
10421  
10422 --Invoice Distribution Description
10423  , p_source_1            IN VARCHAR2
10424 --Automatic Offsets Value
10425  , p_source_15            IN VARCHAR2
10426  , p_source_15_meaning    IN VARCHAR2
10427 --Purchase Order Rate Variance Gain Account
10428  , p_source_20            IN NUMBER
10429 --Invoice Distribution Ledger Amount
10430  , p_source_21            IN NUMBER
10431 --Destination Type of the PO Distribution
10432  , p_source_22            IN VARCHAR2
10433  , p_source_22_meaning    IN VARCHAR2
10434 --Purchase Order Rate Variance Loss Account
10435  , p_source_23            IN NUMBER
10436 --Invoice Distribution Account
10437  , p_source_30            IN NUMBER
10438 --Invoice Distribution Type
10439  , p_source_33            IN VARCHAR2
10440  , p_source_33_meaning    IN VARCHAR2
10441 --Automatic Offsets Flag
10442  , p_source_47            IN VARCHAR2
10443  , p_source_47_meaning    IN VARCHAR2
10444 --Accounting Reversal Indicator
10445  , p_source_52            IN VARCHAR2
10446 --Distribution Link Type
10447  , p_source_54            IN VARCHAR2
10448 --Allocation to Main Distribution Identifier
10449  , p_source_56            IN NUMBER
10450 --Invoice Identifier
10451  , p_source_57            IN NUMBER
10452 --Invoice Distribution Identifier
10453  , p_source_63            IN NUMBER
10454 --Payables Encumbrance Upgrade Credit Account
10455  , p_source_64            IN NUMBER
10456 --Payables Encumbrance Upgrade Credit Amount
10460 --Payables Encumbrance Upgrade Credit Base Amount
10457  , p_source_65            IN NUMBER
10458 --Invoice Currency Code
10459  , p_source_66            IN VARCHAR2
10461  , p_source_67            IN NUMBER
10462 --Payables Encumbrance Upgrade Debit Account
10463  , p_source_68            IN NUMBER
10464 --Payables Encumbrance Upgrade Debit Amount
10465  , p_source_69            IN NUMBER
10466 --Payables Encumbrance Upgrade Debit Base Amount
10467  , p_source_70            IN NUMBER
10468 --Payables Encumbrance Upgrade Option
10469  , p_source_71            IN VARCHAR2
10470 --Deferred Accounting End Date
10471  , p_source_76            IN DATE
10472 --Deferred Accounting Option
10473  , p_source_77            IN VARCHAR2
10474 --Deferred Accounting Start Date
10475  , p_source_78            IN DATE
10476 --Override Accounted Amount Indicator
10477  , p_source_79            IN VARCHAR2
10478  , p_source_79_meaning    IN VARCHAR2
10479 --Invoice Supplier Identifier
10480  , p_source_80            IN NUMBER
10481 --Invoice Supplier Site Identifier
10482  , p_source_81            IN NUMBER
10483 --Third Party Type
10484  , p_source_82            IN VARCHAR2
10485 --Parent Reversal Identifier
10486  , p_source_83            IN NUMBER
10487 --Invoice Distribution Tax Line Identifier
10488  , p_source_85            IN NUMBER
10489 --Invoice Distribution Tax Distribution Identifier from Tax
10490  , p_source_86            IN NUMBER
10491 --Invoice Distribution Summary Tax Line Identifier
10492  , p_source_87            IN NUMBER
10493 --Payables Upgrade Credit Encumbrance Type Identifier
10494  , p_source_88            IN NUMBER
10495 --Payables Upgrade Debit Encumbrance Type Identifier
10496  , p_source_89            IN NUMBER
10497 --Business Flow Accounts Payable Application Identifier
10498  , p_source_90            IN NUMBER
10499 --Business Flow Invoice Distribution Type
10500  , p_source_91            IN VARCHAR2
10501 --Business Flow Invoice Entity Code
10502  , p_source_92            IN VARCHAR2
10503 --Business Flow Invoice Distribution Identifier
10504  , p_source_93            IN NUMBER
10505 --Business Flow Invoice Identifier
10506  , p_source_94            IN NUMBER
10507 )
10508 IS
10509 
10510 l_component_type              VARCHAR2(80);
10511 l_component_code              VARCHAR2(30);
10512 l_component_type_code         VARCHAR2(1);
10513 l_component_appl_id           INTEGER;
10514 l_amb_context_code            VARCHAR2(30);
10515 l_entity_code                 VARCHAR2(30);
10516 l_event_class_code            VARCHAR2(30);
10517 l_ae_header_id                NUMBER;
10518 l_event_type_code             VARCHAR2(30);
10519 l_line_definition_code        VARCHAR2(30);
10520 l_line_definition_owner_code  VARCHAR2(1);
10521 --
10522 -- adr variables
10523 l_segment                     VARCHAR2(30);
10524 l_ccid                        NUMBER;
10525 l_adr_transaction_coa_id      NUMBER;
10526 l_adr_accounting_coa_id       NUMBER;
10527 l_adr_flexfield_segment_code  VARCHAR2(30);
10528 l_adr_flex_value_set_id       NUMBER;
10529 l_adr_value_type_code         VARCHAR2(30);
10530 l_adr_value_combination_id    NUMBER;
10531 l_adr_value_segment_code      VARCHAR2(30);
10532 
10533 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10534 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10535 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10536 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10537 
10538 -- 4262811 Variables ------------------------------------------------------------------------------------------
10539 l_entered_amt_idx             NUMBER;
10540 l_accted_amt_idx              NUMBER;
10541 l_acc_rev_flag                VARCHAR2(1);
10542 l_accrual_line_num            NUMBER;
10543 l_tmp_amt                     NUMBER;
10544 l_acc_rev_natural_side_code   VARCHAR2(1);
10545 
10546 l_num_entries                 NUMBER;
10547 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10548 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10549 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10550 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10551 l_recog_line_1                NUMBER;
10552 l_recog_line_2                NUMBER;
10553 
10554 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10555 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10556 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10557 
10558 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10559 
10560 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10561 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10562 
10563 ---------------------------------------------------------------------------------------------------------------
10564 
10565 
10566 --
10567 -- bulk performance
10568 --
10569 l_balance_type_code           VARCHAR2(1);
10570 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10571 l_log_module                  VARCHAR2(240);
10572 
10573 --
10574 -- Upgrade strategy
10575 --
10576 l_actual_upg_option           VARCHAR2(1);
10577 l_enc_upg_option           VARCHAR2(1);
10578 
10579 --
10580 BEGIN
10581 --
10582 IF g_log_enabled THEN
10586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10583       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
10584 END IF;
10585 --
10587 
10588       trace
10589          (p_msg      => 'BEGIN of AcctLineType_51'
10590          ,p_level    => C_LEVEL_PROCEDURE
10591          ,p_module   => l_log_module);
10592 
10593 END IF;
10594 --
10595 l_component_type             := 'AMB_JLT';
10596 l_component_code             := 'AP_ALC_EX_RATE_VAR_DM';
10597 l_component_type_code        := 'S';
10598 l_component_appl_id          :=  200;
10599 l_amb_context_code           := 'DEFAULT';
10600 l_entity_code                := 'AP_INVOICES';
10601 l_event_class_code           := 'DEBIT MEMOS';
10602 l_event_type_code            := 'DEBIT MEMOS_ALL';
10603 l_line_definition_owner_code := 'S';
10604 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
10605 --
10606 l_balance_type_code          := 'A';
10607 l_segment                     := NULL;
10608 l_ccid                        := NULL;
10609 l_adr_transaction_coa_id      := NULL;
10610 l_adr_accounting_coa_id       := NULL;
10611 l_adr_flexfield_segment_code  := NULL;
10612 l_adr_flex_value_set_id       := NULL;
10613 l_adr_value_type_code         := NULL;
10614 l_adr_value_combination_id    := NULL;
10615 l_adr_value_segment_code      := NULL;
10616 
10617 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10618 l_bflow_class_code           := '';    -- 4219869 Business Flow
10619 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10620 l_budgetary_control_flag     := 'N';
10621 
10622 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10623 l_bflow_applied_to_amt       := NULL; -- 5132302
10624 l_entered_amt_idx            := NULL;          -- 4262811
10625 l_accted_amt_idx             := NULL;          -- 4262811
10626 l_acc_rev_flag               := NULL;          -- 4262811
10627 l_accrual_line_num           := NULL;          -- 4262811
10628 l_tmp_amt                    := NULL;          -- 4262811
10629 --
10630 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10631             (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
10632                return;
10633   END IF;
10634   
10635 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10636     l_balance_type_code <> 'B' THEN
10637 IF NVL(p_source_33,'
10638 ') =  'ACCRUAL'
10639  THEN 
10640 
10641    --
10642    XLA_AE_LINES_PKG.SetNewLine;
10643 
10644    p_balance_type_code          := l_balance_type_code;
10645    -- set the flag so later we will know whether the gain loss line needs to be created
10646    
10647    IF(l_balance_type_code = 'A' ) THEN
10648      p_actual_flag :='G';
10649    END IF;
10650 
10651    --
10652    -- bulk performance
10653    --
10654    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10655                                       p_header_num   => 0); -- 4262811
10656    --
10657    -- set accounting line options
10658    --
10659    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10660            p_natural_side_code          => 'G'
10661          , p_gain_or_loss_flag          => 'N'
10662          , p_gl_transfer_mode_code      => 'S'
10663          , p_acct_entry_type_code       => 'A'
10664          , p_switch_side_flag           => ''
10665          , p_merge_duplicate_code       => 'A'
10666          );
10667    --
10668    l_acc_rev_natural_side_code := 'C';  -- 4262811
10669    -- 
10670    --
10671    -- set accounting line type info
10672    --
10673    xla_ae_lines_pkg.SetAcctLineType
10674       (p_component_type             => l_component_type
10675       ,p_event_type_code            => l_event_type_code
10676       ,p_line_definition_owner_code => l_line_definition_owner_code
10677       ,p_line_definition_code       => l_line_definition_code
10678       ,p_accounting_line_code       => l_component_code
10679       ,p_accounting_line_type_code  => l_component_type_code
10680       ,p_accounting_line_appl_id    => l_component_appl_id
10681       ,p_amb_context_code           => l_amb_context_code
10682       ,p_entity_code                => l_entity_code
10683       ,p_event_class_code           => l_event_class_code);
10684    --
10685    -- set accounting class
10686    --
10687    xla_ae_lines_pkg.SetAcctClass(
10688            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10689          , p_ae_header_id           => l_ae_header_id
10690          );
10691 
10692    --
10693    -- set rounding class
10694    --
10695    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10696                       'EXCHANGE_RATE_VARIANCE';
10697 
10698    --
10699    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10700    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10701    --
10702    -- bulk performance
10703    --
10704    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10705 
10706    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10707       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10708 
10709    -- 4955764
10710    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10714    
10711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10712 
10713    -- 4458381 Public Sector Enh
10715    --
10716    -- set accounting attributes for the line type
10717    --
10718    l_entered_amt_idx := NULL;
10719    l_accted_amt_idx  := 23;
10720    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10721    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10722    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
10723    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10724    l_rec_acct_attrs.array_num_value(2)  := 
10725 xla_ae_sources_pkg.GetSystemSourceNum(
10726    p_source_code           => 'XLA_EVENT_APPL_ID'
10727  , p_source_type_code      => 'Y'
10728  , p_source_application_id =>  602
10729 );
10730    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10731    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
10732    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10733    l_rec_acct_attrs.array_char_value(4)  := 
10734 xla_ae_sources_pkg.GetSystemSourceChar(
10735    p_source_code           => 'XLA_ENTITY_CODE'
10736  , p_source_type_code      => 'Y'
10737  , p_source_application_id =>  602
10738 );
10739    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10740    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
10741    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10742    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
10743    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10744    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
10745    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10746    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
10747    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10748    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
10749    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10750    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
10751    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10752    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
10753    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10754    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
10755    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10756    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
10757    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10758    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
10759    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10760    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
10761    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10762    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
10763    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10764    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
10765    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10766    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
10767    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10768    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
10769    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10770    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
10771    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10772    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
10773    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10774    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
10775    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
10776    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
10777    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
10778    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
10779    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
10780    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
10781    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
10782    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
10783    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
10784    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
10785    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
10786    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
10787    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
10788    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
10789    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
10790    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
10791    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
10792    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
10793    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
10794    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
10795    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
10796    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
10797    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
10798    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
10799    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
10800    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
10801    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
10805 
10802    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
10803    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
10804    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
10806    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10807    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10808 
10809    ---------------------------------------------------------------------------------------------------------------
10810    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10811    ---------------------------------------------------------------------------------------------------------------
10812    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10813 
10814    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10815    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10816 
10817    IF xla_accounting_cache_pkg.GetValueChar
10818          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10819          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10820    AND l_bflow_method_code = 'PRIOR_ENTRY'
10821 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10822    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10823          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10824        )
10825    THEN
10826          xla_ae_lines_pkg.BflowUpgEntry
10827            (p_business_method_code    => l_bflow_method_code
10828            ,p_business_class_code     => l_bflow_class_code
10829            ,p_balance_type            => l_balance_type_code);
10830    ELSE
10831       NULL;
10832 -- No business flow processing for business flow method of NONE.
10833    END IF;
10834 
10835    --
10836    -- call analytical criteria
10837    --
10838    
10839    --
10840    -- call description
10841    --
10842    
10843 xla_ae_lines_pkg.SetLineDescription(
10844    p_ae_header_id => l_ae_header_id
10845   ,p_description  => Description_1 (
10846      p_application_id         => p_application_id
10847    , p_ae_header_id           => l_ae_header_id 
10848 , p_source_1 => p_source_1
10849    )
10850 );
10851 
10852 
10853    --
10854    -- call ADRs
10855    -- Bug 4922099
10856    --
10857    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10858         (NVL(l_actual_upg_option, 'N') = 'O') OR
10859         (NVL(l_enc_upg_option, 'N') = 'O')
10860       )
10861    THEN
10862    NULL;
10863    --
10864    --
10865    
10866   l_ccid := AcctDerRule_30(
10867            p_application_id           => p_application_id
10868          , p_ae_header_id             => l_ae_header_id 
10869 , p_source_15 => p_source_15
10870 , p_source_15_meaning => p_source_15_meaning
10871 , p_source_20 => p_source_20
10872 , p_source_21 => p_source_21
10873 , p_source_22 => p_source_22
10874 , p_source_22_meaning => p_source_22_meaning
10875 , p_source_23 => p_source_23
10876 , p_source_30 => p_source_30
10877 , p_source_47 => p_source_47
10878 , p_source_47_meaning => p_source_47_meaning
10879          , x_transaction_coa_id       => l_adr_transaction_coa_id
10880          , x_accounting_coa_id        => l_adr_accounting_coa_id
10881          , x_value_type_code          => l_adr_value_type_code
10882          , p_side                     => 'ALL'
10883    );
10884 
10885    xla_ae_lines_pkg.set_ccid(
10886     p_code_combination_id          => l_ccid
10887   , p_value_type_code              => l_adr_value_type_code
10888   , p_transaction_coa_id           => l_adr_transaction_coa_id
10889   , p_accounting_coa_id            => l_adr_accounting_coa_id
10890   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10891   , p_adr_type_code                => 'S'
10892   , p_component_type               => l_component_type
10893   , p_component_code               => l_component_code
10894   , p_component_type_code          => l_component_type_code
10895   , p_component_appl_id            => l_component_appl_id
10896   , p_amb_context_code             => l_amb_context_code
10897   , p_side                         => 'ALL'
10898   );
10899 
10900 
10901    l_segment := AcctDerRule_9(
10902            p_application_id           => p_application_id
10903          , p_ae_header_id             => l_ae_header_id 
10904 , p_source_15 => p_source_15
10905 , p_source_15_meaning => p_source_15_meaning
10906 , p_source_20 => p_source_20
10907 , p_source_22 => p_source_22
10908 , p_source_22_meaning => p_source_22_meaning
10909          , x_transaction_coa_id       => l_adr_transaction_coa_id
10910          , x_accounting_coa_id        => l_adr_accounting_coa_id
10911          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10912          , x_flex_value_set_id        => l_adr_flex_value_set_id
10913          , x_value_type_code          => l_adr_value_type_code
10914          , x_value_combination_id     => l_adr_value_combination_id
10915          , x_value_segment_code       => l_adr_value_segment_code
10916          , p_side                     => 'DEBIT'
10917          , p_override_seg_flag        => 'Y'
10918    );
10919 
10920    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10921 
10922       xla_ae_lines_pkg.set_segment(
10923           p_to_segment_code         => 'GL_ACCOUNT'
10927         , p_value_type_code         => l_adr_value_type_code
10924         , p_segment_value           => l_segment
10925         , p_from_segment_code       => l_adr_value_segment_code
10926         , p_from_combination_id     => l_adr_value_combination_id
10928         , p_transaction_coa_id      => l_adr_transaction_coa_id
10929         , p_accounting_coa_id       => l_adr_accounting_coa_id
10930         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10931         , p_flex_value_set_id       => l_adr_flex_value_set_id
10932         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10933         , p_adr_type_code           => 'S'
10934         , p_component_type          => l_component_type
10935         , p_component_code          => l_component_code
10936         , p_component_type_code     => l_component_type_code
10937         , p_component_appl_id       => l_component_appl_id
10938         , p_amb_context_code        => l_amb_context_code
10939         , p_entity_code             => 'AP_INVOICES'
10940         , p_event_class_code        => 'DEBIT MEMOS'
10941         , p_side                    => 'DEBIT'
10942         );
10943 
10944   END IF;
10945 
10946    l_segment := AcctDerRule_10(
10947            p_application_id           => p_application_id
10948          , p_ae_header_id             => l_ae_header_id 
10949 , p_source_15 => p_source_15
10950 , p_source_15_meaning => p_source_15_meaning
10951 , p_source_22 => p_source_22
10952 , p_source_22_meaning => p_source_22_meaning
10953 , p_source_23 => p_source_23
10954          , x_transaction_coa_id       => l_adr_transaction_coa_id
10955          , x_accounting_coa_id        => l_adr_accounting_coa_id
10956          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10957          , x_flex_value_set_id        => l_adr_flex_value_set_id
10958          , x_value_type_code          => l_adr_value_type_code
10959          , x_value_combination_id     => l_adr_value_combination_id
10960          , x_value_segment_code       => l_adr_value_segment_code
10961          , p_side                     => 'CREDIT'
10962          , p_override_seg_flag        => 'Y'
10963    );
10964 
10965    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10966 
10967       xla_ae_lines_pkg.set_segment(
10968           p_to_segment_code         => 'GL_ACCOUNT'
10969         , p_segment_value           => l_segment
10970         , p_from_segment_code       => l_adr_value_segment_code
10971         , p_from_combination_id     => l_adr_value_combination_id
10972         , p_value_type_code         => l_adr_value_type_code
10973         , p_transaction_coa_id      => l_adr_transaction_coa_id
10974         , p_accounting_coa_id       => l_adr_accounting_coa_id
10975         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10976         , p_flex_value_set_id       => l_adr_flex_value_set_id
10977         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10978         , p_adr_type_code           => 'S'
10979         , p_component_type          => l_component_type
10980         , p_component_code          => l_component_code
10981         , p_component_type_code     => l_component_type_code
10982         , p_component_appl_id       => l_component_appl_id
10983         , p_amb_context_code        => l_amb_context_code
10984         , p_entity_code             => 'AP_INVOICES'
10985         , p_event_class_code        => 'DEBIT MEMOS'
10986         , p_side                    => 'CREDIT'
10987         );
10988 
10989   END IF;
10990 
10991    l_segment := AcctDerRule_23(
10992            p_application_id           => p_application_id
10993          , p_ae_header_id             => l_ae_header_id 
10994 , p_source_15 => p_source_15
10995 , p_source_15_meaning => p_source_15_meaning
10996 , p_source_22 => p_source_22
10997 , p_source_22_meaning => p_source_22_meaning
10998 , p_source_30 => p_source_30
10999          , x_transaction_coa_id       => l_adr_transaction_coa_id
11000          , x_accounting_coa_id        => l_adr_accounting_coa_id
11001          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11002          , x_flex_value_set_id        => l_adr_flex_value_set_id
11003          , x_value_type_code          => l_adr_value_type_code
11004          , x_value_combination_id     => l_adr_value_combination_id
11005          , x_value_segment_code       => l_adr_value_segment_code
11006          , p_side                     => 'ALL'
11007          , p_override_seg_flag        => 'Y'
11008    );
11009 
11010    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11011 
11012       xla_ae_lines_pkg.set_segment(
11013           p_to_segment_code         => 'GL_BALANCING'
11014         , p_segment_value           => l_segment
11015         , p_from_segment_code       => l_adr_value_segment_code
11016         , p_from_combination_id     => l_adr_value_combination_id
11017         , p_value_type_code         => l_adr_value_type_code
11018         , p_transaction_coa_id      => l_adr_transaction_coa_id
11019         , p_accounting_coa_id       => l_adr_accounting_coa_id
11020         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11021         , p_flex_value_set_id       => l_adr_flex_value_set_id
11022         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11023         , p_adr_type_code           => 'S'
11024         , p_component_type          => l_component_type
11025         , p_component_code          => l_component_code
11026         , p_component_type_code     => l_component_type_code
11027         , p_component_appl_id       => l_component_appl_id
11031         , p_side                    => 'ALL'
11028         , p_amb_context_code        => l_amb_context_code
11029         , p_entity_code             => 'AP_INVOICES'
11030         , p_event_class_code        => 'DEBIT MEMOS'
11032         );
11033 
11034   END IF;
11035 
11036    --
11037    --
11038    END IF;
11039    --
11040    -- Bug 4922099
11041    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11042           (NVL(l_enc_upg_option, 'N') = 'O')
11043         ) AND
11044         (l_bflow_method_code = 'PRIOR_ENTRY')
11045       )
11046    THEN
11047       IF
11048       --
11049       1 = 2
11050       --
11051       THEN
11052       xla_accounting_err_pkg.build_message
11053                                     (p_appli_s_name            => 'XLA'
11054                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11055                                     ,p_token_1                 => 'LINE_NUMBER'
11056                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11057                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11058                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11059                                                                              l_component_type
11060                                                                             ,l_component_code
11061                                                                             ,l_component_type_code
11062                                                                             ,l_component_appl_id
11063                                                                             ,l_amb_context_code
11064                                                                             ,l_entity_code
11065                                                                             ,l_event_class_code
11066                                                                            )
11067                                     ,p_token_3                 => 'OWNER'
11068                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11069                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11070                                                                           ,p_lookup_code    => l_component_type_code
11071                                                                          )
11072                                     ,p_token_4                 => 'PRODUCT_NAME'
11073                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11074                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11075                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11076                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11077                                     ,p_ae_header_id            =>  NULL
11078                                        );
11079 
11080         IF (C_LEVEL_ERROR>= g_log_level) THEN
11081                  trace
11082                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11083                       ,p_level    => C_LEVEL_ERROR
11084                       ,p_module   => l_log_module);
11085         END IF;
11086       END IF;
11087    END IF;
11088    --
11089    --
11090    ------------------------------------------------------------------------------------------------
11091    -- 4219869 Business Flow
11092    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11093    -- Prior Entry.  Currently, the following code is always generated.
11094    ------------------------------------------------------------------------------------------------
11095    XLA_AE_LINES_PKG.ValidateCurrentLine;
11096 
11097    ------------------------------------------------------------------------------------
11098    -- 4219869 Business Flow
11099    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11100    ------------------------------------------------------------------------------------
11101    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11102 
11103    ----------------------------------------------------------------------------------
11104    -- 4219869 Business Flow
11105    -- Update journal entry status -- Need to generate this within IF <condition>
11106    ----------------------------------------------------------------------------------
11107    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11108          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11109          ,p_balance_type_code => l_balance_type_code
11110          );
11111 
11112    -------------------------------------------------------------------------------------------
11113    -- 4262811 - Generate the Accrual Reversal lines
11114    -------------------------------------------------------------------------------------------
11115    BEGIN
11116       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11117                               (g_array_event(p_event_id).array_value_num('header_index'));
11118       IF l_acc_rev_flag IS NULL THEN
11119          l_acc_rev_flag := 'N';
11120       END IF;
11121    EXCEPTION
11122       WHEN OTHERS THEN
11123          l_acc_rev_flag := 'N';
11124    END;
11125    --
11126    IF (l_acc_rev_flag = 'Y') THEN
11127 
11131        ------------------------------------------------------------------------------------------
11128        -- 4645092  ------------------------------------------------------------------------------
11129        -- To allow MPA report to determine if it should generate report process
11130        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11132 
11133        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11134        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11135    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11136    -- call ADRs
11137    -- Bug 4922099
11138    --
11139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11140         (NVL(l_actual_upg_option, 'N') = 'O') OR
11141         (NVL(l_enc_upg_option, 'N') = 'O')
11142       )
11143    THEN
11144    NULL;
11145    --
11146    --
11147    
11148   l_ccid := AcctDerRule_30(
11149            p_application_id           => p_application_id
11150          , p_ae_header_id             => l_ae_header_id 
11151 , p_source_15 => p_source_15
11152 , p_source_15_meaning => p_source_15_meaning
11153 , p_source_20 => p_source_20
11154 , p_source_21 => p_source_21
11155 , p_source_22 => p_source_22
11156 , p_source_22_meaning => p_source_22_meaning
11157 , p_source_23 => p_source_23
11158 , p_source_30 => p_source_30
11159 , p_source_47 => p_source_47
11160 , p_source_47_meaning => p_source_47_meaning
11161          , x_transaction_coa_id       => l_adr_transaction_coa_id
11162          , x_accounting_coa_id        => l_adr_accounting_coa_id
11163          , x_value_type_code          => l_adr_value_type_code
11164          , p_side                     => 'ALL'
11165    );
11166 
11167    xla_ae_lines_pkg.set_ccid(
11168     p_code_combination_id          => l_ccid
11169   , p_value_type_code              => l_adr_value_type_code
11170   , p_transaction_coa_id           => l_adr_transaction_coa_id
11171   , p_accounting_coa_id            => l_adr_accounting_coa_id
11172   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11173   , p_adr_type_code                => 'S'
11174   , p_component_type               => l_component_type
11175   , p_component_code               => l_component_code
11176   , p_component_type_code          => l_component_type_code
11177   , p_component_appl_id            => l_component_appl_id
11178   , p_amb_context_code             => l_amb_context_code
11179   , p_side                         => 'ALL'
11180   );
11181 
11182 
11183    l_segment := AcctDerRule_9(
11184            p_application_id           => p_application_id
11185          , p_ae_header_id             => l_ae_header_id 
11186 , p_source_15 => p_source_15
11187 , p_source_15_meaning => p_source_15_meaning
11188 , p_source_20 => p_source_20
11189 , p_source_22 => p_source_22
11190 , p_source_22_meaning => p_source_22_meaning
11191          , x_transaction_coa_id       => l_adr_transaction_coa_id
11192          , x_accounting_coa_id        => l_adr_accounting_coa_id
11193          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11194          , x_flex_value_set_id        => l_adr_flex_value_set_id
11195          , x_value_type_code          => l_adr_value_type_code
11196          , x_value_combination_id     => l_adr_value_combination_id
11197          , x_value_segment_code       => l_adr_value_segment_code
11198          , p_side                     => 'DEBIT'
11199          , p_override_seg_flag        => 'Y'
11200    );
11201 
11202    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11203 
11204       xla_ae_lines_pkg.set_segment(
11205           p_to_segment_code         => 'GL_ACCOUNT'
11206         , p_segment_value           => l_segment
11207         , p_from_segment_code       => l_adr_value_segment_code
11208         , p_from_combination_id     => l_adr_value_combination_id
11209         , p_value_type_code         => l_adr_value_type_code
11210         , p_transaction_coa_id      => l_adr_transaction_coa_id
11211         , p_accounting_coa_id       => l_adr_accounting_coa_id
11212         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11213         , p_flex_value_set_id       => l_adr_flex_value_set_id
11214         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11215         , p_adr_type_code           => 'S'
11216         , p_component_type          => l_component_type
11217         , p_component_code          => l_component_code
11218         , p_component_type_code     => l_component_type_code
11219         , p_component_appl_id       => l_component_appl_id
11220         , p_amb_context_code        => l_amb_context_code
11221         , p_entity_code             => 'AP_INVOICES'
11222         , p_event_class_code        => 'DEBIT MEMOS'
11223         , p_side                    => 'DEBIT'
11224         );
11225 
11226   END IF;
11227 
11228    l_segment := AcctDerRule_10(
11229            p_application_id           => p_application_id
11230          , p_ae_header_id             => l_ae_header_id 
11231 , p_source_15 => p_source_15
11232 , p_source_15_meaning => p_source_15_meaning
11233 , p_source_22 => p_source_22
11234 , p_source_22_meaning => p_source_22_meaning
11235 , p_source_23 => p_source_23
11236          , x_transaction_coa_id       => l_adr_transaction_coa_id
11237          , x_accounting_coa_id        => l_adr_accounting_coa_id
11238          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11242          , x_value_segment_code       => l_adr_value_segment_code
11239          , x_flex_value_set_id        => l_adr_flex_value_set_id
11240          , x_value_type_code          => l_adr_value_type_code
11241          , x_value_combination_id     => l_adr_value_combination_id
11243          , p_side                     => 'CREDIT'
11244          , p_override_seg_flag        => 'Y'
11245    );
11246 
11247    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11248 
11249       xla_ae_lines_pkg.set_segment(
11250           p_to_segment_code         => 'GL_ACCOUNT'
11251         , p_segment_value           => l_segment
11252         , p_from_segment_code       => l_adr_value_segment_code
11253         , p_from_combination_id     => l_adr_value_combination_id
11254         , p_value_type_code         => l_adr_value_type_code
11255         , p_transaction_coa_id      => l_adr_transaction_coa_id
11256         , p_accounting_coa_id       => l_adr_accounting_coa_id
11257         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11258         , p_flex_value_set_id       => l_adr_flex_value_set_id
11259         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11260         , p_adr_type_code           => 'S'
11261         , p_component_type          => l_component_type
11262         , p_component_code          => l_component_code
11263         , p_component_type_code     => l_component_type_code
11264         , p_component_appl_id       => l_component_appl_id
11265         , p_amb_context_code        => l_amb_context_code
11266         , p_entity_code             => 'AP_INVOICES'
11267         , p_event_class_code        => 'DEBIT MEMOS'
11268         , p_side                    => 'CREDIT'
11269         );
11270 
11271   END IF;
11272 
11273    l_segment := AcctDerRule_23(
11274            p_application_id           => p_application_id
11275          , p_ae_header_id             => l_ae_header_id 
11276 , p_source_15 => p_source_15
11277 , p_source_15_meaning => p_source_15_meaning
11278 , p_source_22 => p_source_22
11279 , p_source_22_meaning => p_source_22_meaning
11280 , p_source_30 => p_source_30
11281          , x_transaction_coa_id       => l_adr_transaction_coa_id
11282          , x_accounting_coa_id        => l_adr_accounting_coa_id
11283          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11284          , x_flex_value_set_id        => l_adr_flex_value_set_id
11285          , x_value_type_code          => l_adr_value_type_code
11286          , x_value_combination_id     => l_adr_value_combination_id
11287          , x_value_segment_code       => l_adr_value_segment_code
11288          , p_side                     => 'ALL'
11289          , p_override_seg_flag        => 'Y'
11290    );
11291 
11292    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11293 
11294       xla_ae_lines_pkg.set_segment(
11295           p_to_segment_code         => 'GL_BALANCING'
11296         , p_segment_value           => l_segment
11297         , p_from_segment_code       => l_adr_value_segment_code
11298         , p_from_combination_id     => l_adr_value_combination_id
11299         , p_value_type_code         => l_adr_value_type_code
11300         , p_transaction_coa_id      => l_adr_transaction_coa_id
11301         , p_accounting_coa_id       => l_adr_accounting_coa_id
11302         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11303         , p_flex_value_set_id       => l_adr_flex_value_set_id
11304         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
11305         , p_adr_type_code           => 'S'
11306         , p_component_type          => l_component_type
11307         , p_component_code          => l_component_code
11308         , p_component_type_code     => l_component_type_code
11309         , p_component_appl_id       => l_component_appl_id
11310         , p_amb_context_code        => l_amb_context_code
11311         , p_entity_code             => 'AP_INVOICES'
11312         , p_event_class_code        => 'DEBIT MEMOS'
11313         , p_side                    => 'ALL'
11314         );
11315 
11316   END IF;
11317 
11318    --
11319    --
11320    END IF;
11321 
11322        --
11323        -- Update the line information that should be overwritten
11324        --
11325        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11326                                          p_header_num   => 1);
11327        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11328 
11329        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11330 
11331        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11332           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11333        END IF;
11334 
11335       --
11336       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11337       --
11338       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11339           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11340       ELSE
11341           ---------------------------------------------------------------------------------------------------
11342           -- 4262811a Switch Sign
11343           ---------------------------------------------------------------------------------------------------
11344           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11348                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11345           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11346                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11347           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11349           -- 5132302
11350           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11351                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11352 
11353       END IF;
11354 
11355       -- 4955764
11356       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11358 
11359 
11360       XLA_AE_LINES_PKG.ValidateCurrentLine;
11361       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11362 
11363       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11364                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11365                ,p_balance_type_code => l_balance_type_code);
11366 
11367    END IF;
11368 
11369    -----------------------------------------------------------------------------------------
11370    -- 4262811 Multiperiod Accounting
11371    -----------------------------------------------------------------------------------------
11372      -- No MPA option is assigned.
11373 
11374 
11375 END IF;
11376 END IF;
11377 --
11378 
11379 --
11380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11381    trace
11382       (p_msg      => 'END of AcctLineType_51'
11383       ,p_level    => C_LEVEL_PROCEDURE
11384       ,p_module   => l_log_module);
11385 END IF;
11386 --
11387 EXCEPTION
11388   WHEN xla_exceptions_pkg.application_exception THEN
11389       RAISE;
11390   WHEN OTHERS THEN
11391        xla_exceptions_pkg.raise_message
11392            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_51');
11393 END AcctLineType_51;
11394 --
11395 
11396 ---------------------------------------
11397 --
11398 -- PRIVATE FUNCTION
11399 --         AcctLineType_52
11400 --
11401 ---------------------------------------
11402 PROCEDURE AcctLineType_52 (
11403   p_application_id        IN NUMBER
11404  ,p_event_id              IN NUMBER
11405  ,p_calculate_acctd_flag  IN VARCHAR2
11406  ,p_calculate_g_l_flag    IN VARCHAR2
11407  ,p_actual_flag           IN OUT VARCHAR2
11408  ,p_balance_type_code     OUT VARCHAR2
11409  ,p_gain_or_loss_ref      OUT VARCHAR2
11410  
11411 --Invoice Distribution Description
11412  , p_source_1            IN VARCHAR2
11413 --Automatic Offsets Value
11414  , p_source_15            IN VARCHAR2
11415  , p_source_15_meaning    IN VARCHAR2
11416 --Purchase Order Rate Variance Gain Account
11417  , p_source_20            IN NUMBER
11418 --Invoice Distribution Ledger Amount
11419  , p_source_21            IN NUMBER
11420 --Destination Type of the PO Distribution
11421  , p_source_22            IN VARCHAR2
11422  , p_source_22_meaning    IN VARCHAR2
11423 --Purchase Order Rate Variance Loss Account
11424  , p_source_23            IN NUMBER
11425 --Invoice Distribution Account
11426  , p_source_30            IN NUMBER
11427 --Invoice Distribution Type
11428  , p_source_33            IN VARCHAR2
11429  , p_source_33_meaning    IN VARCHAR2
11430 --Automatic Offsets Flag
11431  , p_source_47            IN VARCHAR2
11432  , p_source_47_meaning    IN VARCHAR2
11433 --Accounting Reversal Indicator
11434  , p_source_52            IN VARCHAR2
11435 --Distribution Link Type
11436  , p_source_54            IN VARCHAR2
11437 --Allocation to Main Distribution Identifier
11438  , p_source_56            IN NUMBER
11439 --Invoice Identifier
11440  , p_source_57            IN NUMBER
11441 --Invoice Distribution Identifier
11442  , p_source_63            IN NUMBER
11443 --Payables Encumbrance Upgrade Credit Account
11444  , p_source_64            IN NUMBER
11445 --Payables Encumbrance Upgrade Credit Amount
11446  , p_source_65            IN NUMBER
11447 --Invoice Currency Code
11448  , p_source_66            IN VARCHAR2
11449 --Payables Encumbrance Upgrade Credit Base Amount
11450  , p_source_67            IN NUMBER
11451 --Payables Encumbrance Upgrade Debit Account
11452  , p_source_68            IN NUMBER
11453 --Payables Encumbrance Upgrade Debit Amount
11454  , p_source_69            IN NUMBER
11455 --Payables Encumbrance Upgrade Debit Base Amount
11456  , p_source_70            IN NUMBER
11457 --Payables Encumbrance Upgrade Option
11458  , p_source_71            IN VARCHAR2
11459 --Invoice Distribution Amount
11460  , p_source_72            IN NUMBER
11461 --Deferred Accounting End Date
11462  , p_source_76            IN DATE
11463 --Deferred Accounting Option
11464  , p_source_77            IN VARCHAR2
11465 --Deferred Accounting Start Date
11466  , p_source_78            IN DATE
11467 --Override Accounted Amount Indicator
11468  , p_source_79            IN VARCHAR2
11469  , p_source_79_meaning    IN VARCHAR2
11470 --Invoice Supplier Identifier
11471  , p_source_80            IN NUMBER
11472 --Invoice Supplier Site Identifier
11473  , p_source_81            IN NUMBER
11474 --Third Party Type
11478 --Invoice Distribution Statistical Amount
11475  , p_source_82            IN VARCHAR2
11476 --Parent Reversal Identifier
11477  , p_source_83            IN NUMBER
11479  , p_source_84            IN NUMBER
11480 --Invoice Distribution Tax Line Identifier
11481  , p_source_85            IN NUMBER
11482 --Invoice Distribution Tax Distribution Identifier from Tax
11483  , p_source_86            IN NUMBER
11484 --Invoice Distribution Summary Tax Line Identifier
11485  , p_source_87            IN NUMBER
11486 --Payables Upgrade Credit Encumbrance Type Identifier
11487  , p_source_88            IN NUMBER
11488 --Payables Upgrade Debit Encumbrance Type Identifier
11489  , p_source_89            IN NUMBER
11490 --Business Flow Accounts Payable Application Identifier
11491  , p_source_90            IN NUMBER
11492 --Business Flow Invoice Distribution Type
11493  , p_source_91            IN VARCHAR2
11494 --Business Flow Invoice Entity Code
11495  , p_source_92            IN VARCHAR2
11496 --Business Flow Invoice Distribution Identifier
11497  , p_source_93            IN NUMBER
11498 --Business Flow Invoice Identifier
11499  , p_source_94            IN NUMBER
11500 )
11501 IS
11502 
11503 l_component_type              VARCHAR2(80);
11504 l_component_code              VARCHAR2(30);
11505 l_component_type_code         VARCHAR2(1);
11506 l_component_appl_id           INTEGER;
11507 l_amb_context_code            VARCHAR2(30);
11508 l_entity_code                 VARCHAR2(30);
11509 l_event_class_code            VARCHAR2(30);
11510 l_ae_header_id                NUMBER;
11511 l_event_type_code             VARCHAR2(30);
11512 l_line_definition_code        VARCHAR2(30);
11513 l_line_definition_owner_code  VARCHAR2(1);
11514 --
11515 -- adr variables
11516 l_segment                     VARCHAR2(30);
11517 l_ccid                        NUMBER;
11518 l_adr_transaction_coa_id      NUMBER;
11519 l_adr_accounting_coa_id       NUMBER;
11520 l_adr_flexfield_segment_code  VARCHAR2(30);
11521 l_adr_flex_value_set_id       NUMBER;
11522 l_adr_value_type_code         VARCHAR2(30);
11523 l_adr_value_combination_id    NUMBER;
11524 l_adr_value_segment_code      VARCHAR2(30);
11525 
11526 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11527 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11528 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11529 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11530 
11531 -- 4262811 Variables ------------------------------------------------------------------------------------------
11532 l_entered_amt_idx             NUMBER;
11533 l_accted_amt_idx              NUMBER;
11534 l_acc_rev_flag                VARCHAR2(1);
11535 l_accrual_line_num            NUMBER;
11536 l_tmp_amt                     NUMBER;
11537 l_acc_rev_natural_side_code   VARCHAR2(1);
11538 
11539 l_num_entries                 NUMBER;
11540 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11541 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11542 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11543 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11544 l_recog_line_1                NUMBER;
11545 l_recog_line_2                NUMBER;
11546 
11547 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11548 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11549 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11550 
11551 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11552 
11553 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11554 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11555 
11556 ---------------------------------------------------------------------------------------------------------------
11557 
11558 
11559 --
11560 -- bulk performance
11561 --
11562 l_balance_type_code           VARCHAR2(1);
11563 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11564 l_log_module                  VARCHAR2(240);
11565 
11566 --
11567 -- Upgrade strategy
11568 --
11569 l_actual_upg_option           VARCHAR2(1);
11570 l_enc_upg_option           VARCHAR2(1);
11571 
11572 --
11573 BEGIN
11574 --
11575 IF g_log_enabled THEN
11576       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
11577 END IF;
11578 --
11579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11580 
11581       trace
11582          (p_msg      => 'BEGIN of AcctLineType_52'
11583          ,p_level    => C_LEVEL_PROCEDURE
11584          ,p_module   => l_log_module);
11585 
11586 END IF;
11587 --
11588 l_component_type             := 'AMB_JLT';
11589 l_component_code             := 'AP_ALC_EX_RATE_VAR_INV';
11590 l_component_type_code        := 'S';
11591 l_component_appl_id          :=  200;
11592 l_amb_context_code           := 'DEFAULT';
11593 l_entity_code                := 'AP_INVOICES';
11594 l_event_class_code           := 'INVOICES';
11595 l_event_type_code            := 'INVOICES_ALL';
11596 l_line_definition_owner_code := 'S';
11597 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
11598 --
11599 l_balance_type_code          := 'A';
11600 l_segment                     := NULL;
11601 l_ccid                        := NULL;
11602 l_adr_transaction_coa_id      := NULL;
11606 l_adr_value_type_code         := NULL;
11603 l_adr_accounting_coa_id       := NULL;
11604 l_adr_flexfield_segment_code  := NULL;
11605 l_adr_flex_value_set_id       := NULL;
11607 l_adr_value_combination_id    := NULL;
11608 l_adr_value_segment_code      := NULL;
11609 
11610 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11611 l_bflow_class_code           := '';    -- 4219869 Business Flow
11612 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11613 l_budgetary_control_flag     := 'N';
11614 
11615 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11616 l_bflow_applied_to_amt       := NULL; -- 5132302
11617 l_entered_amt_idx            := NULL;          -- 4262811
11618 l_accted_amt_idx             := NULL;          -- 4262811
11619 l_acc_rev_flag               := NULL;          -- 4262811
11620 l_accrual_line_num           := NULL;          -- 4262811
11621 l_tmp_amt                    := NULL;          -- 4262811
11622 --
11623 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11624             (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
11625                return;
11626   END IF;
11627   
11628 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11629     l_balance_type_code <> 'B' THEN
11630 IF NVL(p_source_33,'
11631 ') =  'ACCRUAL'
11632  THEN 
11633 
11634    --
11635    XLA_AE_LINES_PKG.SetNewLine;
11636 
11637    p_balance_type_code          := l_balance_type_code;
11638    -- set the flag so later we will know whether the gain loss line needs to be created
11639    
11640    IF(l_balance_type_code = 'A' ) THEN
11641      p_actual_flag :='G';
11642    END IF;
11643 
11644    --
11645    -- bulk performance
11646    --
11647    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11648                                       p_header_num   => 0); -- 4262811
11649    --
11650    -- set accounting line options
11651    --
11652    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11653            p_natural_side_code          => 'G'
11654          , p_gain_or_loss_flag          => 'N'
11655          , p_gl_transfer_mode_code      => 'S'
11656          , p_acct_entry_type_code       => 'A'
11657          , p_switch_side_flag           => ''
11658          , p_merge_duplicate_code       => 'A'
11659          );
11660    --
11661    l_acc_rev_natural_side_code := 'C';  -- 4262811
11662    -- 
11663    --
11664    -- set accounting line type info
11665    --
11666    xla_ae_lines_pkg.SetAcctLineType
11667       (p_component_type             => l_component_type
11668       ,p_event_type_code            => l_event_type_code
11669       ,p_line_definition_owner_code => l_line_definition_owner_code
11670       ,p_line_definition_code       => l_line_definition_code
11671       ,p_accounting_line_code       => l_component_code
11672       ,p_accounting_line_type_code  => l_component_type_code
11673       ,p_accounting_line_appl_id    => l_component_appl_id
11674       ,p_amb_context_code           => l_amb_context_code
11675       ,p_entity_code                => l_entity_code
11676       ,p_event_class_code           => l_event_class_code);
11677    --
11678    -- set accounting class
11679    --
11680    xla_ae_lines_pkg.SetAcctClass(
11681            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11682          , p_ae_header_id           => l_ae_header_id
11683          );
11684 
11685    --
11686    -- set rounding class
11687    --
11688    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11689                       'EXCHANGE_RATE_VARIANCE';
11690 
11691    --
11692    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11693    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11694    --
11695    -- bulk performance
11696    --
11697    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11698 
11699    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11700       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11701 
11702    -- 4955764
11703    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11704       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11705 
11706    -- 4458381 Public Sector Enh
11707    
11708    --
11709    -- set accounting attributes for the line type
11710    --
11711    l_entered_amt_idx := NULL;
11712    l_accted_amt_idx  := 24;
11713    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
11714    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11715    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
11716    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11717    l_rec_acct_attrs.array_num_value(2)  := 
11718 xla_ae_sources_pkg.GetSystemSourceNum(
11719    p_source_code           => 'XLA_EVENT_APPL_ID'
11720  , p_source_type_code      => 'Y'
11721  , p_source_application_id =>  602
11722 );
11723    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11724    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
11728    p_source_code           => 'XLA_ENTITY_CODE'
11725    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11726    l_rec_acct_attrs.array_char_value(4)  := 
11727 xla_ae_sources_pkg.GetSystemSourceChar(
11729  , p_source_type_code      => 'Y'
11730  , p_source_application_id =>  602
11731 );
11732    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11733    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
11734    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11735    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
11736    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
11737    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
11738    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
11739    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
11740    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11741    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
11742    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
11743    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
11744    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
11745    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
11746    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11747    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
11748    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
11749    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
11750    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
11751    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
11752    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
11753    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
11754    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
11755    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
11756    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
11757    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
11758    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
11759    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
11760    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
11761    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
11762    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
11763    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
11764    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
11765    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
11766    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
11767    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
11768    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
11769    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
11770    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
11771    l_rec_acct_attrs.array_num_value(24)  := p_source_21;
11772    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
11773    l_rec_acct_attrs.array_date_value(25)  := p_source_76;
11774    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
11775    l_rec_acct_attrs.array_char_value(26)  := p_source_77;
11776    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
11777    l_rec_acct_attrs.array_date_value(27)  := p_source_78;
11778    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
11779    l_rec_acct_attrs.array_char_value(28)  := p_source_79;
11780    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
11781    l_rec_acct_attrs.array_num_value(29)  := p_source_80;
11782    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
11783    l_rec_acct_attrs.array_num_value(30)  := p_source_81;
11784    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
11785    l_rec_acct_attrs.array_char_value(31)  := p_source_82;
11786    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
11787    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_83);
11788    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
11789    l_rec_acct_attrs.array_char_value(33)  := p_source_54;
11790    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
11791    l_rec_acct_attrs.array_num_value(34)  := p_source_84;
11792    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
11793    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
11794    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
11795    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
11796    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
11797    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
11798    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
11799    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
11800    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
11801    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
11802 
11803    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11804    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11805 
11806    ---------------------------------------------------------------------------------------------------------------
11807    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11808    ---------------------------------------------------------------------------------------------------------------
11812    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11809    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11810 
11811    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11813 
11814    IF xla_accounting_cache_pkg.GetValueChar
11815          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11816          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11817    AND l_bflow_method_code = 'PRIOR_ENTRY'
11818 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11819    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11820          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11821        )
11822    THEN
11823          xla_ae_lines_pkg.BflowUpgEntry
11824            (p_business_method_code    => l_bflow_method_code
11825            ,p_business_class_code     => l_bflow_class_code
11826            ,p_balance_type            => l_balance_type_code);
11827    ELSE
11828       NULL;
11829 -- No business flow processing for business flow method of NONE.
11830    END IF;
11831 
11832    --
11833    -- call analytical criteria
11834    --
11835    
11836    --
11837    -- call description
11838    --
11839    
11840 xla_ae_lines_pkg.SetLineDescription(
11841    p_ae_header_id => l_ae_header_id
11842   ,p_description  => Description_1 (
11843      p_application_id         => p_application_id
11844    , p_ae_header_id           => l_ae_header_id 
11845 , p_source_1 => p_source_1
11846    )
11847 );
11848 
11849 
11850    --
11851    -- call ADRs
11852    -- Bug 4922099
11853    --
11854    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11855         (NVL(l_actual_upg_option, 'N') = 'O') OR
11856         (NVL(l_enc_upg_option, 'N') = 'O')
11857       )
11858    THEN
11859    NULL;
11860    --
11861    --
11862    
11863   l_ccid := AcctDerRule_30(
11864            p_application_id           => p_application_id
11865          , p_ae_header_id             => l_ae_header_id 
11866 , p_source_15 => p_source_15
11867 , p_source_15_meaning => p_source_15_meaning
11868 , p_source_20 => p_source_20
11869 , p_source_21 => p_source_21
11870 , p_source_22 => p_source_22
11871 , p_source_22_meaning => p_source_22_meaning
11872 , p_source_23 => p_source_23
11873 , p_source_30 => p_source_30
11874 , p_source_47 => p_source_47
11875 , p_source_47_meaning => p_source_47_meaning
11876          , x_transaction_coa_id       => l_adr_transaction_coa_id
11877          , x_accounting_coa_id        => l_adr_accounting_coa_id
11878          , x_value_type_code          => l_adr_value_type_code
11879          , p_side                     => 'ALL'
11880    );
11881 
11882    xla_ae_lines_pkg.set_ccid(
11883     p_code_combination_id          => l_ccid
11884   , p_value_type_code              => l_adr_value_type_code
11885   , p_transaction_coa_id           => l_adr_transaction_coa_id
11886   , p_accounting_coa_id            => l_adr_accounting_coa_id
11887   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11888   , p_adr_type_code                => 'S'
11889   , p_component_type               => l_component_type
11890   , p_component_code               => l_component_code
11891   , p_component_type_code          => l_component_type_code
11892   , p_component_appl_id            => l_component_appl_id
11893   , p_amb_context_code             => l_amb_context_code
11894   , p_side                         => 'ALL'
11895   );
11896 
11897 
11898    l_segment := AcctDerRule_9(
11899            p_application_id           => p_application_id
11900          , p_ae_header_id             => l_ae_header_id 
11901 , p_source_15 => p_source_15
11902 , p_source_15_meaning => p_source_15_meaning
11903 , p_source_20 => p_source_20
11904 , p_source_22 => p_source_22
11905 , p_source_22_meaning => p_source_22_meaning
11906          , x_transaction_coa_id       => l_adr_transaction_coa_id
11907          , x_accounting_coa_id        => l_adr_accounting_coa_id
11908          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11909          , x_flex_value_set_id        => l_adr_flex_value_set_id
11910          , x_value_type_code          => l_adr_value_type_code
11911          , x_value_combination_id     => l_adr_value_combination_id
11912          , x_value_segment_code       => l_adr_value_segment_code
11913          , p_side                     => 'CREDIT'
11914          , p_override_seg_flag        => 'Y'
11915    );
11916 
11917    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11918 
11919       xla_ae_lines_pkg.set_segment(
11920           p_to_segment_code         => 'GL_ACCOUNT'
11921         , p_segment_value           => l_segment
11922         , p_from_segment_code       => l_adr_value_segment_code
11923         , p_from_combination_id     => l_adr_value_combination_id
11924         , p_value_type_code         => l_adr_value_type_code
11925         , p_transaction_coa_id      => l_adr_transaction_coa_id
11926         , p_accounting_coa_id       => l_adr_accounting_coa_id
11927         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11928         , p_flex_value_set_id       => l_adr_flex_value_set_id
11929         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11930         , p_adr_type_code           => 'S'
11931         , p_component_type          => l_component_type
11935         , p_amb_context_code        => l_amb_context_code
11932         , p_component_code          => l_component_code
11933         , p_component_type_code     => l_component_type_code
11934         , p_component_appl_id       => l_component_appl_id
11936         , p_entity_code             => 'AP_INVOICES'
11937         , p_event_class_code        => 'INVOICES'
11938         , p_side                    => 'CREDIT'
11939         );
11940 
11941   END IF;
11942 
11943    l_segment := AcctDerRule_10(
11944            p_application_id           => p_application_id
11945          , p_ae_header_id             => l_ae_header_id 
11946 , p_source_15 => p_source_15
11947 , p_source_15_meaning => p_source_15_meaning
11948 , p_source_22 => p_source_22
11949 , p_source_22_meaning => p_source_22_meaning
11950 , p_source_23 => p_source_23
11951          , x_transaction_coa_id       => l_adr_transaction_coa_id
11952          , x_accounting_coa_id        => l_adr_accounting_coa_id
11953          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11954          , x_flex_value_set_id        => l_adr_flex_value_set_id
11955          , x_value_type_code          => l_adr_value_type_code
11956          , x_value_combination_id     => l_adr_value_combination_id
11957          , x_value_segment_code       => l_adr_value_segment_code
11958          , p_side                     => 'DEBIT'
11959          , p_override_seg_flag        => 'Y'
11960    );
11961 
11962    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11963 
11964       xla_ae_lines_pkg.set_segment(
11965           p_to_segment_code         => 'GL_ACCOUNT'
11966         , p_segment_value           => l_segment
11967         , p_from_segment_code       => l_adr_value_segment_code
11968         , p_from_combination_id     => l_adr_value_combination_id
11969         , p_value_type_code         => l_adr_value_type_code
11970         , p_transaction_coa_id      => l_adr_transaction_coa_id
11971         , p_accounting_coa_id       => l_adr_accounting_coa_id
11972         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11973         , p_flex_value_set_id       => l_adr_flex_value_set_id
11974         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11975         , p_adr_type_code           => 'S'
11976         , p_component_type          => l_component_type
11977         , p_component_code          => l_component_code
11978         , p_component_type_code     => l_component_type_code
11979         , p_component_appl_id       => l_component_appl_id
11980         , p_amb_context_code        => l_amb_context_code
11981         , p_entity_code             => 'AP_INVOICES'
11982         , p_event_class_code        => 'INVOICES'
11983         , p_side                    => 'DEBIT'
11984         );
11985 
11986   END IF;
11987 
11988    l_segment := AcctDerRule_23(
11989            p_application_id           => p_application_id
11990          , p_ae_header_id             => l_ae_header_id 
11991 , p_source_15 => p_source_15
11992 , p_source_15_meaning => p_source_15_meaning
11993 , p_source_22 => p_source_22
11994 , p_source_22_meaning => p_source_22_meaning
11995 , p_source_30 => p_source_30
11996          , x_transaction_coa_id       => l_adr_transaction_coa_id
11997          , x_accounting_coa_id        => l_adr_accounting_coa_id
11998          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11999          , x_flex_value_set_id        => l_adr_flex_value_set_id
12000          , x_value_type_code          => l_adr_value_type_code
12001          , x_value_combination_id     => l_adr_value_combination_id
12002          , x_value_segment_code       => l_adr_value_segment_code
12003          , p_side                     => 'ALL'
12004          , p_override_seg_flag        => 'Y'
12005    );
12006 
12007    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12008 
12009       xla_ae_lines_pkg.set_segment(
12010           p_to_segment_code         => 'GL_BALANCING'
12011         , p_segment_value           => l_segment
12012         , p_from_segment_code       => l_adr_value_segment_code
12013         , p_from_combination_id     => l_adr_value_combination_id
12014         , p_value_type_code         => l_adr_value_type_code
12015         , p_transaction_coa_id      => l_adr_transaction_coa_id
12016         , p_accounting_coa_id       => l_adr_accounting_coa_id
12017         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12018         , p_flex_value_set_id       => l_adr_flex_value_set_id
12019         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12020         , p_adr_type_code           => 'S'
12021         , p_component_type          => l_component_type
12022         , p_component_code          => l_component_code
12023         , p_component_type_code     => l_component_type_code
12024         , p_component_appl_id       => l_component_appl_id
12025         , p_amb_context_code        => l_amb_context_code
12026         , p_entity_code             => 'AP_INVOICES'
12027         , p_event_class_code        => 'INVOICES'
12028         , p_side                    => 'ALL'
12029         );
12030 
12031   END IF;
12032 
12033    --
12034    --
12035    END IF;
12036    --
12037    -- Bug 4922099
12038    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12039           (NVL(l_enc_upg_option, 'N') = 'O')
12040         ) AND
12041         (l_bflow_method_code = 'PRIOR_ENTRY')
12042       )
12043    THEN
12044       IF
12045       --
12046       1 = 2
12047       --
12048       THEN
12049       xla_accounting_err_pkg.build_message
12053                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12050                                     (p_appli_s_name            => 'XLA'
12051                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12052                                     ,p_token_1                 => 'LINE_NUMBER'
12054                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12055                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12056                                                                              l_component_type
12057                                                                             ,l_component_code
12058                                                                             ,l_component_type_code
12059                                                                             ,l_component_appl_id
12060                                                                             ,l_amb_context_code
12061                                                                             ,l_entity_code
12062                                                                             ,l_event_class_code
12063                                                                            )
12064                                     ,p_token_3                 => 'OWNER'
12065                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12066                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12067                                                                           ,p_lookup_code    => l_component_type_code
12068                                                                          )
12069                                     ,p_token_4                 => 'PRODUCT_NAME'
12070                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12071                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12072                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12073                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12074                                     ,p_ae_header_id            =>  NULL
12075                                        );
12076 
12077         IF (C_LEVEL_ERROR>= g_log_level) THEN
12078                  trace
12079                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12080                       ,p_level    => C_LEVEL_ERROR
12081                       ,p_module   => l_log_module);
12082         END IF;
12083       END IF;
12084    END IF;
12085    --
12086    --
12087    ------------------------------------------------------------------------------------------------
12088    -- 4219869 Business Flow
12089    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12090    -- Prior Entry.  Currently, the following code is always generated.
12091    ------------------------------------------------------------------------------------------------
12092    XLA_AE_LINES_PKG.ValidateCurrentLine;
12093 
12094    ------------------------------------------------------------------------------------
12095    -- 4219869 Business Flow
12096    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12097    ------------------------------------------------------------------------------------
12098    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12099 
12100    ----------------------------------------------------------------------------------
12101    -- 4219869 Business Flow
12102    -- Update journal entry status -- Need to generate this within IF <condition>
12103    ----------------------------------------------------------------------------------
12104    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12105          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12106          ,p_balance_type_code => l_balance_type_code
12107          );
12108 
12109    -------------------------------------------------------------------------------------------
12110    -- 4262811 - Generate the Accrual Reversal lines
12111    -------------------------------------------------------------------------------------------
12112    BEGIN
12113       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12114                               (g_array_event(p_event_id).array_value_num('header_index'));
12115       IF l_acc_rev_flag IS NULL THEN
12116          l_acc_rev_flag := 'N';
12117       END IF;
12118    EXCEPTION
12119       WHEN OTHERS THEN
12120          l_acc_rev_flag := 'N';
12121    END;
12122    --
12123    IF (l_acc_rev_flag = 'Y') THEN
12124 
12125        -- 4645092  ------------------------------------------------------------------------------
12126        -- To allow MPA report to determine if it should generate report process
12127        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12128        ------------------------------------------------------------------------------------------
12129 
12130        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12131        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12132    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12133    -- call ADRs
12134    -- Bug 4922099
12135    --
12136    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12137         (NVL(l_actual_upg_option, 'N') = 'O') OR
12138         (NVL(l_enc_upg_option, 'N') = 'O')
12139       )
12140    THEN
12141    NULL;
12145   l_ccid := AcctDerRule_30(
12142    --
12143    --
12144    
12146            p_application_id           => p_application_id
12147          , p_ae_header_id             => l_ae_header_id 
12148 , p_source_15 => p_source_15
12149 , p_source_15_meaning => p_source_15_meaning
12150 , p_source_20 => p_source_20
12151 , p_source_21 => p_source_21
12152 , p_source_22 => p_source_22
12153 , p_source_22_meaning => p_source_22_meaning
12154 , p_source_23 => p_source_23
12155 , p_source_30 => p_source_30
12156 , p_source_47 => p_source_47
12157 , p_source_47_meaning => p_source_47_meaning
12158          , x_transaction_coa_id       => l_adr_transaction_coa_id
12159          , x_accounting_coa_id        => l_adr_accounting_coa_id
12160          , x_value_type_code          => l_adr_value_type_code
12161          , p_side                     => 'ALL'
12162    );
12163 
12164    xla_ae_lines_pkg.set_ccid(
12165     p_code_combination_id          => l_ccid
12166   , p_value_type_code              => l_adr_value_type_code
12167   , p_transaction_coa_id           => l_adr_transaction_coa_id
12168   , p_accounting_coa_id            => l_adr_accounting_coa_id
12169   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12170   , p_adr_type_code                => 'S'
12171   , p_component_type               => l_component_type
12172   , p_component_code               => l_component_code
12173   , p_component_type_code          => l_component_type_code
12174   , p_component_appl_id            => l_component_appl_id
12175   , p_amb_context_code             => l_amb_context_code
12176   , p_side                         => 'ALL'
12177   );
12178 
12179 
12180    l_segment := AcctDerRule_9(
12181            p_application_id           => p_application_id
12182          , p_ae_header_id             => l_ae_header_id 
12183 , p_source_15 => p_source_15
12184 , p_source_15_meaning => p_source_15_meaning
12185 , p_source_20 => p_source_20
12186 , p_source_22 => p_source_22
12187 , p_source_22_meaning => p_source_22_meaning
12188          , x_transaction_coa_id       => l_adr_transaction_coa_id
12189          , x_accounting_coa_id        => l_adr_accounting_coa_id
12190          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12191          , x_flex_value_set_id        => l_adr_flex_value_set_id
12192          , x_value_type_code          => l_adr_value_type_code
12193          , x_value_combination_id     => l_adr_value_combination_id
12194          , x_value_segment_code       => l_adr_value_segment_code
12195          , p_side                     => 'CREDIT'
12196          , p_override_seg_flag        => 'Y'
12197    );
12198 
12199    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12200 
12201       xla_ae_lines_pkg.set_segment(
12202           p_to_segment_code         => 'GL_ACCOUNT'
12203         , p_segment_value           => l_segment
12204         , p_from_segment_code       => l_adr_value_segment_code
12205         , p_from_combination_id     => l_adr_value_combination_id
12206         , p_value_type_code         => l_adr_value_type_code
12207         , p_transaction_coa_id      => l_adr_transaction_coa_id
12208         , p_accounting_coa_id       => l_adr_accounting_coa_id
12209         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12210         , p_flex_value_set_id       => l_adr_flex_value_set_id
12211         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12212         , p_adr_type_code           => 'S'
12213         , p_component_type          => l_component_type
12214         , p_component_code          => l_component_code
12215         , p_component_type_code     => l_component_type_code
12216         , p_component_appl_id       => l_component_appl_id
12217         , p_amb_context_code        => l_amb_context_code
12218         , p_entity_code             => 'AP_INVOICES'
12219         , p_event_class_code        => 'INVOICES'
12220         , p_side                    => 'CREDIT'
12221         );
12222 
12223   END IF;
12224 
12225    l_segment := AcctDerRule_10(
12226            p_application_id           => p_application_id
12227          , p_ae_header_id             => l_ae_header_id 
12228 , p_source_15 => p_source_15
12229 , p_source_15_meaning => p_source_15_meaning
12230 , p_source_22 => p_source_22
12231 , p_source_22_meaning => p_source_22_meaning
12232 , p_source_23 => p_source_23
12233          , x_transaction_coa_id       => l_adr_transaction_coa_id
12234          , x_accounting_coa_id        => l_adr_accounting_coa_id
12235          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12236          , x_flex_value_set_id        => l_adr_flex_value_set_id
12237          , x_value_type_code          => l_adr_value_type_code
12238          , x_value_combination_id     => l_adr_value_combination_id
12239          , x_value_segment_code       => l_adr_value_segment_code
12240          , p_side                     => 'DEBIT'
12241          , p_override_seg_flag        => 'Y'
12242    );
12243 
12244    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12245 
12246       xla_ae_lines_pkg.set_segment(
12247           p_to_segment_code         => 'GL_ACCOUNT'
12248         , p_segment_value           => l_segment
12249         , p_from_segment_code       => l_adr_value_segment_code
12250         , p_from_combination_id     => l_adr_value_combination_id
12251         , p_value_type_code         => l_adr_value_type_code
12252         , p_transaction_coa_id      => l_adr_transaction_coa_id
12253         , p_accounting_coa_id       => l_adr_accounting_coa_id
12257         , p_adr_type_code           => 'S'
12254         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12255         , p_flex_value_set_id       => l_adr_flex_value_set_id
12256         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12258         , p_component_type          => l_component_type
12259         , p_component_code          => l_component_code
12260         , p_component_type_code     => l_component_type_code
12261         , p_component_appl_id       => l_component_appl_id
12262         , p_amb_context_code        => l_amb_context_code
12263         , p_entity_code             => 'AP_INVOICES'
12264         , p_event_class_code        => 'INVOICES'
12265         , p_side                    => 'DEBIT'
12266         );
12267 
12268   END IF;
12269 
12270    l_segment := AcctDerRule_23(
12271            p_application_id           => p_application_id
12272          , p_ae_header_id             => l_ae_header_id 
12273 , p_source_15 => p_source_15
12274 , p_source_15_meaning => p_source_15_meaning
12275 , p_source_22 => p_source_22
12276 , p_source_22_meaning => p_source_22_meaning
12277 , p_source_30 => p_source_30
12278          , x_transaction_coa_id       => l_adr_transaction_coa_id
12279          , x_accounting_coa_id        => l_adr_accounting_coa_id
12280          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12281          , x_flex_value_set_id        => l_adr_flex_value_set_id
12282          , x_value_type_code          => l_adr_value_type_code
12283          , x_value_combination_id     => l_adr_value_combination_id
12284          , x_value_segment_code       => l_adr_value_segment_code
12285          , p_side                     => 'ALL'
12286          , p_override_seg_flag        => 'Y'
12287    );
12288 
12289    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12290 
12291       xla_ae_lines_pkg.set_segment(
12292           p_to_segment_code         => 'GL_BALANCING'
12293         , p_segment_value           => l_segment
12294         , p_from_segment_code       => l_adr_value_segment_code
12295         , p_from_combination_id     => l_adr_value_combination_id
12296         , p_value_type_code         => l_adr_value_type_code
12297         , p_transaction_coa_id      => l_adr_transaction_coa_id
12298         , p_accounting_coa_id       => l_adr_accounting_coa_id
12299         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12300         , p_flex_value_set_id       => l_adr_flex_value_set_id
12301         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12302         , p_adr_type_code           => 'S'
12303         , p_component_type          => l_component_type
12304         , p_component_code          => l_component_code
12305         , p_component_type_code     => l_component_type_code
12306         , p_component_appl_id       => l_component_appl_id
12307         , p_amb_context_code        => l_amb_context_code
12308         , p_entity_code             => 'AP_INVOICES'
12309         , p_event_class_code        => 'INVOICES'
12310         , p_side                    => 'ALL'
12311         );
12312 
12313   END IF;
12314 
12315    --
12316    --
12317    END IF;
12318 
12319        --
12320        -- Update the line information that should be overwritten
12321        --
12322        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12323                                          p_header_num   => 1);
12324        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12325 
12326        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12327 
12328        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12329           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12330        END IF;
12331 
12332       --
12333       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12334       --
12335       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12336           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12337       ELSE
12338           ---------------------------------------------------------------------------------------------------
12339           -- 4262811a Switch Sign
12340           ---------------------------------------------------------------------------------------------------
12341           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12342           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12343                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12344           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12345                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12346           -- 5132302
12347           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12348                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12349 
12350       END IF;
12351 
12352       -- 4955764
12353       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12354       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12355 
12356 
12357       XLA_AE_LINES_PKG.ValidateCurrentLine;
12358       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12362                ,p_balance_type_code => l_balance_type_code);
12359 
12360       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12361                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12363 
12364    END IF;
12365 
12366    -----------------------------------------------------------------------------------------
12367    -- 4262811 Multiperiod Accounting
12368    -----------------------------------------------------------------------------------------
12369      -- No MPA option is assigned.
12370 
12371 
12372 END IF;
12373 END IF;
12374 --
12375 
12376 --
12377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12378    trace
12379       (p_msg      => 'END of AcctLineType_52'
12380       ,p_level    => C_LEVEL_PROCEDURE
12381       ,p_module   => l_log_module);
12382 END IF;
12383 --
12384 EXCEPTION
12385   WHEN xla_exceptions_pkg.application_exception THEN
12386       RAISE;
12387   WHEN OTHERS THEN
12388        xla_exceptions_pkg.raise_message
12389            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_52');
12390 END AcctLineType_52;
12391 --
12392 
12393 ---------------------------------------
12394 --
12395 -- PRIVATE FUNCTION
12396 --         AcctLineType_53
12397 --
12398 ---------------------------------------
12399 PROCEDURE AcctLineType_53 (
12400   p_application_id        IN NUMBER
12401  ,p_event_id              IN NUMBER
12402  ,p_calculate_acctd_flag  IN VARCHAR2
12403  ,p_calculate_g_l_flag    IN VARCHAR2
12404  ,p_actual_flag           IN OUT VARCHAR2
12405  ,p_balance_type_code     OUT VARCHAR2
12406  ,p_gain_or_loss_ref      OUT VARCHAR2
12407  
12408 --Invoice Distribution Description
12409  , p_source_1            IN VARCHAR2
12410 --Automatic Offsets Value
12411  , p_source_15            IN VARCHAR2
12412  , p_source_15_meaning    IN VARCHAR2
12413 --Purchase Order Rate Variance Gain Account
12414  , p_source_20            IN NUMBER
12415 --Invoice Distribution Ledger Amount
12416  , p_source_21            IN NUMBER
12417 --Destination Type of the PO Distribution
12418  , p_source_22            IN VARCHAR2
12419  , p_source_22_meaning    IN VARCHAR2
12420 --Purchase Order Rate Variance Loss Account
12421  , p_source_23            IN NUMBER
12422 --Invoice Distribution Account
12423  , p_source_30            IN NUMBER
12424 --Invoice Distribution Type
12425  , p_source_33            IN VARCHAR2
12426  , p_source_33_meaning    IN VARCHAR2
12427 --Automatic Offsets Flag
12428  , p_source_47            IN VARCHAR2
12429  , p_source_47_meaning    IN VARCHAR2
12430 --Accounting Reversal Indicator
12431  , p_source_52            IN VARCHAR2
12432 --Distribution Link Type
12433  , p_source_54            IN VARCHAR2
12434 --Allocation to Main Distribution Identifier
12435  , p_source_56            IN NUMBER
12436 --Invoice Identifier
12437  , p_source_57            IN NUMBER
12438 --Invoice Distribution Identifier
12439  , p_source_63            IN NUMBER
12440 --Payables Encumbrance Upgrade Credit Account
12441  , p_source_64            IN NUMBER
12442 --Payables Encumbrance Upgrade Credit Amount
12443  , p_source_65            IN NUMBER
12444 --Invoice Currency Code
12445  , p_source_66            IN VARCHAR2
12446 --Payables Encumbrance Upgrade Credit Base Amount
12447  , p_source_67            IN NUMBER
12448 --Payables Encumbrance Upgrade Debit Account
12449  , p_source_68            IN NUMBER
12450 --Payables Encumbrance Upgrade Debit Amount
12451  , p_source_69            IN NUMBER
12452 --Payables Encumbrance Upgrade Debit Base Amount
12453  , p_source_70            IN NUMBER
12454 --Payables Encumbrance Upgrade Option
12455  , p_source_71            IN VARCHAR2
12456 --Deferred Accounting End Date
12457  , p_source_76            IN DATE
12458 --Deferred Accounting Option
12459  , p_source_77            IN VARCHAR2
12460 --Deferred Accounting Start Date
12461  , p_source_78            IN DATE
12462 --Override Accounted Amount Indicator
12463  , p_source_79            IN VARCHAR2
12464  , p_source_79_meaning    IN VARCHAR2
12465 --Invoice Supplier Identifier
12466  , p_source_80            IN NUMBER
12467 --Invoice Supplier Site Identifier
12468  , p_source_81            IN NUMBER
12469 --Third Party Type
12470  , p_source_82            IN VARCHAR2
12471 --Parent Reversal Identifier
12472  , p_source_83            IN NUMBER
12473 --Invoice Distribution Statistical Amount
12474  , p_source_84            IN NUMBER
12475 --Invoice Distribution Tax Line Identifier
12476  , p_source_85            IN NUMBER
12477 --Invoice Distribution Tax Distribution Identifier from Tax
12478  , p_source_86            IN NUMBER
12479 --Invoice Distribution Summary Tax Line Identifier
12480  , p_source_87            IN NUMBER
12481 --Payables Upgrade Credit Encumbrance Type Identifier
12482  , p_source_88            IN NUMBER
12483 --Payables Upgrade Debit Encumbrance Type Identifier
12484  , p_source_89            IN NUMBER
12485 --Business Flow Accounts Payable Application Identifier
12486  , p_source_90            IN NUMBER
12487 --Business Flow Invoice Distribution Type
12488  , p_source_91            IN VARCHAR2
12489 --Business Flow Invoice Entity Code
12490  , p_source_92            IN VARCHAR2
12491 --Business Flow Invoice Distribution Identifier
12492  , p_source_93            IN NUMBER
12493 --Business Flow Invoice Identifier
12494  , p_source_94            IN NUMBER
12495 )
12496 IS
12500 l_component_type_code         VARCHAR2(1);
12497 
12498 l_component_type              VARCHAR2(80);
12499 l_component_code              VARCHAR2(30);
12501 l_component_appl_id           INTEGER;
12502 l_amb_context_code            VARCHAR2(30);
12503 l_entity_code                 VARCHAR2(30);
12504 l_event_class_code            VARCHAR2(30);
12505 l_ae_header_id                NUMBER;
12506 l_event_type_code             VARCHAR2(30);
12507 l_line_definition_code        VARCHAR2(30);
12508 l_line_definition_owner_code  VARCHAR2(1);
12509 --
12510 -- adr variables
12511 l_segment                     VARCHAR2(30);
12512 l_ccid                        NUMBER;
12513 l_adr_transaction_coa_id      NUMBER;
12514 l_adr_accounting_coa_id       NUMBER;
12515 l_adr_flexfield_segment_code  VARCHAR2(30);
12516 l_adr_flex_value_set_id       NUMBER;
12517 l_adr_value_type_code         VARCHAR2(30);
12518 l_adr_value_combination_id    NUMBER;
12519 l_adr_value_segment_code      VARCHAR2(30);
12520 
12521 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12522 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12523 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12524 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12525 
12526 -- 4262811 Variables ------------------------------------------------------------------------------------------
12527 l_entered_amt_idx             NUMBER;
12528 l_accted_amt_idx              NUMBER;
12529 l_acc_rev_flag                VARCHAR2(1);
12530 l_accrual_line_num            NUMBER;
12531 l_tmp_amt                     NUMBER;
12532 l_acc_rev_natural_side_code   VARCHAR2(1);
12533 
12534 l_num_entries                 NUMBER;
12535 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12536 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12537 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12538 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12539 l_recog_line_1                NUMBER;
12540 l_recog_line_2                NUMBER;
12541 
12542 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12543 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12544 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12545 
12546 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12547 
12548 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12549 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12550 
12551 ---------------------------------------------------------------------------------------------------------------
12552 
12553 
12554 --
12555 -- bulk performance
12556 --
12557 l_balance_type_code           VARCHAR2(1);
12558 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12559 l_log_module                  VARCHAR2(240);
12560 
12561 --
12562 -- Upgrade strategy
12563 --
12564 l_actual_upg_option           VARCHAR2(1);
12565 l_enc_upg_option           VARCHAR2(1);
12566 
12567 --
12568 BEGIN
12569 --
12570 IF g_log_enabled THEN
12571       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
12572 END IF;
12573 --
12574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12575 
12576       trace
12577          (p_msg      => 'BEGIN of AcctLineType_53'
12578          ,p_level    => C_LEVEL_PROCEDURE
12579          ,p_module   => l_log_module);
12580 
12581 END IF;
12582 --
12583 l_component_type             := 'AMB_JLT';
12584 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY';
12585 l_component_type_code        := 'S';
12586 l_component_appl_id          :=  200;
12587 l_amb_context_code           := 'DEFAULT';
12588 l_entity_code                := 'AP_INVOICES';
12589 l_event_class_code           := 'PREPAYMENTS';
12590 l_event_type_code            := 'PREPAYMENTS_ALL';
12591 l_line_definition_owner_code := 'S';
12592 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
12593 --
12594 l_balance_type_code          := 'A';
12595 l_segment                     := NULL;
12596 l_ccid                        := NULL;
12597 l_adr_transaction_coa_id      := NULL;
12598 l_adr_accounting_coa_id       := NULL;
12599 l_adr_flexfield_segment_code  := NULL;
12600 l_adr_flex_value_set_id       := NULL;
12601 l_adr_value_type_code         := NULL;
12602 l_adr_value_combination_id    := NULL;
12603 l_adr_value_segment_code      := NULL;
12604 
12605 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12606 l_bflow_class_code           := '';    -- 4219869 Business Flow
12607 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12608 l_budgetary_control_flag     := 'N';
12609 
12610 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12611 l_bflow_applied_to_amt       := NULL; -- 5132302
12612 l_entered_amt_idx            := NULL;          -- 4262811
12613 l_accted_amt_idx             := NULL;          -- 4262811
12614 l_acc_rev_flag               := NULL;          -- 4262811
12615 l_accrual_line_num           := NULL;          -- 4262811
12616 l_tmp_amt                    := NULL;          -- 4262811
12617 --
12621   END IF;
12618 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12619             (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
12620                return;
12622   
12623 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12624     l_balance_type_code <> 'B' THEN
12625 IF NVL(p_source_33,'
12626 ') =  'ACCRUAL'
12627  THEN 
12628 
12629    --
12630    XLA_AE_LINES_PKG.SetNewLine;
12631 
12632    p_balance_type_code          := l_balance_type_code;
12633    -- set the flag so later we will know whether the gain loss line needs to be created
12634    
12635    IF(l_balance_type_code = 'A' ) THEN
12636      p_actual_flag :='G';
12637    END IF;
12638 
12639    --
12640    -- bulk performance
12641    --
12642    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12643                                       p_header_num   => 0); -- 4262811
12644    --
12645    -- set accounting line options
12646    --
12647    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12648            p_natural_side_code          => 'G'
12649          , p_gain_or_loss_flag          => 'N'
12650          , p_gl_transfer_mode_code      => 'S'
12651          , p_acct_entry_type_code       => 'A'
12652          , p_switch_side_flag           => ''
12653          , p_merge_duplicate_code       => 'A'
12654          );
12655    --
12656    l_acc_rev_natural_side_code := 'C';  -- 4262811
12657    -- 
12658    --
12659    -- set accounting line type info
12660    --
12661    xla_ae_lines_pkg.SetAcctLineType
12662       (p_component_type             => l_component_type
12663       ,p_event_type_code            => l_event_type_code
12664       ,p_line_definition_owner_code => l_line_definition_owner_code
12665       ,p_line_definition_code       => l_line_definition_code
12666       ,p_accounting_line_code       => l_component_code
12667       ,p_accounting_line_type_code  => l_component_type_code
12668       ,p_accounting_line_appl_id    => l_component_appl_id
12669       ,p_amb_context_code           => l_amb_context_code
12670       ,p_entity_code                => l_entity_code
12671       ,p_event_class_code           => l_event_class_code);
12672    --
12673    -- set accounting class
12674    --
12675    xla_ae_lines_pkg.SetAcctClass(
12676            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
12677          , p_ae_header_id           => l_ae_header_id
12678          );
12679 
12680    --
12681    -- set rounding class
12682    --
12683    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12684                       'EXCHANGE_RATE_VARIANCE';
12685 
12686    --
12687    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12688    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12689    --
12690    -- bulk performance
12691    --
12692    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12693 
12694    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12695       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12696 
12697    -- 4955764
12698    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12699       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12700 
12701    -- 4458381 Public Sector Enh
12702    
12703    --
12704    -- set accounting attributes for the line type
12705    --
12706    l_entered_amt_idx := NULL;
12707    l_accted_amt_idx  := 23;
12708    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
12709    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12710    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
12711    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12712    l_rec_acct_attrs.array_num_value(2)  := 
12713 xla_ae_sources_pkg.GetSystemSourceNum(
12714    p_source_code           => 'XLA_EVENT_APPL_ID'
12715  , p_source_type_code      => 'Y'
12716  , p_source_application_id =>  602
12717 );
12718    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12719    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
12720    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12721    l_rec_acct_attrs.array_char_value(4)  := 
12722 xla_ae_sources_pkg.GetSystemSourceChar(
12723    p_source_code           => 'XLA_ENTITY_CODE'
12724  , p_source_type_code      => 'Y'
12725  , p_source_application_id =>  602
12726 );
12727    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12728    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
12729    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12730    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
12731    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12732    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
12733    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12734    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
12735    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12739    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12736    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
12737    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12738    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
12740    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
12741    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12742    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
12743    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12744    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
12745    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12746    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
12747    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12748    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
12749    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12750    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
12751    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12752    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
12753    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12754    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
12755    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12756    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
12757    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12758    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
12759    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12760    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
12761    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12762    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
12763    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
12764    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
12765    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
12766    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
12767    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
12768    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
12769    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
12770    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
12771    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
12772    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
12773    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
12774    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
12775    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
12776    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
12777    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
12778    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
12779    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
12780    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
12781    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
12782    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
12783    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
12784    l_rec_acct_attrs.array_num_value(33)  := p_source_84;
12785    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
12786    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
12787    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
12788    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
12789    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
12790    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
12791    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
12792    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
12793    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
12794    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
12795 
12796    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12797    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12798 
12799    ---------------------------------------------------------------------------------------------------------------
12800    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12801    ---------------------------------------------------------------------------------------------------------------
12802    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12803 
12804    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12805    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12806 
12807    IF xla_accounting_cache_pkg.GetValueChar
12808          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12809          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12810    AND l_bflow_method_code = 'PRIOR_ENTRY'
12811 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12812    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12813          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12814        )
12815    THEN
12816          xla_ae_lines_pkg.BflowUpgEntry
12817            (p_business_method_code    => l_bflow_method_code
12818            ,p_business_class_code     => l_bflow_class_code
12819            ,p_balance_type            => l_balance_type_code);
12820    ELSE
12821       NULL;
12822 -- No business flow processing for business flow method of NONE.
12823    END IF;
12824 
12825    --
12829    --
12826    -- call analytical criteria
12827    --
12828    
12830    -- call description
12831    --
12832    
12833 xla_ae_lines_pkg.SetLineDescription(
12834    p_ae_header_id => l_ae_header_id
12835   ,p_description  => Description_1 (
12836      p_application_id         => p_application_id
12837    , p_ae_header_id           => l_ae_header_id 
12838 , p_source_1 => p_source_1
12839    )
12840 );
12841 
12842 
12843    --
12844    -- call ADRs
12845    -- Bug 4922099
12846    --
12847    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12848         (NVL(l_actual_upg_option, 'N') = 'O') OR
12849         (NVL(l_enc_upg_option, 'N') = 'O')
12850       )
12851    THEN
12852    NULL;
12853    --
12854    --
12855    
12856   l_ccid := AcctDerRule_30(
12857            p_application_id           => p_application_id
12858          , p_ae_header_id             => l_ae_header_id 
12859 , p_source_15 => p_source_15
12860 , p_source_15_meaning => p_source_15_meaning
12861 , p_source_20 => p_source_20
12862 , p_source_21 => p_source_21
12863 , p_source_22 => p_source_22
12864 , p_source_22_meaning => p_source_22_meaning
12865 , p_source_23 => p_source_23
12866 , p_source_30 => p_source_30
12867 , p_source_47 => p_source_47
12868 , p_source_47_meaning => p_source_47_meaning
12869          , x_transaction_coa_id       => l_adr_transaction_coa_id
12870          , x_accounting_coa_id        => l_adr_accounting_coa_id
12871          , x_value_type_code          => l_adr_value_type_code
12872          , p_side                     => 'ALL'
12873    );
12874 
12875    xla_ae_lines_pkg.set_ccid(
12876     p_code_combination_id          => l_ccid
12877   , p_value_type_code              => l_adr_value_type_code
12878   , p_transaction_coa_id           => l_adr_transaction_coa_id
12879   , p_accounting_coa_id            => l_adr_accounting_coa_id
12880   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12881   , p_adr_type_code                => 'S'
12882   , p_component_type               => l_component_type
12883   , p_component_code               => l_component_code
12884   , p_component_type_code          => l_component_type_code
12885   , p_component_appl_id            => l_component_appl_id
12886   , p_amb_context_code             => l_amb_context_code
12887   , p_side                         => 'ALL'
12888   );
12889 
12890 
12891    l_segment := AcctDerRule_9(
12892            p_application_id           => p_application_id
12893          , p_ae_header_id             => l_ae_header_id 
12894 , p_source_15 => p_source_15
12895 , p_source_15_meaning => p_source_15_meaning
12896 , p_source_20 => p_source_20
12897 , p_source_22 => p_source_22
12898 , p_source_22_meaning => p_source_22_meaning
12899          , x_transaction_coa_id       => l_adr_transaction_coa_id
12900          , x_accounting_coa_id        => l_adr_accounting_coa_id
12901          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12902          , x_flex_value_set_id        => l_adr_flex_value_set_id
12903          , x_value_type_code          => l_adr_value_type_code
12904          , x_value_combination_id     => l_adr_value_combination_id
12905          , x_value_segment_code       => l_adr_value_segment_code
12906          , p_side                     => 'CREDIT'
12907          , p_override_seg_flag        => 'Y'
12908    );
12909 
12910    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12911 
12912       xla_ae_lines_pkg.set_segment(
12913           p_to_segment_code         => 'GL_ACCOUNT'
12914         , p_segment_value           => l_segment
12915         , p_from_segment_code       => l_adr_value_segment_code
12916         , p_from_combination_id     => l_adr_value_combination_id
12917         , p_value_type_code         => l_adr_value_type_code
12918         , p_transaction_coa_id      => l_adr_transaction_coa_id
12919         , p_accounting_coa_id       => l_adr_accounting_coa_id
12920         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12921         , p_flex_value_set_id       => l_adr_flex_value_set_id
12922         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12923         , p_adr_type_code           => 'S'
12924         , p_component_type          => l_component_type
12925         , p_component_code          => l_component_code
12926         , p_component_type_code     => l_component_type_code
12927         , p_component_appl_id       => l_component_appl_id
12928         , p_amb_context_code        => l_amb_context_code
12929         , p_entity_code             => 'AP_INVOICES'
12930         , p_event_class_code        => 'PREPAYMENTS'
12931         , p_side                    => 'CREDIT'
12932         );
12933 
12934   END IF;
12935 
12936    l_segment := AcctDerRule_10(
12937            p_application_id           => p_application_id
12938          , p_ae_header_id             => l_ae_header_id 
12939 , p_source_15 => p_source_15
12940 , p_source_15_meaning => p_source_15_meaning
12941 , p_source_22 => p_source_22
12942 , p_source_22_meaning => p_source_22_meaning
12943 , p_source_23 => p_source_23
12944          , x_transaction_coa_id       => l_adr_transaction_coa_id
12945          , x_accounting_coa_id        => l_adr_accounting_coa_id
12946          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12947          , x_flex_value_set_id        => l_adr_flex_value_set_id
12951          , p_side                     => 'DEBIT'
12948          , x_value_type_code          => l_adr_value_type_code
12949          , x_value_combination_id     => l_adr_value_combination_id
12950          , x_value_segment_code       => l_adr_value_segment_code
12952          , p_override_seg_flag        => 'Y'
12953    );
12954 
12955    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12956 
12957       xla_ae_lines_pkg.set_segment(
12958           p_to_segment_code         => 'GL_ACCOUNT'
12959         , p_segment_value           => l_segment
12960         , p_from_segment_code       => l_adr_value_segment_code
12961         , p_from_combination_id     => l_adr_value_combination_id
12962         , p_value_type_code         => l_adr_value_type_code
12963         , p_transaction_coa_id      => l_adr_transaction_coa_id
12964         , p_accounting_coa_id       => l_adr_accounting_coa_id
12965         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12966         , p_flex_value_set_id       => l_adr_flex_value_set_id
12967         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12968         , p_adr_type_code           => 'S'
12969         , p_component_type          => l_component_type
12970         , p_component_code          => l_component_code
12971         , p_component_type_code     => l_component_type_code
12972         , p_component_appl_id       => l_component_appl_id
12973         , p_amb_context_code        => l_amb_context_code
12974         , p_entity_code             => 'AP_INVOICES'
12975         , p_event_class_code        => 'PREPAYMENTS'
12976         , p_side                    => 'DEBIT'
12977         );
12978 
12979   END IF;
12980 
12981    l_segment := AcctDerRule_23(
12982            p_application_id           => p_application_id
12983          , p_ae_header_id             => l_ae_header_id 
12984 , p_source_15 => p_source_15
12985 , p_source_15_meaning => p_source_15_meaning
12986 , p_source_22 => p_source_22
12987 , p_source_22_meaning => p_source_22_meaning
12988 , p_source_30 => p_source_30
12989          , x_transaction_coa_id       => l_adr_transaction_coa_id
12990          , x_accounting_coa_id        => l_adr_accounting_coa_id
12991          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12992          , x_flex_value_set_id        => l_adr_flex_value_set_id
12993          , x_value_type_code          => l_adr_value_type_code
12994          , x_value_combination_id     => l_adr_value_combination_id
12995          , x_value_segment_code       => l_adr_value_segment_code
12996          , p_side                     => 'ALL'
12997          , p_override_seg_flag        => 'Y'
12998    );
12999 
13000    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13001 
13002       xla_ae_lines_pkg.set_segment(
13003           p_to_segment_code         => 'GL_BALANCING'
13004         , p_segment_value           => l_segment
13005         , p_from_segment_code       => l_adr_value_segment_code
13006         , p_from_combination_id     => l_adr_value_combination_id
13007         , p_value_type_code         => l_adr_value_type_code
13008         , p_transaction_coa_id      => l_adr_transaction_coa_id
13009         , p_accounting_coa_id       => l_adr_accounting_coa_id
13010         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13011         , p_flex_value_set_id       => l_adr_flex_value_set_id
13012         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13013         , p_adr_type_code           => 'S'
13014         , p_component_type          => l_component_type
13015         , p_component_code          => l_component_code
13016         , p_component_type_code     => l_component_type_code
13017         , p_component_appl_id       => l_component_appl_id
13018         , p_amb_context_code        => l_amb_context_code
13019         , p_entity_code             => 'AP_INVOICES'
13020         , p_event_class_code        => 'PREPAYMENTS'
13021         , p_side                    => 'ALL'
13022         );
13023 
13024   END IF;
13025 
13026    --
13027    --
13028    END IF;
13029    --
13030    -- Bug 4922099
13031    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13032           (NVL(l_enc_upg_option, 'N') = 'O')
13033         ) AND
13034         (l_bflow_method_code = 'PRIOR_ENTRY')
13035       )
13036    THEN
13037       IF
13038       --
13039       1 = 2
13040       --
13041       THEN
13042       xla_accounting_err_pkg.build_message
13043                                     (p_appli_s_name            => 'XLA'
13044                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13045                                     ,p_token_1                 => 'LINE_NUMBER'
13046                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13047                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13048                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13049                                                                              l_component_type
13050                                                                             ,l_component_code
13051                                                                             ,l_component_type_code
13052                                                                             ,l_component_appl_id
13053                                                                             ,l_amb_context_code
13054                                                                             ,l_entity_code
13058                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13055                                                                             ,l_event_class_code
13056                                                                            )
13057                                     ,p_token_3                 => 'OWNER'
13059                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13060                                                                           ,p_lookup_code    => l_component_type_code
13061                                                                          )
13062                                     ,p_token_4                 => 'PRODUCT_NAME'
13063                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13064                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13065                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13066                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13067                                     ,p_ae_header_id            =>  NULL
13068                                        );
13069 
13070         IF (C_LEVEL_ERROR>= g_log_level) THEN
13071                  trace
13072                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13073                       ,p_level    => C_LEVEL_ERROR
13074                       ,p_module   => l_log_module);
13075         END IF;
13076       END IF;
13077    END IF;
13078    --
13079    --
13080    ------------------------------------------------------------------------------------------------
13081    -- 4219869 Business Flow
13082    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13083    -- Prior Entry.  Currently, the following code is always generated.
13084    ------------------------------------------------------------------------------------------------
13085    XLA_AE_LINES_PKG.ValidateCurrentLine;
13086 
13087    ------------------------------------------------------------------------------------
13088    -- 4219869 Business Flow
13089    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13090    ------------------------------------------------------------------------------------
13091    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13092 
13093    ----------------------------------------------------------------------------------
13094    -- 4219869 Business Flow
13095    -- Update journal entry status -- Need to generate this within IF <condition>
13096    ----------------------------------------------------------------------------------
13097    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13098          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13099          ,p_balance_type_code => l_balance_type_code
13100          );
13101 
13102    -------------------------------------------------------------------------------------------
13103    -- 4262811 - Generate the Accrual Reversal lines
13104    -------------------------------------------------------------------------------------------
13105    BEGIN
13106       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13107                               (g_array_event(p_event_id).array_value_num('header_index'));
13108       IF l_acc_rev_flag IS NULL THEN
13109          l_acc_rev_flag := 'N';
13110       END IF;
13111    EXCEPTION
13112       WHEN OTHERS THEN
13113          l_acc_rev_flag := 'N';
13114    END;
13115    --
13116    IF (l_acc_rev_flag = 'Y') THEN
13117 
13118        -- 4645092  ------------------------------------------------------------------------------
13119        -- To allow MPA report to determine if it should generate report process
13120        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13121        ------------------------------------------------------------------------------------------
13122 
13123        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13124        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13125    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13126    -- call ADRs
13127    -- Bug 4922099
13128    --
13129    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13130         (NVL(l_actual_upg_option, 'N') = 'O') OR
13131         (NVL(l_enc_upg_option, 'N') = 'O')
13132       )
13133    THEN
13134    NULL;
13135    --
13136    --
13137    
13138   l_ccid := AcctDerRule_30(
13139            p_application_id           => p_application_id
13140          , p_ae_header_id             => l_ae_header_id 
13141 , p_source_15 => p_source_15
13142 , p_source_15_meaning => p_source_15_meaning
13143 , p_source_20 => p_source_20
13144 , p_source_21 => p_source_21
13145 , p_source_22 => p_source_22
13146 , p_source_22_meaning => p_source_22_meaning
13147 , p_source_23 => p_source_23
13148 , p_source_30 => p_source_30
13149 , p_source_47 => p_source_47
13150 , p_source_47_meaning => p_source_47_meaning
13151          , x_transaction_coa_id       => l_adr_transaction_coa_id
13152          , x_accounting_coa_id        => l_adr_accounting_coa_id
13153          , x_value_type_code          => l_adr_value_type_code
13154          , p_side                     => 'ALL'
13155    );
13156 
13157    xla_ae_lines_pkg.set_ccid(
13158     p_code_combination_id          => l_ccid
13162   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13159   , p_value_type_code              => l_adr_value_type_code
13160   , p_transaction_coa_id           => l_adr_transaction_coa_id
13161   , p_accounting_coa_id            => l_adr_accounting_coa_id
13163   , p_adr_type_code                => 'S'
13164   , p_component_type               => l_component_type
13165   , p_component_code               => l_component_code
13166   , p_component_type_code          => l_component_type_code
13167   , p_component_appl_id            => l_component_appl_id
13168   , p_amb_context_code             => l_amb_context_code
13169   , p_side                         => 'ALL'
13170   );
13171 
13172 
13173    l_segment := AcctDerRule_9(
13174            p_application_id           => p_application_id
13175          , p_ae_header_id             => l_ae_header_id 
13176 , p_source_15 => p_source_15
13177 , p_source_15_meaning => p_source_15_meaning
13178 , p_source_20 => p_source_20
13179 , p_source_22 => p_source_22
13180 , p_source_22_meaning => p_source_22_meaning
13181          , x_transaction_coa_id       => l_adr_transaction_coa_id
13182          , x_accounting_coa_id        => l_adr_accounting_coa_id
13183          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13184          , x_flex_value_set_id        => l_adr_flex_value_set_id
13185          , x_value_type_code          => l_adr_value_type_code
13186          , x_value_combination_id     => l_adr_value_combination_id
13187          , x_value_segment_code       => l_adr_value_segment_code
13188          , p_side                     => 'CREDIT'
13189          , p_override_seg_flag        => 'Y'
13190    );
13191 
13192    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13193 
13194       xla_ae_lines_pkg.set_segment(
13195           p_to_segment_code         => 'GL_ACCOUNT'
13196         , p_segment_value           => l_segment
13197         , p_from_segment_code       => l_adr_value_segment_code
13198         , p_from_combination_id     => l_adr_value_combination_id
13199         , p_value_type_code         => l_adr_value_type_code
13200         , p_transaction_coa_id      => l_adr_transaction_coa_id
13201         , p_accounting_coa_id       => l_adr_accounting_coa_id
13202         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13203         , p_flex_value_set_id       => l_adr_flex_value_set_id
13204         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13205         , p_adr_type_code           => 'S'
13206         , p_component_type          => l_component_type
13207         , p_component_code          => l_component_code
13208         , p_component_type_code     => l_component_type_code
13209         , p_component_appl_id       => l_component_appl_id
13210         , p_amb_context_code        => l_amb_context_code
13211         , p_entity_code             => 'AP_INVOICES'
13212         , p_event_class_code        => 'PREPAYMENTS'
13213         , p_side                    => 'CREDIT'
13214         );
13215 
13216   END IF;
13217 
13218    l_segment := AcctDerRule_10(
13219            p_application_id           => p_application_id
13220          , p_ae_header_id             => l_ae_header_id 
13221 , p_source_15 => p_source_15
13222 , p_source_15_meaning => p_source_15_meaning
13223 , p_source_22 => p_source_22
13224 , p_source_22_meaning => p_source_22_meaning
13225 , p_source_23 => p_source_23
13226          , x_transaction_coa_id       => l_adr_transaction_coa_id
13227          , x_accounting_coa_id        => l_adr_accounting_coa_id
13228          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13229          , x_flex_value_set_id        => l_adr_flex_value_set_id
13230          , x_value_type_code          => l_adr_value_type_code
13231          , x_value_combination_id     => l_adr_value_combination_id
13232          , x_value_segment_code       => l_adr_value_segment_code
13233          , p_side                     => 'DEBIT'
13234          , p_override_seg_flag        => 'Y'
13235    );
13236 
13237    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13238 
13239       xla_ae_lines_pkg.set_segment(
13240           p_to_segment_code         => 'GL_ACCOUNT'
13241         , p_segment_value           => l_segment
13242         , p_from_segment_code       => l_adr_value_segment_code
13243         , p_from_combination_id     => l_adr_value_combination_id
13244         , p_value_type_code         => l_adr_value_type_code
13245         , p_transaction_coa_id      => l_adr_transaction_coa_id
13246         , p_accounting_coa_id       => l_adr_accounting_coa_id
13247         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13248         , p_flex_value_set_id       => l_adr_flex_value_set_id
13249         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13250         , p_adr_type_code           => 'S'
13251         , p_component_type          => l_component_type
13252         , p_component_code          => l_component_code
13253         , p_component_type_code     => l_component_type_code
13254         , p_component_appl_id       => l_component_appl_id
13255         , p_amb_context_code        => l_amb_context_code
13256         , p_entity_code             => 'AP_INVOICES'
13257         , p_event_class_code        => 'PREPAYMENTS'
13258         , p_side                    => 'DEBIT'
13259         );
13260 
13261   END IF;
13262 
13263    l_segment := AcctDerRule_23(
13264            p_application_id           => p_application_id
13265          , p_ae_header_id             => l_ae_header_id 
13266 , p_source_15 => p_source_15
13267 , p_source_15_meaning => p_source_15_meaning
13268 , p_source_22 => p_source_22
13269 , p_source_22_meaning => p_source_22_meaning
13270 , p_source_30 => p_source_30
13274          , x_flex_value_set_id        => l_adr_flex_value_set_id
13271          , x_transaction_coa_id       => l_adr_transaction_coa_id
13272          , x_accounting_coa_id        => l_adr_accounting_coa_id
13273          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13275          , x_value_type_code          => l_adr_value_type_code
13276          , x_value_combination_id     => l_adr_value_combination_id
13277          , x_value_segment_code       => l_adr_value_segment_code
13278          , p_side                     => 'ALL'
13279          , p_override_seg_flag        => 'Y'
13280    );
13281 
13282    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13283 
13284       xla_ae_lines_pkg.set_segment(
13285           p_to_segment_code         => 'GL_BALANCING'
13286         , p_segment_value           => l_segment
13287         , p_from_segment_code       => l_adr_value_segment_code
13288         , p_from_combination_id     => l_adr_value_combination_id
13289         , p_value_type_code         => l_adr_value_type_code
13290         , p_transaction_coa_id      => l_adr_transaction_coa_id
13291         , p_accounting_coa_id       => l_adr_accounting_coa_id
13292         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13293         , p_flex_value_set_id       => l_adr_flex_value_set_id
13294         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13295         , p_adr_type_code           => 'S'
13296         , p_component_type          => l_component_type
13297         , p_component_code          => l_component_code
13298         , p_component_type_code     => l_component_type_code
13299         , p_component_appl_id       => l_component_appl_id
13300         , p_amb_context_code        => l_amb_context_code
13301         , p_entity_code             => 'AP_INVOICES'
13302         , p_event_class_code        => 'PREPAYMENTS'
13303         , p_side                    => 'ALL'
13304         );
13305 
13306   END IF;
13307 
13308    --
13309    --
13310    END IF;
13311 
13312        --
13313        -- Update the line information that should be overwritten
13314        --
13315        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13316                                          p_header_num   => 1);
13317        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13318 
13319        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13320 
13321        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13322           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13323        END IF;
13324 
13325       --
13326       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13327       --
13328       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13329           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13330       ELSE
13331           ---------------------------------------------------------------------------------------------------
13332           -- 4262811a Switch Sign
13333           ---------------------------------------------------------------------------------------------------
13334           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13335           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13336                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13337           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13338                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13339           -- 5132302
13340           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13341                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13342 
13343       END IF;
13344 
13345       -- 4955764
13346       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13347       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13348 
13349 
13350       XLA_AE_LINES_PKG.ValidateCurrentLine;
13351       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13352 
13353       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13354                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13355                ,p_balance_type_code => l_balance_type_code);
13356 
13357    END IF;
13358 
13359    -----------------------------------------------------------------------------------------
13360    -- 4262811 Multiperiod Accounting
13361    -----------------------------------------------------------------------------------------
13362      -- No MPA option is assigned.
13363 
13364 
13365 END IF;
13366 END IF;
13367 --
13368 
13369 --
13370 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13371    trace
13372       (p_msg      => 'END of AcctLineType_53'
13373       ,p_level    => C_LEVEL_PROCEDURE
13374       ,p_module   => l_log_module);
13375 END IF;
13376 --
13377 EXCEPTION
13378   WHEN xla_exceptions_pkg.application_exception THEN
13379       RAISE;
13380   WHEN OTHERS THEN
13381        xla_exceptions_pkg.raise_message
13382            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_53');
13383 END AcctLineType_53;
13384 --
13385 
13386 ---------------------------------------
13390 --
13387 --
13388 -- PRIVATE FUNCTION
13389 --         AcctLineType_54
13391 ---------------------------------------
13392 PROCEDURE AcctLineType_54 (
13393   p_application_id        IN NUMBER
13394  ,p_event_id              IN NUMBER
13395  ,p_calculate_acctd_flag  IN VARCHAR2
13396  ,p_calculate_g_l_flag    IN VARCHAR2
13397  ,p_actual_flag           IN OUT VARCHAR2
13398  ,p_balance_type_code     OUT VARCHAR2
13399  ,p_gain_or_loss_ref      OUT VARCHAR2
13400  
13401 --Invoice Distribution Description
13402  , p_source_1            IN VARCHAR2
13403 --Automatic Offsets Value
13404  , p_source_15            IN VARCHAR2
13405  , p_source_15_meaning    IN VARCHAR2
13406 --Purchase Order Rate Variance Gain Account
13407  , p_source_20            IN NUMBER
13408 --Invoice Distribution Ledger Amount
13409  , p_source_21            IN NUMBER
13410 --Destination Type of the PO Distribution
13411  , p_source_22            IN VARCHAR2
13412  , p_source_22_meaning    IN VARCHAR2
13413 --Purchase Order Rate Variance Loss Account
13414  , p_source_23            IN NUMBER
13415 --Invoice Distribution Account
13416  , p_source_30            IN NUMBER
13417 --Invoice Distribution Type
13418  , p_source_33            IN VARCHAR2
13419  , p_source_33_meaning    IN VARCHAR2
13420 --Automatic Offsets Flag
13421  , p_source_47            IN VARCHAR2
13422  , p_source_47_meaning    IN VARCHAR2
13423 --Accounting Reversal Indicator
13424  , p_source_52            IN VARCHAR2
13425 --Distribution Link Type
13426  , p_source_54            IN VARCHAR2
13427 --Allocation to Main Distribution Identifier
13428  , p_source_56            IN NUMBER
13429 --Invoice Identifier
13430  , p_source_57            IN NUMBER
13431 --Invoice Distribution Identifier
13432  , p_source_63            IN NUMBER
13433 --Payables Encumbrance Upgrade Credit Account
13434  , p_source_64            IN NUMBER
13435 --Payables Encumbrance Upgrade Credit Amount
13436  , p_source_65            IN NUMBER
13437 --Invoice Currency Code
13438  , p_source_66            IN VARCHAR2
13439 --Payables Encumbrance Upgrade Credit Base Amount
13440  , p_source_67            IN NUMBER
13441 --Payables Encumbrance Upgrade Debit Account
13442  , p_source_68            IN NUMBER
13443 --Payables Encumbrance Upgrade Debit Amount
13444  , p_source_69            IN NUMBER
13445 --Payables Encumbrance Upgrade Debit Base Amount
13446  , p_source_70            IN NUMBER
13447 --Payables Encumbrance Upgrade Option
13448  , p_source_71            IN VARCHAR2
13449 --Deferred Accounting End Date
13450  , p_source_76            IN DATE
13451 --Deferred Accounting Option
13452  , p_source_77            IN VARCHAR2
13453 --Deferred Accounting Start Date
13454  , p_source_78            IN DATE
13455 --Override Accounted Amount Indicator
13456  , p_source_79            IN VARCHAR2
13457  , p_source_79_meaning    IN VARCHAR2
13458 --Invoice Supplier Identifier
13459  , p_source_80            IN NUMBER
13460 --Invoice Supplier Site Identifier
13461  , p_source_81            IN NUMBER
13462 --Third Party Type
13463  , p_source_82            IN VARCHAR2
13464 --Parent Reversal Identifier
13465  , p_source_83            IN NUMBER
13466 --Invoice Distribution Statistical Amount
13467  , p_source_84            IN NUMBER
13468 --Invoice Distribution Tax Line Identifier
13469  , p_source_85            IN NUMBER
13470 --Invoice Distribution Tax Distribution Identifier from Tax
13471  , p_source_86            IN NUMBER
13472 --Invoice Distribution Summary Tax Line Identifier
13473  , p_source_87            IN NUMBER
13474 --Payables Upgrade Credit Encumbrance Type Identifier
13475  , p_source_88            IN NUMBER
13476 --Payables Upgrade Debit Encumbrance Type Identifier
13477  , p_source_89            IN NUMBER
13478 --Business Flow Accounts Payable Application Identifier
13479  , p_source_90            IN NUMBER
13480 --Business Flow Invoice Distribution Type
13481  , p_source_91            IN VARCHAR2
13482 --Business Flow Invoice Entity Code
13483  , p_source_92            IN VARCHAR2
13484 --Business Flow Invoice Distribution Identifier
13485  , p_source_93            IN NUMBER
13486 --Business Flow Invoice Identifier
13487  , p_source_94            IN NUMBER
13488 --Accrue on Receipt Option
13489  , p_source_95            IN VARCHAR2
13490  , p_source_95_meaning    IN VARCHAR2
13491 )
13492 IS
13493 
13494 l_component_type              VARCHAR2(80);
13495 l_component_code              VARCHAR2(30);
13496 l_component_type_code         VARCHAR2(1);
13497 l_component_appl_id           INTEGER;
13498 l_amb_context_code            VARCHAR2(30);
13499 l_entity_code                 VARCHAR2(30);
13500 l_event_class_code            VARCHAR2(30);
13501 l_ae_header_id                NUMBER;
13502 l_event_type_code             VARCHAR2(30);
13503 l_line_definition_code        VARCHAR2(30);
13504 l_line_definition_owner_code  VARCHAR2(1);
13505 --
13506 -- adr variables
13507 l_segment                     VARCHAR2(30);
13508 l_ccid                        NUMBER;
13509 l_adr_transaction_coa_id      NUMBER;
13510 l_adr_accounting_coa_id       NUMBER;
13511 l_adr_flexfield_segment_code  VARCHAR2(30);
13512 l_adr_flex_value_set_id       NUMBER;
13513 l_adr_value_type_code         VARCHAR2(30);
13514 l_adr_value_combination_id    NUMBER;
13515 l_adr_value_segment_code      VARCHAR2(30);
13516 
13517 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13521 
13518 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13519 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13520 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13522 -- 4262811 Variables ------------------------------------------------------------------------------------------
13523 l_entered_amt_idx             NUMBER;
13524 l_accted_amt_idx              NUMBER;
13525 l_acc_rev_flag                VARCHAR2(1);
13526 l_accrual_line_num            NUMBER;
13527 l_tmp_amt                     NUMBER;
13528 l_acc_rev_natural_side_code   VARCHAR2(1);
13529 
13530 l_num_entries                 NUMBER;
13531 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13532 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13533 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13534 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13535 l_recog_line_1                NUMBER;
13536 l_recog_line_2                NUMBER;
13537 
13538 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13539 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13540 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13541 
13542 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13543 
13544 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13545 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13546 
13547 ---------------------------------------------------------------------------------------------------------------
13548 
13549 
13550 --
13551 -- bulk performance
13552 --
13553 l_balance_type_code           VARCHAR2(1);
13554 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13555 l_log_module                  VARCHAR2(240);
13556 
13557 --
13558 -- Upgrade strategy
13559 --
13560 l_actual_upg_option           VARCHAR2(1);
13561 l_enc_upg_option           VARCHAR2(1);
13562 
13563 --
13564 BEGIN
13565 --
13566 IF g_log_enabled THEN
13567       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
13568 END IF;
13569 --
13570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13571 
13572       trace
13573          (p_msg      => 'BEGIN of AcctLineType_54'
13574          ,p_level    => C_LEVEL_PROCEDURE
13575          ,p_module   => l_log_module);
13576 
13577 END IF;
13578 --
13579 l_component_type             := 'AMB_JLT';
13580 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CM';
13581 l_component_type_code        := 'S';
13582 l_component_appl_id          :=  200;
13583 l_amb_context_code           := 'DEFAULT';
13584 l_entity_code                := 'AP_INVOICES';
13585 l_event_class_code           := 'CREDIT MEMOS';
13586 l_event_type_code            := 'CREDIT MEMOS_ALL';
13587 l_line_definition_owner_code := 'S';
13588 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
13589 --
13590 l_balance_type_code          := 'A';
13591 l_segment                     := NULL;
13592 l_ccid                        := NULL;
13593 l_adr_transaction_coa_id      := NULL;
13594 l_adr_accounting_coa_id       := NULL;
13595 l_adr_flexfield_segment_code  := NULL;
13596 l_adr_flex_value_set_id       := NULL;
13597 l_adr_value_type_code         := NULL;
13598 l_adr_value_combination_id    := NULL;
13599 l_adr_value_segment_code      := NULL;
13600 
13601 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13602 l_bflow_class_code           := '';    -- 4219869 Business Flow
13603 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13604 l_budgetary_control_flag     := 'N';
13605 
13606 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13607 l_bflow_applied_to_amt       := NULL; -- 5132302
13608 l_entered_amt_idx            := NULL;          -- 4262811
13609 l_accted_amt_idx             := NULL;          -- 4262811
13610 l_acc_rev_flag               := NULL;          -- 4262811
13611 l_accrual_line_num           := NULL;          -- 4262811
13612 l_tmp_amt                    := NULL;          -- 4262811
13613 --
13614 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13615             (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
13616                return;
13617   END IF;
13618   
13619 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13620     l_balance_type_code <> 'B' THEN
13621 IF NVL(p_source_33,'
13622 ') =  'NONREC_TAX' AND 
13623 NVL(p_source_95,'
13624 ') =  'Y'
13625  THEN 
13626 
13627    --
13628    XLA_AE_LINES_PKG.SetNewLine;
13629 
13630    p_balance_type_code          := l_balance_type_code;
13631    -- set the flag so later we will know whether the gain loss line needs to be created
13632    
13633    IF(l_balance_type_code = 'A' ) THEN
13634      p_actual_flag :='G';
13635    END IF;
13636 
13637    --
13638    -- bulk performance
13639    --
13640    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13641                                       p_header_num   => 0); -- 4262811
13642    --
13643    -- set accounting line options
13644    --
13645    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13649          , p_acct_entry_type_code       => 'A'
13646            p_natural_side_code          => 'G'
13647          , p_gain_or_loss_flag          => 'N'
13648          , p_gl_transfer_mode_code      => 'S'
13650          , p_switch_side_flag           => ''
13651          , p_merge_duplicate_code       => 'A'
13652          );
13653    --
13654    l_acc_rev_natural_side_code := 'C';  -- 4262811
13655    -- 
13656    --
13657    -- set accounting line type info
13658    --
13659    xla_ae_lines_pkg.SetAcctLineType
13660       (p_component_type             => l_component_type
13661       ,p_event_type_code            => l_event_type_code
13662       ,p_line_definition_owner_code => l_line_definition_owner_code
13663       ,p_line_definition_code       => l_line_definition_code
13664       ,p_accounting_line_code       => l_component_code
13665       ,p_accounting_line_type_code  => l_component_type_code
13666       ,p_accounting_line_appl_id    => l_component_appl_id
13667       ,p_amb_context_code           => l_amb_context_code
13668       ,p_entity_code                => l_entity_code
13669       ,p_event_class_code           => l_event_class_code);
13670    --
13671    -- set accounting class
13672    --
13673    xla_ae_lines_pkg.SetAcctClass(
13674            p_accounting_class_code  => 'TERV'
13675          , p_ae_header_id           => l_ae_header_id
13676          );
13677 
13678    --
13679    -- set rounding class
13680    --
13681    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13682                       'TERV';
13683 
13684    --
13685    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13686    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13687    --
13688    -- bulk performance
13689    --
13690    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13691 
13692    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13693       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13694 
13695    -- 4955764
13696    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13697       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13698 
13699    -- 4458381 Public Sector Enh
13700    
13701    --
13702    -- set accounting attributes for the line type
13703    --
13704    l_entered_amt_idx := NULL;
13705    l_accted_amt_idx  := 23;
13706    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
13707    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13708    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
13709    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13710    l_rec_acct_attrs.array_num_value(2)  := 
13711 xla_ae_sources_pkg.GetSystemSourceNum(
13712    p_source_code           => 'XLA_EVENT_APPL_ID'
13713  , p_source_type_code      => 'Y'
13714  , p_source_application_id =>  602
13715 );
13716    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13717    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
13718    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13719    l_rec_acct_attrs.array_char_value(4)  := 
13720 xla_ae_sources_pkg.GetSystemSourceChar(
13721    p_source_code           => 'XLA_ENTITY_CODE'
13722  , p_source_type_code      => 'Y'
13723  , p_source_application_id =>  602
13724 );
13725    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13726    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
13727    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13728    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
13729    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13730    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
13731    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13732    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
13733    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13734    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
13735    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13736    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
13737    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13738    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
13739    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13740    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
13741    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13742    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
13743    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13744    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
13745    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13746    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
13747    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13748    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
13749    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13750    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
13751    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13752    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
13756    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
13753    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13754    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
13755    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13757    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13758    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
13759    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13760    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
13761    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
13762    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
13763    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
13764    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
13765    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
13766    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
13767    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
13768    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
13769    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
13770    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
13771    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
13772    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
13773    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
13774    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
13775    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
13776    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
13777    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
13778    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
13779    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
13780    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
13781    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
13782    l_rec_acct_attrs.array_num_value(33)  := p_source_84;
13783    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
13784    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
13785    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
13786    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
13787    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
13788    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
13789    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
13790    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
13791    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
13792    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
13793 
13794    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13795    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13796 
13797    ---------------------------------------------------------------------------------------------------------------
13798    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13799    ---------------------------------------------------------------------------------------------------------------
13800    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13801 
13802    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13803    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13804 
13805    IF xla_accounting_cache_pkg.GetValueChar
13806          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13807          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13808    AND l_bflow_method_code = 'PRIOR_ENTRY'
13809 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13810    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13811          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13812        )
13813    THEN
13814          xla_ae_lines_pkg.BflowUpgEntry
13815            (p_business_method_code    => l_bflow_method_code
13816            ,p_business_class_code     => l_bflow_class_code
13817            ,p_balance_type            => l_balance_type_code);
13818    ELSE
13819       NULL;
13820 -- No business flow processing for business flow method of NONE.
13821    END IF;
13822 
13823    --
13824    -- call analytical criteria
13825    --
13826    
13827    --
13828    -- call description
13829    --
13830    
13831 xla_ae_lines_pkg.SetLineDescription(
13832    p_ae_header_id => l_ae_header_id
13833   ,p_description  => Description_1 (
13834      p_application_id         => p_application_id
13835    , p_ae_header_id           => l_ae_header_id 
13836 , p_source_1 => p_source_1
13837    )
13838 );
13839 
13840 
13841    --
13842    -- call ADRs
13843    -- Bug 4922099
13844    --
13845    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13846         (NVL(l_actual_upg_option, 'N') = 'O') OR
13847         (NVL(l_enc_upg_option, 'N') = 'O')
13848       )
13849    THEN
13850    NULL;
13851    --
13852    --
13853    
13854   l_ccid := AcctDerRule_30(
13855            p_application_id           => p_application_id
13856          , p_ae_header_id             => l_ae_header_id 
13857 , p_source_15 => p_source_15
13858 , p_source_15_meaning => p_source_15_meaning
13859 , p_source_20 => p_source_20
13860 , p_source_21 => p_source_21
13861 , p_source_22 => p_source_22
13865 , p_source_47 => p_source_47
13862 , p_source_22_meaning => p_source_22_meaning
13863 , p_source_23 => p_source_23
13864 , p_source_30 => p_source_30
13866 , p_source_47_meaning => p_source_47_meaning
13867          , x_transaction_coa_id       => l_adr_transaction_coa_id
13868          , x_accounting_coa_id        => l_adr_accounting_coa_id
13869          , x_value_type_code          => l_adr_value_type_code
13870          , p_side                     => 'ALL'
13871    );
13872 
13873    xla_ae_lines_pkg.set_ccid(
13874     p_code_combination_id          => l_ccid
13875   , p_value_type_code              => l_adr_value_type_code
13876   , p_transaction_coa_id           => l_adr_transaction_coa_id
13877   , p_accounting_coa_id            => l_adr_accounting_coa_id
13878   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13879   , p_adr_type_code                => 'S'
13880   , p_component_type               => l_component_type
13881   , p_component_code               => l_component_code
13882   , p_component_type_code          => l_component_type_code
13883   , p_component_appl_id            => l_component_appl_id
13884   , p_amb_context_code             => l_amb_context_code
13885   , p_side                         => 'ALL'
13886   );
13887 
13888 
13889    l_segment := AcctDerRule_9(
13890            p_application_id           => p_application_id
13891          , p_ae_header_id             => l_ae_header_id 
13892 , p_source_15 => p_source_15
13893 , p_source_15_meaning => p_source_15_meaning
13894 , p_source_20 => p_source_20
13895 , p_source_22 => p_source_22
13896 , p_source_22_meaning => p_source_22_meaning
13897          , x_transaction_coa_id       => l_adr_transaction_coa_id
13898          , x_accounting_coa_id        => l_adr_accounting_coa_id
13899          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13900          , x_flex_value_set_id        => l_adr_flex_value_set_id
13901          , x_value_type_code          => l_adr_value_type_code
13902          , x_value_combination_id     => l_adr_value_combination_id
13903          , x_value_segment_code       => l_adr_value_segment_code
13904          , p_side                     => 'DEBIT'
13905          , p_override_seg_flag        => 'Y'
13906    );
13907 
13908    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13909 
13910       xla_ae_lines_pkg.set_segment(
13911           p_to_segment_code         => 'GL_ACCOUNT'
13912         , p_segment_value           => l_segment
13913         , p_from_segment_code       => l_adr_value_segment_code
13914         , p_from_combination_id     => l_adr_value_combination_id
13915         , p_value_type_code         => l_adr_value_type_code
13916         , p_transaction_coa_id      => l_adr_transaction_coa_id
13917         , p_accounting_coa_id       => l_adr_accounting_coa_id
13918         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13919         , p_flex_value_set_id       => l_adr_flex_value_set_id
13920         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13921         , p_adr_type_code           => 'S'
13922         , p_component_type          => l_component_type
13923         , p_component_code          => l_component_code
13924         , p_component_type_code     => l_component_type_code
13925         , p_component_appl_id       => l_component_appl_id
13926         , p_amb_context_code        => l_amb_context_code
13927         , p_entity_code             => 'AP_INVOICES'
13928         , p_event_class_code        => 'CREDIT MEMOS'
13929         , p_side                    => 'DEBIT'
13930         );
13931 
13932   END IF;
13933 
13934    l_segment := AcctDerRule_10(
13935            p_application_id           => p_application_id
13936          , p_ae_header_id             => l_ae_header_id 
13937 , p_source_15 => p_source_15
13938 , p_source_15_meaning => p_source_15_meaning
13939 , p_source_22 => p_source_22
13940 , p_source_22_meaning => p_source_22_meaning
13941 , p_source_23 => p_source_23
13942          , x_transaction_coa_id       => l_adr_transaction_coa_id
13943          , x_accounting_coa_id        => l_adr_accounting_coa_id
13944          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13945          , x_flex_value_set_id        => l_adr_flex_value_set_id
13946          , x_value_type_code          => l_adr_value_type_code
13947          , x_value_combination_id     => l_adr_value_combination_id
13948          , x_value_segment_code       => l_adr_value_segment_code
13949          , p_side                     => 'CREDIT'
13950          , p_override_seg_flag        => 'Y'
13951    );
13952 
13953    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13954 
13955       xla_ae_lines_pkg.set_segment(
13956           p_to_segment_code         => 'GL_ACCOUNT'
13957         , p_segment_value           => l_segment
13958         , p_from_segment_code       => l_adr_value_segment_code
13959         , p_from_combination_id     => l_adr_value_combination_id
13960         , p_value_type_code         => l_adr_value_type_code
13961         , p_transaction_coa_id      => l_adr_transaction_coa_id
13962         , p_accounting_coa_id       => l_adr_accounting_coa_id
13963         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13964         , p_flex_value_set_id       => l_adr_flex_value_set_id
13965         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13966         , p_adr_type_code           => 'S'
13967         , p_component_type          => l_component_type
13968         , p_component_code          => l_component_code
13972         , p_entity_code             => 'AP_INVOICES'
13969         , p_component_type_code     => l_component_type_code
13970         , p_component_appl_id       => l_component_appl_id
13971         , p_amb_context_code        => l_amb_context_code
13973         , p_event_class_code        => 'CREDIT MEMOS'
13974         , p_side                    => 'CREDIT'
13975         );
13976 
13977   END IF;
13978 
13979    l_segment := AcctDerRule_23(
13980            p_application_id           => p_application_id
13981          , p_ae_header_id             => l_ae_header_id 
13982 , p_source_15 => p_source_15
13983 , p_source_15_meaning => p_source_15_meaning
13984 , p_source_22 => p_source_22
13985 , p_source_22_meaning => p_source_22_meaning
13986 , p_source_30 => p_source_30
13987          , x_transaction_coa_id       => l_adr_transaction_coa_id
13988          , x_accounting_coa_id        => l_adr_accounting_coa_id
13989          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13990          , x_flex_value_set_id        => l_adr_flex_value_set_id
13991          , x_value_type_code          => l_adr_value_type_code
13992          , x_value_combination_id     => l_adr_value_combination_id
13993          , x_value_segment_code       => l_adr_value_segment_code
13994          , p_side                     => 'ALL'
13995          , p_override_seg_flag        => 'Y'
13996    );
13997 
13998    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13999 
14000       xla_ae_lines_pkg.set_segment(
14001           p_to_segment_code         => 'GL_BALANCING'
14002         , p_segment_value           => l_segment
14003         , p_from_segment_code       => l_adr_value_segment_code
14004         , p_from_combination_id     => l_adr_value_combination_id
14005         , p_value_type_code         => l_adr_value_type_code
14006         , p_transaction_coa_id      => l_adr_transaction_coa_id
14007         , p_accounting_coa_id       => l_adr_accounting_coa_id
14008         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14009         , p_flex_value_set_id       => l_adr_flex_value_set_id
14010         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14011         , p_adr_type_code           => 'S'
14012         , p_component_type          => l_component_type
14013         , p_component_code          => l_component_code
14014         , p_component_type_code     => l_component_type_code
14015         , p_component_appl_id       => l_component_appl_id
14016         , p_amb_context_code        => l_amb_context_code
14017         , p_entity_code             => 'AP_INVOICES'
14018         , p_event_class_code        => 'CREDIT MEMOS'
14019         , p_side                    => 'ALL'
14020         );
14021 
14022   END IF;
14023 
14024    --
14025    --
14026    END IF;
14027    --
14028    -- Bug 4922099
14029    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14030           (NVL(l_enc_upg_option, 'N') = 'O')
14031         ) AND
14032         (l_bflow_method_code = 'PRIOR_ENTRY')
14033       )
14034    THEN
14035       IF
14036       --
14037       1 = 2
14038       --
14039       THEN
14040       xla_accounting_err_pkg.build_message
14041                                     (p_appli_s_name            => 'XLA'
14042                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14043                                     ,p_token_1                 => 'LINE_NUMBER'
14044                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14045                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14046                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14047                                                                              l_component_type
14048                                                                             ,l_component_code
14049                                                                             ,l_component_type_code
14050                                                                             ,l_component_appl_id
14051                                                                             ,l_amb_context_code
14052                                                                             ,l_entity_code
14053                                                                             ,l_event_class_code
14054                                                                            )
14055                                     ,p_token_3                 => 'OWNER'
14056                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14057                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14058                                                                           ,p_lookup_code    => l_component_type_code
14059                                                                          )
14060                                     ,p_token_4                 => 'PRODUCT_NAME'
14061                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14062                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14063                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14064                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14068         IF (C_LEVEL_ERROR>= g_log_level) THEN
14065                                     ,p_ae_header_id            =>  NULL
14066                                        );
14067 
14069                  trace
14070                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14071                       ,p_level    => C_LEVEL_ERROR
14072                       ,p_module   => l_log_module);
14073         END IF;
14074       END IF;
14075    END IF;
14076    --
14077    --
14078    ------------------------------------------------------------------------------------------------
14079    -- 4219869 Business Flow
14080    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14081    -- Prior Entry.  Currently, the following code is always generated.
14082    ------------------------------------------------------------------------------------------------
14083    XLA_AE_LINES_PKG.ValidateCurrentLine;
14084 
14085    ------------------------------------------------------------------------------------
14086    -- 4219869 Business Flow
14087    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14088    ------------------------------------------------------------------------------------
14089    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14090 
14091    ----------------------------------------------------------------------------------
14092    -- 4219869 Business Flow
14093    -- Update journal entry status -- Need to generate this within IF <condition>
14094    ----------------------------------------------------------------------------------
14095    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14096          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14097          ,p_balance_type_code => l_balance_type_code
14098          );
14099 
14100    -------------------------------------------------------------------------------------------
14101    -- 4262811 - Generate the Accrual Reversal lines
14102    -------------------------------------------------------------------------------------------
14103    BEGIN
14104       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14105                               (g_array_event(p_event_id).array_value_num('header_index'));
14106       IF l_acc_rev_flag IS NULL THEN
14107          l_acc_rev_flag := 'N';
14108       END IF;
14109    EXCEPTION
14110       WHEN OTHERS THEN
14111          l_acc_rev_flag := 'N';
14112    END;
14113    --
14114    IF (l_acc_rev_flag = 'Y') THEN
14115 
14116        -- 4645092  ------------------------------------------------------------------------------
14117        -- To allow MPA report to determine if it should generate report process
14118        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14119        ------------------------------------------------------------------------------------------
14120 
14121        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14122        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14123    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14124    -- call ADRs
14125    -- Bug 4922099
14126    --
14127    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14128         (NVL(l_actual_upg_option, 'N') = 'O') OR
14129         (NVL(l_enc_upg_option, 'N') = 'O')
14130       )
14131    THEN
14132    NULL;
14133    --
14134    --
14135    
14136   l_ccid := AcctDerRule_30(
14137            p_application_id           => p_application_id
14138          , p_ae_header_id             => l_ae_header_id 
14139 , p_source_15 => p_source_15
14140 , p_source_15_meaning => p_source_15_meaning
14141 , p_source_20 => p_source_20
14142 , p_source_21 => p_source_21
14143 , p_source_22 => p_source_22
14144 , p_source_22_meaning => p_source_22_meaning
14145 , p_source_23 => p_source_23
14146 , p_source_30 => p_source_30
14147 , p_source_47 => p_source_47
14148 , p_source_47_meaning => p_source_47_meaning
14149          , x_transaction_coa_id       => l_adr_transaction_coa_id
14150          , x_accounting_coa_id        => l_adr_accounting_coa_id
14151          , x_value_type_code          => l_adr_value_type_code
14152          , p_side                     => 'ALL'
14153    );
14154 
14155    xla_ae_lines_pkg.set_ccid(
14156     p_code_combination_id          => l_ccid
14157   , p_value_type_code              => l_adr_value_type_code
14158   , p_transaction_coa_id           => l_adr_transaction_coa_id
14159   , p_accounting_coa_id            => l_adr_accounting_coa_id
14160   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14161   , p_adr_type_code                => 'S'
14162   , p_component_type               => l_component_type
14163   , p_component_code               => l_component_code
14164   , p_component_type_code          => l_component_type_code
14165   , p_component_appl_id            => l_component_appl_id
14166   , p_amb_context_code             => l_amb_context_code
14167   , p_side                         => 'ALL'
14168   );
14169 
14170 
14171    l_segment := AcctDerRule_9(
14172            p_application_id           => p_application_id
14173          , p_ae_header_id             => l_ae_header_id 
14174 , p_source_15 => p_source_15
14175 , p_source_15_meaning => p_source_15_meaning
14176 , p_source_20 => p_source_20
14177 , p_source_22 => p_source_22
14178 , p_source_22_meaning => p_source_22_meaning
14182          , x_flex_value_set_id        => l_adr_flex_value_set_id
14179          , x_transaction_coa_id       => l_adr_transaction_coa_id
14180          , x_accounting_coa_id        => l_adr_accounting_coa_id
14181          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14183          , x_value_type_code          => l_adr_value_type_code
14184          , x_value_combination_id     => l_adr_value_combination_id
14185          , x_value_segment_code       => l_adr_value_segment_code
14186          , p_side                     => 'DEBIT'
14187          , p_override_seg_flag        => 'Y'
14188    );
14189 
14190    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14191 
14192       xla_ae_lines_pkg.set_segment(
14193           p_to_segment_code         => 'GL_ACCOUNT'
14194         , p_segment_value           => l_segment
14195         , p_from_segment_code       => l_adr_value_segment_code
14196         , p_from_combination_id     => l_adr_value_combination_id
14197         , p_value_type_code         => l_adr_value_type_code
14198         , p_transaction_coa_id      => l_adr_transaction_coa_id
14199         , p_accounting_coa_id       => l_adr_accounting_coa_id
14200         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14201         , p_flex_value_set_id       => l_adr_flex_value_set_id
14202         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14203         , p_adr_type_code           => 'S'
14204         , p_component_type          => l_component_type
14205         , p_component_code          => l_component_code
14206         , p_component_type_code     => l_component_type_code
14207         , p_component_appl_id       => l_component_appl_id
14208         , p_amb_context_code        => l_amb_context_code
14209         , p_entity_code             => 'AP_INVOICES'
14210         , p_event_class_code        => 'CREDIT MEMOS'
14211         , p_side                    => 'DEBIT'
14212         );
14213 
14214   END IF;
14215 
14216    l_segment := AcctDerRule_10(
14217            p_application_id           => p_application_id
14218          , p_ae_header_id             => l_ae_header_id 
14219 , p_source_15 => p_source_15
14220 , p_source_15_meaning => p_source_15_meaning
14221 , p_source_22 => p_source_22
14222 , p_source_22_meaning => p_source_22_meaning
14223 , p_source_23 => p_source_23
14224          , x_transaction_coa_id       => l_adr_transaction_coa_id
14225          , x_accounting_coa_id        => l_adr_accounting_coa_id
14226          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14227          , x_flex_value_set_id        => l_adr_flex_value_set_id
14228          , x_value_type_code          => l_adr_value_type_code
14229          , x_value_combination_id     => l_adr_value_combination_id
14230          , x_value_segment_code       => l_adr_value_segment_code
14231          , p_side                     => 'CREDIT'
14232          , p_override_seg_flag        => 'Y'
14233    );
14234 
14235    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14236 
14237       xla_ae_lines_pkg.set_segment(
14238           p_to_segment_code         => 'GL_ACCOUNT'
14239         , p_segment_value           => l_segment
14240         , p_from_segment_code       => l_adr_value_segment_code
14241         , p_from_combination_id     => l_adr_value_combination_id
14242         , p_value_type_code         => l_adr_value_type_code
14243         , p_transaction_coa_id      => l_adr_transaction_coa_id
14244         , p_accounting_coa_id       => l_adr_accounting_coa_id
14245         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14246         , p_flex_value_set_id       => l_adr_flex_value_set_id
14247         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14248         , p_adr_type_code           => 'S'
14249         , p_component_type          => l_component_type
14250         , p_component_code          => l_component_code
14251         , p_component_type_code     => l_component_type_code
14252         , p_component_appl_id       => l_component_appl_id
14253         , p_amb_context_code        => l_amb_context_code
14254         , p_entity_code             => 'AP_INVOICES'
14255         , p_event_class_code        => 'CREDIT MEMOS'
14256         , p_side                    => 'CREDIT'
14257         );
14258 
14259   END IF;
14260 
14261    l_segment := AcctDerRule_23(
14262            p_application_id           => p_application_id
14263          , p_ae_header_id             => l_ae_header_id 
14264 , p_source_15 => p_source_15
14265 , p_source_15_meaning => p_source_15_meaning
14266 , p_source_22 => p_source_22
14267 , p_source_22_meaning => p_source_22_meaning
14268 , p_source_30 => p_source_30
14269          , x_transaction_coa_id       => l_adr_transaction_coa_id
14270          , x_accounting_coa_id        => l_adr_accounting_coa_id
14271          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14272          , x_flex_value_set_id        => l_adr_flex_value_set_id
14273          , x_value_type_code          => l_adr_value_type_code
14274          , x_value_combination_id     => l_adr_value_combination_id
14275          , x_value_segment_code       => l_adr_value_segment_code
14276          , p_side                     => 'ALL'
14277          , p_override_seg_flag        => 'Y'
14278    );
14279 
14280    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14281 
14282       xla_ae_lines_pkg.set_segment(
14283           p_to_segment_code         => 'GL_BALANCING'
14284         , p_segment_value           => l_segment
14288         , p_transaction_coa_id      => l_adr_transaction_coa_id
14285         , p_from_segment_code       => l_adr_value_segment_code
14286         , p_from_combination_id     => l_adr_value_combination_id
14287         , p_value_type_code         => l_adr_value_type_code
14289         , p_accounting_coa_id       => l_adr_accounting_coa_id
14290         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14291         , p_flex_value_set_id       => l_adr_flex_value_set_id
14292         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14293         , p_adr_type_code           => 'S'
14294         , p_component_type          => l_component_type
14295         , p_component_code          => l_component_code
14296         , p_component_type_code     => l_component_type_code
14297         , p_component_appl_id       => l_component_appl_id
14298         , p_amb_context_code        => l_amb_context_code
14299         , p_entity_code             => 'AP_INVOICES'
14300         , p_event_class_code        => 'CREDIT MEMOS'
14301         , p_side                    => 'ALL'
14302         );
14303 
14304   END IF;
14305 
14306    --
14307    --
14308    END IF;
14309 
14310        --
14311        -- Update the line information that should be overwritten
14312        --
14313        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14314                                          p_header_num   => 1);
14315        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14316 
14317        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14318 
14319        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14320           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14321        END IF;
14322 
14323       --
14324       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14325       --
14326       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14327           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14328       ELSE
14329           ---------------------------------------------------------------------------------------------------
14330           -- 4262811a Switch Sign
14331           ---------------------------------------------------------------------------------------------------
14332           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14333           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14334                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14335           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14336                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14337           -- 5132302
14338           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14339                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14340 
14341       END IF;
14342 
14343       -- 4955764
14344       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14345       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14346 
14347 
14348       XLA_AE_LINES_PKG.ValidateCurrentLine;
14349       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14350 
14351       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14352                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14353                ,p_balance_type_code => l_balance_type_code);
14354 
14355    END IF;
14356 
14357    -----------------------------------------------------------------------------------------
14358    -- 4262811 Multiperiod Accounting
14359    -----------------------------------------------------------------------------------------
14360      -- No MPA option is assigned.
14361 
14362 
14363 END IF;
14364 END IF;
14365 --
14366 
14367 --
14368 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14369    trace
14370       (p_msg      => 'END of AcctLineType_54'
14371       ,p_level    => C_LEVEL_PROCEDURE
14372       ,p_module   => l_log_module);
14373 END IF;
14374 --
14375 EXCEPTION
14376   WHEN xla_exceptions_pkg.application_exception THEN
14377       RAISE;
14378   WHEN OTHERS THEN
14379        xla_exceptions_pkg.raise_message
14380            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_54');
14381 END AcctLineType_54;
14382 --
14383 
14384 ---------------------------------------
14385 --
14386 -- PRIVATE FUNCTION
14387 --         AcctLineType_55
14388 --
14389 ---------------------------------------
14390 PROCEDURE AcctLineType_55 (
14391   p_application_id        IN NUMBER
14392  ,p_event_id              IN NUMBER
14393  ,p_calculate_acctd_flag  IN VARCHAR2
14394  ,p_calculate_g_l_flag    IN VARCHAR2
14395  ,p_actual_flag           IN OUT VARCHAR2
14396  ,p_balance_type_code     OUT VARCHAR2
14397  ,p_gain_or_loss_ref      OUT VARCHAR2
14398  
14399 --Invoice Distribution Description
14400  , p_source_1            IN VARCHAR2
14401 --Automatic Offsets Value
14402  , p_source_15            IN VARCHAR2
14406 --Invoice Distribution Ledger Amount
14403  , p_source_15_meaning    IN VARCHAR2
14404 --Purchase Order Rate Variance Gain Account
14405  , p_source_20            IN NUMBER
14407  , p_source_21            IN NUMBER
14408 --Destination Type of the PO Distribution
14409  , p_source_22            IN VARCHAR2
14410  , p_source_22_meaning    IN VARCHAR2
14411 --Purchase Order Rate Variance Loss Account
14412  , p_source_23            IN NUMBER
14413 --Invoice Distribution Account
14414  , p_source_30            IN NUMBER
14415 --Invoice Distribution Type
14416  , p_source_33            IN VARCHAR2
14417  , p_source_33_meaning    IN VARCHAR2
14418 --Automatic Offsets Flag
14419  , p_source_47            IN VARCHAR2
14420  , p_source_47_meaning    IN VARCHAR2
14421 --Accounting Reversal Indicator
14422  , p_source_52            IN VARCHAR2
14423 --Distribution Link Type
14424  , p_source_54            IN VARCHAR2
14425 --Allocation to Main Distribution Identifier
14426  , p_source_56            IN NUMBER
14427 --Invoice Identifier
14428  , p_source_57            IN NUMBER
14429 --Invoice Distribution Identifier
14430  , p_source_63            IN NUMBER
14431 --Payables Encumbrance Upgrade Credit Account
14432  , p_source_64            IN NUMBER
14433 --Payables Encumbrance Upgrade Credit Amount
14434  , p_source_65            IN NUMBER
14435 --Invoice Currency Code
14436  , p_source_66            IN VARCHAR2
14437 --Payables Encumbrance Upgrade Credit Base Amount
14438  , p_source_67            IN NUMBER
14439 --Payables Encumbrance Upgrade Debit Account
14440  , p_source_68            IN NUMBER
14441 --Payables Encumbrance Upgrade Debit Amount
14442  , p_source_69            IN NUMBER
14443 --Payables Encumbrance Upgrade Debit Base Amount
14444  , p_source_70            IN NUMBER
14445 --Payables Encumbrance Upgrade Option
14446  , p_source_71            IN VARCHAR2
14447 --Deferred Accounting End Date
14448  , p_source_76            IN DATE
14449 --Deferred Accounting Option
14450  , p_source_77            IN VARCHAR2
14451 --Deferred Accounting Start Date
14452  , p_source_78            IN DATE
14453 --Override Accounted Amount Indicator
14454  , p_source_79            IN VARCHAR2
14455  , p_source_79_meaning    IN VARCHAR2
14456 --Invoice Supplier Identifier
14457  , p_source_80            IN NUMBER
14458 --Invoice Supplier Site Identifier
14459  , p_source_81            IN NUMBER
14460 --Third Party Type
14461  , p_source_82            IN VARCHAR2
14462 --Parent Reversal Identifier
14463  , p_source_83            IN NUMBER
14464 --Invoice Distribution Tax Line Identifier
14465  , p_source_85            IN NUMBER
14466 --Invoice Distribution Tax Distribution Identifier from Tax
14467  , p_source_86            IN NUMBER
14468 --Invoice Distribution Summary Tax Line Identifier
14469  , p_source_87            IN NUMBER
14470 --Payables Upgrade Credit Encumbrance Type Identifier
14471  , p_source_88            IN NUMBER
14472 --Payables Upgrade Debit Encumbrance Type Identifier
14473  , p_source_89            IN NUMBER
14474 --Business Flow Accounts Payable Application Identifier
14475  , p_source_90            IN NUMBER
14476 --Business Flow Invoice Distribution Type
14477  , p_source_91            IN VARCHAR2
14478 --Business Flow Invoice Entity Code
14479  , p_source_92            IN VARCHAR2
14480 --Business Flow Invoice Distribution Identifier
14481  , p_source_93            IN NUMBER
14482 --Business Flow Invoice Identifier
14483  , p_source_94            IN NUMBER
14484 --Accrue on Receipt Option
14485  , p_source_95            IN VARCHAR2
14486  , p_source_95_meaning    IN VARCHAR2
14487 )
14488 IS
14489 
14490 l_component_type              VARCHAR2(80);
14491 l_component_code              VARCHAR2(30);
14492 l_component_type_code         VARCHAR2(1);
14493 l_component_appl_id           INTEGER;
14494 l_amb_context_code            VARCHAR2(30);
14495 l_entity_code                 VARCHAR2(30);
14496 l_event_class_code            VARCHAR2(30);
14497 l_ae_header_id                NUMBER;
14498 l_event_type_code             VARCHAR2(30);
14499 l_line_definition_code        VARCHAR2(30);
14500 l_line_definition_owner_code  VARCHAR2(1);
14501 --
14502 -- adr variables
14503 l_segment                     VARCHAR2(30);
14504 l_ccid                        NUMBER;
14505 l_adr_transaction_coa_id      NUMBER;
14506 l_adr_accounting_coa_id       NUMBER;
14507 l_adr_flexfield_segment_code  VARCHAR2(30);
14508 l_adr_flex_value_set_id       NUMBER;
14509 l_adr_value_type_code         VARCHAR2(30);
14510 l_adr_value_combination_id    NUMBER;
14511 l_adr_value_segment_code      VARCHAR2(30);
14512 
14513 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14514 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14515 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14516 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14517 
14518 -- 4262811 Variables ------------------------------------------------------------------------------------------
14519 l_entered_amt_idx             NUMBER;
14520 l_accted_amt_idx              NUMBER;
14521 l_acc_rev_flag                VARCHAR2(1);
14522 l_accrual_line_num            NUMBER;
14523 l_tmp_amt                     NUMBER;
14524 l_acc_rev_natural_side_code   VARCHAR2(1);
14525 
14526 l_num_entries                 NUMBER;
14527 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14531 l_recog_line_1                NUMBER;
14528 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14529 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14530 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14532 l_recog_line_2                NUMBER;
14533 
14534 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14535 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14536 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14537 
14538 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14539 
14540 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14541 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14542 
14543 ---------------------------------------------------------------------------------------------------------------
14544 
14545 
14546 --
14547 -- bulk performance
14548 --
14549 l_balance_type_code           VARCHAR2(1);
14550 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14551 l_log_module                  VARCHAR2(240);
14552 
14553 --
14554 -- Upgrade strategy
14555 --
14556 l_actual_upg_option           VARCHAR2(1);
14557 l_enc_upg_option           VARCHAR2(1);
14558 
14559 --
14560 BEGIN
14561 --
14562 IF g_log_enabled THEN
14563       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
14564 END IF;
14565 --
14566 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14567 
14568       trace
14569          (p_msg      => 'BEGIN of AcctLineType_55'
14570          ,p_level    => C_LEVEL_PROCEDURE
14571          ,p_module   => l_log_module);
14572 
14573 END IF;
14574 --
14575 l_component_type             := 'AMB_JLT';
14576 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_DM';
14577 l_component_type_code        := 'S';
14578 l_component_appl_id          :=  200;
14579 l_amb_context_code           := 'DEFAULT';
14580 l_entity_code                := 'AP_INVOICES';
14581 l_event_class_code           := 'DEBIT MEMOS';
14582 l_event_type_code            := 'DEBIT MEMOS_ALL';
14583 l_line_definition_owner_code := 'S';
14584 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
14585 --
14586 l_balance_type_code          := 'A';
14587 l_segment                     := NULL;
14588 l_ccid                        := NULL;
14589 l_adr_transaction_coa_id      := NULL;
14590 l_adr_accounting_coa_id       := NULL;
14591 l_adr_flexfield_segment_code  := NULL;
14592 l_adr_flex_value_set_id       := NULL;
14593 l_adr_value_type_code         := NULL;
14594 l_adr_value_combination_id    := NULL;
14595 l_adr_value_segment_code      := NULL;
14596 
14597 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14598 l_bflow_class_code           := '';    -- 4219869 Business Flow
14599 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14600 l_budgetary_control_flag     := 'N';
14601 
14602 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14603 l_bflow_applied_to_amt       := NULL; -- 5132302
14604 l_entered_amt_idx            := NULL;          -- 4262811
14605 l_accted_amt_idx             := NULL;          -- 4262811
14606 l_acc_rev_flag               := NULL;          -- 4262811
14607 l_accrual_line_num           := NULL;          -- 4262811
14608 l_tmp_amt                    := NULL;          -- 4262811
14609 --
14610 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14611             (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
14612                return;
14613   END IF;
14614   
14615 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14616     l_balance_type_code <> 'B' THEN
14617 IF NVL(p_source_33,'
14618 ') =  'NONREC_TAX' AND 
14619 NVL(p_source_95,'
14620 ') =  'Y'
14621  THEN 
14622 
14623    --
14624    XLA_AE_LINES_PKG.SetNewLine;
14625 
14626    p_balance_type_code          := l_balance_type_code;
14627    -- set the flag so later we will know whether the gain loss line needs to be created
14628    
14629    IF(l_balance_type_code = 'A' ) THEN
14630      p_actual_flag :='G';
14631    END IF;
14632 
14633    --
14634    -- bulk performance
14635    --
14636    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14637                                       p_header_num   => 0); -- 4262811
14638    --
14639    -- set accounting line options
14640    --
14641    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14642            p_natural_side_code          => 'G'
14643          , p_gain_or_loss_flag          => 'N'
14644          , p_gl_transfer_mode_code      => 'S'
14645          , p_acct_entry_type_code       => 'A'
14646          , p_switch_side_flag           => ''
14647          , p_merge_duplicate_code       => 'A'
14648          );
14649    --
14650    l_acc_rev_natural_side_code := 'C';  -- 4262811
14651    -- 
14652    --
14653    -- set accounting line type info
14654    --
14655    xla_ae_lines_pkg.SetAcctLineType
14656       (p_component_type             => l_component_type
14657       ,p_event_type_code            => l_event_type_code
14661       ,p_accounting_line_type_code  => l_component_type_code
14658       ,p_line_definition_owner_code => l_line_definition_owner_code
14659       ,p_line_definition_code       => l_line_definition_code
14660       ,p_accounting_line_code       => l_component_code
14662       ,p_accounting_line_appl_id    => l_component_appl_id
14663       ,p_amb_context_code           => l_amb_context_code
14664       ,p_entity_code                => l_entity_code
14665       ,p_event_class_code           => l_event_class_code);
14666    --
14667    -- set accounting class
14668    --
14669    xla_ae_lines_pkg.SetAcctClass(
14670            p_accounting_class_code  => 'TERV'
14671          , p_ae_header_id           => l_ae_header_id
14672          );
14673 
14674    --
14675    -- set rounding class
14676    --
14677    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14678                       'TERV';
14679 
14680    --
14681    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14682    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14683    --
14684    -- bulk performance
14685    --
14686    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14687 
14688    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14689       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14690 
14691    -- 4955764
14692    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14693       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14694 
14695    -- 4458381 Public Sector Enh
14696    
14697    --
14698    -- set accounting attributes for the line type
14699    --
14700    l_entered_amt_idx := NULL;
14701    l_accted_amt_idx  := 23;
14702    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
14703    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14704    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
14705    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14706    l_rec_acct_attrs.array_num_value(2)  := 
14707 xla_ae_sources_pkg.GetSystemSourceNum(
14708    p_source_code           => 'XLA_EVENT_APPL_ID'
14709  , p_source_type_code      => 'Y'
14710  , p_source_application_id =>  602
14711 );
14712    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14713    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
14714    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14715    l_rec_acct_attrs.array_char_value(4)  := 
14716 xla_ae_sources_pkg.GetSystemSourceChar(
14717    p_source_code           => 'XLA_ENTITY_CODE'
14718  , p_source_type_code      => 'Y'
14719  , p_source_application_id =>  602
14720 );
14721    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14722    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
14723    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14724    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
14725    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14726    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
14727    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14728    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
14729    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14730    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
14731    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14732    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
14733    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14734    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
14735    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14736    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
14737    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14738    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
14739    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14740    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
14741    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14742    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
14743    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14744    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
14745    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14746    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
14747    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14748    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
14749    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14750    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
14751    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14752    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
14753    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14754    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
14755    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14756    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
14757    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
14758    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
14762    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
14759    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
14760    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
14761    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
14763    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
14764    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
14765    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
14766    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
14767    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
14768    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
14769    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
14770    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
14771    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
14772    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
14773    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
14774    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
14775    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
14776    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
14777    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
14778    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
14779    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
14780    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
14781    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
14782    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
14783    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
14784    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
14785    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
14786    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
14787 
14788    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14789    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14790 
14791    ---------------------------------------------------------------------------------------------------------------
14792    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14793    ---------------------------------------------------------------------------------------------------------------
14794    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14795 
14796    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14797    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14798 
14799    IF xla_accounting_cache_pkg.GetValueChar
14800          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14801          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14802    AND l_bflow_method_code = 'PRIOR_ENTRY'
14803 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14804    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14805          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14806        )
14807    THEN
14808          xla_ae_lines_pkg.BflowUpgEntry
14809            (p_business_method_code    => l_bflow_method_code
14810            ,p_business_class_code     => l_bflow_class_code
14811            ,p_balance_type            => l_balance_type_code);
14812    ELSE
14813       NULL;
14814 -- No business flow processing for business flow method of NONE.
14815    END IF;
14816 
14817    --
14818    -- call analytical criteria
14819    --
14820    
14821    --
14822    -- call description
14823    --
14824    
14825 xla_ae_lines_pkg.SetLineDescription(
14826    p_ae_header_id => l_ae_header_id
14827   ,p_description  => Description_1 (
14828      p_application_id         => p_application_id
14829    , p_ae_header_id           => l_ae_header_id 
14830 , p_source_1 => p_source_1
14831    )
14832 );
14833 
14834 
14835    --
14836    -- call ADRs
14837    -- Bug 4922099
14838    --
14839    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14840         (NVL(l_actual_upg_option, 'N') = 'O') OR
14841         (NVL(l_enc_upg_option, 'N') = 'O')
14842       )
14843    THEN
14844    NULL;
14845    --
14846    --
14847    
14848   l_ccid := AcctDerRule_30(
14849            p_application_id           => p_application_id
14850          , p_ae_header_id             => l_ae_header_id 
14851 , p_source_15 => p_source_15
14852 , p_source_15_meaning => p_source_15_meaning
14853 , p_source_20 => p_source_20
14854 , p_source_21 => p_source_21
14855 , p_source_22 => p_source_22
14856 , p_source_22_meaning => p_source_22_meaning
14857 , p_source_23 => p_source_23
14858 , p_source_30 => p_source_30
14859 , p_source_47 => p_source_47
14860 , p_source_47_meaning => p_source_47_meaning
14861          , x_transaction_coa_id       => l_adr_transaction_coa_id
14862          , x_accounting_coa_id        => l_adr_accounting_coa_id
14863          , x_value_type_code          => l_adr_value_type_code
14864          , p_side                     => 'ALL'
14865    );
14866 
14867    xla_ae_lines_pkg.set_ccid(
14868     p_code_combination_id          => l_ccid
14869   , p_value_type_code              => l_adr_value_type_code
14870   , p_transaction_coa_id           => l_adr_transaction_coa_id
14874   , p_component_type               => l_component_type
14871   , p_accounting_coa_id            => l_adr_accounting_coa_id
14872   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14873   , p_adr_type_code                => 'S'
14875   , p_component_code               => l_component_code
14876   , p_component_type_code          => l_component_type_code
14877   , p_component_appl_id            => l_component_appl_id
14878   , p_amb_context_code             => l_amb_context_code
14879   , p_side                         => 'ALL'
14880   );
14881 
14882 
14883    l_segment := AcctDerRule_9(
14884            p_application_id           => p_application_id
14885          , p_ae_header_id             => l_ae_header_id 
14886 , p_source_15 => p_source_15
14887 , p_source_15_meaning => p_source_15_meaning
14888 , p_source_20 => p_source_20
14889 , p_source_22 => p_source_22
14890 , p_source_22_meaning => p_source_22_meaning
14891          , x_transaction_coa_id       => l_adr_transaction_coa_id
14892          , x_accounting_coa_id        => l_adr_accounting_coa_id
14893          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14894          , x_flex_value_set_id        => l_adr_flex_value_set_id
14895          , x_value_type_code          => l_adr_value_type_code
14896          , x_value_combination_id     => l_adr_value_combination_id
14897          , x_value_segment_code       => l_adr_value_segment_code
14898          , p_side                     => 'DEBIT'
14899          , p_override_seg_flag        => 'Y'
14900    );
14901 
14902    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14903 
14904       xla_ae_lines_pkg.set_segment(
14905           p_to_segment_code         => 'GL_ACCOUNT'
14906         , p_segment_value           => l_segment
14907         , p_from_segment_code       => l_adr_value_segment_code
14908         , p_from_combination_id     => l_adr_value_combination_id
14909         , p_value_type_code         => l_adr_value_type_code
14910         , p_transaction_coa_id      => l_adr_transaction_coa_id
14911         , p_accounting_coa_id       => l_adr_accounting_coa_id
14912         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14913         , p_flex_value_set_id       => l_adr_flex_value_set_id
14914         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14915         , p_adr_type_code           => 'S'
14916         , p_component_type          => l_component_type
14917         , p_component_code          => l_component_code
14918         , p_component_type_code     => l_component_type_code
14919         , p_component_appl_id       => l_component_appl_id
14920         , p_amb_context_code        => l_amb_context_code
14921         , p_entity_code             => 'AP_INVOICES'
14922         , p_event_class_code        => 'DEBIT MEMOS'
14923         , p_side                    => 'DEBIT'
14924         );
14925 
14926   END IF;
14927 
14928    l_segment := AcctDerRule_10(
14929            p_application_id           => p_application_id
14930          , p_ae_header_id             => l_ae_header_id 
14931 , p_source_15 => p_source_15
14932 , p_source_15_meaning => p_source_15_meaning
14933 , p_source_22 => p_source_22
14934 , p_source_22_meaning => p_source_22_meaning
14935 , p_source_23 => p_source_23
14936          , x_transaction_coa_id       => l_adr_transaction_coa_id
14937          , x_accounting_coa_id        => l_adr_accounting_coa_id
14938          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14939          , x_flex_value_set_id        => l_adr_flex_value_set_id
14940          , x_value_type_code          => l_adr_value_type_code
14941          , x_value_combination_id     => l_adr_value_combination_id
14942          , x_value_segment_code       => l_adr_value_segment_code
14943          , p_side                     => 'CREDIT'
14944          , p_override_seg_flag        => 'Y'
14945    );
14946 
14947    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14948 
14949       xla_ae_lines_pkg.set_segment(
14950           p_to_segment_code         => 'GL_ACCOUNT'
14951         , p_segment_value           => l_segment
14952         , p_from_segment_code       => l_adr_value_segment_code
14953         , p_from_combination_id     => l_adr_value_combination_id
14954         , p_value_type_code         => l_adr_value_type_code
14955         , p_transaction_coa_id      => l_adr_transaction_coa_id
14956         , p_accounting_coa_id       => l_adr_accounting_coa_id
14957         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14958         , p_flex_value_set_id       => l_adr_flex_value_set_id
14959         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14960         , p_adr_type_code           => 'S'
14961         , p_component_type          => l_component_type
14962         , p_component_code          => l_component_code
14963         , p_component_type_code     => l_component_type_code
14964         , p_component_appl_id       => l_component_appl_id
14965         , p_amb_context_code        => l_amb_context_code
14966         , p_entity_code             => 'AP_INVOICES'
14967         , p_event_class_code        => 'DEBIT MEMOS'
14968         , p_side                    => 'CREDIT'
14969         );
14970 
14971   END IF;
14972 
14973    l_segment := AcctDerRule_23(
14974            p_application_id           => p_application_id
14975          , p_ae_header_id             => l_ae_header_id 
14976 , p_source_15 => p_source_15
14977 , p_source_15_meaning => p_source_15_meaning
14978 , p_source_22 => p_source_22
14979 , p_source_22_meaning => p_source_22_meaning
14983          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14980 , p_source_30 => p_source_30
14981          , x_transaction_coa_id       => l_adr_transaction_coa_id
14982          , x_accounting_coa_id        => l_adr_accounting_coa_id
14984          , x_flex_value_set_id        => l_adr_flex_value_set_id
14985          , x_value_type_code          => l_adr_value_type_code
14986          , x_value_combination_id     => l_adr_value_combination_id
14987          , x_value_segment_code       => l_adr_value_segment_code
14988          , p_side                     => 'ALL'
14989          , p_override_seg_flag        => 'Y'
14990    );
14991 
14992    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14993 
14994       xla_ae_lines_pkg.set_segment(
14995           p_to_segment_code         => 'GL_BALANCING'
14996         , p_segment_value           => l_segment
14997         , p_from_segment_code       => l_adr_value_segment_code
14998         , p_from_combination_id     => l_adr_value_combination_id
14999         , p_value_type_code         => l_adr_value_type_code
15000         , p_transaction_coa_id      => l_adr_transaction_coa_id
15001         , p_accounting_coa_id       => l_adr_accounting_coa_id
15002         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15003         , p_flex_value_set_id       => l_adr_flex_value_set_id
15004         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15005         , p_adr_type_code           => 'S'
15006         , p_component_type          => l_component_type
15007         , p_component_code          => l_component_code
15008         , p_component_type_code     => l_component_type_code
15009         , p_component_appl_id       => l_component_appl_id
15010         , p_amb_context_code        => l_amb_context_code
15011         , p_entity_code             => 'AP_INVOICES'
15012         , p_event_class_code        => 'DEBIT MEMOS'
15013         , p_side                    => 'ALL'
15014         );
15015 
15016   END IF;
15017 
15018    --
15019    --
15020    END IF;
15021    --
15022    -- Bug 4922099
15023    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15024           (NVL(l_enc_upg_option, 'N') = 'O')
15025         ) AND
15026         (l_bflow_method_code = 'PRIOR_ENTRY')
15027       )
15028    THEN
15029       IF
15030       --
15031       1 = 2
15032       --
15033       THEN
15034       xla_accounting_err_pkg.build_message
15035                                     (p_appli_s_name            => 'XLA'
15036                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15037                                     ,p_token_1                 => 'LINE_NUMBER'
15038                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15039                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15040                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15041                                                                              l_component_type
15042                                                                             ,l_component_code
15043                                                                             ,l_component_type_code
15044                                                                             ,l_component_appl_id
15045                                                                             ,l_amb_context_code
15046                                                                             ,l_entity_code
15047                                                                             ,l_event_class_code
15048                                                                            )
15049                                     ,p_token_3                 => 'OWNER'
15050                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15051                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15052                                                                           ,p_lookup_code    => l_component_type_code
15053                                                                          )
15054                                     ,p_token_4                 => 'PRODUCT_NAME'
15055                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15056                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15057                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15058                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15059                                     ,p_ae_header_id            =>  NULL
15060                                        );
15061 
15062         IF (C_LEVEL_ERROR>= g_log_level) THEN
15063                  trace
15064                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15065                       ,p_level    => C_LEVEL_ERROR
15066                       ,p_module   => l_log_module);
15067         END IF;
15068       END IF;
15069    END IF;
15070    --
15071    --
15072    ------------------------------------------------------------------------------------------------
15073    -- 4219869 Business Flow
15074    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15075    -- Prior Entry.  Currently, the following code is always generated.
15079    ------------------------------------------------------------------------------------
15076    ------------------------------------------------------------------------------------------------
15077    XLA_AE_LINES_PKG.ValidateCurrentLine;
15078 
15080    -- 4219869 Business Flow
15081    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15082    ------------------------------------------------------------------------------------
15083    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15084 
15085    ----------------------------------------------------------------------------------
15086    -- 4219869 Business Flow
15087    -- Update journal entry status -- Need to generate this within IF <condition>
15088    ----------------------------------------------------------------------------------
15089    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15090          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15091          ,p_balance_type_code => l_balance_type_code
15092          );
15093 
15094    -------------------------------------------------------------------------------------------
15095    -- 4262811 - Generate the Accrual Reversal lines
15096    -------------------------------------------------------------------------------------------
15097    BEGIN
15098       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15099                               (g_array_event(p_event_id).array_value_num('header_index'));
15100       IF l_acc_rev_flag IS NULL THEN
15101          l_acc_rev_flag := 'N';
15102       END IF;
15103    EXCEPTION
15104       WHEN OTHERS THEN
15105          l_acc_rev_flag := 'N';
15106    END;
15107    --
15108    IF (l_acc_rev_flag = 'Y') THEN
15109 
15110        -- 4645092  ------------------------------------------------------------------------------
15111        -- To allow MPA report to determine if it should generate report process
15112        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15113        ------------------------------------------------------------------------------------------
15114 
15115        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15116        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15117    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15118    -- call ADRs
15119    -- Bug 4922099
15120    --
15121    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15122         (NVL(l_actual_upg_option, 'N') = 'O') OR
15123         (NVL(l_enc_upg_option, 'N') = 'O')
15124       )
15125    THEN
15126    NULL;
15127    --
15128    --
15129    
15130   l_ccid := AcctDerRule_30(
15131            p_application_id           => p_application_id
15132          , p_ae_header_id             => l_ae_header_id 
15133 , p_source_15 => p_source_15
15134 , p_source_15_meaning => p_source_15_meaning
15135 , p_source_20 => p_source_20
15136 , p_source_21 => p_source_21
15137 , p_source_22 => p_source_22
15138 , p_source_22_meaning => p_source_22_meaning
15139 , p_source_23 => p_source_23
15140 , p_source_30 => p_source_30
15141 , p_source_47 => p_source_47
15142 , p_source_47_meaning => p_source_47_meaning
15143          , x_transaction_coa_id       => l_adr_transaction_coa_id
15144          , x_accounting_coa_id        => l_adr_accounting_coa_id
15145          , x_value_type_code          => l_adr_value_type_code
15146          , p_side                     => 'ALL'
15147    );
15148 
15149    xla_ae_lines_pkg.set_ccid(
15150     p_code_combination_id          => l_ccid
15151   , p_value_type_code              => l_adr_value_type_code
15152   , p_transaction_coa_id           => l_adr_transaction_coa_id
15153   , p_accounting_coa_id            => l_adr_accounting_coa_id
15154   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15155   , p_adr_type_code                => 'S'
15156   , p_component_type               => l_component_type
15157   , p_component_code               => l_component_code
15158   , p_component_type_code          => l_component_type_code
15159   , p_component_appl_id            => l_component_appl_id
15160   , p_amb_context_code             => l_amb_context_code
15161   , p_side                         => 'ALL'
15162   );
15163 
15164 
15165    l_segment := AcctDerRule_9(
15166            p_application_id           => p_application_id
15167          , p_ae_header_id             => l_ae_header_id 
15168 , p_source_15 => p_source_15
15169 , p_source_15_meaning => p_source_15_meaning
15170 , p_source_20 => p_source_20
15171 , p_source_22 => p_source_22
15172 , p_source_22_meaning => p_source_22_meaning
15173          , x_transaction_coa_id       => l_adr_transaction_coa_id
15174          , x_accounting_coa_id        => l_adr_accounting_coa_id
15175          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15176          , x_flex_value_set_id        => l_adr_flex_value_set_id
15177          , x_value_type_code          => l_adr_value_type_code
15178          , x_value_combination_id     => l_adr_value_combination_id
15179          , x_value_segment_code       => l_adr_value_segment_code
15180          , p_side                     => 'DEBIT'
15181          , p_override_seg_flag        => 'Y'
15182    );
15183 
15184    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15185 
15186       xla_ae_lines_pkg.set_segment(
15187           p_to_segment_code         => 'GL_ACCOUNT'
15188         , p_segment_value           => l_segment
15192         , p_transaction_coa_id      => l_adr_transaction_coa_id
15189         , p_from_segment_code       => l_adr_value_segment_code
15190         , p_from_combination_id     => l_adr_value_combination_id
15191         , p_value_type_code         => l_adr_value_type_code
15193         , p_accounting_coa_id       => l_adr_accounting_coa_id
15194         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15195         , p_flex_value_set_id       => l_adr_flex_value_set_id
15196         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15197         , p_adr_type_code           => 'S'
15198         , p_component_type          => l_component_type
15199         , p_component_code          => l_component_code
15200         , p_component_type_code     => l_component_type_code
15201         , p_component_appl_id       => l_component_appl_id
15202         , p_amb_context_code        => l_amb_context_code
15203         , p_entity_code             => 'AP_INVOICES'
15204         , p_event_class_code        => 'DEBIT MEMOS'
15205         , p_side                    => 'DEBIT'
15206         );
15207 
15208   END IF;
15209 
15210    l_segment := AcctDerRule_10(
15211            p_application_id           => p_application_id
15212          , p_ae_header_id             => l_ae_header_id 
15213 , p_source_15 => p_source_15
15214 , p_source_15_meaning => p_source_15_meaning
15215 , p_source_22 => p_source_22
15216 , p_source_22_meaning => p_source_22_meaning
15217 , p_source_23 => p_source_23
15218          , x_transaction_coa_id       => l_adr_transaction_coa_id
15219          , x_accounting_coa_id        => l_adr_accounting_coa_id
15220          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15221          , x_flex_value_set_id        => l_adr_flex_value_set_id
15222          , x_value_type_code          => l_adr_value_type_code
15223          , x_value_combination_id     => l_adr_value_combination_id
15224          , x_value_segment_code       => l_adr_value_segment_code
15225          , p_side                     => 'CREDIT'
15226          , p_override_seg_flag        => 'Y'
15227    );
15228 
15229    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15230 
15231       xla_ae_lines_pkg.set_segment(
15232           p_to_segment_code         => 'GL_ACCOUNT'
15233         , p_segment_value           => l_segment
15234         , p_from_segment_code       => l_adr_value_segment_code
15235         , p_from_combination_id     => l_adr_value_combination_id
15236         , p_value_type_code         => l_adr_value_type_code
15237         , p_transaction_coa_id      => l_adr_transaction_coa_id
15238         , p_accounting_coa_id       => l_adr_accounting_coa_id
15239         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15240         , p_flex_value_set_id       => l_adr_flex_value_set_id
15241         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15242         , p_adr_type_code           => 'S'
15243         , p_component_type          => l_component_type
15244         , p_component_code          => l_component_code
15245         , p_component_type_code     => l_component_type_code
15246         , p_component_appl_id       => l_component_appl_id
15247         , p_amb_context_code        => l_amb_context_code
15248         , p_entity_code             => 'AP_INVOICES'
15249         , p_event_class_code        => 'DEBIT MEMOS'
15250         , p_side                    => 'CREDIT'
15251         );
15252 
15253   END IF;
15254 
15255    l_segment := AcctDerRule_23(
15256            p_application_id           => p_application_id
15257          , p_ae_header_id             => l_ae_header_id 
15258 , p_source_15 => p_source_15
15259 , p_source_15_meaning => p_source_15_meaning
15260 , p_source_22 => p_source_22
15261 , p_source_22_meaning => p_source_22_meaning
15262 , p_source_30 => p_source_30
15263          , x_transaction_coa_id       => l_adr_transaction_coa_id
15264          , x_accounting_coa_id        => l_adr_accounting_coa_id
15265          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15266          , x_flex_value_set_id        => l_adr_flex_value_set_id
15267          , x_value_type_code          => l_adr_value_type_code
15268          , x_value_combination_id     => l_adr_value_combination_id
15269          , x_value_segment_code       => l_adr_value_segment_code
15270          , p_side                     => 'ALL'
15271          , p_override_seg_flag        => 'Y'
15272    );
15273 
15274    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15275 
15276       xla_ae_lines_pkg.set_segment(
15277           p_to_segment_code         => 'GL_BALANCING'
15278         , p_segment_value           => l_segment
15279         , p_from_segment_code       => l_adr_value_segment_code
15280         , p_from_combination_id     => l_adr_value_combination_id
15281         , p_value_type_code         => l_adr_value_type_code
15282         , p_transaction_coa_id      => l_adr_transaction_coa_id
15283         , p_accounting_coa_id       => l_adr_accounting_coa_id
15284         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15285         , p_flex_value_set_id       => l_adr_flex_value_set_id
15286         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15287         , p_adr_type_code           => 'S'
15288         , p_component_type          => l_component_type
15289         , p_component_code          => l_component_code
15290         , p_component_type_code     => l_component_type_code
15291         , p_component_appl_id       => l_component_appl_id
15292         , p_amb_context_code        => l_amb_context_code
15293         , p_entity_code             => 'AP_INVOICES'
15297 
15294         , p_event_class_code        => 'DEBIT MEMOS'
15295         , p_side                    => 'ALL'
15296         );
15298   END IF;
15299 
15300    --
15301    --
15302    END IF;
15303 
15304        --
15305        -- Update the line information that should be overwritten
15306        --
15307        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15308                                          p_header_num   => 1);
15309        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15310 
15311        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15312 
15313        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15314           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15315        END IF;
15316 
15317       --
15318       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15319       --
15320       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15321           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15322       ELSE
15323           ---------------------------------------------------------------------------------------------------
15324           -- 4262811a Switch Sign
15325           ---------------------------------------------------------------------------------------------------
15326           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15327           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15328                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15329           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15330                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15331           -- 5132302
15332           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15333                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15334 
15335       END IF;
15336 
15337       -- 4955764
15338       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15339       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15340 
15341 
15342       XLA_AE_LINES_PKG.ValidateCurrentLine;
15343       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15344 
15345       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15346                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15347                ,p_balance_type_code => l_balance_type_code);
15348 
15349    END IF;
15350 
15351    -----------------------------------------------------------------------------------------
15352    -- 4262811 Multiperiod Accounting
15353    -----------------------------------------------------------------------------------------
15354      -- No MPA option is assigned.
15355 
15356 
15357 END IF;
15358 END IF;
15359 --
15360 
15361 --
15362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15363    trace
15364       (p_msg      => 'END of AcctLineType_55'
15365       ,p_level    => C_LEVEL_PROCEDURE
15366       ,p_module   => l_log_module);
15367 END IF;
15368 --
15369 EXCEPTION
15370   WHEN xla_exceptions_pkg.application_exception THEN
15371       RAISE;
15372   WHEN OTHERS THEN
15373        xla_exceptions_pkg.raise_message
15374            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_55');
15375 END AcctLineType_55;
15376 --
15377 
15378 ---------------------------------------
15379 --
15380 -- PRIVATE FUNCTION
15381 --         AcctLineType_56
15382 --
15383 ---------------------------------------
15384 PROCEDURE AcctLineType_56 (
15385   p_application_id        IN NUMBER
15386  ,p_event_id              IN NUMBER
15387  ,p_calculate_acctd_flag  IN VARCHAR2
15388  ,p_calculate_g_l_flag    IN VARCHAR2
15389  ,p_actual_flag           IN OUT VARCHAR2
15390  ,p_balance_type_code     OUT VARCHAR2
15391  ,p_gain_or_loss_ref      OUT VARCHAR2
15392  
15393 --Invoice Distribution Description
15394  , p_source_1            IN VARCHAR2
15395 --Automatic Offsets Value
15396  , p_source_15            IN VARCHAR2
15397  , p_source_15_meaning    IN VARCHAR2
15398 --Purchase Order Rate Variance Gain Account
15399  , p_source_20            IN NUMBER
15400 --Invoice Distribution Ledger Amount
15401  , p_source_21            IN NUMBER
15402 --Destination Type of the PO Distribution
15403  , p_source_22            IN VARCHAR2
15404  , p_source_22_meaning    IN VARCHAR2
15405 --Purchase Order Rate Variance Loss Account
15406  , p_source_23            IN NUMBER
15407 --Invoice Distribution Account
15408  , p_source_30            IN NUMBER
15409 --Invoice Distribution Type
15410  , p_source_33            IN VARCHAR2
15411  , p_source_33_meaning    IN VARCHAR2
15412 --Automatic Offsets Flag
15413  , p_source_47            IN VARCHAR2
15414  , p_source_47_meaning    IN VARCHAR2
15415 --Accounting Reversal Indicator
15416  , p_source_52            IN VARCHAR2
15417 --Distribution Link Type
15418  , p_source_54            IN VARCHAR2
15422  , p_source_57            IN NUMBER
15419 --Allocation to Main Distribution Identifier
15420  , p_source_56            IN NUMBER
15421 --Invoice Identifier
15423 --Invoice Distribution Identifier
15424  , p_source_63            IN NUMBER
15425 --Payables Encumbrance Upgrade Credit Account
15426  , p_source_64            IN NUMBER
15427 --Payables Encumbrance Upgrade Credit Amount
15428  , p_source_65            IN NUMBER
15429 --Invoice Currency Code
15430  , p_source_66            IN VARCHAR2
15431 --Payables Encumbrance Upgrade Credit Base Amount
15432  , p_source_67            IN NUMBER
15433 --Payables Encumbrance Upgrade Debit Account
15434  , p_source_68            IN NUMBER
15435 --Payables Encumbrance Upgrade Debit Amount
15436  , p_source_69            IN NUMBER
15437 --Payables Encumbrance Upgrade Debit Base Amount
15438  , p_source_70            IN NUMBER
15439 --Payables Encumbrance Upgrade Option
15440  , p_source_71            IN VARCHAR2
15441 --Invoice Distribution Amount
15442  , p_source_72            IN NUMBER
15443 --Deferred Accounting End Date
15444  , p_source_76            IN DATE
15445 --Deferred Accounting Option
15446  , p_source_77            IN VARCHAR2
15447 --Deferred Accounting Start Date
15448  , p_source_78            IN DATE
15449 --Override Accounted Amount Indicator
15450  , p_source_79            IN VARCHAR2
15451  , p_source_79_meaning    IN VARCHAR2
15452 --Invoice Supplier Identifier
15453  , p_source_80            IN NUMBER
15454 --Invoice Supplier Site Identifier
15455  , p_source_81            IN NUMBER
15456 --Third Party Type
15457  , p_source_82            IN VARCHAR2
15458 --Parent Reversal Identifier
15459  , p_source_83            IN NUMBER
15460 --Invoice Distribution Statistical Amount
15461  , p_source_84            IN NUMBER
15462 --Invoice Distribution Tax Line Identifier
15463  , p_source_85            IN NUMBER
15464 --Invoice Distribution Tax Distribution Identifier from Tax
15465  , p_source_86            IN NUMBER
15466 --Invoice Distribution Summary Tax Line Identifier
15467  , p_source_87            IN NUMBER
15468 --Payables Upgrade Credit Encumbrance Type Identifier
15469  , p_source_88            IN NUMBER
15470 --Payables Upgrade Debit Encumbrance Type Identifier
15471  , p_source_89            IN NUMBER
15472 --Business Flow Accounts Payable Application Identifier
15473  , p_source_90            IN NUMBER
15474 --Business Flow Invoice Distribution Type
15475  , p_source_91            IN VARCHAR2
15476 --Business Flow Invoice Entity Code
15477  , p_source_92            IN VARCHAR2
15478 --Business Flow Invoice Distribution Identifier
15479  , p_source_93            IN NUMBER
15480 --Business Flow Invoice Identifier
15481  , p_source_94            IN NUMBER
15482 --Accrue on Receipt Option
15483  , p_source_95            IN VARCHAR2
15484  , p_source_95_meaning    IN VARCHAR2
15485 )
15486 IS
15487 
15488 l_component_type              VARCHAR2(80);
15489 l_component_code              VARCHAR2(30);
15490 l_component_type_code         VARCHAR2(1);
15491 l_component_appl_id           INTEGER;
15492 l_amb_context_code            VARCHAR2(30);
15493 l_entity_code                 VARCHAR2(30);
15494 l_event_class_code            VARCHAR2(30);
15495 l_ae_header_id                NUMBER;
15496 l_event_type_code             VARCHAR2(30);
15497 l_line_definition_code        VARCHAR2(30);
15498 l_line_definition_owner_code  VARCHAR2(1);
15499 --
15500 -- adr variables
15501 l_segment                     VARCHAR2(30);
15502 l_ccid                        NUMBER;
15503 l_adr_transaction_coa_id      NUMBER;
15504 l_adr_accounting_coa_id       NUMBER;
15505 l_adr_flexfield_segment_code  VARCHAR2(30);
15506 l_adr_flex_value_set_id       NUMBER;
15507 l_adr_value_type_code         VARCHAR2(30);
15508 l_adr_value_combination_id    NUMBER;
15509 l_adr_value_segment_code      VARCHAR2(30);
15510 
15511 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15512 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15513 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15514 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15515 
15516 -- 4262811 Variables ------------------------------------------------------------------------------------------
15517 l_entered_amt_idx             NUMBER;
15518 l_accted_amt_idx              NUMBER;
15519 l_acc_rev_flag                VARCHAR2(1);
15520 l_accrual_line_num            NUMBER;
15521 l_tmp_amt                     NUMBER;
15522 l_acc_rev_natural_side_code   VARCHAR2(1);
15523 
15524 l_num_entries                 NUMBER;
15525 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15526 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15527 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15528 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15529 l_recog_line_1                NUMBER;
15530 l_recog_line_2                NUMBER;
15531 
15532 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15533 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15534 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15535 
15536 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15537 
15538 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15539 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15540 
15544 --
15541 ---------------------------------------------------------------------------------------------------------------
15542 
15543 
15545 -- bulk performance
15546 --
15547 l_balance_type_code           VARCHAR2(1);
15548 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15549 l_log_module                  VARCHAR2(240);
15550 
15551 --
15552 -- Upgrade strategy
15553 --
15554 l_actual_upg_option           VARCHAR2(1);
15555 l_enc_upg_option           VARCHAR2(1);
15556 
15557 --
15558 BEGIN
15559 --
15560 IF g_log_enabled THEN
15561       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
15562 END IF;
15563 --
15564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15565 
15566       trace
15567          (p_msg      => 'BEGIN of AcctLineType_56'
15568          ,p_level    => C_LEVEL_PROCEDURE
15569          ,p_module   => l_log_module);
15570 
15571 END IF;
15572 --
15573 l_component_type             := 'AMB_JLT';
15574 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_INV';
15575 l_component_type_code        := 'S';
15576 l_component_appl_id          :=  200;
15577 l_amb_context_code           := 'DEFAULT';
15578 l_entity_code                := 'AP_INVOICES';
15579 l_event_class_code           := 'INVOICES';
15580 l_event_type_code            := 'INVOICES_ALL';
15581 l_line_definition_owner_code := 'S';
15582 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
15583 --
15584 l_balance_type_code          := 'A';
15585 l_segment                     := NULL;
15586 l_ccid                        := NULL;
15587 l_adr_transaction_coa_id      := NULL;
15588 l_adr_accounting_coa_id       := NULL;
15589 l_adr_flexfield_segment_code  := NULL;
15590 l_adr_flex_value_set_id       := NULL;
15591 l_adr_value_type_code         := NULL;
15592 l_adr_value_combination_id    := NULL;
15593 l_adr_value_segment_code      := NULL;
15594 
15595 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15596 l_bflow_class_code           := '';    -- 4219869 Business Flow
15597 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15598 l_budgetary_control_flag     := 'N';
15599 
15600 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15601 l_bflow_applied_to_amt       := NULL; -- 5132302
15602 l_entered_amt_idx            := NULL;          -- 4262811
15603 l_accted_amt_idx             := NULL;          -- 4262811
15604 l_acc_rev_flag               := NULL;          -- 4262811
15605 l_accrual_line_num           := NULL;          -- 4262811
15606 l_tmp_amt                    := NULL;          -- 4262811
15607 --
15608 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15609             (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
15610                return;
15611   END IF;
15612   
15613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15614     l_balance_type_code <> 'B' THEN
15615 IF NVL(p_source_33,'
15616 ') =  'NONREC_TAX' AND 
15617 NVL(p_source_95,'
15618 ') =  'Y'
15619  THEN 
15620 
15621    --
15622    XLA_AE_LINES_PKG.SetNewLine;
15623 
15624    p_balance_type_code          := l_balance_type_code;
15625    -- set the flag so later we will know whether the gain loss line needs to be created
15626    
15627    IF(l_balance_type_code = 'A' ) THEN
15628      p_actual_flag :='G';
15629    END IF;
15630 
15631    --
15632    -- bulk performance
15633    --
15634    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15635                                       p_header_num   => 0); -- 4262811
15636    --
15637    -- set accounting line options
15638    --
15639    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15640            p_natural_side_code          => 'G'
15641          , p_gain_or_loss_flag          => 'N'
15642          , p_gl_transfer_mode_code      => 'S'
15643          , p_acct_entry_type_code       => 'A'
15644          , p_switch_side_flag           => ''
15645          , p_merge_duplicate_code       => 'A'
15646          );
15647    --
15648    l_acc_rev_natural_side_code := 'C';  -- 4262811
15649    -- 
15650    --
15651    -- set accounting line type info
15652    --
15653    xla_ae_lines_pkg.SetAcctLineType
15654       (p_component_type             => l_component_type
15655       ,p_event_type_code            => l_event_type_code
15656       ,p_line_definition_owner_code => l_line_definition_owner_code
15657       ,p_line_definition_code       => l_line_definition_code
15658       ,p_accounting_line_code       => l_component_code
15659       ,p_accounting_line_type_code  => l_component_type_code
15660       ,p_accounting_line_appl_id    => l_component_appl_id
15661       ,p_amb_context_code           => l_amb_context_code
15662       ,p_entity_code                => l_entity_code
15663       ,p_event_class_code           => l_event_class_code);
15664    --
15665    -- set accounting class
15666    --
15667    xla_ae_lines_pkg.SetAcctClass(
15668            p_accounting_class_code  => 'TERV'
15669          , p_ae_header_id           => l_ae_header_id
15670          );
15671 
15672    --
15676                       'TERV';
15673    -- set rounding class
15674    --
15675    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15677 
15678    --
15679    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15680    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15681    --
15682    -- bulk performance
15683    --
15684    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15685 
15686    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15687       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15688 
15689    -- 4955764
15690    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15691       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15692 
15693    -- 4458381 Public Sector Enh
15694    
15695    --
15696    -- set accounting attributes for the line type
15697    --
15698    l_entered_amt_idx := NULL;
15699    l_accted_amt_idx  := 24;
15700    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
15701    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15702    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
15703    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15704    l_rec_acct_attrs.array_num_value(2)  := 
15705 xla_ae_sources_pkg.GetSystemSourceNum(
15706    p_source_code           => 'XLA_EVENT_APPL_ID'
15707  , p_source_type_code      => 'Y'
15708  , p_source_application_id =>  602
15709 );
15710    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15711    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
15712    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15713    l_rec_acct_attrs.array_char_value(4)  := 
15714 xla_ae_sources_pkg.GetSystemSourceChar(
15715    p_source_code           => 'XLA_ENTITY_CODE'
15716  , p_source_type_code      => 'Y'
15717  , p_source_application_id =>  602
15718 );
15719    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15720    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
15721    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15722    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
15723    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
15724    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
15725    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15726    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
15727    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15728    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
15729    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15730    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
15731    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15732    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
15733    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15734    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
15735    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
15736    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
15737    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
15738    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
15739    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15740    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
15741    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15742    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
15743    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15744    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
15745    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15746    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
15747    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
15748    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
15749    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
15750    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
15751    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
15752    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
15753    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
15754    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
15755    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
15756    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
15757    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
15758    l_rec_acct_attrs.array_num_value(24)  := p_source_21;
15759    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
15760    l_rec_acct_attrs.array_date_value(25)  := p_source_76;
15761    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
15762    l_rec_acct_attrs.array_char_value(26)  := p_source_77;
15763    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
15764    l_rec_acct_attrs.array_date_value(27)  := p_source_78;
15765    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
15766    l_rec_acct_attrs.array_char_value(28)  := p_source_79;
15767    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
15768    l_rec_acct_attrs.array_num_value(29)  := p_source_80;
15772    l_rec_acct_attrs.array_char_value(31)  := p_source_82;
15769    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
15770    l_rec_acct_attrs.array_num_value(30)  := p_source_81;
15771    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
15773    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
15774    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_83);
15775    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15776    l_rec_acct_attrs.array_char_value(33)  := p_source_54;
15777    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
15778    l_rec_acct_attrs.array_num_value(34)  := p_source_84;
15779    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15780    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
15781    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15782    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
15783    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15784    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
15785    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15786    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
15787    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15788    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
15789 
15790    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15791    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15792 
15793    ---------------------------------------------------------------------------------------------------------------
15794    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15795    ---------------------------------------------------------------------------------------------------------------
15796    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15797 
15798    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15799    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15800 
15801    IF xla_accounting_cache_pkg.GetValueChar
15802          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15803          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15804    AND l_bflow_method_code = 'PRIOR_ENTRY'
15805 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15806    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15807          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15808        )
15809    THEN
15810          xla_ae_lines_pkg.BflowUpgEntry
15811            (p_business_method_code    => l_bflow_method_code
15812            ,p_business_class_code     => l_bflow_class_code
15813            ,p_balance_type            => l_balance_type_code);
15814    ELSE
15815       NULL;
15816 -- No business flow processing for business flow method of NONE.
15817    END IF;
15818 
15819    --
15820    -- call analytical criteria
15821    --
15822    
15823    --
15824    -- call description
15825    --
15826    
15827 xla_ae_lines_pkg.SetLineDescription(
15828    p_ae_header_id => l_ae_header_id
15829   ,p_description  => Description_1 (
15830      p_application_id         => p_application_id
15831    , p_ae_header_id           => l_ae_header_id 
15832 , p_source_1 => p_source_1
15833    )
15834 );
15835 
15836 
15837    --
15838    -- call ADRs
15839    -- Bug 4922099
15840    --
15841    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15842         (NVL(l_actual_upg_option, 'N') = 'O') OR
15843         (NVL(l_enc_upg_option, 'N') = 'O')
15844       )
15845    THEN
15846    NULL;
15847    --
15848    --
15849    
15850   l_ccid := AcctDerRule_30(
15851            p_application_id           => p_application_id
15852          , p_ae_header_id             => l_ae_header_id 
15853 , p_source_15 => p_source_15
15854 , p_source_15_meaning => p_source_15_meaning
15855 , p_source_20 => p_source_20
15856 , p_source_21 => p_source_21
15857 , p_source_22 => p_source_22
15858 , p_source_22_meaning => p_source_22_meaning
15859 , p_source_23 => p_source_23
15860 , p_source_30 => p_source_30
15861 , p_source_47 => p_source_47
15862 , p_source_47_meaning => p_source_47_meaning
15863          , x_transaction_coa_id       => l_adr_transaction_coa_id
15864          , x_accounting_coa_id        => l_adr_accounting_coa_id
15865          , x_value_type_code          => l_adr_value_type_code
15866          , p_side                     => 'ALL'
15867    );
15868 
15869    xla_ae_lines_pkg.set_ccid(
15870     p_code_combination_id          => l_ccid
15871   , p_value_type_code              => l_adr_value_type_code
15872   , p_transaction_coa_id           => l_adr_transaction_coa_id
15873   , p_accounting_coa_id            => l_adr_accounting_coa_id
15874   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15875   , p_adr_type_code                => 'S'
15876   , p_component_type               => l_component_type
15877   , p_component_code               => l_component_code
15878   , p_component_type_code          => l_component_type_code
15879   , p_component_appl_id            => l_component_appl_id
15880   , p_amb_context_code             => l_amb_context_code
15881   , p_side                         => 'ALL'
15882   );
15883 
15884 
15885    l_segment := AcctDerRule_9(
15889 , p_source_15_meaning => p_source_15_meaning
15886            p_application_id           => p_application_id
15887          , p_ae_header_id             => l_ae_header_id 
15888 , p_source_15 => p_source_15
15890 , p_source_20 => p_source_20
15891 , p_source_22 => p_source_22
15892 , p_source_22_meaning => p_source_22_meaning
15893          , x_transaction_coa_id       => l_adr_transaction_coa_id
15894          , x_accounting_coa_id        => l_adr_accounting_coa_id
15895          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15896          , x_flex_value_set_id        => l_adr_flex_value_set_id
15897          , x_value_type_code          => l_adr_value_type_code
15898          , x_value_combination_id     => l_adr_value_combination_id
15899          , x_value_segment_code       => l_adr_value_segment_code
15900          , p_side                     => 'CREDIT'
15901          , p_override_seg_flag        => 'Y'
15902    );
15903 
15904    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15905 
15906       xla_ae_lines_pkg.set_segment(
15907           p_to_segment_code         => 'GL_ACCOUNT'
15908         , p_segment_value           => l_segment
15909         , p_from_segment_code       => l_adr_value_segment_code
15910         , p_from_combination_id     => l_adr_value_combination_id
15911         , p_value_type_code         => l_adr_value_type_code
15912         , p_transaction_coa_id      => l_adr_transaction_coa_id
15913         , p_accounting_coa_id       => l_adr_accounting_coa_id
15914         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15915         , p_flex_value_set_id       => l_adr_flex_value_set_id
15916         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15917         , p_adr_type_code           => 'S'
15918         , p_component_type          => l_component_type
15919         , p_component_code          => l_component_code
15920         , p_component_type_code     => l_component_type_code
15921         , p_component_appl_id       => l_component_appl_id
15922         , p_amb_context_code        => l_amb_context_code
15923         , p_entity_code             => 'AP_INVOICES'
15924         , p_event_class_code        => 'INVOICES'
15925         , p_side                    => 'CREDIT'
15926         );
15927 
15928   END IF;
15929 
15930    l_segment := AcctDerRule_10(
15931            p_application_id           => p_application_id
15932          , p_ae_header_id             => l_ae_header_id 
15933 , p_source_15 => p_source_15
15934 , p_source_15_meaning => p_source_15_meaning
15935 , p_source_22 => p_source_22
15936 , p_source_22_meaning => p_source_22_meaning
15937 , p_source_23 => p_source_23
15938          , x_transaction_coa_id       => l_adr_transaction_coa_id
15939          , x_accounting_coa_id        => l_adr_accounting_coa_id
15940          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15941          , x_flex_value_set_id        => l_adr_flex_value_set_id
15942          , x_value_type_code          => l_adr_value_type_code
15943          , x_value_combination_id     => l_adr_value_combination_id
15944          , x_value_segment_code       => l_adr_value_segment_code
15945          , p_side                     => 'DEBIT'
15946          , p_override_seg_flag        => 'Y'
15947    );
15948 
15949    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15950 
15951       xla_ae_lines_pkg.set_segment(
15952           p_to_segment_code         => 'GL_ACCOUNT'
15953         , p_segment_value           => l_segment
15954         , p_from_segment_code       => l_adr_value_segment_code
15955         , p_from_combination_id     => l_adr_value_combination_id
15956         , p_value_type_code         => l_adr_value_type_code
15957         , p_transaction_coa_id      => l_adr_transaction_coa_id
15958         , p_accounting_coa_id       => l_adr_accounting_coa_id
15959         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15960         , p_flex_value_set_id       => l_adr_flex_value_set_id
15961         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15962         , p_adr_type_code           => 'S'
15963         , p_component_type          => l_component_type
15964         , p_component_code          => l_component_code
15965         , p_component_type_code     => l_component_type_code
15966         , p_component_appl_id       => l_component_appl_id
15967         , p_amb_context_code        => l_amb_context_code
15968         , p_entity_code             => 'AP_INVOICES'
15969         , p_event_class_code        => 'INVOICES'
15970         , p_side                    => 'DEBIT'
15971         );
15972 
15973   END IF;
15974 
15975    l_segment := AcctDerRule_23(
15976            p_application_id           => p_application_id
15977          , p_ae_header_id             => l_ae_header_id 
15978 , p_source_15 => p_source_15
15979 , p_source_15_meaning => p_source_15_meaning
15980 , p_source_22 => p_source_22
15981 , p_source_22_meaning => p_source_22_meaning
15982 , p_source_30 => p_source_30
15983          , x_transaction_coa_id       => l_adr_transaction_coa_id
15984          , x_accounting_coa_id        => l_adr_accounting_coa_id
15985          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15986          , x_flex_value_set_id        => l_adr_flex_value_set_id
15987          , x_value_type_code          => l_adr_value_type_code
15988          , x_value_combination_id     => l_adr_value_combination_id
15989          , x_value_segment_code       => l_adr_value_segment_code
15993 
15990          , p_side                     => 'ALL'
15991          , p_override_seg_flag        => 'Y'
15992    );
15994    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15995 
15996       xla_ae_lines_pkg.set_segment(
15997           p_to_segment_code         => 'GL_BALANCING'
15998         , p_segment_value           => l_segment
15999         , p_from_segment_code       => l_adr_value_segment_code
16000         , p_from_combination_id     => l_adr_value_combination_id
16001         , p_value_type_code         => l_adr_value_type_code
16002         , p_transaction_coa_id      => l_adr_transaction_coa_id
16003         , p_accounting_coa_id       => l_adr_accounting_coa_id
16004         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16005         , p_flex_value_set_id       => l_adr_flex_value_set_id
16006         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16007         , p_adr_type_code           => 'S'
16008         , p_component_type          => l_component_type
16009         , p_component_code          => l_component_code
16010         , p_component_type_code     => l_component_type_code
16011         , p_component_appl_id       => l_component_appl_id
16012         , p_amb_context_code        => l_amb_context_code
16013         , p_entity_code             => 'AP_INVOICES'
16014         , p_event_class_code        => 'INVOICES'
16015         , p_side                    => 'ALL'
16016         );
16017 
16018   END IF;
16019 
16020    --
16021    --
16022    END IF;
16023    --
16024    -- Bug 4922099
16025    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16026           (NVL(l_enc_upg_option, 'N') = 'O')
16027         ) AND
16028         (l_bflow_method_code = 'PRIOR_ENTRY')
16029       )
16030    THEN
16031       IF
16032       --
16033       1 = 2
16034       --
16035       THEN
16036       xla_accounting_err_pkg.build_message
16037                                     (p_appli_s_name            => 'XLA'
16038                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16039                                     ,p_token_1                 => 'LINE_NUMBER'
16040                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16041                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16042                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16043                                                                              l_component_type
16044                                                                             ,l_component_code
16045                                                                             ,l_component_type_code
16046                                                                             ,l_component_appl_id
16047                                                                             ,l_amb_context_code
16048                                                                             ,l_entity_code
16049                                                                             ,l_event_class_code
16050                                                                            )
16051                                     ,p_token_3                 => 'OWNER'
16052                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16053                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16054                                                                           ,p_lookup_code    => l_component_type_code
16055                                                                          )
16056                                     ,p_token_4                 => 'PRODUCT_NAME'
16057                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16058                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16059                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16060                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16061                                     ,p_ae_header_id            =>  NULL
16062                                        );
16063 
16064         IF (C_LEVEL_ERROR>= g_log_level) THEN
16065                  trace
16066                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16067                       ,p_level    => C_LEVEL_ERROR
16068                       ,p_module   => l_log_module);
16069         END IF;
16070       END IF;
16071    END IF;
16072    --
16073    --
16074    ------------------------------------------------------------------------------------------------
16075    -- 4219869 Business Flow
16076    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16077    -- Prior Entry.  Currently, the following code is always generated.
16078    ------------------------------------------------------------------------------------------------
16079    XLA_AE_LINES_PKG.ValidateCurrentLine;
16080 
16081    ------------------------------------------------------------------------------------
16082    -- 4219869 Business Flow
16083    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16084    ------------------------------------------------------------------------------------
16085    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16086 
16090    ----------------------------------------------------------------------------------
16087    ----------------------------------------------------------------------------------
16088    -- 4219869 Business Flow
16089    -- Update journal entry status -- Need to generate this within IF <condition>
16091    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16092          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16093          ,p_balance_type_code => l_balance_type_code
16094          );
16095 
16096    -------------------------------------------------------------------------------------------
16097    -- 4262811 - Generate the Accrual Reversal lines
16098    -------------------------------------------------------------------------------------------
16099    BEGIN
16100       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16101                               (g_array_event(p_event_id).array_value_num('header_index'));
16102       IF l_acc_rev_flag IS NULL THEN
16103          l_acc_rev_flag := 'N';
16104       END IF;
16105    EXCEPTION
16106       WHEN OTHERS THEN
16107          l_acc_rev_flag := 'N';
16108    END;
16109    --
16110    IF (l_acc_rev_flag = 'Y') THEN
16111 
16112        -- 4645092  ------------------------------------------------------------------------------
16113        -- To allow MPA report to determine if it should generate report process
16114        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16115        ------------------------------------------------------------------------------------------
16116 
16117        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16118        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16119    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16120    -- call ADRs
16121    -- Bug 4922099
16122    --
16123    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16124         (NVL(l_actual_upg_option, 'N') = 'O') OR
16125         (NVL(l_enc_upg_option, 'N') = 'O')
16126       )
16127    THEN
16128    NULL;
16129    --
16130    --
16131    
16132   l_ccid := AcctDerRule_30(
16133            p_application_id           => p_application_id
16134          , p_ae_header_id             => l_ae_header_id 
16135 , p_source_15 => p_source_15
16136 , p_source_15_meaning => p_source_15_meaning
16137 , p_source_20 => p_source_20
16138 , p_source_21 => p_source_21
16139 , p_source_22 => p_source_22
16140 , p_source_22_meaning => p_source_22_meaning
16141 , p_source_23 => p_source_23
16142 , p_source_30 => p_source_30
16143 , p_source_47 => p_source_47
16144 , p_source_47_meaning => p_source_47_meaning
16145          , x_transaction_coa_id       => l_adr_transaction_coa_id
16146          , x_accounting_coa_id        => l_adr_accounting_coa_id
16147          , x_value_type_code          => l_adr_value_type_code
16148          , p_side                     => 'ALL'
16149    );
16150 
16151    xla_ae_lines_pkg.set_ccid(
16152     p_code_combination_id          => l_ccid
16153   , p_value_type_code              => l_adr_value_type_code
16154   , p_transaction_coa_id           => l_adr_transaction_coa_id
16155   , p_accounting_coa_id            => l_adr_accounting_coa_id
16156   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16157   , p_adr_type_code                => 'S'
16158   , p_component_type               => l_component_type
16159   , p_component_code               => l_component_code
16160   , p_component_type_code          => l_component_type_code
16161   , p_component_appl_id            => l_component_appl_id
16162   , p_amb_context_code             => l_amb_context_code
16163   , p_side                         => 'ALL'
16164   );
16165 
16166 
16167    l_segment := AcctDerRule_9(
16168            p_application_id           => p_application_id
16169          , p_ae_header_id             => l_ae_header_id 
16170 , p_source_15 => p_source_15
16171 , p_source_15_meaning => p_source_15_meaning
16172 , p_source_20 => p_source_20
16173 , p_source_22 => p_source_22
16174 , p_source_22_meaning => p_source_22_meaning
16175          , x_transaction_coa_id       => l_adr_transaction_coa_id
16176          , x_accounting_coa_id        => l_adr_accounting_coa_id
16177          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16178          , x_flex_value_set_id        => l_adr_flex_value_set_id
16179          , x_value_type_code          => l_adr_value_type_code
16180          , x_value_combination_id     => l_adr_value_combination_id
16181          , x_value_segment_code       => l_adr_value_segment_code
16182          , p_side                     => 'CREDIT'
16183          , p_override_seg_flag        => 'Y'
16184    );
16185 
16186    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16187 
16188       xla_ae_lines_pkg.set_segment(
16189           p_to_segment_code         => 'GL_ACCOUNT'
16190         , p_segment_value           => l_segment
16191         , p_from_segment_code       => l_adr_value_segment_code
16192         , p_from_combination_id     => l_adr_value_combination_id
16193         , p_value_type_code         => l_adr_value_type_code
16194         , p_transaction_coa_id      => l_adr_transaction_coa_id
16195         , p_accounting_coa_id       => l_adr_accounting_coa_id
16196         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16197         , p_flex_value_set_id       => l_adr_flex_value_set_id
16198         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16199         , p_adr_type_code           => 'S'
16200         , p_component_type          => l_component_type
16204         , p_amb_context_code        => l_amb_context_code
16201         , p_component_code          => l_component_code
16202         , p_component_type_code     => l_component_type_code
16203         , p_component_appl_id       => l_component_appl_id
16205         , p_entity_code             => 'AP_INVOICES'
16206         , p_event_class_code        => 'INVOICES'
16207         , p_side                    => 'CREDIT'
16208         );
16209 
16210   END IF;
16211 
16212    l_segment := AcctDerRule_10(
16213            p_application_id           => p_application_id
16214          , p_ae_header_id             => l_ae_header_id 
16215 , p_source_15 => p_source_15
16216 , p_source_15_meaning => p_source_15_meaning
16217 , p_source_22 => p_source_22
16218 , p_source_22_meaning => p_source_22_meaning
16219 , p_source_23 => p_source_23
16220          , x_transaction_coa_id       => l_adr_transaction_coa_id
16221          , x_accounting_coa_id        => l_adr_accounting_coa_id
16222          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16223          , x_flex_value_set_id        => l_adr_flex_value_set_id
16224          , x_value_type_code          => l_adr_value_type_code
16225          , x_value_combination_id     => l_adr_value_combination_id
16226          , x_value_segment_code       => l_adr_value_segment_code
16227          , p_side                     => 'DEBIT'
16228          , p_override_seg_flag        => 'Y'
16229    );
16230 
16231    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16232 
16233       xla_ae_lines_pkg.set_segment(
16234           p_to_segment_code         => 'GL_ACCOUNT'
16235         , p_segment_value           => l_segment
16236         , p_from_segment_code       => l_adr_value_segment_code
16237         , p_from_combination_id     => l_adr_value_combination_id
16238         , p_value_type_code         => l_adr_value_type_code
16239         , p_transaction_coa_id      => l_adr_transaction_coa_id
16240         , p_accounting_coa_id       => l_adr_accounting_coa_id
16241         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16242         , p_flex_value_set_id       => l_adr_flex_value_set_id
16243         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16244         , p_adr_type_code           => 'S'
16245         , p_component_type          => l_component_type
16246         , p_component_code          => l_component_code
16247         , p_component_type_code     => l_component_type_code
16248         , p_component_appl_id       => l_component_appl_id
16249         , p_amb_context_code        => l_amb_context_code
16250         , p_entity_code             => 'AP_INVOICES'
16251         , p_event_class_code        => 'INVOICES'
16252         , p_side                    => 'DEBIT'
16253         );
16254 
16255   END IF;
16256 
16257    l_segment := AcctDerRule_23(
16258            p_application_id           => p_application_id
16259          , p_ae_header_id             => l_ae_header_id 
16260 , p_source_15 => p_source_15
16261 , p_source_15_meaning => p_source_15_meaning
16262 , p_source_22 => p_source_22
16263 , p_source_22_meaning => p_source_22_meaning
16264 , p_source_30 => p_source_30
16265          , x_transaction_coa_id       => l_adr_transaction_coa_id
16266          , x_accounting_coa_id        => l_adr_accounting_coa_id
16267          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16268          , x_flex_value_set_id        => l_adr_flex_value_set_id
16269          , x_value_type_code          => l_adr_value_type_code
16270          , x_value_combination_id     => l_adr_value_combination_id
16271          , x_value_segment_code       => l_adr_value_segment_code
16272          , p_side                     => 'ALL'
16273          , p_override_seg_flag        => 'Y'
16274    );
16275 
16276    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16277 
16278       xla_ae_lines_pkg.set_segment(
16279           p_to_segment_code         => 'GL_BALANCING'
16280         , p_segment_value           => l_segment
16281         , p_from_segment_code       => l_adr_value_segment_code
16282         , p_from_combination_id     => l_adr_value_combination_id
16283         , p_value_type_code         => l_adr_value_type_code
16284         , p_transaction_coa_id      => l_adr_transaction_coa_id
16285         , p_accounting_coa_id       => l_adr_accounting_coa_id
16286         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16287         , p_flex_value_set_id       => l_adr_flex_value_set_id
16288         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16289         , p_adr_type_code           => 'S'
16290         , p_component_type          => l_component_type
16291         , p_component_code          => l_component_code
16292         , p_component_type_code     => l_component_type_code
16293         , p_component_appl_id       => l_component_appl_id
16294         , p_amb_context_code        => l_amb_context_code
16295         , p_entity_code             => 'AP_INVOICES'
16296         , p_event_class_code        => 'INVOICES'
16297         , p_side                    => 'ALL'
16298         );
16299 
16300   END IF;
16301 
16302    --
16303    --
16304    END IF;
16305 
16306        --
16307        -- Update the line information that should be overwritten
16308        --
16309        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16310                                          p_header_num   => 1);
16311        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16312 
16313        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16314 
16315        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16319       --
16316           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16317        END IF;
16318 
16320       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16321       --
16322       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16323           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16324       ELSE
16325           ---------------------------------------------------------------------------------------------------
16326           -- 4262811a Switch Sign
16327           ---------------------------------------------------------------------------------------------------
16328           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16329           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16330                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16331           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16332                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16333           -- 5132302
16334           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16335                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16336 
16337       END IF;
16338 
16339       -- 4955764
16340       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16341       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16342 
16343 
16344       XLA_AE_LINES_PKG.ValidateCurrentLine;
16345       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16346 
16347       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16348                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16349                ,p_balance_type_code => l_balance_type_code);
16350 
16351    END IF;
16352 
16353    -----------------------------------------------------------------------------------------
16354    -- 4262811 Multiperiod Accounting
16355    -----------------------------------------------------------------------------------------
16356      -- No MPA option is assigned.
16357 
16358 
16359 END IF;
16360 END IF;
16361 --
16362 
16363 --
16364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16365    trace
16366       (p_msg      => 'END of AcctLineType_56'
16367       ,p_level    => C_LEVEL_PROCEDURE
16368       ,p_module   => l_log_module);
16369 END IF;
16370 --
16371 EXCEPTION
16372   WHEN xla_exceptions_pkg.application_exception THEN
16373       RAISE;
16374   WHEN OTHERS THEN
16375        xla_exceptions_pkg.raise_message
16376            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_56');
16377 END AcctLineType_56;
16378 --
16379 
16380 ---------------------------------------
16381 --
16382 -- PRIVATE FUNCTION
16383 --         AcctLineType_57
16384 --
16385 ---------------------------------------
16386 PROCEDURE AcctLineType_57 (
16387   p_application_id        IN NUMBER
16388  ,p_event_id              IN NUMBER
16389  ,p_calculate_acctd_flag  IN VARCHAR2
16390  ,p_calculate_g_l_flag    IN VARCHAR2
16391  ,p_actual_flag           IN OUT VARCHAR2
16392  ,p_balance_type_code     OUT VARCHAR2
16393  ,p_gain_or_loss_ref      OUT VARCHAR2
16394  
16395 --Invoice Distribution Description
16396  , p_source_1            IN VARCHAR2
16397 --Automatic Offsets Value
16398  , p_source_15            IN VARCHAR2
16399  , p_source_15_meaning    IN VARCHAR2
16400 --Purchase Order Rate Variance Gain Account
16401  , p_source_20            IN NUMBER
16402 --Invoice Distribution Ledger Amount
16403  , p_source_21            IN NUMBER
16404 --Destination Type of the PO Distribution
16405  , p_source_22            IN VARCHAR2
16406  , p_source_22_meaning    IN VARCHAR2
16407 --Purchase Order Rate Variance Loss Account
16408  , p_source_23            IN NUMBER
16409 --Invoice Distribution Account
16410  , p_source_30            IN NUMBER
16411 --Invoice Distribution Type
16412  , p_source_33            IN VARCHAR2
16413  , p_source_33_meaning    IN VARCHAR2
16414 --Automatic Offsets Flag
16415  , p_source_47            IN VARCHAR2
16416  , p_source_47_meaning    IN VARCHAR2
16417 --Accounting Reversal Indicator
16418  , p_source_52            IN VARCHAR2
16419 --Distribution Link Type
16420  , p_source_54            IN VARCHAR2
16421 --Allocation to Main Distribution Identifier
16422  , p_source_56            IN NUMBER
16423 --Invoice Identifier
16424  , p_source_57            IN NUMBER
16425 --Invoice Distribution Identifier
16426  , p_source_63            IN NUMBER
16427 --Payables Encumbrance Upgrade Credit Account
16428  , p_source_64            IN NUMBER
16429 --Payables Encumbrance Upgrade Credit Amount
16430  , p_source_65            IN NUMBER
16431 --Invoice Currency Code
16432  , p_source_66            IN VARCHAR2
16433 --Payables Encumbrance Upgrade Credit Base Amount
16434  , p_source_67            IN NUMBER
16435 --Payables Encumbrance Upgrade Debit Account
16436  , p_source_68            IN NUMBER
16437 --Payables Encumbrance Upgrade Debit Amount
16438  , p_source_69            IN NUMBER
16442  , p_source_71            IN VARCHAR2
16439 --Payables Encumbrance Upgrade Debit Base Amount
16440  , p_source_70            IN NUMBER
16441 --Payables Encumbrance Upgrade Option
16443 --Deferred Accounting End Date
16444  , p_source_76            IN DATE
16445 --Deferred Accounting Option
16446  , p_source_77            IN VARCHAR2
16447 --Deferred Accounting Start Date
16448  , p_source_78            IN DATE
16449 --Override Accounted Amount Indicator
16450  , p_source_79            IN VARCHAR2
16451  , p_source_79_meaning    IN VARCHAR2
16452 --Invoice Supplier Identifier
16453  , p_source_80            IN NUMBER
16454 --Invoice Supplier Site Identifier
16455  , p_source_81            IN NUMBER
16456 --Third Party Type
16457  , p_source_82            IN VARCHAR2
16458 --Parent Reversal Identifier
16459  , p_source_83            IN NUMBER
16460 --Invoice Distribution Statistical Amount
16461  , p_source_84            IN NUMBER
16462 --Invoice Distribution Tax Line Identifier
16463  , p_source_85            IN NUMBER
16464 --Invoice Distribution Tax Distribution Identifier from Tax
16465  , p_source_86            IN NUMBER
16466 --Invoice Distribution Summary Tax Line Identifier
16467  , p_source_87            IN NUMBER
16468 --Payables Upgrade Credit Encumbrance Type Identifier
16469  , p_source_88            IN NUMBER
16470 --Payables Upgrade Debit Encumbrance Type Identifier
16471  , p_source_89            IN NUMBER
16472 --Business Flow Accounts Payable Application Identifier
16473  , p_source_90            IN NUMBER
16474 --Business Flow Invoice Distribution Type
16475  , p_source_91            IN VARCHAR2
16476 --Business Flow Invoice Entity Code
16477  , p_source_92            IN VARCHAR2
16478 --Business Flow Invoice Distribution Identifier
16479  , p_source_93            IN NUMBER
16480 --Business Flow Invoice Identifier
16481  , p_source_94            IN NUMBER
16482 --Accrue on Receipt Option
16483  , p_source_95            IN VARCHAR2
16484  , p_source_95_meaning    IN VARCHAR2
16485 )
16486 IS
16487 
16488 l_component_type              VARCHAR2(80);
16489 l_component_code              VARCHAR2(30);
16490 l_component_type_code         VARCHAR2(1);
16491 l_component_appl_id           INTEGER;
16492 l_amb_context_code            VARCHAR2(30);
16493 l_entity_code                 VARCHAR2(30);
16494 l_event_class_code            VARCHAR2(30);
16495 l_ae_header_id                NUMBER;
16496 l_event_type_code             VARCHAR2(30);
16497 l_line_definition_code        VARCHAR2(30);
16498 l_line_definition_owner_code  VARCHAR2(1);
16499 --
16500 -- adr variables
16501 l_segment                     VARCHAR2(30);
16502 l_ccid                        NUMBER;
16503 l_adr_transaction_coa_id      NUMBER;
16504 l_adr_accounting_coa_id       NUMBER;
16505 l_adr_flexfield_segment_code  VARCHAR2(30);
16506 l_adr_flex_value_set_id       NUMBER;
16507 l_adr_value_type_code         VARCHAR2(30);
16508 l_adr_value_combination_id    NUMBER;
16509 l_adr_value_segment_code      VARCHAR2(30);
16510 
16511 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16512 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16513 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16514 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16515 
16516 -- 4262811 Variables ------------------------------------------------------------------------------------------
16517 l_entered_amt_idx             NUMBER;
16518 l_accted_amt_idx              NUMBER;
16519 l_acc_rev_flag                VARCHAR2(1);
16520 l_accrual_line_num            NUMBER;
16521 l_tmp_amt                     NUMBER;
16522 l_acc_rev_natural_side_code   VARCHAR2(1);
16523 
16524 l_num_entries                 NUMBER;
16525 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16526 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16527 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16528 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16529 l_recog_line_1                NUMBER;
16530 l_recog_line_2                NUMBER;
16531 
16532 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16533 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16534 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16535 
16536 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16537 
16538 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16539 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16540 
16541 ---------------------------------------------------------------------------------------------------------------
16542 
16543 
16544 --
16545 -- bulk performance
16546 --
16547 l_balance_type_code           VARCHAR2(1);
16548 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16549 l_log_module                  VARCHAR2(240);
16550 
16551 --
16552 -- Upgrade strategy
16553 --
16554 l_actual_upg_option           VARCHAR2(1);
16555 l_enc_upg_option           VARCHAR2(1);
16556 
16557 --
16558 BEGIN
16559 --
16560 IF g_log_enabled THEN
16561       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
16562 END IF;
16563 --
16564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16565 
16566       trace
16567          (p_msg      => 'BEGIN of AcctLineType_57'
16571 END IF;
16568          ,p_level    => C_LEVEL_PROCEDURE
16569          ,p_module   => l_log_module);
16570 
16572 --
16573 l_component_type             := 'AMB_JLT';
16574 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PREPAY';
16575 l_component_type_code        := 'S';
16576 l_component_appl_id          :=  200;
16577 l_amb_context_code           := 'DEFAULT';
16578 l_entity_code                := 'AP_INVOICES';
16579 l_event_class_code           := 'PREPAYMENTS';
16580 l_event_type_code            := 'PREPAYMENTS_ALL';
16581 l_line_definition_owner_code := 'S';
16582 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
16583 --
16584 l_balance_type_code          := 'A';
16585 l_segment                     := NULL;
16586 l_ccid                        := NULL;
16587 l_adr_transaction_coa_id      := NULL;
16588 l_adr_accounting_coa_id       := NULL;
16589 l_adr_flexfield_segment_code  := NULL;
16590 l_adr_flex_value_set_id       := NULL;
16591 l_adr_value_type_code         := NULL;
16592 l_adr_value_combination_id    := NULL;
16593 l_adr_value_segment_code      := NULL;
16594 
16595 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16596 l_bflow_class_code           := '';    -- 4219869 Business Flow
16597 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16598 l_budgetary_control_flag     := 'N';
16599 
16600 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16601 l_bflow_applied_to_amt       := NULL; -- 5132302
16602 l_entered_amt_idx            := NULL;          -- 4262811
16603 l_accted_amt_idx             := NULL;          -- 4262811
16604 l_acc_rev_flag               := NULL;          -- 4262811
16605 l_accrual_line_num           := NULL;          -- 4262811
16606 l_tmp_amt                    := NULL;          -- 4262811
16607 --
16608 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
16609             (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
16610                return;
16611   END IF;
16612   
16613 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16614     l_balance_type_code <> 'B' THEN
16615 IF NVL(p_source_33,'
16616 ') =  'NONREC_TAX' AND 
16617 NVL(p_source_95,'
16618 ') =  'Y'
16619  THEN 
16620 
16621    --
16622    XLA_AE_LINES_PKG.SetNewLine;
16623 
16624    p_balance_type_code          := l_balance_type_code;
16625    -- set the flag so later we will know whether the gain loss line needs to be created
16626    
16627    IF(l_balance_type_code = 'A' ) THEN
16628      p_actual_flag :='G';
16629    END IF;
16630 
16631    --
16632    -- bulk performance
16633    --
16634    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16635                                       p_header_num   => 0); -- 4262811
16636    --
16637    -- set accounting line options
16638    --
16639    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16640            p_natural_side_code          => 'G'
16641          , p_gain_or_loss_flag          => 'N'
16642          , p_gl_transfer_mode_code      => 'S'
16643          , p_acct_entry_type_code       => 'A'
16644          , p_switch_side_flag           => ''
16645          , p_merge_duplicate_code       => 'A'
16646          );
16647    --
16648    l_acc_rev_natural_side_code := 'C';  -- 4262811
16649    -- 
16650    --
16651    -- set accounting line type info
16652    --
16653    xla_ae_lines_pkg.SetAcctLineType
16654       (p_component_type             => l_component_type
16655       ,p_event_type_code            => l_event_type_code
16656       ,p_line_definition_owner_code => l_line_definition_owner_code
16657       ,p_line_definition_code       => l_line_definition_code
16658       ,p_accounting_line_code       => l_component_code
16659       ,p_accounting_line_type_code  => l_component_type_code
16660       ,p_accounting_line_appl_id    => l_component_appl_id
16661       ,p_amb_context_code           => l_amb_context_code
16662       ,p_entity_code                => l_entity_code
16663       ,p_event_class_code           => l_event_class_code);
16664    --
16665    -- set accounting class
16666    --
16667    xla_ae_lines_pkg.SetAcctClass(
16668            p_accounting_class_code  => 'TERV'
16669          , p_ae_header_id           => l_ae_header_id
16670          );
16671 
16672    --
16673    -- set rounding class
16674    --
16675    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16676                       'TERV';
16677 
16678    --
16679    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16680    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16681    --
16682    -- bulk performance
16683    --
16684    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16685 
16686    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16687       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16688 
16689    -- 4955764
16690    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16694    
16691       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16692 
16693    -- 4458381 Public Sector Enh
16695    --
16696    -- set accounting attributes for the line type
16697    --
16698    l_entered_amt_idx := NULL;
16699    l_accted_amt_idx  := 23;
16700    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
16701    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16702    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
16703    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16704    l_rec_acct_attrs.array_num_value(2)  := 
16705 xla_ae_sources_pkg.GetSystemSourceNum(
16706    p_source_code           => 'XLA_EVENT_APPL_ID'
16707  , p_source_type_code      => 'Y'
16708  , p_source_application_id =>  602
16709 );
16710    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16711    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
16712    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16713    l_rec_acct_attrs.array_char_value(4)  := 
16714 xla_ae_sources_pkg.GetSystemSourceChar(
16715    p_source_code           => 'XLA_ENTITY_CODE'
16716  , p_source_type_code      => 'Y'
16717  , p_source_application_id =>  602
16718 );
16719    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16720    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
16721    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16722    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
16723    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16724    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
16725    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16726    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
16727    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16728    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
16729    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16730    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
16731    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16732    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
16733    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16734    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
16735    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16736    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
16737    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16738    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
16739    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16740    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
16741    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16742    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
16743    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16744    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
16745    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16746    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
16747    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16748    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
16749    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16750    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
16751    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16752    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
16753    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16754    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
16755    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
16756    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
16757    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
16758    l_rec_acct_attrs.array_date_value(24)  := p_source_76;
16759    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
16760    l_rec_acct_attrs.array_char_value(25)  := p_source_77;
16761    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
16762    l_rec_acct_attrs.array_date_value(26)  := p_source_78;
16763    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
16764    l_rec_acct_attrs.array_char_value(27)  := p_source_79;
16765    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
16766    l_rec_acct_attrs.array_num_value(28)  := p_source_80;
16767    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
16768    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
16769    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
16770    l_rec_acct_attrs.array_char_value(30)  := p_source_82;
16771    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
16772    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_83);
16773    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
16774    l_rec_acct_attrs.array_char_value(32)  := p_source_54;
16775    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
16776    l_rec_acct_attrs.array_num_value(33)  := p_source_84;
16777    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
16778    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
16779    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
16780    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
16781    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
16785    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
16782    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
16783    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
16784    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
16786    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
16787 
16788    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16789    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16790 
16791    ---------------------------------------------------------------------------------------------------------------
16792    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16793    ---------------------------------------------------------------------------------------------------------------
16794    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16795 
16796    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16797    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16798 
16799    IF xla_accounting_cache_pkg.GetValueChar
16800          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16801          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16802    AND l_bflow_method_code = 'PRIOR_ENTRY'
16803 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16804    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16805          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16806        )
16807    THEN
16808          xla_ae_lines_pkg.BflowUpgEntry
16809            (p_business_method_code    => l_bflow_method_code
16810            ,p_business_class_code     => l_bflow_class_code
16811            ,p_balance_type            => l_balance_type_code);
16812    ELSE
16813       NULL;
16814 -- No business flow processing for business flow method of NONE.
16815    END IF;
16816 
16817    --
16818    -- call analytical criteria
16819    --
16820    
16821    --
16822    -- call description
16823    --
16824    
16825 xla_ae_lines_pkg.SetLineDescription(
16826    p_ae_header_id => l_ae_header_id
16827   ,p_description  => Description_1 (
16828      p_application_id         => p_application_id
16829    , p_ae_header_id           => l_ae_header_id 
16830 , p_source_1 => p_source_1
16831    )
16832 );
16833 
16834 
16835    --
16836    -- call ADRs
16837    -- Bug 4922099
16838    --
16839    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16840         (NVL(l_actual_upg_option, 'N') = 'O') OR
16841         (NVL(l_enc_upg_option, 'N') = 'O')
16842       )
16843    THEN
16844    NULL;
16845    --
16846    --
16847    
16848   l_ccid := AcctDerRule_30(
16849            p_application_id           => p_application_id
16850          , p_ae_header_id             => l_ae_header_id 
16851 , p_source_15 => p_source_15
16852 , p_source_15_meaning => p_source_15_meaning
16853 , p_source_20 => p_source_20
16854 , p_source_21 => p_source_21
16855 , p_source_22 => p_source_22
16856 , p_source_22_meaning => p_source_22_meaning
16857 , p_source_23 => p_source_23
16858 , p_source_30 => p_source_30
16859 , p_source_47 => p_source_47
16860 , p_source_47_meaning => p_source_47_meaning
16861          , x_transaction_coa_id       => l_adr_transaction_coa_id
16862          , x_accounting_coa_id        => l_adr_accounting_coa_id
16863          , x_value_type_code          => l_adr_value_type_code
16864          , p_side                     => 'ALL'
16865    );
16866 
16867    xla_ae_lines_pkg.set_ccid(
16868     p_code_combination_id          => l_ccid
16869   , p_value_type_code              => l_adr_value_type_code
16870   , p_transaction_coa_id           => l_adr_transaction_coa_id
16871   , p_accounting_coa_id            => l_adr_accounting_coa_id
16872   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16873   , p_adr_type_code                => 'S'
16874   , p_component_type               => l_component_type
16875   , p_component_code               => l_component_code
16876   , p_component_type_code          => l_component_type_code
16877   , p_component_appl_id            => l_component_appl_id
16878   , p_amb_context_code             => l_amb_context_code
16879   , p_side                         => 'ALL'
16880   );
16881 
16882 
16883    l_segment := AcctDerRule_9(
16884            p_application_id           => p_application_id
16885          , p_ae_header_id             => l_ae_header_id 
16886 , p_source_15 => p_source_15
16887 , p_source_15_meaning => p_source_15_meaning
16888 , p_source_20 => p_source_20
16889 , p_source_22 => p_source_22
16890 , p_source_22_meaning => p_source_22_meaning
16891          , x_transaction_coa_id       => l_adr_transaction_coa_id
16892          , x_accounting_coa_id        => l_adr_accounting_coa_id
16893          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16894          , x_flex_value_set_id        => l_adr_flex_value_set_id
16895          , x_value_type_code          => l_adr_value_type_code
16896          , x_value_combination_id     => l_adr_value_combination_id
16897          , x_value_segment_code       => l_adr_value_segment_code
16898          , p_side                     => 'CREDIT'
16899          , p_override_seg_flag        => 'Y'
16900    );
16901 
16905           p_to_segment_code         => 'GL_ACCOUNT'
16902    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16903 
16904       xla_ae_lines_pkg.set_segment(
16906         , p_segment_value           => l_segment
16907         , p_from_segment_code       => l_adr_value_segment_code
16908         , p_from_combination_id     => l_adr_value_combination_id
16909         , p_value_type_code         => l_adr_value_type_code
16910         , p_transaction_coa_id      => l_adr_transaction_coa_id
16911         , p_accounting_coa_id       => l_adr_accounting_coa_id
16912         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16913         , p_flex_value_set_id       => l_adr_flex_value_set_id
16914         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16915         , p_adr_type_code           => 'S'
16916         , p_component_type          => l_component_type
16917         , p_component_code          => l_component_code
16918         , p_component_type_code     => l_component_type_code
16919         , p_component_appl_id       => l_component_appl_id
16920         , p_amb_context_code        => l_amb_context_code
16921         , p_entity_code             => 'AP_INVOICES'
16922         , p_event_class_code        => 'PREPAYMENTS'
16923         , p_side                    => 'CREDIT'
16924         );
16925 
16926   END IF;
16927 
16928    l_segment := AcctDerRule_10(
16929            p_application_id           => p_application_id
16930          , p_ae_header_id             => l_ae_header_id 
16931 , p_source_15 => p_source_15
16932 , p_source_15_meaning => p_source_15_meaning
16933 , p_source_22 => p_source_22
16934 , p_source_22_meaning => p_source_22_meaning
16935 , p_source_23 => p_source_23
16936          , x_transaction_coa_id       => l_adr_transaction_coa_id
16937          , x_accounting_coa_id        => l_adr_accounting_coa_id
16938          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16939          , x_flex_value_set_id        => l_adr_flex_value_set_id
16940          , x_value_type_code          => l_adr_value_type_code
16941          , x_value_combination_id     => l_adr_value_combination_id
16942          , x_value_segment_code       => l_adr_value_segment_code
16943          , p_side                     => 'DEBIT'
16944          , p_override_seg_flag        => 'Y'
16945    );
16946 
16947    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16948 
16949       xla_ae_lines_pkg.set_segment(
16950           p_to_segment_code         => 'GL_ACCOUNT'
16951         , p_segment_value           => l_segment
16952         , p_from_segment_code       => l_adr_value_segment_code
16953         , p_from_combination_id     => l_adr_value_combination_id
16954         , p_value_type_code         => l_adr_value_type_code
16955         , p_transaction_coa_id      => l_adr_transaction_coa_id
16956         , p_accounting_coa_id       => l_adr_accounting_coa_id
16957         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16958         , p_flex_value_set_id       => l_adr_flex_value_set_id
16959         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16960         , p_adr_type_code           => 'S'
16961         , p_component_type          => l_component_type
16962         , p_component_code          => l_component_code
16963         , p_component_type_code     => l_component_type_code
16964         , p_component_appl_id       => l_component_appl_id
16965         , p_amb_context_code        => l_amb_context_code
16966         , p_entity_code             => 'AP_INVOICES'
16967         , p_event_class_code        => 'PREPAYMENTS'
16968         , p_side                    => 'DEBIT'
16969         );
16970 
16971   END IF;
16972 
16973    l_segment := AcctDerRule_23(
16974            p_application_id           => p_application_id
16975          , p_ae_header_id             => l_ae_header_id 
16976 , p_source_15 => p_source_15
16977 , p_source_15_meaning => p_source_15_meaning
16978 , p_source_22 => p_source_22
16979 , p_source_22_meaning => p_source_22_meaning
16980 , p_source_30 => p_source_30
16981          , x_transaction_coa_id       => l_adr_transaction_coa_id
16982          , x_accounting_coa_id        => l_adr_accounting_coa_id
16983          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16984          , x_flex_value_set_id        => l_adr_flex_value_set_id
16985          , x_value_type_code          => l_adr_value_type_code
16986          , x_value_combination_id     => l_adr_value_combination_id
16987          , x_value_segment_code       => l_adr_value_segment_code
16988          , p_side                     => 'ALL'
16989          , p_override_seg_flag        => 'Y'
16990    );
16991 
16992    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16993 
16994       xla_ae_lines_pkg.set_segment(
16995           p_to_segment_code         => 'GL_BALANCING'
16996         , p_segment_value           => l_segment
16997         , p_from_segment_code       => l_adr_value_segment_code
16998         , p_from_combination_id     => l_adr_value_combination_id
16999         , p_value_type_code         => l_adr_value_type_code
17000         , p_transaction_coa_id      => l_adr_transaction_coa_id
17001         , p_accounting_coa_id       => l_adr_accounting_coa_id
17002         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17003         , p_flex_value_set_id       => l_adr_flex_value_set_id
17004         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17005         , p_adr_type_code           => 'S'
17009         , p_component_appl_id       => l_component_appl_id
17006         , p_component_type          => l_component_type
17007         , p_component_code          => l_component_code
17008         , p_component_type_code     => l_component_type_code
17010         , p_amb_context_code        => l_amb_context_code
17011         , p_entity_code             => 'AP_INVOICES'
17012         , p_event_class_code        => 'PREPAYMENTS'
17013         , p_side                    => 'ALL'
17014         );
17015 
17016   END IF;
17017 
17018    --
17019    --
17020    END IF;
17021    --
17022    -- Bug 4922099
17023    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17024           (NVL(l_enc_upg_option, 'N') = 'O')
17025         ) AND
17026         (l_bflow_method_code = 'PRIOR_ENTRY')
17027       )
17028    THEN
17029       IF
17030       --
17031       1 = 2
17032       --
17033       THEN
17034       xla_accounting_err_pkg.build_message
17035                                     (p_appli_s_name            => 'XLA'
17036                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17037                                     ,p_token_1                 => 'LINE_NUMBER'
17038                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17039                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17040                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17041                                                                              l_component_type
17042                                                                             ,l_component_code
17043                                                                             ,l_component_type_code
17044                                                                             ,l_component_appl_id
17045                                                                             ,l_amb_context_code
17046                                                                             ,l_entity_code
17047                                                                             ,l_event_class_code
17048                                                                            )
17049                                     ,p_token_3                 => 'OWNER'
17050                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17051                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17052                                                                           ,p_lookup_code    => l_component_type_code
17053                                                                          )
17054                                     ,p_token_4                 => 'PRODUCT_NAME'
17055                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17056                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17057                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17058                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17059                                     ,p_ae_header_id            =>  NULL
17060                                        );
17061 
17062         IF (C_LEVEL_ERROR>= g_log_level) THEN
17063                  trace
17064                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17065                       ,p_level    => C_LEVEL_ERROR
17066                       ,p_module   => l_log_module);
17067         END IF;
17068       END IF;
17069    END IF;
17070    --
17071    --
17072    ------------------------------------------------------------------------------------------------
17073    -- 4219869 Business Flow
17074    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17075    -- Prior Entry.  Currently, the following code is always generated.
17076    ------------------------------------------------------------------------------------------------
17077    XLA_AE_LINES_PKG.ValidateCurrentLine;
17078 
17079    ------------------------------------------------------------------------------------
17080    -- 4219869 Business Flow
17081    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17082    ------------------------------------------------------------------------------------
17083    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17084 
17085    ----------------------------------------------------------------------------------
17086    -- 4219869 Business Flow
17087    -- Update journal entry status -- Need to generate this within IF <condition>
17088    ----------------------------------------------------------------------------------
17089    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17090          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17091          ,p_balance_type_code => l_balance_type_code
17092          );
17093 
17094    -------------------------------------------------------------------------------------------
17095    -- 4262811 - Generate the Accrual Reversal lines
17096    -------------------------------------------------------------------------------------------
17097    BEGIN
17098       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17099                               (g_array_event(p_event_id).array_value_num('header_index'));
17103    EXCEPTION
17100       IF l_acc_rev_flag IS NULL THEN
17101          l_acc_rev_flag := 'N';
17102       END IF;
17104       WHEN OTHERS THEN
17105          l_acc_rev_flag := 'N';
17106    END;
17107    --
17108    IF (l_acc_rev_flag = 'Y') THEN
17109 
17110        -- 4645092  ------------------------------------------------------------------------------
17111        -- To allow MPA report to determine if it should generate report process
17112        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17113        ------------------------------------------------------------------------------------------
17114 
17115        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17116        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17117    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17118    -- call ADRs
17119    -- Bug 4922099
17120    --
17121    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17122         (NVL(l_actual_upg_option, 'N') = 'O') OR
17123         (NVL(l_enc_upg_option, 'N') = 'O')
17124       )
17125    THEN
17126    NULL;
17127    --
17128    --
17129    
17130   l_ccid := AcctDerRule_30(
17131            p_application_id           => p_application_id
17132          , p_ae_header_id             => l_ae_header_id 
17133 , p_source_15 => p_source_15
17134 , p_source_15_meaning => p_source_15_meaning
17135 , p_source_20 => p_source_20
17136 , p_source_21 => p_source_21
17137 , p_source_22 => p_source_22
17138 , p_source_22_meaning => p_source_22_meaning
17139 , p_source_23 => p_source_23
17140 , p_source_30 => p_source_30
17141 , p_source_47 => p_source_47
17142 , p_source_47_meaning => p_source_47_meaning
17143          , x_transaction_coa_id       => l_adr_transaction_coa_id
17144          , x_accounting_coa_id        => l_adr_accounting_coa_id
17145          , x_value_type_code          => l_adr_value_type_code
17146          , p_side                     => 'ALL'
17147    );
17148 
17149    xla_ae_lines_pkg.set_ccid(
17150     p_code_combination_id          => l_ccid
17151   , p_value_type_code              => l_adr_value_type_code
17152   , p_transaction_coa_id           => l_adr_transaction_coa_id
17153   , p_accounting_coa_id            => l_adr_accounting_coa_id
17154   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
17155   , p_adr_type_code                => 'S'
17156   , p_component_type               => l_component_type
17157   , p_component_code               => l_component_code
17158   , p_component_type_code          => l_component_type_code
17159   , p_component_appl_id            => l_component_appl_id
17160   , p_amb_context_code             => l_amb_context_code
17161   , p_side                         => 'ALL'
17162   );
17163 
17164 
17165    l_segment := AcctDerRule_9(
17166            p_application_id           => p_application_id
17167          , p_ae_header_id             => l_ae_header_id 
17168 , p_source_15 => p_source_15
17169 , p_source_15_meaning => p_source_15_meaning
17170 , p_source_20 => p_source_20
17171 , p_source_22 => p_source_22
17172 , p_source_22_meaning => p_source_22_meaning
17173          , x_transaction_coa_id       => l_adr_transaction_coa_id
17174          , x_accounting_coa_id        => l_adr_accounting_coa_id
17175          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17176          , x_flex_value_set_id        => l_adr_flex_value_set_id
17177          , x_value_type_code          => l_adr_value_type_code
17178          , x_value_combination_id     => l_adr_value_combination_id
17179          , x_value_segment_code       => l_adr_value_segment_code
17180          , p_side                     => 'CREDIT'
17181          , p_override_seg_flag        => 'Y'
17182    );
17183 
17184    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17185 
17186       xla_ae_lines_pkg.set_segment(
17187           p_to_segment_code         => 'GL_ACCOUNT'
17188         , p_segment_value           => l_segment
17189         , p_from_segment_code       => l_adr_value_segment_code
17190         , p_from_combination_id     => l_adr_value_combination_id
17191         , p_value_type_code         => l_adr_value_type_code
17192         , p_transaction_coa_id      => l_adr_transaction_coa_id
17193         , p_accounting_coa_id       => l_adr_accounting_coa_id
17194         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17195         , p_flex_value_set_id       => l_adr_flex_value_set_id
17196         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
17197         , p_adr_type_code           => 'S'
17198         , p_component_type          => l_component_type
17199         , p_component_code          => l_component_code
17200         , p_component_type_code     => l_component_type_code
17201         , p_component_appl_id       => l_component_appl_id
17202         , p_amb_context_code        => l_amb_context_code
17203         , p_entity_code             => 'AP_INVOICES'
17204         , p_event_class_code        => 'PREPAYMENTS'
17205         , p_side                    => 'CREDIT'
17206         );
17207 
17208   END IF;
17209 
17210    l_segment := AcctDerRule_10(
17211            p_application_id           => p_application_id
17212          , p_ae_header_id             => l_ae_header_id 
17213 , p_source_15 => p_source_15
17214 , p_source_15_meaning => p_source_15_meaning
17215 , p_source_22 => p_source_22
17216 , p_source_22_meaning => p_source_22_meaning
17217 , p_source_23 => p_source_23
17218          , x_transaction_coa_id       => l_adr_transaction_coa_id
17222          , x_value_type_code          => l_adr_value_type_code
17219          , x_accounting_coa_id        => l_adr_accounting_coa_id
17220          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17221          , x_flex_value_set_id        => l_adr_flex_value_set_id
17223          , x_value_combination_id     => l_adr_value_combination_id
17224          , x_value_segment_code       => l_adr_value_segment_code
17225          , p_side                     => 'DEBIT'
17226          , p_override_seg_flag        => 'Y'
17227    );
17228 
17229    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17230 
17231       xla_ae_lines_pkg.set_segment(
17232           p_to_segment_code         => 'GL_ACCOUNT'
17233         , p_segment_value           => l_segment
17234         , p_from_segment_code       => l_adr_value_segment_code
17235         , p_from_combination_id     => l_adr_value_combination_id
17236         , p_value_type_code         => l_adr_value_type_code
17237         , p_transaction_coa_id      => l_adr_transaction_coa_id
17238         , p_accounting_coa_id       => l_adr_accounting_coa_id
17239         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17240         , p_flex_value_set_id       => l_adr_flex_value_set_id
17241         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
17242         , p_adr_type_code           => 'S'
17243         , p_component_type          => l_component_type
17244         , p_component_code          => l_component_code
17245         , p_component_type_code     => l_component_type_code
17246         , p_component_appl_id       => l_component_appl_id
17247         , p_amb_context_code        => l_amb_context_code
17248         , p_entity_code             => 'AP_INVOICES'
17249         , p_event_class_code        => 'PREPAYMENTS'
17250         , p_side                    => 'DEBIT'
17251         );
17252 
17253   END IF;
17254 
17255    l_segment := AcctDerRule_23(
17256            p_application_id           => p_application_id
17257          , p_ae_header_id             => l_ae_header_id 
17258 , p_source_15 => p_source_15
17259 , p_source_15_meaning => p_source_15_meaning
17260 , p_source_22 => p_source_22
17261 , p_source_22_meaning => p_source_22_meaning
17262 , p_source_30 => p_source_30
17263          , x_transaction_coa_id       => l_adr_transaction_coa_id
17264          , x_accounting_coa_id        => l_adr_accounting_coa_id
17265          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17266          , x_flex_value_set_id        => l_adr_flex_value_set_id
17267          , x_value_type_code          => l_adr_value_type_code
17268          , x_value_combination_id     => l_adr_value_combination_id
17269          , x_value_segment_code       => l_adr_value_segment_code
17270          , p_side                     => 'ALL'
17271          , p_override_seg_flag        => 'Y'
17272    );
17273 
17274    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17275 
17276       xla_ae_lines_pkg.set_segment(
17277           p_to_segment_code         => 'GL_BALANCING'
17278         , p_segment_value           => l_segment
17279         , p_from_segment_code       => l_adr_value_segment_code
17280         , p_from_combination_id     => l_adr_value_combination_id
17281         , p_value_type_code         => l_adr_value_type_code
17282         , p_transaction_coa_id      => l_adr_transaction_coa_id
17283         , p_accounting_coa_id       => l_adr_accounting_coa_id
17284         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17285         , p_flex_value_set_id       => l_adr_flex_value_set_id
17286         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17287         , p_adr_type_code           => 'S'
17288         , p_component_type          => l_component_type
17289         , p_component_code          => l_component_code
17290         , p_component_type_code     => l_component_type_code
17291         , p_component_appl_id       => l_component_appl_id
17292         , p_amb_context_code        => l_amb_context_code
17293         , p_entity_code             => 'AP_INVOICES'
17294         , p_event_class_code        => 'PREPAYMENTS'
17295         , p_side                    => 'ALL'
17296         );
17297 
17298   END IF;
17299 
17300    --
17301    --
17302    END IF;
17303 
17304        --
17305        -- Update the line information that should be overwritten
17306        --
17307        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17308                                          p_header_num   => 1);
17309        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17310 
17311        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17312 
17313        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17314           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17315        END IF;
17316 
17317       --
17318       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17319       --
17320       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17321           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17322       ELSE
17323           ---------------------------------------------------------------------------------------------------
17324           -- 4262811a Switch Sign
17328                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17325           ---------------------------------------------------------------------------------------------------
17326           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17327           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17329           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17330                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17331           -- 5132302
17332           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17333                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17334 
17335       END IF;
17336 
17337       -- 4955764
17338       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17339       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17340 
17341 
17342       XLA_AE_LINES_PKG.ValidateCurrentLine;
17343       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17344 
17345       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17346                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17347                ,p_balance_type_code => l_balance_type_code);
17348 
17349    END IF;
17350 
17351    -----------------------------------------------------------------------------------------
17352    -- 4262811 Multiperiod Accounting
17353    -----------------------------------------------------------------------------------------
17354      -- No MPA option is assigned.
17355 
17356 
17357 END IF;
17358 END IF;
17359 --
17360 
17361 --
17362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17363    trace
17364       (p_msg      => 'END of AcctLineType_57'
17365       ,p_level    => C_LEVEL_PROCEDURE
17366       ,p_module   => l_log_module);
17367 END IF;
17368 --
17369 EXCEPTION
17370   WHEN xla_exceptions_pkg.application_exception THEN
17371       RAISE;
17372   WHEN OTHERS THEN
17373        xla_exceptions_pkg.raise_message
17374            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_57');
17375 END AcctLineType_57;
17376 --
17377 
17378 ---------------------------------------
17379 --
17380 -- PRIVATE FUNCTION
17381 --         AcctLineType_58
17382 --
17383 ---------------------------------------
17384 PROCEDURE AcctLineType_58 (
17385   p_application_id        IN NUMBER
17386  ,p_event_id              IN NUMBER
17387  ,p_calculate_acctd_flag  IN VARCHAR2
17388  ,p_calculate_g_l_flag    IN VARCHAR2
17389  ,p_actual_flag           IN OUT VARCHAR2
17390  ,p_balance_type_code     OUT VARCHAR2
17391  ,p_gain_or_loss_ref      OUT VARCHAR2
17392  
17393 --Bank Charges Account
17394  , p_source_14            IN NUMBER
17395 --Automatic Offsets Value
17396  , p_source_15            IN VARCHAR2
17397  , p_source_15_meaning    IN VARCHAR2
17398 --Invoice Distribution Account
17399  , p_source_30            IN NUMBER
17400 --Accounting Reversal Indicator
17401  , p_source_52            IN VARCHAR2
17402 --Distribution Link Type
17403  , p_source_54            IN VARCHAR2
17404 --Override Accounted Amount Indicator
17405  , p_source_79            IN VARCHAR2
17406  , p_source_79_meaning    IN VARCHAR2
17407 --Third Party Type
17408  , p_source_82            IN VARCHAR2
17409 --Invoice Distribution Tax Line Identifier
17410  , p_source_85            IN NUMBER
17411 --Invoice Distribution Summary Tax Line Identifier
17412  , p_source_87            IN NUMBER
17413 --Business Flow Accounts Payable Application Identifier
17414  , p_source_90            IN NUMBER
17415 --When to Account for Payment Option
17416  , p_source_96            IN VARCHAR2
17417 --Payment Distribution Type
17418  , p_source_97            IN VARCHAR2
17419  , p_source_97_meaning    IN VARCHAR2
17420 --Payment Distribution Amount
17421  , p_source_98            IN NUMBER
17422 --Business Flow Payment Distribution Type
17423  , p_source_99            IN VARCHAR2
17424 --Business Flow Payment Entity Code
17425  , p_source_100            IN VARCHAR2
17426 --Business Flow Payment Distribution Identifier
17427  , p_source_101            IN NUMBER
17428 --Business Flow Payment Identifier
17429  , p_source_102            IN NUMBER
17430 --Payment Distribution Identifier
17431  , p_source_103            IN NUMBER
17432 --Cleared Currency Code
17433  , p_source_104            IN VARCHAR2
17434 --Cleared Exchange Date
17435  , p_source_105            IN DATE
17436 --Cleared Exchange Rate
17437  , p_source_106            IN NUMBER
17438 --Cleared Exchange Rate Type
17439  , p_source_107            IN VARCHAR2
17440 --Payment Distribution (Cleared Rate) Ledger Amount
17441  , p_source_108            IN NUMBER
17442 --Payment Supplier Identifier
17443  , p_source_109            IN NUMBER
17444 --Payment Supplier Site Identifier
17445  , p_source_110            IN NUMBER
17446 --Payment Distribution Reversed Identifier
17447  , p_source_111            IN NUMBER
17448 --Payment Identifier
17449  , p_source_112            IN NUMBER
17450 )
17451 IS
17452 
17453 l_component_type              VARCHAR2(80);
17454 l_component_code              VARCHAR2(30);
17458 l_entity_code                 VARCHAR2(30);
17455 l_component_type_code         VARCHAR2(1);
17456 l_component_appl_id           INTEGER;
17457 l_amb_context_code            VARCHAR2(30);
17459 l_event_class_code            VARCHAR2(30);
17460 l_ae_header_id                NUMBER;
17461 l_event_type_code             VARCHAR2(30);
17462 l_line_definition_code        VARCHAR2(30);
17463 l_line_definition_owner_code  VARCHAR2(1);
17464 --
17465 -- adr variables
17466 l_segment                     VARCHAR2(30);
17467 l_ccid                        NUMBER;
17468 l_adr_transaction_coa_id      NUMBER;
17469 l_adr_accounting_coa_id       NUMBER;
17470 l_adr_flexfield_segment_code  VARCHAR2(30);
17471 l_adr_flex_value_set_id       NUMBER;
17472 l_adr_value_type_code         VARCHAR2(30);
17473 l_adr_value_combination_id    NUMBER;
17474 l_adr_value_segment_code      VARCHAR2(30);
17475 
17476 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17477 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17478 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17479 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17480 
17481 -- 4262811 Variables ------------------------------------------------------------------------------------------
17482 l_entered_amt_idx             NUMBER;
17483 l_accted_amt_idx              NUMBER;
17484 l_acc_rev_flag                VARCHAR2(1);
17485 l_accrual_line_num            NUMBER;
17486 l_tmp_amt                     NUMBER;
17487 l_acc_rev_natural_side_code   VARCHAR2(1);
17488 
17489 l_num_entries                 NUMBER;
17490 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17491 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17492 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17493 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17494 l_recog_line_1                NUMBER;
17495 l_recog_line_2                NUMBER;
17496 
17497 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17498 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17499 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17500 
17501 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17502 
17503 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17504 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17505 
17506 ---------------------------------------------------------------------------------------------------------------
17507 
17508 
17509 --
17510 -- bulk performance
17511 --
17512 l_balance_type_code           VARCHAR2(1);
17513 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17514 l_log_module                  VARCHAR2(240);
17515 
17516 --
17517 -- Upgrade strategy
17518 --
17519 l_actual_upg_option           VARCHAR2(1);
17520 l_enc_upg_option           VARCHAR2(1);
17521 
17522 --
17523 BEGIN
17524 --
17525 IF g_log_enabled THEN
17526       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
17527 END IF;
17528 --
17529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17530 
17531       trace
17532          (p_msg      => 'BEGIN of AcctLineType_58'
17533          ,p_level    => C_LEVEL_PROCEDURE
17534          ,p_module   => l_log_module);
17535 
17536 END IF;
17537 --
17538 l_component_type             := 'AMB_JLT';
17539 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
17540 l_component_type_code        := 'S';
17541 l_component_appl_id          :=  200;
17542 l_amb_context_code           := 'DEFAULT';
17543 l_entity_code                := 'AP_PAYMENTS';
17544 l_event_class_code           := 'RECONCILED PAYMENTS';
17545 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
17546 l_line_definition_owner_code := 'S';
17547 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
17548 --
17549 l_balance_type_code          := 'A';
17550 l_segment                     := NULL;
17551 l_ccid                        := NULL;
17552 l_adr_transaction_coa_id      := NULL;
17553 l_adr_accounting_coa_id       := NULL;
17554 l_adr_flexfield_segment_code  := NULL;
17555 l_adr_flex_value_set_id       := NULL;
17556 l_adr_value_type_code         := NULL;
17557 l_adr_value_combination_id    := NULL;
17558 l_adr_value_segment_code      := NULL;
17559 
17560 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17561 l_bflow_class_code           := '';    -- 4219869 Business Flow
17562 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17563 l_budgetary_control_flag     := 'N';
17564 
17565 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17566 l_bflow_applied_to_amt       := NULL; -- 5132302
17567 l_entered_amt_idx            := NULL;          -- 4262811
17568 l_accted_amt_idx             := NULL;          -- 4262811
17569 l_acc_rev_flag               := NULL;          -- 4262811
17570 l_accrual_line_num           := NULL;          -- 4262811
17571 l_tmp_amt                    := NULL;          -- 4262811
17572 --
17573  
17574 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17575     l_balance_type_code <> 'B' THEN
17576 IF NVL(p_source_96,'
17577 ') <>  'ISSUE_ISSUE' AND 
17578 NVL(p_source_97,'
17579 ') =  'BANK CHARGE'
17580  THEN 
17581 
17582    --
17586    -- set the flag so later we will know whether the gain loss line needs to be created
17583    XLA_AE_LINES_PKG.SetNewLine;
17584 
17585    p_balance_type_code          := l_balance_type_code;
17587    
17588    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17589      p_actual_flag :='A';
17590    END IF;
17591 
17592    --
17593    -- bulk performance
17594    --
17595    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17596                                       p_header_num   => 0); -- 4262811
17597    --
17598    -- set accounting line options
17599    --
17600    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17601            p_natural_side_code          => 'D'
17602          , p_gain_or_loss_flag          => 'N'
17603          , p_gl_transfer_mode_code      => 'S'
17604          , p_acct_entry_type_code       => 'A'
17605          , p_switch_side_flag           => 'Y'
17606          , p_merge_duplicate_code       => 'A'
17607          );
17608    --
17609    l_acc_rev_natural_side_code := 'C';  -- 4262811
17610    -- 
17611    --
17612    -- set accounting line type info
17613    --
17614    xla_ae_lines_pkg.SetAcctLineType
17615       (p_component_type             => l_component_type
17616       ,p_event_type_code            => l_event_type_code
17617       ,p_line_definition_owner_code => l_line_definition_owner_code
17618       ,p_line_definition_code       => l_line_definition_code
17619       ,p_accounting_line_code       => l_component_code
17620       ,p_accounting_line_type_code  => l_component_type_code
17621       ,p_accounting_line_appl_id    => l_component_appl_id
17622       ,p_amb_context_code           => l_amb_context_code
17623       ,p_entity_code                => l_entity_code
17624       ,p_event_class_code           => l_event_class_code);
17625    --
17626    -- set accounting class
17627    --
17628    xla_ae_lines_pkg.SetAcctClass(
17629            p_accounting_class_code  => 'BANK_CHG'
17630          , p_ae_header_id           => l_ae_header_id
17631          );
17632 
17633    --
17634    -- set rounding class
17635    --
17636    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17637                       'BANK_CHG';
17638 
17639    --
17640    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17641    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17642    --
17643    -- bulk performance
17644    --
17645    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17646 
17647    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17648       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17649 
17650    -- 4955764
17651    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17652       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17653 
17654    -- 4458381 Public Sector Enh
17655    
17656    --
17657    -- set accounting attributes for the line type
17658    --
17659    l_entered_amt_idx := 10;
17660    l_accted_amt_idx  := 15;
17661    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
17662    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17663    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
17664    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17665    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
17666    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17667    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
17668    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17669    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
17670    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17671    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
17672    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17673    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
17674    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17675    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
17676    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17677    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
17678    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17679    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
17680    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17681    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
17682    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17683    l_rec_acct_attrs.array_char_value(11)  := p_source_104;
17684    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17685    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
17686    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17687    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
17688    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17689    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
17690    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17691    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
17692    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17693    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
17697    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
17694    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17695    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
17696    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17698    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17699    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
17700    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17701    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
17702    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17703    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
17704    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17705    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
17706    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17707    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
17708    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17709    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
17710 
17711    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17712    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17713 
17714    ---------------------------------------------------------------------------------------------------------------
17715    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17716    ---------------------------------------------------------------------------------------------------------------
17717    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17718 
17719    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17720    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17721 
17722    IF xla_accounting_cache_pkg.GetValueChar
17723          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17724          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17725    AND l_bflow_method_code = 'PRIOR_ENTRY'
17726 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17727    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17728          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17729        )
17730    THEN
17731          xla_ae_lines_pkg.BflowUpgEntry
17732            (p_business_method_code    => l_bflow_method_code
17733            ,p_business_class_code     => l_bflow_class_code
17734            ,p_balance_type            => l_balance_type_code);
17735    ELSE
17736       NULL;
17737 -- No business flow processing for business flow method of NONE.
17738    END IF;
17739 
17740    --
17741    -- call analytical criteria
17742    --
17743    
17744 
17745 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
17746 xla_ae_lines_pkg.SetAnalyticalCriteria(
17747    p_analytical_criterion_name    => 'Check Id'
17748  , p_analytical_criterion_owner   => 'S'
17749  , p_analytical_criterion_code    => 'CHECK_ID'
17750  , p_amb_context_code             => 'DEFAULT'
17751  , p_balancing_flag               => 'N'
17752  
17753  , p_analytical_detail_char_1    =>  NULL
17754  , p_analytical_detail_num_1     =>  p_source_112
17755  , p_analytical_detail_date_1    =>  NULL
17756 
17757  , p_ae_header_id                 => l_ae_header_id
17758 )
17759 ;
17760 --
17761 
17762    --
17763    -- call description
17764    --
17765    -- No description or it is inherited.
17766    --
17767    -- call ADRs
17768    -- Bug 4922099
17769    --
17770    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17771         (NVL(l_actual_upg_option, 'N') = 'O') OR
17772         (NVL(l_enc_upg_option, 'N') = 'O')
17773       )
17774    THEN
17775    NULL;
17776    --
17777    --
17778    
17779   l_ccid := AcctDerRule_26(
17780            p_application_id           => p_application_id
17781          , p_ae_header_id             => l_ae_header_id 
17782 , p_source_14 => p_source_14
17783 , p_source_15 => p_source_15
17784 , p_source_15_meaning => p_source_15_meaning
17785 , p_source_30 => p_source_30
17786          , x_transaction_coa_id       => l_adr_transaction_coa_id
17787          , x_accounting_coa_id        => l_adr_accounting_coa_id
17788          , x_value_type_code          => l_adr_value_type_code
17789          , p_side                     => 'NA'
17790    );
17791 
17792    xla_ae_lines_pkg.set_ccid(
17793     p_code_combination_id          => l_ccid
17794   , p_value_type_code              => l_adr_value_type_code
17795   , p_transaction_coa_id           => l_adr_transaction_coa_id
17796   , p_accounting_coa_id            => l_adr_accounting_coa_id
17797   , p_adr_code                     => 'AP_BANK_CHARGES'
17798   , p_adr_type_code                => 'S'
17799   , p_component_type               => l_component_type
17800   , p_component_code               => l_component_code
17801   , p_component_type_code          => l_component_type_code
17802   , p_component_appl_id            => l_component_appl_id
17803   , p_amb_context_code             => l_amb_context_code
17804   , p_side                         => 'NA'
17805   );
17806 
17807 
17808    l_segment := AcctDerRule_4(
17809            p_application_id           => p_application_id
17810          , p_ae_header_id             => l_ae_header_id 
17811 , p_source_14 => p_source_14
17815          , x_accounting_coa_id        => l_adr_accounting_coa_id
17812 , p_source_15 => p_source_15
17813 , p_source_15_meaning => p_source_15_meaning
17814          , x_transaction_coa_id       => l_adr_transaction_coa_id
17816          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17817          , x_flex_value_set_id        => l_adr_flex_value_set_id
17818          , x_value_type_code          => l_adr_value_type_code
17819          , x_value_combination_id     => l_adr_value_combination_id
17820          , x_value_segment_code       => l_adr_value_segment_code
17821          , p_side                     => 'NA'
17822          , p_override_seg_flag        => 'Y'
17823    );
17824 
17825    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17826 
17827       xla_ae_lines_pkg.set_segment(
17828           p_to_segment_code         => 'GL_ACCOUNT'
17829         , p_segment_value           => l_segment
17830         , p_from_segment_code       => l_adr_value_segment_code
17831         , p_from_combination_id     => l_adr_value_combination_id
17832         , p_value_type_code         => l_adr_value_type_code
17833         , p_transaction_coa_id      => l_adr_transaction_coa_id
17834         , p_accounting_coa_id       => l_adr_accounting_coa_id
17835         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17836         , p_flex_value_set_id       => l_adr_flex_value_set_id
17837         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
17838         , p_adr_type_code           => 'S'
17839         , p_component_type          => l_component_type
17840         , p_component_code          => l_component_code
17841         , p_component_type_code     => l_component_type_code
17842         , p_component_appl_id       => l_component_appl_id
17843         , p_amb_context_code        => l_amb_context_code
17844         , p_entity_code             => 'AP_PAYMENTS'
17845         , p_event_class_code        => 'RECONCILED PAYMENTS'
17846         , p_side                    => 'NA'
17847         );
17848 
17849   END IF;
17850 
17851    l_segment := AcctDerRule_22(
17852            p_application_id           => p_application_id
17853          , p_ae_header_id             => l_ae_header_id 
17854 , p_source_15 => p_source_15
17855 , p_source_15_meaning => p_source_15_meaning
17856 , p_source_30 => p_source_30
17857          , x_transaction_coa_id       => l_adr_transaction_coa_id
17858          , x_accounting_coa_id        => l_adr_accounting_coa_id
17859          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17860          , x_flex_value_set_id        => l_adr_flex_value_set_id
17861          , x_value_type_code          => l_adr_value_type_code
17862          , x_value_combination_id     => l_adr_value_combination_id
17863          , x_value_segment_code       => l_adr_value_segment_code
17864          , p_side                     => 'NA'
17865          , p_override_seg_flag        => 'Y'
17866    );
17867 
17868    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17869 
17870       xla_ae_lines_pkg.set_segment(
17871           p_to_segment_code         => 'GL_BALANCING'
17872         , p_segment_value           => l_segment
17873         , p_from_segment_code       => l_adr_value_segment_code
17874         , p_from_combination_id     => l_adr_value_combination_id
17875         , p_value_type_code         => l_adr_value_type_code
17876         , p_transaction_coa_id      => l_adr_transaction_coa_id
17877         , p_accounting_coa_id       => l_adr_accounting_coa_id
17878         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17879         , p_flex_value_set_id       => l_adr_flex_value_set_id
17880         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
17881         , p_adr_type_code           => 'S'
17882         , p_component_type          => l_component_type
17883         , p_component_code          => l_component_code
17884         , p_component_type_code     => l_component_type_code
17885         , p_component_appl_id       => l_component_appl_id
17886         , p_amb_context_code        => l_amb_context_code
17887         , p_entity_code             => 'AP_PAYMENTS'
17888         , p_event_class_code        => 'RECONCILED PAYMENTS'
17889         , p_side                    => 'NA'
17890         );
17891 
17892   END IF;
17893 
17894    --
17895    --
17896    END IF;
17897    --
17898    -- Bug 4922099
17899    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17900           (NVL(l_enc_upg_option, 'N') = 'O')
17901         ) AND
17902         (l_bflow_method_code = 'PRIOR_ENTRY')
17903       )
17904    THEN
17905       IF
17906       --
17907       1 = 2
17908       --
17909       THEN
17910       xla_accounting_err_pkg.build_message
17911                                     (p_appli_s_name            => 'XLA'
17912                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17913                                     ,p_token_1                 => 'LINE_NUMBER'
17914                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17915                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17916                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17917                                                                              l_component_type
17918                                                                             ,l_component_code
17922                                                                             ,l_entity_code
17919                                                                             ,l_component_type_code
17920                                                                             ,l_component_appl_id
17921                                                                             ,l_amb_context_code
17923                                                                             ,l_event_class_code
17924                                                                            )
17925                                     ,p_token_3                 => 'OWNER'
17926                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17927                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17928                                                                           ,p_lookup_code    => l_component_type_code
17929                                                                          )
17930                                     ,p_token_4                 => 'PRODUCT_NAME'
17931                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17932                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17933                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17934                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17935                                     ,p_ae_header_id            =>  NULL
17936                                        );
17937 
17938         IF (C_LEVEL_ERROR>= g_log_level) THEN
17939                  trace
17940                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17941                       ,p_level    => C_LEVEL_ERROR
17942                       ,p_module   => l_log_module);
17943         END IF;
17944       END IF;
17945    END IF;
17946    --
17947    --
17948    ------------------------------------------------------------------------------------------------
17949    -- 4219869 Business Flow
17950    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17951    -- Prior Entry.  Currently, the following code is always generated.
17952    ------------------------------------------------------------------------------------------------
17953    XLA_AE_LINES_PKG.ValidateCurrentLine;
17954 
17955    ------------------------------------------------------------------------------------
17956    -- 4219869 Business Flow
17957    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17958    ------------------------------------------------------------------------------------
17959    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17960 
17961    ----------------------------------------------------------------------------------
17962    -- 4219869 Business Flow
17963    -- Update journal entry status -- Need to generate this within IF <condition>
17964    ----------------------------------------------------------------------------------
17965    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17966          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17967          ,p_balance_type_code => l_balance_type_code
17968          );
17969 
17970    -------------------------------------------------------------------------------------------
17971    -- 4262811 - Generate the Accrual Reversal lines
17972    -------------------------------------------------------------------------------------------
17973    BEGIN
17974       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17975                               (g_array_event(p_event_id).array_value_num('header_index'));
17976       IF l_acc_rev_flag IS NULL THEN
17977          l_acc_rev_flag := 'N';
17978       END IF;
17979    EXCEPTION
17980       WHEN OTHERS THEN
17981          l_acc_rev_flag := 'N';
17982    END;
17983    --
17984    IF (l_acc_rev_flag = 'Y') THEN
17985 
17986        -- 4645092  ------------------------------------------------------------------------------
17987        -- To allow MPA report to determine if it should generate report process
17988        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17989        ------------------------------------------------------------------------------------------
17990 
17991        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17992        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17993    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17994    -- call ADRs
17995    -- Bug 4922099
17996    --
17997    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17998         (NVL(l_actual_upg_option, 'N') = 'O') OR
17999         (NVL(l_enc_upg_option, 'N') = 'O')
18000       )
18001    THEN
18002    NULL;
18003    --
18004    --
18005    
18006   l_ccid := AcctDerRule_26(
18007            p_application_id           => p_application_id
18008          , p_ae_header_id             => l_ae_header_id 
18009 , p_source_14 => p_source_14
18010 , p_source_15 => p_source_15
18011 , p_source_15_meaning => p_source_15_meaning
18012 , p_source_30 => p_source_30
18013          , x_transaction_coa_id       => l_adr_transaction_coa_id
18014          , x_accounting_coa_id        => l_adr_accounting_coa_id
18015          , x_value_type_code          => l_adr_value_type_code
18019    xla_ae_lines_pkg.set_ccid(
18016          , p_side                     => 'NA'
18017    );
18018 
18020     p_code_combination_id          => l_ccid
18021   , p_value_type_code              => l_adr_value_type_code
18022   , p_transaction_coa_id           => l_adr_transaction_coa_id
18023   , p_accounting_coa_id            => l_adr_accounting_coa_id
18024   , p_adr_code                     => 'AP_BANK_CHARGES'
18025   , p_adr_type_code                => 'S'
18026   , p_component_type               => l_component_type
18027   , p_component_code               => l_component_code
18028   , p_component_type_code          => l_component_type_code
18029   , p_component_appl_id            => l_component_appl_id
18030   , p_amb_context_code             => l_amb_context_code
18031   , p_side                         => 'NA'
18032   );
18033 
18034 
18035    l_segment := AcctDerRule_4(
18036            p_application_id           => p_application_id
18037          , p_ae_header_id             => l_ae_header_id 
18038 , p_source_14 => p_source_14
18039 , p_source_15 => p_source_15
18040 , p_source_15_meaning => p_source_15_meaning
18041          , x_transaction_coa_id       => l_adr_transaction_coa_id
18042          , x_accounting_coa_id        => l_adr_accounting_coa_id
18043          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18044          , x_flex_value_set_id        => l_adr_flex_value_set_id
18045          , x_value_type_code          => l_adr_value_type_code
18046          , x_value_combination_id     => l_adr_value_combination_id
18047          , x_value_segment_code       => l_adr_value_segment_code
18048          , p_side                     => 'NA'
18049          , p_override_seg_flag        => 'Y'
18050    );
18051 
18052    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18053 
18054       xla_ae_lines_pkg.set_segment(
18055           p_to_segment_code         => 'GL_ACCOUNT'
18056         , p_segment_value           => l_segment
18057         , p_from_segment_code       => l_adr_value_segment_code
18058         , p_from_combination_id     => l_adr_value_combination_id
18059         , p_value_type_code         => l_adr_value_type_code
18060         , p_transaction_coa_id      => l_adr_transaction_coa_id
18061         , p_accounting_coa_id       => l_adr_accounting_coa_id
18062         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18063         , p_flex_value_set_id       => l_adr_flex_value_set_id
18064         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
18065         , p_adr_type_code           => 'S'
18066         , p_component_type          => l_component_type
18067         , p_component_code          => l_component_code
18068         , p_component_type_code     => l_component_type_code
18069         , p_component_appl_id       => l_component_appl_id
18070         , p_amb_context_code        => l_amb_context_code
18071         , p_entity_code             => 'AP_PAYMENTS'
18072         , p_event_class_code        => 'RECONCILED PAYMENTS'
18073         , p_side                    => 'NA'
18074         );
18075 
18076   END IF;
18077 
18078    l_segment := AcctDerRule_22(
18079            p_application_id           => p_application_id
18080          , p_ae_header_id             => l_ae_header_id 
18081 , p_source_15 => p_source_15
18082 , p_source_15_meaning => p_source_15_meaning
18083 , p_source_30 => p_source_30
18084          , x_transaction_coa_id       => l_adr_transaction_coa_id
18085          , x_accounting_coa_id        => l_adr_accounting_coa_id
18086          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18087          , x_flex_value_set_id        => l_adr_flex_value_set_id
18088          , x_value_type_code          => l_adr_value_type_code
18089          , x_value_combination_id     => l_adr_value_combination_id
18090          , x_value_segment_code       => l_adr_value_segment_code
18091          , p_side                     => 'NA'
18092          , p_override_seg_flag        => 'Y'
18093    );
18094 
18095    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18096 
18097       xla_ae_lines_pkg.set_segment(
18098           p_to_segment_code         => 'GL_BALANCING'
18099         , p_segment_value           => l_segment
18100         , p_from_segment_code       => l_adr_value_segment_code
18101         , p_from_combination_id     => l_adr_value_combination_id
18102         , p_value_type_code         => l_adr_value_type_code
18103         , p_transaction_coa_id      => l_adr_transaction_coa_id
18104         , p_accounting_coa_id       => l_adr_accounting_coa_id
18105         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18106         , p_flex_value_set_id       => l_adr_flex_value_set_id
18107         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18108         , p_adr_type_code           => 'S'
18109         , p_component_type          => l_component_type
18110         , p_component_code          => l_component_code
18111         , p_component_type_code     => l_component_type_code
18112         , p_component_appl_id       => l_component_appl_id
18113         , p_amb_context_code        => l_amb_context_code
18114         , p_entity_code             => 'AP_PAYMENTS'
18115         , p_event_class_code        => 'RECONCILED PAYMENTS'
18116         , p_side                    => 'NA'
18117         );
18118 
18119   END IF;
18120 
18121    --
18122    --
18123    END IF;
18124 
18125        --
18126        -- Update the line information that should be overwritten
18127        --
18128        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18132        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18129                                          p_header_num   => 1);
18130        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18131 
18133 
18134        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18135           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18136        END IF;
18137 
18138       --
18139       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18140       --
18141       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18142           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18143       ELSE
18144           ---------------------------------------------------------------------------------------------------
18145           -- 4262811a Switch Sign
18146           ---------------------------------------------------------------------------------------------------
18147           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18148           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18149                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18150           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18151                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18152           -- 5132302
18153           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18154                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18155 
18156       END IF;
18157 
18158       -- 4955764
18159       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18160       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18161 
18162 
18163       XLA_AE_LINES_PKG.ValidateCurrentLine;
18164       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18165 
18166       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18167                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18168                ,p_balance_type_code => l_balance_type_code);
18169 
18170    END IF;
18171 
18172    -----------------------------------------------------------------------------------------
18173    -- 4262811 Multiperiod Accounting
18174    -----------------------------------------------------------------------------------------
18175      -- No MPA option is assigned.
18176 
18177 
18178 END IF;
18179 END IF;
18180 --
18181 
18182 --
18183 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18184    trace
18185       (p_msg      => 'END of AcctLineType_58'
18186       ,p_level    => C_LEVEL_PROCEDURE
18187       ,p_module   => l_log_module);
18188 END IF;
18189 --
18190 EXCEPTION
18191   WHEN xla_exceptions_pkg.application_exception THEN
18192       RAISE;
18193   WHEN OTHERS THEN
18194        xla_exceptions_pkg.raise_message
18195            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_58');
18196 END AcctLineType_58;
18197 --
18198 
18199 ---------------------------------------
18200 --
18201 -- PRIVATE FUNCTION
18202 --         AcctLineType_59
18203 --
18204 ---------------------------------------
18205 PROCEDURE AcctLineType_59 (
18206   p_application_id        IN NUMBER
18207  ,p_event_id              IN NUMBER
18208  ,p_calculate_acctd_flag  IN VARCHAR2
18209  ,p_calculate_g_l_flag    IN VARCHAR2
18210  ,p_actual_flag           IN OUT VARCHAR2
18211  ,p_balance_type_code     OUT VARCHAR2
18212  ,p_gain_or_loss_ref      OUT VARCHAR2
18213  
18214 --Automatic Offsets Value
18215  , p_source_15            IN VARCHAR2
18216  , p_source_15_meaning    IN VARCHAR2
18217 --Bank Errors Account
18218  , p_source_16            IN NUMBER
18219 --Invoice Distribution Account
18220  , p_source_30            IN NUMBER
18221 --Accounting Reversal Indicator
18222  , p_source_52            IN VARCHAR2
18223 --Distribution Link Type
18224  , p_source_54            IN VARCHAR2
18225 --Override Accounted Amount Indicator
18226  , p_source_79            IN VARCHAR2
18227  , p_source_79_meaning    IN VARCHAR2
18228 --Third Party Type
18229  , p_source_82            IN VARCHAR2
18230 --Invoice Distribution Tax Line Identifier
18231  , p_source_85            IN NUMBER
18232 --Invoice Distribution Summary Tax Line Identifier
18233  , p_source_87            IN NUMBER
18234 --Business Flow Accounts Payable Application Identifier
18235  , p_source_90            IN NUMBER
18236 --When to Account for Payment Option
18237  , p_source_96            IN VARCHAR2
18238 --Payment Distribution Type
18239  , p_source_97            IN VARCHAR2
18240  , p_source_97_meaning    IN VARCHAR2
18241 --Payment Distribution Amount
18242  , p_source_98            IN NUMBER
18243 --Business Flow Payment Distribution Type
18244  , p_source_99            IN VARCHAR2
18245 --Business Flow Payment Entity Code
18246  , p_source_100            IN VARCHAR2
18247 --Business Flow Payment Distribution Identifier
18251 --Payment Distribution Identifier
18248  , p_source_101            IN NUMBER
18249 --Business Flow Payment Identifier
18250  , p_source_102            IN NUMBER
18252  , p_source_103            IN NUMBER
18253 --Cleared Currency Code
18254  , p_source_104            IN VARCHAR2
18255 --Cleared Exchange Date
18256  , p_source_105            IN DATE
18257 --Cleared Exchange Rate
18258  , p_source_106            IN NUMBER
18259 --Cleared Exchange Rate Type
18260  , p_source_107            IN VARCHAR2
18261 --Payment Distribution (Cleared Rate) Ledger Amount
18262  , p_source_108            IN NUMBER
18263 --Payment Supplier Identifier
18264  , p_source_109            IN NUMBER
18265 --Payment Supplier Site Identifier
18266  , p_source_110            IN NUMBER
18267 --Payment Distribution Reversed Identifier
18268  , p_source_111            IN NUMBER
18269 --Payment Identifier
18270  , p_source_112            IN NUMBER
18271 )
18272 IS
18273 
18274 l_component_type              VARCHAR2(80);
18275 l_component_code              VARCHAR2(30);
18276 l_component_type_code         VARCHAR2(1);
18277 l_component_appl_id           INTEGER;
18278 l_amb_context_code            VARCHAR2(30);
18279 l_entity_code                 VARCHAR2(30);
18280 l_event_class_code            VARCHAR2(30);
18281 l_ae_header_id                NUMBER;
18282 l_event_type_code             VARCHAR2(30);
18283 l_line_definition_code        VARCHAR2(30);
18284 l_line_definition_owner_code  VARCHAR2(1);
18285 --
18286 -- adr variables
18287 l_segment                     VARCHAR2(30);
18288 l_ccid                        NUMBER;
18289 l_adr_transaction_coa_id      NUMBER;
18290 l_adr_accounting_coa_id       NUMBER;
18291 l_adr_flexfield_segment_code  VARCHAR2(30);
18292 l_adr_flex_value_set_id       NUMBER;
18293 l_adr_value_type_code         VARCHAR2(30);
18294 l_adr_value_combination_id    NUMBER;
18295 l_adr_value_segment_code      VARCHAR2(30);
18296 
18297 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18298 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18299 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18300 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18301 
18302 -- 4262811 Variables ------------------------------------------------------------------------------------------
18303 l_entered_amt_idx             NUMBER;
18304 l_accted_amt_idx              NUMBER;
18305 l_acc_rev_flag                VARCHAR2(1);
18306 l_accrual_line_num            NUMBER;
18307 l_tmp_amt                     NUMBER;
18308 l_acc_rev_natural_side_code   VARCHAR2(1);
18309 
18310 l_num_entries                 NUMBER;
18311 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18312 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18313 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18314 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18315 l_recog_line_1                NUMBER;
18316 l_recog_line_2                NUMBER;
18317 
18318 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18319 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18320 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18321 
18322 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18323 
18324 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18325 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18326 
18327 ---------------------------------------------------------------------------------------------------------------
18328 
18329 
18330 --
18331 -- bulk performance
18332 --
18333 l_balance_type_code           VARCHAR2(1);
18334 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18335 l_log_module                  VARCHAR2(240);
18336 
18337 --
18338 -- Upgrade strategy
18339 --
18340 l_actual_upg_option           VARCHAR2(1);
18341 l_enc_upg_option           VARCHAR2(1);
18342 
18343 --
18344 BEGIN
18345 --
18346 IF g_log_enabled THEN
18347       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
18348 END IF;
18349 --
18350 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18351 
18352       trace
18353          (p_msg      => 'BEGIN of AcctLineType_59'
18354          ,p_level    => C_LEVEL_PROCEDURE
18355          ,p_module   => l_log_module);
18356 
18357 END IF;
18358 --
18359 l_component_type             := 'AMB_JLT';
18360 l_component_code             := 'AP_BANK_ERROR_CLEAR';
18361 l_component_type_code        := 'S';
18362 l_component_appl_id          :=  200;
18363 l_amb_context_code           := 'DEFAULT';
18364 l_entity_code                := 'AP_PAYMENTS';
18365 l_event_class_code           := 'RECONCILED PAYMENTS';
18366 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18367 l_line_definition_owner_code := 'S';
18368 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
18369 --
18370 l_balance_type_code          := 'A';
18371 l_segment                     := NULL;
18372 l_ccid                        := NULL;
18373 l_adr_transaction_coa_id      := NULL;
18374 l_adr_accounting_coa_id       := NULL;
18375 l_adr_flexfield_segment_code  := NULL;
18376 l_adr_flex_value_set_id       := NULL;
18380 
18377 l_adr_value_type_code         := NULL;
18378 l_adr_value_combination_id    := NULL;
18379 l_adr_value_segment_code      := NULL;
18381 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18382 l_bflow_class_code           := '';    -- 4219869 Business Flow
18383 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18384 l_budgetary_control_flag     := 'N';
18385 
18386 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18387 l_bflow_applied_to_amt       := NULL; -- 5132302
18388 l_entered_amt_idx            := NULL;          -- 4262811
18389 l_accted_amt_idx             := NULL;          -- 4262811
18390 l_acc_rev_flag               := NULL;          -- 4262811
18391 l_accrual_line_num           := NULL;          -- 4262811
18392 l_tmp_amt                    := NULL;          -- 4262811
18393 --
18394  
18395 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18396     l_balance_type_code <> 'B' THEN
18397 IF NVL(p_source_96,'
18398 ') <>  'ISSUE_ISSUE' AND 
18399 NVL(p_source_97,'
18400 ') =  'BANK ERROR'
18401  THEN 
18402 
18403    --
18404    XLA_AE_LINES_PKG.SetNewLine;
18405 
18406    p_balance_type_code          := l_balance_type_code;
18407    -- set the flag so later we will know whether the gain loss line needs to be created
18408    
18409    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18410      p_actual_flag :='A';
18411    END IF;
18412 
18413    --
18414    -- bulk performance
18415    --
18416    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18417                                       p_header_num   => 0); -- 4262811
18418    --
18419    -- set accounting line options
18420    --
18421    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18422            p_natural_side_code          => 'D'
18423          , p_gain_or_loss_flag          => 'N'
18424          , p_gl_transfer_mode_code      => 'S'
18425          , p_acct_entry_type_code       => 'A'
18426          , p_switch_side_flag           => 'Y'
18427          , p_merge_duplicate_code       => 'A'
18428          );
18429    --
18430    l_acc_rev_natural_side_code := 'C';  -- 4262811
18431    -- 
18432    --
18433    -- set accounting line type info
18434    --
18435    xla_ae_lines_pkg.SetAcctLineType
18436       (p_component_type             => l_component_type
18437       ,p_event_type_code            => l_event_type_code
18438       ,p_line_definition_owner_code => l_line_definition_owner_code
18439       ,p_line_definition_code       => l_line_definition_code
18440       ,p_accounting_line_code       => l_component_code
18441       ,p_accounting_line_type_code  => l_component_type_code
18442       ,p_accounting_line_appl_id    => l_component_appl_id
18443       ,p_amb_context_code           => l_amb_context_code
18444       ,p_entity_code                => l_entity_code
18445       ,p_event_class_code           => l_event_class_code);
18446    --
18447    -- set accounting class
18448    --
18449    xla_ae_lines_pkg.SetAcctClass(
18450            p_accounting_class_code  => 'BANK_ERROR'
18451          , p_ae_header_id           => l_ae_header_id
18452          );
18453 
18454    --
18455    -- set rounding class
18456    --
18457    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18458                       'BANK_ERROR';
18459 
18460    --
18461    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18462    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18463    --
18464    -- bulk performance
18465    --
18466    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18467 
18468    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18469       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18470 
18471    -- 4955764
18472    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18473       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18474 
18475    -- 4458381 Public Sector Enh
18476    
18477    --
18478    -- set accounting attributes for the line type
18479    --
18480    l_entered_amt_idx := 10;
18481    l_accted_amt_idx  := 15;
18482    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18483    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18484    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
18485    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18486    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
18487    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18488    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
18489    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18490    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
18491    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18492    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
18493    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18494    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
18495    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18496    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
18497    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18501    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18498    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
18499    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18500    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
18502    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
18503    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18504    l_rec_acct_attrs.array_char_value(11)  := p_source_104;
18505    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18506    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
18507    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18508    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
18509    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18510    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
18511    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18512    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
18513    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18514    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
18515    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18516    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
18517    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18518    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
18519    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18520    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
18521    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18522    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
18523    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18524    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
18525    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18526    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
18527    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18528    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
18529    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18530    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
18531 
18532    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18533    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18534 
18535    ---------------------------------------------------------------------------------------------------------------
18536    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18537    ---------------------------------------------------------------------------------------------------------------
18538    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18539 
18540    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18541    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18542 
18543    IF xla_accounting_cache_pkg.GetValueChar
18544          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18545          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18546    AND l_bflow_method_code = 'PRIOR_ENTRY'
18547 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18548    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18549          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18550        )
18551    THEN
18552          xla_ae_lines_pkg.BflowUpgEntry
18553            (p_business_method_code    => l_bflow_method_code
18554            ,p_business_class_code     => l_bflow_class_code
18555            ,p_balance_type            => l_balance_type_code);
18556    ELSE
18557       NULL;
18558 -- No business flow processing for business flow method of NONE.
18559    END IF;
18560 
18561    --
18562    -- call analytical criteria
18563    --
18564    
18565 
18566 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
18567 xla_ae_lines_pkg.SetAnalyticalCriteria(
18568    p_analytical_criterion_name    => 'Check Id'
18569  , p_analytical_criterion_owner   => 'S'
18570  , p_analytical_criterion_code    => 'CHECK_ID'
18571  , p_amb_context_code             => 'DEFAULT'
18572  , p_balancing_flag               => 'N'
18573  
18574  , p_analytical_detail_char_1    =>  NULL
18575  , p_analytical_detail_num_1     =>  p_source_112
18576  , p_analytical_detail_date_1    =>  NULL
18577 
18578  , p_ae_header_id                 => l_ae_header_id
18579 )
18580 ;
18581 --
18582 
18583    --
18584    -- call description
18585    --
18586    -- No description or it is inherited.
18587    --
18588    -- call ADRs
18589    -- Bug 4922099
18590    --
18591    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18592         (NVL(l_actual_upg_option, 'N') = 'O') OR
18593         (NVL(l_enc_upg_option, 'N') = 'O')
18594       )
18595    THEN
18596    NULL;
18597    --
18598    --
18599    
18600   l_ccid := AcctDerRule_27(
18601            p_application_id           => p_application_id
18602          , p_ae_header_id             => l_ae_header_id 
18603 , p_source_15 => p_source_15
18604 , p_source_15_meaning => p_source_15_meaning
18605 , p_source_16 => p_source_16
18606 , p_source_30 => p_source_30
18607          , x_transaction_coa_id       => l_adr_transaction_coa_id
18608          , x_accounting_coa_id        => l_adr_accounting_coa_id
18609          , x_value_type_code          => l_adr_value_type_code
18610          , p_side                     => 'NA'
18614     p_code_combination_id          => l_ccid
18611    );
18612 
18613    xla_ae_lines_pkg.set_ccid(
18615   , p_value_type_code              => l_adr_value_type_code
18616   , p_transaction_coa_id           => l_adr_transaction_coa_id
18617   , p_accounting_coa_id            => l_adr_accounting_coa_id
18618   , p_adr_code                     => 'AP_BANK_ERRORS'
18619   , p_adr_type_code                => 'S'
18620   , p_component_type               => l_component_type
18621   , p_component_code               => l_component_code
18622   , p_component_type_code          => l_component_type_code
18623   , p_component_appl_id            => l_component_appl_id
18624   , p_amb_context_code             => l_amb_context_code
18625   , p_side                         => 'NA'
18626   );
18627 
18628 
18629    l_segment := AcctDerRule_5(
18630            p_application_id           => p_application_id
18631          , p_ae_header_id             => l_ae_header_id 
18632 , p_source_15 => p_source_15
18633 , p_source_15_meaning => p_source_15_meaning
18634 , p_source_16 => p_source_16
18635          , x_transaction_coa_id       => l_adr_transaction_coa_id
18636          , x_accounting_coa_id        => l_adr_accounting_coa_id
18637          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18638          , x_flex_value_set_id        => l_adr_flex_value_set_id
18639          , x_value_type_code          => l_adr_value_type_code
18640          , x_value_combination_id     => l_adr_value_combination_id
18641          , x_value_segment_code       => l_adr_value_segment_code
18642          , p_side                     => 'NA'
18643          , p_override_seg_flag        => 'Y'
18644    );
18645 
18646    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18647 
18648       xla_ae_lines_pkg.set_segment(
18649           p_to_segment_code         => 'GL_ACCOUNT'
18650         , p_segment_value           => l_segment
18651         , p_from_segment_code       => l_adr_value_segment_code
18652         , p_from_combination_id     => l_adr_value_combination_id
18653         , p_value_type_code         => l_adr_value_type_code
18654         , p_transaction_coa_id      => l_adr_transaction_coa_id
18655         , p_accounting_coa_id       => l_adr_accounting_coa_id
18656         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18657         , p_flex_value_set_id       => l_adr_flex_value_set_id
18658         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
18659         , p_adr_type_code           => 'S'
18660         , p_component_type          => l_component_type
18661         , p_component_code          => l_component_code
18662         , p_component_type_code     => l_component_type_code
18663         , p_component_appl_id       => l_component_appl_id
18664         , p_amb_context_code        => l_amb_context_code
18665         , p_entity_code             => 'AP_PAYMENTS'
18666         , p_event_class_code        => 'RECONCILED PAYMENTS'
18667         , p_side                    => 'NA'
18668         );
18669 
18670   END IF;
18671 
18672    l_segment := AcctDerRule_22(
18673            p_application_id           => p_application_id
18674          , p_ae_header_id             => l_ae_header_id 
18675 , p_source_15 => p_source_15
18676 , p_source_15_meaning => p_source_15_meaning
18677 , p_source_30 => p_source_30
18678          , x_transaction_coa_id       => l_adr_transaction_coa_id
18679          , x_accounting_coa_id        => l_adr_accounting_coa_id
18680          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18681          , x_flex_value_set_id        => l_adr_flex_value_set_id
18682          , x_value_type_code          => l_adr_value_type_code
18683          , x_value_combination_id     => l_adr_value_combination_id
18684          , x_value_segment_code       => l_adr_value_segment_code
18685          , p_side                     => 'NA'
18686          , p_override_seg_flag        => 'Y'
18687    );
18688 
18689    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18690 
18691       xla_ae_lines_pkg.set_segment(
18692           p_to_segment_code         => 'GL_BALANCING'
18693         , p_segment_value           => l_segment
18694         , p_from_segment_code       => l_adr_value_segment_code
18695         , p_from_combination_id     => l_adr_value_combination_id
18696         , p_value_type_code         => l_adr_value_type_code
18697         , p_transaction_coa_id      => l_adr_transaction_coa_id
18698         , p_accounting_coa_id       => l_adr_accounting_coa_id
18699         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18700         , p_flex_value_set_id       => l_adr_flex_value_set_id
18701         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18702         , p_adr_type_code           => 'S'
18703         , p_component_type          => l_component_type
18704         , p_component_code          => l_component_code
18705         , p_component_type_code     => l_component_type_code
18706         , p_component_appl_id       => l_component_appl_id
18707         , p_amb_context_code        => l_amb_context_code
18708         , p_entity_code             => 'AP_PAYMENTS'
18709         , p_event_class_code        => 'RECONCILED PAYMENTS'
18710         , p_side                    => 'NA'
18711         );
18712 
18713   END IF;
18714 
18715    --
18716    --
18717    END IF;
18718    --
18719    -- Bug 4922099
18720    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18721           (NVL(l_enc_upg_option, 'N') = 'O')
18722         ) AND
18723         (l_bflow_method_code = 'PRIOR_ENTRY')
18727       --
18724       )
18725    THEN
18726       IF
18728       1 = 2
18729       --
18730       THEN
18731       xla_accounting_err_pkg.build_message
18732                                     (p_appli_s_name            => 'XLA'
18733                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18734                                     ,p_token_1                 => 'LINE_NUMBER'
18735                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18736                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18737                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18738                                                                              l_component_type
18739                                                                             ,l_component_code
18740                                                                             ,l_component_type_code
18741                                                                             ,l_component_appl_id
18742                                                                             ,l_amb_context_code
18743                                                                             ,l_entity_code
18744                                                                             ,l_event_class_code
18745                                                                            )
18746                                     ,p_token_3                 => 'OWNER'
18747                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18748                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18749                                                                           ,p_lookup_code    => l_component_type_code
18750                                                                          )
18751                                     ,p_token_4                 => 'PRODUCT_NAME'
18752                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18753                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18754                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18755                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18756                                     ,p_ae_header_id            =>  NULL
18757                                        );
18758 
18759         IF (C_LEVEL_ERROR>= g_log_level) THEN
18760                  trace
18761                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18762                       ,p_level    => C_LEVEL_ERROR
18763                       ,p_module   => l_log_module);
18764         END IF;
18765       END IF;
18766    END IF;
18767    --
18768    --
18769    ------------------------------------------------------------------------------------------------
18770    -- 4219869 Business Flow
18771    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18772    -- Prior Entry.  Currently, the following code is always generated.
18773    ------------------------------------------------------------------------------------------------
18774    XLA_AE_LINES_PKG.ValidateCurrentLine;
18775 
18776    ------------------------------------------------------------------------------------
18777    -- 4219869 Business Flow
18778    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18779    ------------------------------------------------------------------------------------
18780    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18781 
18782    ----------------------------------------------------------------------------------
18783    -- 4219869 Business Flow
18784    -- Update journal entry status -- Need to generate this within IF <condition>
18785    ----------------------------------------------------------------------------------
18786    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18787          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18788          ,p_balance_type_code => l_balance_type_code
18789          );
18790 
18791    -------------------------------------------------------------------------------------------
18792    -- 4262811 - Generate the Accrual Reversal lines
18793    -------------------------------------------------------------------------------------------
18794    BEGIN
18795       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18796                               (g_array_event(p_event_id).array_value_num('header_index'));
18797       IF l_acc_rev_flag IS NULL THEN
18798          l_acc_rev_flag := 'N';
18799       END IF;
18800    EXCEPTION
18801       WHEN OTHERS THEN
18802          l_acc_rev_flag := 'N';
18803    END;
18804    --
18805    IF (l_acc_rev_flag = 'Y') THEN
18806 
18807        -- 4645092  ------------------------------------------------------------------------------
18808        -- To allow MPA report to determine if it should generate report process
18809        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18810        ------------------------------------------------------------------------------------------
18811 
18812        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18813        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18814    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18815    -- call ADRs
18816    -- Bug 4922099
18817    --
18821       )
18818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18819         (NVL(l_actual_upg_option, 'N') = 'O') OR
18820         (NVL(l_enc_upg_option, 'N') = 'O')
18822    THEN
18823    NULL;
18824    --
18825    --
18826    
18827   l_ccid := AcctDerRule_27(
18828            p_application_id           => p_application_id
18829          , p_ae_header_id             => l_ae_header_id 
18830 , p_source_15 => p_source_15
18831 , p_source_15_meaning => p_source_15_meaning
18832 , p_source_16 => p_source_16
18833 , p_source_30 => p_source_30
18834          , x_transaction_coa_id       => l_adr_transaction_coa_id
18835          , x_accounting_coa_id        => l_adr_accounting_coa_id
18836          , x_value_type_code          => l_adr_value_type_code
18837          , p_side                     => 'NA'
18838    );
18839 
18840    xla_ae_lines_pkg.set_ccid(
18841     p_code_combination_id          => l_ccid
18842   , p_value_type_code              => l_adr_value_type_code
18843   , p_transaction_coa_id           => l_adr_transaction_coa_id
18844   , p_accounting_coa_id            => l_adr_accounting_coa_id
18845   , p_adr_code                     => 'AP_BANK_ERRORS'
18846   , p_adr_type_code                => 'S'
18847   , p_component_type               => l_component_type
18848   , p_component_code               => l_component_code
18849   , p_component_type_code          => l_component_type_code
18850   , p_component_appl_id            => l_component_appl_id
18851   , p_amb_context_code             => l_amb_context_code
18852   , p_side                         => 'NA'
18853   );
18854 
18855 
18856    l_segment := AcctDerRule_5(
18857            p_application_id           => p_application_id
18858          , p_ae_header_id             => l_ae_header_id 
18859 , p_source_15 => p_source_15
18860 , p_source_15_meaning => p_source_15_meaning
18861 , p_source_16 => p_source_16
18862          , x_transaction_coa_id       => l_adr_transaction_coa_id
18863          , x_accounting_coa_id        => l_adr_accounting_coa_id
18864          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18865          , x_flex_value_set_id        => l_adr_flex_value_set_id
18866          , x_value_type_code          => l_adr_value_type_code
18867          , x_value_combination_id     => l_adr_value_combination_id
18868          , x_value_segment_code       => l_adr_value_segment_code
18869          , p_side                     => 'NA'
18870          , p_override_seg_flag        => 'Y'
18871    );
18872 
18873    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18874 
18875       xla_ae_lines_pkg.set_segment(
18876           p_to_segment_code         => 'GL_ACCOUNT'
18877         , p_segment_value           => l_segment
18878         , p_from_segment_code       => l_adr_value_segment_code
18879         , p_from_combination_id     => l_adr_value_combination_id
18880         , p_value_type_code         => l_adr_value_type_code
18881         , p_transaction_coa_id      => l_adr_transaction_coa_id
18882         , p_accounting_coa_id       => l_adr_accounting_coa_id
18883         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18884         , p_flex_value_set_id       => l_adr_flex_value_set_id
18885         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
18886         , p_adr_type_code           => 'S'
18887         , p_component_type          => l_component_type
18888         , p_component_code          => l_component_code
18889         , p_component_type_code     => l_component_type_code
18890         , p_component_appl_id       => l_component_appl_id
18891         , p_amb_context_code        => l_amb_context_code
18892         , p_entity_code             => 'AP_PAYMENTS'
18893         , p_event_class_code        => 'RECONCILED PAYMENTS'
18894         , p_side                    => 'NA'
18895         );
18896 
18897   END IF;
18898 
18899    l_segment := AcctDerRule_22(
18900            p_application_id           => p_application_id
18901          , p_ae_header_id             => l_ae_header_id 
18902 , p_source_15 => p_source_15
18903 , p_source_15_meaning => p_source_15_meaning
18904 , p_source_30 => p_source_30
18905          , x_transaction_coa_id       => l_adr_transaction_coa_id
18906          , x_accounting_coa_id        => l_adr_accounting_coa_id
18907          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18908          , x_flex_value_set_id        => l_adr_flex_value_set_id
18909          , x_value_type_code          => l_adr_value_type_code
18910          , x_value_combination_id     => l_adr_value_combination_id
18911          , x_value_segment_code       => l_adr_value_segment_code
18912          , p_side                     => 'NA'
18913          , p_override_seg_flag        => 'Y'
18914    );
18915 
18916    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18917 
18918       xla_ae_lines_pkg.set_segment(
18919           p_to_segment_code         => 'GL_BALANCING'
18920         , p_segment_value           => l_segment
18921         , p_from_segment_code       => l_adr_value_segment_code
18922         , p_from_combination_id     => l_adr_value_combination_id
18923         , p_value_type_code         => l_adr_value_type_code
18924         , p_transaction_coa_id      => l_adr_transaction_coa_id
18925         , p_accounting_coa_id       => l_adr_accounting_coa_id
18926         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18927         , p_flex_value_set_id       => l_adr_flex_value_set_id
18928         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18932         , p_component_type_code     => l_component_type_code
18929         , p_adr_type_code           => 'S'
18930         , p_component_type          => l_component_type
18931         , p_component_code          => l_component_code
18933         , p_component_appl_id       => l_component_appl_id
18934         , p_amb_context_code        => l_amb_context_code
18935         , p_entity_code             => 'AP_PAYMENTS'
18936         , p_event_class_code        => 'RECONCILED PAYMENTS'
18937         , p_side                    => 'NA'
18938         );
18939 
18940   END IF;
18941 
18942    --
18943    --
18944    END IF;
18945 
18946        --
18947        -- Update the line information that should be overwritten
18948        --
18949        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18950                                          p_header_num   => 1);
18951        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18952 
18953        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18954 
18955        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18956           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18957        END IF;
18958 
18959       --
18960       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18961       --
18962       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18963           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18964       ELSE
18965           ---------------------------------------------------------------------------------------------------
18966           -- 4262811a Switch Sign
18967           ---------------------------------------------------------------------------------------------------
18968           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18969           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18970                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18971           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18972                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18973           -- 5132302
18974           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18975                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18976 
18977       END IF;
18978 
18979       -- 4955764
18980       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18981       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18982 
18983 
18984       XLA_AE_LINES_PKG.ValidateCurrentLine;
18985       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18986 
18987       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18988                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18989                ,p_balance_type_code => l_balance_type_code);
18990 
18991    END IF;
18992 
18993    -----------------------------------------------------------------------------------------
18994    -- 4262811 Multiperiod Accounting
18995    -----------------------------------------------------------------------------------------
18996      -- No MPA option is assigned.
18997 
18998 
18999 END IF;
19000 END IF;
19001 --
19002 
19003 --
19004 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19005    trace
19006       (p_msg      => 'END of AcctLineType_59'
19007       ,p_level    => C_LEVEL_PROCEDURE
19008       ,p_module   => l_log_module);
19009 END IF;
19010 --
19011 EXCEPTION
19012   WHEN xla_exceptions_pkg.application_exception THEN
19013       RAISE;
19014   WHEN OTHERS THEN
19015        xla_exceptions_pkg.raise_message
19016            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_59');
19017 END AcctLineType_59;
19018 --
19019 
19020 ---------------------------------------
19021 --
19022 -- PRIVATE FUNCTION
19023 --         AcctLineType_60
19024 --
19025 ---------------------------------------
19026 PROCEDURE AcctLineType_60 (
19027   p_application_id        IN NUMBER
19028  ,p_event_id              IN NUMBER
19029  ,p_calculate_acctd_flag  IN VARCHAR2
19030  ,p_calculate_g_l_flag    IN VARCHAR2
19031  ,p_actual_flag           IN OUT VARCHAR2
19032  ,p_balance_type_code     OUT VARCHAR2
19033  ,p_gain_or_loss_ref      OUT VARCHAR2
19034  
19035 --Payment Currency Code
19036  , p_source_13            IN VARCHAR2
19037 --Automatic Offsets Value
19038  , p_source_15            IN VARCHAR2
19039  , p_source_15_meaning    IN VARCHAR2
19040 --Bank Cash Account
19041  , p_source_17            IN NUMBER
19042 --Accounting Reversal Indicator
19043  , p_source_52            IN VARCHAR2
19044 --Distribution Link Type
19045  , p_source_54            IN VARCHAR2
19046 --Override Accounted Amount Indicator
19047  , p_source_79            IN VARCHAR2
19048  , p_source_79_meaning    IN VARCHAR2
19049 --Third Party Type
19050  , p_source_82            IN VARCHAR2
19051 --Invoice Distribution Tax Line Identifier
19052  , p_source_85            IN NUMBER
19056  , p_source_90            IN NUMBER
19053 --Invoice Distribution Summary Tax Line Identifier
19054  , p_source_87            IN NUMBER
19055 --Business Flow Accounts Payable Application Identifier
19057 --When to Account for Payment Option
19058  , p_source_96            IN VARCHAR2
19059 --Payment Distribution Type
19060  , p_source_97            IN VARCHAR2
19061  , p_source_97_meaning    IN VARCHAR2
19062 --Payment Distribution Amount
19063  , p_source_98            IN NUMBER
19064 --Business Flow Payment Distribution Type
19065  , p_source_99            IN VARCHAR2
19066 --Business Flow Payment Entity Code
19067  , p_source_100            IN VARCHAR2
19068 --Business Flow Payment Distribution Identifier
19069  , p_source_101            IN NUMBER
19070 --Business Flow Payment Identifier
19071  , p_source_102            IN NUMBER
19072 --Payment Distribution Identifier
19073  , p_source_103            IN NUMBER
19074 --Cleared Exchange Date
19075  , p_source_105            IN DATE
19076 --Cleared Exchange Rate
19077  , p_source_106            IN NUMBER
19078 --Cleared Exchange Rate Type
19079  , p_source_107            IN VARCHAR2
19080 --Payment Distribution (Cleared Rate) Ledger Amount
19081  , p_source_108            IN NUMBER
19082 --Payment Supplier Identifier
19083  , p_source_109            IN NUMBER
19084 --Payment Supplier Site Identifier
19085  , p_source_110            IN NUMBER
19086 --Payment Distribution Reversed Identifier
19087  , p_source_111            IN NUMBER
19088 --Payment Identifier
19089  , p_source_112            IN NUMBER
19090 --Pooled Bank Account Option
19091  , p_source_113            IN VARCHAR2
19092  , p_source_113_meaning    IN VARCHAR2
19093 )
19094 IS
19095 
19096 l_component_type              VARCHAR2(80);
19097 l_component_code              VARCHAR2(30);
19098 l_component_type_code         VARCHAR2(1);
19099 l_component_appl_id           INTEGER;
19100 l_amb_context_code            VARCHAR2(30);
19101 l_entity_code                 VARCHAR2(30);
19102 l_event_class_code            VARCHAR2(30);
19103 l_ae_header_id                NUMBER;
19104 l_event_type_code             VARCHAR2(30);
19105 l_line_definition_code        VARCHAR2(30);
19106 l_line_definition_owner_code  VARCHAR2(1);
19107 --
19108 -- adr variables
19109 l_segment                     VARCHAR2(30);
19110 l_ccid                        NUMBER;
19111 l_adr_transaction_coa_id      NUMBER;
19112 l_adr_accounting_coa_id       NUMBER;
19113 l_adr_flexfield_segment_code  VARCHAR2(30);
19114 l_adr_flex_value_set_id       NUMBER;
19115 l_adr_value_type_code         VARCHAR2(30);
19116 l_adr_value_combination_id    NUMBER;
19117 l_adr_value_segment_code      VARCHAR2(30);
19118 
19119 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19120 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19121 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19122 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19123 
19124 -- 4262811 Variables ------------------------------------------------------------------------------------------
19125 l_entered_amt_idx             NUMBER;
19126 l_accted_amt_idx              NUMBER;
19127 l_acc_rev_flag                VARCHAR2(1);
19128 l_accrual_line_num            NUMBER;
19129 l_tmp_amt                     NUMBER;
19130 l_acc_rev_natural_side_code   VARCHAR2(1);
19131 
19132 l_num_entries                 NUMBER;
19133 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19134 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19135 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19136 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19137 l_recog_line_1                NUMBER;
19138 l_recog_line_2                NUMBER;
19139 
19140 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19141 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19142 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19143 
19144 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19145 
19146 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19147 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19148 
19149 ---------------------------------------------------------------------------------------------------------------
19150 
19151 
19152 --
19153 -- bulk performance
19154 --
19155 l_balance_type_code           VARCHAR2(1);
19156 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19157 l_log_module                  VARCHAR2(240);
19158 
19159 --
19160 -- Upgrade strategy
19161 --
19162 l_actual_upg_option           VARCHAR2(1);
19163 l_enc_upg_option           VARCHAR2(1);
19164 
19165 --
19166 BEGIN
19167 --
19168 IF g_log_enabled THEN
19169       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
19170 END IF;
19171 --
19172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19173 
19174       trace
19175          (p_msg      => 'BEGIN of AcctLineType_60'
19176          ,p_level    => C_LEVEL_PROCEDURE
19177          ,p_module   => l_log_module);
19178 
19179 END IF;
19180 --
19184 l_component_appl_id          :=  200;
19181 l_component_type             := 'AMB_JLT';
19182 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
19183 l_component_type_code        := 'S';
19185 l_amb_context_code           := 'DEFAULT';
19186 l_entity_code                := 'AP_PAYMENTS';
19187 l_event_class_code           := 'RECONCILED PAYMENTS';
19188 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19189 l_line_definition_owner_code := 'S';
19190 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
19191 --
19192 l_balance_type_code          := 'A';
19193 l_segment                     := NULL;
19194 l_ccid                        := NULL;
19195 l_adr_transaction_coa_id      := NULL;
19196 l_adr_accounting_coa_id       := NULL;
19197 l_adr_flexfield_segment_code  := NULL;
19198 l_adr_flex_value_set_id       := NULL;
19199 l_adr_value_type_code         := NULL;
19200 l_adr_value_combination_id    := NULL;
19201 l_adr_value_segment_code      := NULL;
19202 
19203 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
19204 l_bflow_class_code           := '';    -- 4219869 Business Flow
19205 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19206 l_budgetary_control_flag     := 'N';
19207 
19208 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19209 l_bflow_applied_to_amt       := NULL; -- 5132302
19210 l_entered_amt_idx            := NULL;          -- 4262811
19211 l_accted_amt_idx             := NULL;          -- 4262811
19212 l_acc_rev_flag               := NULL;          -- 4262811
19213 l_accrual_line_num           := NULL;          -- 4262811
19214 l_tmp_amt                    := NULL;          -- 4262811
19215 --
19216  
19217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19218     l_balance_type_code <> 'B' THEN
19219 IF NVL(p_source_96,'
19220 ') <>  'ISSUE_ISSUE' AND 
19221 (NVL(p_source_113,'
19222 ') =  'Y' AND 
19223 NVL(p_source_15,'
19224 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
19225 (NVL(p_source_97,'
19226 ') =  'CASH' OR 
19227 NVL(p_source_97,'
19228 ') =  'BANK CHARGE' OR 
19229 NVL(p_source_97,'
19230 ') =  'BANK ERROR')
19231  THEN 
19232 
19233    --
19234    XLA_AE_LINES_PKG.SetNewLine;
19235 
19236    p_balance_type_code          := l_balance_type_code;
19237    -- set the flag so later we will know whether the gain loss line needs to be created
19238    
19239    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19240      p_actual_flag :='A';
19241    END IF;
19242 
19243    --
19244    -- bulk performance
19245    --
19246    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19247                                       p_header_num   => 0); -- 4262811
19248    --
19249    -- set accounting line options
19250    --
19251    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19252            p_natural_side_code          => 'C'
19253          , p_gain_or_loss_flag          => 'N'
19254          , p_gl_transfer_mode_code      => 'S'
19255          , p_acct_entry_type_code       => 'A'
19256          , p_switch_side_flag           => 'Y'
19257          , p_merge_duplicate_code       => 'A'
19258          );
19259    --
19260    l_acc_rev_natural_side_code := 'D';  -- 4262811
19261    -- 
19262    --
19263    -- set accounting line type info
19264    --
19265    xla_ae_lines_pkg.SetAcctLineType
19266       (p_component_type             => l_component_type
19267       ,p_event_type_code            => l_event_type_code
19268       ,p_line_definition_owner_code => l_line_definition_owner_code
19269       ,p_line_definition_code       => l_line_definition_code
19270       ,p_accounting_line_code       => l_component_code
19271       ,p_accounting_line_type_code  => l_component_type_code
19272       ,p_accounting_line_appl_id    => l_component_appl_id
19273       ,p_amb_context_code           => l_amb_context_code
19274       ,p_entity_code                => l_entity_code
19275       ,p_event_class_code           => l_event_class_code);
19276    --
19277    -- set accounting class
19278    --
19279    xla_ae_lines_pkg.SetAcctClass(
19280            p_accounting_class_code  => 'CASH'
19281          , p_ae_header_id           => l_ae_header_id
19282          );
19283 
19284    --
19285    -- set rounding class
19286    --
19287    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19288                       'CASH';
19289 
19290    --
19291    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19292    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19293    --
19294    -- bulk performance
19295    --
19296    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19297 
19298    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19299       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19300 
19301    -- 4955764
19302    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19303       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19304 
19305    -- 4458381 Public Sector Enh
19306    
19307    --
19308    -- set accounting attributes for the line type
19312    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19309    --
19310    l_entered_amt_idx := 10;
19311    l_accted_amt_idx  := 15;
19313    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19314    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
19315    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19316    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
19317    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19318    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
19319    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19320    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
19321    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19322    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
19323    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19324    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
19325    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19326    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
19327    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19328    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
19329    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19330    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
19331    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19332    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
19333    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19334    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
19335    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19336    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
19337    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19338    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
19339    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19340    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
19341    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19342    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
19343    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19344    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
19345    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19346    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
19347    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19348    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
19349    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19350    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
19351    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19352    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
19353    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19354    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
19355    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19356    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
19357    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19358    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
19359    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19360    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
19361 
19362    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19363    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19364 
19365    ---------------------------------------------------------------------------------------------------------------
19366    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19367    ---------------------------------------------------------------------------------------------------------------
19368    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19369 
19370    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19371    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19372 
19373    IF xla_accounting_cache_pkg.GetValueChar
19374          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19375          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19376    AND l_bflow_method_code = 'PRIOR_ENTRY'
19377 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19378    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19379          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19380        )
19381    THEN
19382          xla_ae_lines_pkg.BflowUpgEntry
19383            (p_business_method_code    => l_bflow_method_code
19384            ,p_business_class_code     => l_bflow_class_code
19385            ,p_balance_type            => l_balance_type_code);
19386    ELSE
19387       NULL;
19388 XLA_AE_LINES_PKG.business_flow_validation(
19389                                 p_business_method_code     => l_bflow_method_code
19390                                ,p_business_class_code      => l_bflow_class_code
19391                                ,p_inherit_description_flag => l_inherit_desc_flag);
19392    END IF;
19393 
19394    --
19395    -- call analytical criteria
19396    --
19397    
19398 
19399 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
19400 xla_ae_lines_pkg.SetAnalyticalCriteria(
19404  , p_amb_context_code             => 'DEFAULT'
19401    p_analytical_criterion_name    => 'Check Id'
19402  , p_analytical_criterion_owner   => 'S'
19403  , p_analytical_criterion_code    => 'CHECK_ID'
19405  , p_balancing_flag               => 'N'
19406  
19407  , p_analytical_detail_char_1    =>  NULL
19408  , p_analytical_detail_num_1     =>  p_source_112
19409  , p_analytical_detail_date_1    =>  NULL
19410 
19411  , p_ae_header_id                 => l_ae_header_id
19412 )
19413 ;
19414 --
19415 
19416    --
19417    -- call description
19418    --
19419    -- No description or it is inherited.
19420    --
19421    -- call ADRs
19422    -- Bug 4922099
19423    --
19424    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19425         (NVL(l_actual_upg_option, 'N') = 'O') OR
19426         (NVL(l_enc_upg_option, 'N') = 'O')
19427       )
19428    THEN
19429    NULL;
19430    --
19431    --
19432    
19433    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
19434      p_code_combination_id      => TO_NUMBER(C_NUM)
19435    , p_value_type_code          => NULL
19436    , p_transaction_coa_id       => null
19437    , p_accounting_coa_id        => null
19438    , p_adr_code                 => NULL
19439    , p_adr_type_code            => NULL
19440    , p_component_type           => l_component_type
19441    , p_component_code           => l_component_code
19442    , p_component_type_code      => l_component_type_code
19443    , p_component_appl_id        => l_component_appl_id
19444    , p_amb_context_code         => l_amb_context_code
19445    , p_side                     => NULL
19446    );
19447 
19448    
19449   -- initialise segments
19450   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19451   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19452   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19453   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19454   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19455   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19456   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19457   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19458   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19459   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19460   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19461   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19462   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19463   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19464   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19465   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19466   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19467   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19468   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19469   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19470   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19471   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19472   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19473   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19474   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19475   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19476   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19477   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19478   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19479   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19480   --
19481 
19482    --
19483 
19484 
19485    l_segment := AcctDerRule_6(
19486            p_application_id           => p_application_id
19487          , p_ae_header_id             => l_ae_header_id 
19488 , p_source_17 => p_source_17
19489          , x_transaction_coa_id       => l_adr_transaction_coa_id
19490          , x_accounting_coa_id        => l_adr_accounting_coa_id
19491          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19492          , x_flex_value_set_id        => l_adr_flex_value_set_id
19493          , x_value_type_code          => l_adr_value_type_code
19494          , x_value_combination_id     => l_adr_value_combination_id
19495          , x_value_segment_code       => l_adr_value_segment_code
19496          , p_side                     => 'NA'
19497          , p_override_seg_flag        => 'Y'
19498    );
19499 
19500    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19501 
19502       xla_ae_lines_pkg.set_segment(
19503           p_to_segment_code         => 'GL_ACCOUNT'
19504         , p_segment_value           => l_segment
19505         , p_from_segment_code       => l_adr_value_segment_code
19509         , p_accounting_coa_id       => l_adr_accounting_coa_id
19506         , p_from_combination_id     => l_adr_value_combination_id
19507         , p_value_type_code         => l_adr_value_type_code
19508         , p_transaction_coa_id      => l_adr_transaction_coa_id
19510         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19511         , p_flex_value_set_id       => l_adr_flex_value_set_id
19512         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19513         , p_adr_type_code           => 'S'
19514         , p_component_type          => l_component_type
19515         , p_component_code          => l_component_code
19516         , p_component_type_code     => l_component_type_code
19517         , p_component_appl_id       => l_component_appl_id
19518         , p_amb_context_code        => l_amb_context_code
19519         , p_entity_code             => 'AP_PAYMENTS'
19520         , p_event_class_code        => 'RECONCILED PAYMENTS'
19521         , p_side                    => 'NA'
19522         );
19523 
19524   END IF;
19525 
19526    --
19527    --
19528    END IF;
19529    --
19530    -- Bug 4922099
19531    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19532           (NVL(l_enc_upg_option, 'N') = 'O')
19533         ) AND
19534         (l_bflow_method_code = 'PRIOR_ENTRY')
19535       )
19536    THEN
19537       IF
19538       --
19539       1 = 2
19540       --
19541       THEN
19542       xla_accounting_err_pkg.build_message
19543                                     (p_appli_s_name            => 'XLA'
19544                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19545                                     ,p_token_1                 => 'LINE_NUMBER'
19546                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19547                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19548                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19549                                                                              l_component_type
19550                                                                             ,l_component_code
19551                                                                             ,l_component_type_code
19552                                                                             ,l_component_appl_id
19553                                                                             ,l_amb_context_code
19554                                                                             ,l_entity_code
19555                                                                             ,l_event_class_code
19556                                                                            )
19557                                     ,p_token_3                 => 'OWNER'
19558                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19559                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19560                                                                           ,p_lookup_code    => l_component_type_code
19561                                                                          )
19562                                     ,p_token_4                 => 'PRODUCT_NAME'
19563                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19564                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19565                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19566                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19567                                     ,p_ae_header_id            =>  NULL
19568                                        );
19569 
19570         IF (C_LEVEL_ERROR>= g_log_level) THEN
19571                  trace
19572                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19573                       ,p_level    => C_LEVEL_ERROR
19574                       ,p_module   => l_log_module);
19575         END IF;
19576       END IF;
19577    END IF;
19578    --
19579    --
19580    ------------------------------------------------------------------------------------------------
19581    -- 4219869 Business Flow
19582    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19583    -- Prior Entry.  Currently, the following code is always generated.
19584    ------------------------------------------------------------------------------------------------
19585    XLA_AE_LINES_PKG.ValidateCurrentLine;
19586 
19587    ------------------------------------------------------------------------------------
19588    -- 4219869 Business Flow
19589    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19590    ------------------------------------------------------------------------------------
19591    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19592 
19593    ----------------------------------------------------------------------------------
19594    -- 4219869 Business Flow
19595    -- Update journal entry status -- Need to generate this within IF <condition>
19596    ----------------------------------------------------------------------------------
19597    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19598          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19599          ,p_balance_type_code => l_balance_type_code
19600          );
19604    -------------------------------------------------------------------------------------------
19601 
19602    -------------------------------------------------------------------------------------------
19603    -- 4262811 - Generate the Accrual Reversal lines
19605    BEGIN
19606       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19607                               (g_array_event(p_event_id).array_value_num('header_index'));
19608       IF l_acc_rev_flag IS NULL THEN
19609          l_acc_rev_flag := 'N';
19610       END IF;
19611    EXCEPTION
19612       WHEN OTHERS THEN
19613          l_acc_rev_flag := 'N';
19614    END;
19615    --
19616    IF (l_acc_rev_flag = 'Y') THEN
19617 
19618        -- 4645092  ------------------------------------------------------------------------------
19619        -- To allow MPA report to determine if it should generate report process
19620        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19621        ------------------------------------------------------------------------------------------
19622 
19623        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19624        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19625    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19626    -- call ADRs
19627    -- Bug 4922099
19628    --
19629    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19630         (NVL(l_actual_upg_option, 'N') = 'O') OR
19631         (NVL(l_enc_upg_option, 'N') = 'O')
19632       )
19633    THEN
19634    NULL;
19635    --
19636    --
19637    
19638    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
19639      p_code_combination_id      => TO_NUMBER(C_NUM)
19640    , p_value_type_code          => NULL
19641    , p_transaction_coa_id       => null
19642    , p_accounting_coa_id        => null
19643    , p_adr_code                 => NULL
19644    , p_adr_type_code            => NULL
19645    , p_component_type           => l_component_type
19646    , p_component_code           => l_component_code
19647    , p_component_type_code      => l_component_type_code
19648    , p_component_appl_id        => l_component_appl_id
19649    , p_amb_context_code         => l_amb_context_code
19650    , p_side                     => NULL
19651    );
19652 
19653    
19654   -- initialise segments
19655   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19656   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19657   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19658   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19659   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19660   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19661   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19662   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19663   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19664   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19665   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19666   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19667   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19668   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19669   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19670   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19671   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19672   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19673   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19674   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19675   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19676   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19677   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19678   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19679   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19680   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19681   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19682   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19683   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19684   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19685   --
19686 
19687    --
19688 
19689 
19690    l_segment := AcctDerRule_6(
19691            p_application_id           => p_application_id
19692          , p_ae_header_id             => l_ae_header_id 
19693 , p_source_17 => p_source_17
19694          , x_transaction_coa_id       => l_adr_transaction_coa_id
19695          , x_accounting_coa_id        => l_adr_accounting_coa_id
19696          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19697          , x_flex_value_set_id        => l_adr_flex_value_set_id
19701          , p_side                     => 'NA'
19698          , x_value_type_code          => l_adr_value_type_code
19699          , x_value_combination_id     => l_adr_value_combination_id
19700          , x_value_segment_code       => l_adr_value_segment_code
19702          , p_override_seg_flag        => 'Y'
19703    );
19704 
19705    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19706 
19707       xla_ae_lines_pkg.set_segment(
19708           p_to_segment_code         => 'GL_ACCOUNT'
19709         , p_segment_value           => l_segment
19710         , p_from_segment_code       => l_adr_value_segment_code
19711         , p_from_combination_id     => l_adr_value_combination_id
19712         , p_value_type_code         => l_adr_value_type_code
19713         , p_transaction_coa_id      => l_adr_transaction_coa_id
19714         , p_accounting_coa_id       => l_adr_accounting_coa_id
19715         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19716         , p_flex_value_set_id       => l_adr_flex_value_set_id
19717         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19718         , p_adr_type_code           => 'S'
19719         , p_component_type          => l_component_type
19720         , p_component_code          => l_component_code
19721         , p_component_type_code     => l_component_type_code
19722         , p_component_appl_id       => l_component_appl_id
19723         , p_amb_context_code        => l_amb_context_code
19724         , p_entity_code             => 'AP_PAYMENTS'
19725         , p_event_class_code        => 'RECONCILED PAYMENTS'
19726         , p_side                    => 'NA'
19727         );
19728 
19729   END IF;
19730 
19731    --
19732    --
19733    END IF;
19734 
19735        --
19736        -- Update the line information that should be overwritten
19737        --
19738        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19739                                          p_header_num   => 1);
19740        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19741 
19742        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19743 
19744        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19745           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19746        END IF;
19747 
19748       --
19749       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19750       --
19751       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19752           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19753       ELSE
19754           ---------------------------------------------------------------------------------------------------
19755           -- 4262811a Switch Sign
19756           ---------------------------------------------------------------------------------------------------
19757           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19758           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19759                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19760           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19761                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19762           -- 5132302
19763           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19764                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19765 
19766       END IF;
19767 
19768       -- 4955764
19769       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19770       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19771 
19772 
19773       XLA_AE_LINES_PKG.ValidateCurrentLine;
19774       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19775 
19776       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19777                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19778                ,p_balance_type_code => l_balance_type_code);
19779 
19780    END IF;
19781 
19782    -----------------------------------------------------------------------------------------
19783    -- 4262811 Multiperiod Accounting
19784    -----------------------------------------------------------------------------------------
19785      -- No MPA option is assigned.
19786 
19787 
19788 END IF;
19789 END IF;
19790 --
19791 
19792 --
19793 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19794    trace
19795       (p_msg      => 'END of AcctLineType_60'
19796       ,p_level    => C_LEVEL_PROCEDURE
19797       ,p_module   => l_log_module);
19798 END IF;
19799 --
19800 EXCEPTION
19801   WHEN xla_exceptions_pkg.application_exception THEN
19802       RAISE;
19803   WHEN OTHERS THEN
19804        xla_exceptions_pkg.raise_message
19805            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_60');
19806 END AcctLineType_60;
19807 --
19808 
19809 ---------------------------------------
19810 --
19811 -- PRIVATE FUNCTION
19812 --         AcctLineType_61
19813 --
19817  ,p_event_id              IN NUMBER
19814 ---------------------------------------
19815 PROCEDURE AcctLineType_61 (
19816   p_application_id        IN NUMBER
19818  ,p_calculate_acctd_flag  IN VARCHAR2
19819  ,p_calculate_g_l_flag    IN VARCHAR2
19820  ,p_actual_flag           IN OUT VARCHAR2
19821  ,p_balance_type_code     OUT VARCHAR2
19822  ,p_gain_or_loss_ref      OUT VARCHAR2
19823  
19824 --Payment Currency Code
19825  , p_source_13            IN VARCHAR2
19826 --Automatic Offsets Value
19827  , p_source_15            IN VARCHAR2
19828  , p_source_15_meaning    IN VARCHAR2
19829 --Bank Cash Account
19830  , p_source_17            IN NUMBER
19831 --Accounting Reversal Indicator
19832  , p_source_52            IN VARCHAR2
19833 --Distribution Link Type
19834  , p_source_54            IN VARCHAR2
19835 --Override Accounted Amount Indicator
19836  , p_source_79            IN VARCHAR2
19837  , p_source_79_meaning    IN VARCHAR2
19838 --Third Party Type
19839  , p_source_82            IN VARCHAR2
19840 --Invoice Distribution Tax Line Identifier
19841  , p_source_85            IN NUMBER
19842 --Invoice Distribution Summary Tax Line Identifier
19843  , p_source_87            IN NUMBER
19844 --Business Flow Accounts Payable Application Identifier
19845  , p_source_90            IN NUMBER
19846 --When to Account for Payment Option
19847  , p_source_96            IN VARCHAR2
19848 --Payment Distribution Type
19849  , p_source_97            IN VARCHAR2
19850  , p_source_97_meaning    IN VARCHAR2
19851 --Payment Distribution Amount
19852  , p_source_98            IN NUMBER
19853 --Business Flow Payment Distribution Type
19854  , p_source_99            IN VARCHAR2
19855 --Business Flow Payment Entity Code
19856  , p_source_100            IN VARCHAR2
19857 --Business Flow Payment Distribution Identifier
19858  , p_source_101            IN NUMBER
19859 --Business Flow Payment Identifier
19860  , p_source_102            IN NUMBER
19861 --Payment Distribution Identifier
19862  , p_source_103            IN NUMBER
19863 --Cleared Exchange Date
19864  , p_source_105            IN DATE
19865 --Cleared Exchange Rate
19866  , p_source_106            IN NUMBER
19867 --Cleared Exchange Rate Type
19868  , p_source_107            IN VARCHAR2
19869 --Payment Distribution (Cleared Rate) Ledger Amount
19870  , p_source_108            IN NUMBER
19871 --Payment Supplier Identifier
19872  , p_source_109            IN NUMBER
19873 --Payment Supplier Site Identifier
19874  , p_source_110            IN NUMBER
19875 --Payment Distribution Reversed Identifier
19876  , p_source_111            IN NUMBER
19877 --Payment Identifier
19878  , p_source_112            IN NUMBER
19879 --Pooled Bank Account Option
19880  , p_source_113            IN VARCHAR2
19881  , p_source_113_meaning    IN VARCHAR2
19882 )
19883 IS
19884 
19885 l_component_type              VARCHAR2(80);
19886 l_component_code              VARCHAR2(30);
19887 l_component_type_code         VARCHAR2(1);
19888 l_component_appl_id           INTEGER;
19889 l_amb_context_code            VARCHAR2(30);
19890 l_entity_code                 VARCHAR2(30);
19891 l_event_class_code            VARCHAR2(30);
19892 l_ae_header_id                NUMBER;
19893 l_event_type_code             VARCHAR2(30);
19894 l_line_definition_code        VARCHAR2(30);
19895 l_line_definition_owner_code  VARCHAR2(1);
19896 --
19897 -- adr variables
19898 l_segment                     VARCHAR2(30);
19899 l_ccid                        NUMBER;
19900 l_adr_transaction_coa_id      NUMBER;
19901 l_adr_accounting_coa_id       NUMBER;
19902 l_adr_flexfield_segment_code  VARCHAR2(30);
19903 l_adr_flex_value_set_id       NUMBER;
19904 l_adr_value_type_code         VARCHAR2(30);
19905 l_adr_value_combination_id    NUMBER;
19906 l_adr_value_segment_code      VARCHAR2(30);
19907 
19908 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19909 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19910 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19911 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19912 
19913 -- 4262811 Variables ------------------------------------------------------------------------------------------
19914 l_entered_amt_idx             NUMBER;
19915 l_accted_amt_idx              NUMBER;
19916 l_acc_rev_flag                VARCHAR2(1);
19917 l_accrual_line_num            NUMBER;
19918 l_tmp_amt                     NUMBER;
19919 l_acc_rev_natural_side_code   VARCHAR2(1);
19920 
19921 l_num_entries                 NUMBER;
19922 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19923 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19924 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19925 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19926 l_recog_line_1                NUMBER;
19927 l_recog_line_2                NUMBER;
19928 
19929 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19930 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19931 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19932 
19933 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19934 
19935 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19936 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19940 
19937 
19938 ---------------------------------------------------------------------------------------------------------------
19939 
19941 --
19942 -- bulk performance
19943 --
19944 l_balance_type_code           VARCHAR2(1);
19945 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19946 l_log_module                  VARCHAR2(240);
19947 
19948 --
19949 -- Upgrade strategy
19950 --
19951 l_actual_upg_option           VARCHAR2(1);
19952 l_enc_upg_option           VARCHAR2(1);
19953 
19954 --
19955 BEGIN
19956 --
19957 IF g_log_enabled THEN
19958       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
19959 END IF;
19960 --
19961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19962 
19963       trace
19964          (p_msg      => 'BEGIN of AcctLineType_61'
19965          ,p_level    => C_LEVEL_PROCEDURE
19966          ,p_module   => l_log_module);
19967 
19968 END IF;
19969 --
19970 l_component_type             := 'AMB_JLT';
19971 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
19972 l_component_type_code        := 'S';
19973 l_component_appl_id          :=  200;
19974 l_amb_context_code           := 'DEFAULT';
19975 l_entity_code                := 'AP_PAYMENTS';
19976 l_event_class_code           := 'RECONCILED PAYMENTS';
19977 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19978 l_line_definition_owner_code := 'S';
19979 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
19980 --
19981 l_balance_type_code          := 'A';
19982 l_segment                     := NULL;
19983 l_ccid                        := NULL;
19984 l_adr_transaction_coa_id      := NULL;
19985 l_adr_accounting_coa_id       := NULL;
19986 l_adr_flexfield_segment_code  := NULL;
19987 l_adr_flex_value_set_id       := NULL;
19988 l_adr_value_type_code         := NULL;
19989 l_adr_value_combination_id    := NULL;
19990 l_adr_value_segment_code      := NULL;
19991 
19992 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
19993 l_bflow_class_code           := '';    -- 4219869 Business Flow
19994 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19995 l_budgetary_control_flag     := 'N';
19996 
19997 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19998 l_bflow_applied_to_amt       := NULL; -- 5132302
19999 l_entered_amt_idx            := NULL;          -- 4262811
20000 l_accted_amt_idx             := NULL;          -- 4262811
20001 l_acc_rev_flag               := NULL;          -- 4262811
20002 l_accrual_line_num           := NULL;          -- 4262811
20003 l_tmp_amt                    := NULL;          -- 4262811
20004 --
20005  
20006 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20007     l_balance_type_code <> 'B' THEN
20008 IF NVL(p_source_96,'
20009 ') <>  'ISSUE_ISSUE' AND 
20010 (NVL(p_source_113,'
20011 ') =  'Y' AND 
20012 NVL(p_source_15,'
20013 ') =  'BALANCING_SEGMENT') AND 
20014 (NVL(p_source_97,'
20015 ') =  'CASH' OR 
20016 NVL(p_source_97,'
20017 ') =  'BANK CHARGE' OR 
20018 NVL(p_source_97,'
20019 ') =  'BANK ERROR')
20020  THEN 
20021 
20022    --
20023    XLA_AE_LINES_PKG.SetNewLine;
20024 
20025    p_balance_type_code          := l_balance_type_code;
20026    -- set the flag so later we will know whether the gain loss line needs to be created
20027    
20028    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20029      p_actual_flag :='A';
20030    END IF;
20031 
20032    --
20033    -- bulk performance
20034    --
20035    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20036                                       p_header_num   => 0); -- 4262811
20037    --
20038    -- set accounting line options
20039    --
20040    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20041            p_natural_side_code          => 'C'
20042          , p_gain_or_loss_flag          => 'N'
20043          , p_gl_transfer_mode_code      => 'S'
20044          , p_acct_entry_type_code       => 'A'
20045          , p_switch_side_flag           => 'Y'
20046          , p_merge_duplicate_code       => 'A'
20047          );
20048    --
20049    l_acc_rev_natural_side_code := 'D';  -- 4262811
20050    -- 
20051    --
20052    -- set accounting line type info
20053    --
20054    xla_ae_lines_pkg.SetAcctLineType
20055       (p_component_type             => l_component_type
20056       ,p_event_type_code            => l_event_type_code
20057       ,p_line_definition_owner_code => l_line_definition_owner_code
20058       ,p_line_definition_code       => l_line_definition_code
20059       ,p_accounting_line_code       => l_component_code
20060       ,p_accounting_line_type_code  => l_component_type_code
20061       ,p_accounting_line_appl_id    => l_component_appl_id
20062       ,p_amb_context_code           => l_amb_context_code
20063       ,p_entity_code                => l_entity_code
20064       ,p_event_class_code           => l_event_class_code);
20065    --
20066    -- set accounting class
20067    --
20068    xla_ae_lines_pkg.SetAcctClass(
20069            p_accounting_class_code  => 'CASH'
20070          , p_ae_header_id           => l_ae_header_id
20071          );
20072 
20073    --
20074    -- set rounding class
20075    --
20076    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20080    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20077                       'CASH';
20078 
20079    --
20081    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20082    --
20083    -- bulk performance
20084    --
20085    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20086 
20087    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20088       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20089 
20090    -- 4955764
20091    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20092       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20093 
20094    -- 4458381 Public Sector Enh
20095    
20096    --
20097    -- set accounting attributes for the line type
20098    --
20099    l_entered_amt_idx := 10;
20100    l_accted_amt_idx  := 15;
20101    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20102    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20103    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
20104    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20105    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
20106    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20107    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
20108    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20109    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
20110    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20111    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
20112    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20113    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
20114    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20115    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
20116    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20117    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
20118    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20119    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
20120    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20121    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
20122    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20123    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
20124    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20125    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
20126    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20127    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
20128    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20129    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
20130    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20131    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
20132    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20133    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
20134    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20135    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
20136    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20137    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
20138    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20139    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
20140    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20141    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
20142    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20143    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
20144    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20145    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
20146    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20147    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
20148    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20149    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
20150 
20151    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20152    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20153 
20154    ---------------------------------------------------------------------------------------------------------------
20155    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20156    ---------------------------------------------------------------------------------------------------------------
20157    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20158 
20159    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20160    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20161 
20162    IF xla_accounting_cache_pkg.GetValueChar
20163          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20164          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20165    AND l_bflow_method_code = 'PRIOR_ENTRY'
20166 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20170    THEN
20167    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20168          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20169        )
20171          xla_ae_lines_pkg.BflowUpgEntry
20172            (p_business_method_code    => l_bflow_method_code
20173            ,p_business_class_code     => l_bflow_class_code
20174            ,p_balance_type            => l_balance_type_code);
20175    ELSE
20176       NULL;
20177 XLA_AE_LINES_PKG.business_flow_validation(
20178                                 p_business_method_code     => l_bflow_method_code
20179                                ,p_business_class_code      => l_bflow_class_code
20180                                ,p_inherit_description_flag => l_inherit_desc_flag);
20181    END IF;
20182 
20183    --
20184    -- call analytical criteria
20185    --
20186    
20187 
20188 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
20189 xla_ae_lines_pkg.SetAnalyticalCriteria(
20190    p_analytical_criterion_name    => 'Check Id'
20191  , p_analytical_criterion_owner   => 'S'
20192  , p_analytical_criterion_code    => 'CHECK_ID'
20193  , p_amb_context_code             => 'DEFAULT'
20194  , p_balancing_flag               => 'N'
20195  
20196  , p_analytical_detail_char_1    =>  NULL
20197  , p_analytical_detail_num_1     =>  p_source_112
20198  , p_analytical_detail_date_1    =>  NULL
20199 
20200  , p_ae_header_id                 => l_ae_header_id
20201 )
20202 ;
20203 --
20204 
20205    --
20206    -- call description
20207    --
20208    -- No description or it is inherited.
20209    --
20210    -- call ADRs
20211    -- Bug 4922099
20212    --
20213    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20214         (NVL(l_actual_upg_option, 'N') = 'O') OR
20215         (NVL(l_enc_upg_option, 'N') = 'O')
20216       )
20217    THEN
20218    NULL;
20219    --
20220    --
20221    
20222   l_ccid := AcctDerRule_28(
20223            p_application_id           => p_application_id
20224          , p_ae_header_id             => l_ae_header_id 
20225 , p_source_17 => p_source_17
20226          , x_transaction_coa_id       => l_adr_transaction_coa_id
20227          , x_accounting_coa_id        => l_adr_accounting_coa_id
20228          , x_value_type_code          => l_adr_value_type_code
20229          , p_side                     => 'NA'
20230    );
20231 
20232    xla_ae_lines_pkg.set_ccid(
20233     p_code_combination_id          => l_ccid
20234   , p_value_type_code              => l_adr_value_type_code
20235   , p_transaction_coa_id           => l_adr_transaction_coa_id
20236   , p_accounting_coa_id            => l_adr_accounting_coa_id
20237   , p_adr_code                     => 'AP_CASH'
20238   , p_adr_type_code                => 'S'
20239   , p_component_type               => l_component_type
20240   , p_component_code               => l_component_code
20241   , p_component_type_code          => l_component_type_code
20242   , p_component_appl_id            => l_component_appl_id
20243   , p_amb_context_code             => l_amb_context_code
20244   , p_side                         => 'NA'
20245   );
20246 
20247 
20248    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
20249      p_to_segment_code         => 'GL_BALANCING'
20250    , p_segment_value           => C_CHAR
20251    , p_from_segment_code       => NULL
20252    , p_from_combination_id     => NULL
20253    , p_value_type_code         => NULL
20254    , p_transaction_coa_id      => null
20255    , p_accounting_coa_id       => null
20256    , p_flexfield_segment_code  => NULL
20257    , p_flex_value_set_id       => NULL
20258    , p_adr_code                => NULL
20259    , p_adr_type_code           => NULL
20260    , p_component_type          => l_component_type
20261    , p_component_code          => l_component_code
20262    , p_component_type_code     => l_component_type_code
20263    , p_component_appl_id       => l_component_appl_id
20264    , p_amb_context_code        => l_amb_context_code
20265    , p_entity_code             => 'AP_PAYMENTS'
20266    , p_event_class_code        => 'RECONCILED PAYMENTS'
20267    , p_side                    => 'NA'
20268    );
20269    --
20270 
20271 
20272    --
20273    --
20274    END IF;
20275    --
20276    -- Bug 4922099
20277    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20278           (NVL(l_enc_upg_option, 'N') = 'O')
20279         ) AND
20280         (l_bflow_method_code = 'PRIOR_ENTRY')
20281       )
20282    THEN
20283       IF
20284       --
20285       1 = 2
20286       --
20287       THEN
20288       xla_accounting_err_pkg.build_message
20289                                     (p_appli_s_name            => 'XLA'
20290                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20291                                     ,p_token_1                 => 'LINE_NUMBER'
20292                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20293                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20294                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20295                                                                              l_component_type
20296                                                                             ,l_component_code
20300                                                                             ,l_entity_code
20297                                                                             ,l_component_type_code
20298                                                                             ,l_component_appl_id
20299                                                                             ,l_amb_context_code
20301                                                                             ,l_event_class_code
20302                                                                            )
20303                                     ,p_token_3                 => 'OWNER'
20304                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20305                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20306                                                                           ,p_lookup_code    => l_component_type_code
20307                                                                          )
20308                                     ,p_token_4                 => 'PRODUCT_NAME'
20309                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20310                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20311                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20312                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20313                                     ,p_ae_header_id            =>  NULL
20314                                        );
20315 
20316         IF (C_LEVEL_ERROR>= g_log_level) THEN
20317                  trace
20318                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20319                       ,p_level    => C_LEVEL_ERROR
20320                       ,p_module   => l_log_module);
20321         END IF;
20322       END IF;
20323    END IF;
20324    --
20325    --
20326    ------------------------------------------------------------------------------------------------
20327    -- 4219869 Business Flow
20328    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20329    -- Prior Entry.  Currently, the following code is always generated.
20330    ------------------------------------------------------------------------------------------------
20331    XLA_AE_LINES_PKG.ValidateCurrentLine;
20332 
20333    ------------------------------------------------------------------------------------
20334    -- 4219869 Business Flow
20335    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20336    ------------------------------------------------------------------------------------
20337    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20338 
20339    ----------------------------------------------------------------------------------
20340    -- 4219869 Business Flow
20341    -- Update journal entry status -- Need to generate this within IF <condition>
20342    ----------------------------------------------------------------------------------
20343    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20344          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20345          ,p_balance_type_code => l_balance_type_code
20346          );
20347 
20348    -------------------------------------------------------------------------------------------
20349    -- 4262811 - Generate the Accrual Reversal lines
20350    -------------------------------------------------------------------------------------------
20351    BEGIN
20352       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20353                               (g_array_event(p_event_id).array_value_num('header_index'));
20354       IF l_acc_rev_flag IS NULL THEN
20355          l_acc_rev_flag := 'N';
20356       END IF;
20357    EXCEPTION
20358       WHEN OTHERS THEN
20359          l_acc_rev_flag := 'N';
20360    END;
20361    --
20362    IF (l_acc_rev_flag = 'Y') THEN
20363 
20364        -- 4645092  ------------------------------------------------------------------------------
20365        -- To allow MPA report to determine if it should generate report process
20366        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20367        ------------------------------------------------------------------------------------------
20368 
20369        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20370        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20371    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20372    -- call ADRs
20373    -- Bug 4922099
20374    --
20375    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20376         (NVL(l_actual_upg_option, 'N') = 'O') OR
20377         (NVL(l_enc_upg_option, 'N') = 'O')
20378       )
20379    THEN
20380    NULL;
20381    --
20382    --
20383    
20384   l_ccid := AcctDerRule_28(
20385            p_application_id           => p_application_id
20386          , p_ae_header_id             => l_ae_header_id 
20387 , p_source_17 => p_source_17
20388          , x_transaction_coa_id       => l_adr_transaction_coa_id
20389          , x_accounting_coa_id        => l_adr_accounting_coa_id
20390          , x_value_type_code          => l_adr_value_type_code
20391          , p_side                     => 'NA'
20392    );
20393 
20394    xla_ae_lines_pkg.set_ccid(
20395     p_code_combination_id          => l_ccid
20399   , p_adr_code                     => 'AP_CASH'
20396   , p_value_type_code              => l_adr_value_type_code
20397   , p_transaction_coa_id           => l_adr_transaction_coa_id
20398   , p_accounting_coa_id            => l_adr_accounting_coa_id
20400   , p_adr_type_code                => 'S'
20401   , p_component_type               => l_component_type
20402   , p_component_code               => l_component_code
20403   , p_component_type_code          => l_component_type_code
20404   , p_component_appl_id            => l_component_appl_id
20405   , p_amb_context_code             => l_amb_context_code
20406   , p_side                         => 'NA'
20407   );
20408 
20409 
20410    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
20411      p_to_segment_code         => 'GL_BALANCING'
20412    , p_segment_value           => C_CHAR
20413    , p_from_segment_code       => NULL
20414    , p_from_combination_id     => NULL
20415    , p_value_type_code         => NULL
20416    , p_transaction_coa_id      => null
20417    , p_accounting_coa_id       => null
20418    , p_flexfield_segment_code  => NULL
20419    , p_flex_value_set_id       => NULL
20420    , p_adr_code                => NULL
20421    , p_adr_type_code           => NULL
20422    , p_component_type          => l_component_type
20423    , p_component_code          => l_component_code
20424    , p_component_type_code     => l_component_type_code
20425    , p_component_appl_id       => l_component_appl_id
20426    , p_amb_context_code        => l_amb_context_code
20427    , p_entity_code             => 'AP_PAYMENTS'
20428    , p_event_class_code        => 'RECONCILED PAYMENTS'
20429    , p_side                    => 'NA'
20430    );
20431    --
20432 
20433 
20434    --
20435    --
20436    END IF;
20437 
20438        --
20439        -- Update the line information that should be overwritten
20440        --
20441        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20442                                          p_header_num   => 1);
20443        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20444 
20445        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20446 
20447        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20448           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20449        END IF;
20450 
20451       --
20452       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20453       --
20454       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20455           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20456       ELSE
20457           ---------------------------------------------------------------------------------------------------
20458           -- 4262811a Switch Sign
20459           ---------------------------------------------------------------------------------------------------
20460           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20461           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20462                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20463           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20464                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20465           -- 5132302
20466           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20467                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20468 
20469       END IF;
20470 
20471       -- 4955764
20472       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20473       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20474 
20475 
20476       XLA_AE_LINES_PKG.ValidateCurrentLine;
20477       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20478 
20479       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20480                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20481                ,p_balance_type_code => l_balance_type_code);
20482 
20483    END IF;
20484 
20485    -----------------------------------------------------------------------------------------
20486    -- 4262811 Multiperiod Accounting
20487    -----------------------------------------------------------------------------------------
20488      -- No MPA option is assigned.
20489 
20490 
20491 END IF;
20492 END IF;
20493 --
20494 
20495 --
20496 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20497    trace
20498       (p_msg      => 'END of AcctLineType_61'
20499       ,p_level    => C_LEVEL_PROCEDURE
20500       ,p_module   => l_log_module);
20501 END IF;
20502 --
20503 EXCEPTION
20504   WHEN xla_exceptions_pkg.application_exception THEN
20505       RAISE;
20506   WHEN OTHERS THEN
20507        xla_exceptions_pkg.raise_message
20508            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_61');
20509 END AcctLineType_61;
20510 --
20511 
20512 ---------------------------------------
20513 --
20514 -- PRIVATE FUNCTION
20515 --         AcctLineType_62
20516 --
20520  ,p_event_id              IN NUMBER
20517 ---------------------------------------
20518 PROCEDURE AcctLineType_62 (
20519   p_application_id        IN NUMBER
20521  ,p_calculate_acctd_flag  IN VARCHAR2
20522  ,p_calculate_g_l_flag    IN VARCHAR2
20523  ,p_actual_flag           IN OUT VARCHAR2
20524  ,p_balance_type_code     OUT VARCHAR2
20525  ,p_gain_or_loss_ref      OUT VARCHAR2
20526  
20527 --Payment Currency Code
20528  , p_source_13            IN VARCHAR2
20529 --Bank Cash Account
20530  , p_source_17            IN NUMBER
20531 --Automatic Offsets Flag
20532  , p_source_47            IN VARCHAR2
20533  , p_source_47_meaning    IN VARCHAR2
20534 --Accounting Reversal Indicator
20535  , p_source_52            IN VARCHAR2
20536 --Distribution Link Type
20537  , p_source_54            IN VARCHAR2
20538 --Override Accounted Amount Indicator
20539  , p_source_79            IN VARCHAR2
20540  , p_source_79_meaning    IN VARCHAR2
20541 --Third Party Type
20542  , p_source_82            IN VARCHAR2
20543 --Invoice Distribution Tax Line Identifier
20544  , p_source_85            IN NUMBER
20545 --Invoice Distribution Summary Tax Line Identifier
20546  , p_source_87            IN NUMBER
20547 --Business Flow Accounts Payable Application Identifier
20548  , p_source_90            IN NUMBER
20549 --When to Account for Payment Option
20550  , p_source_96            IN VARCHAR2
20551 --Payment Distribution Type
20552  , p_source_97            IN VARCHAR2
20553  , p_source_97_meaning    IN VARCHAR2
20554 --Payment Distribution Amount
20555  , p_source_98            IN NUMBER
20556 --Business Flow Payment Distribution Type
20557  , p_source_99            IN VARCHAR2
20558 --Business Flow Payment Entity Code
20559  , p_source_100            IN VARCHAR2
20560 --Business Flow Payment Distribution Identifier
20561  , p_source_101            IN NUMBER
20562 --Business Flow Payment Identifier
20563  , p_source_102            IN NUMBER
20564 --Payment Distribution Identifier
20565  , p_source_103            IN NUMBER
20566 --Cleared Exchange Date
20567  , p_source_105            IN DATE
20568 --Cleared Exchange Rate
20569  , p_source_106            IN NUMBER
20570 --Cleared Exchange Rate Type
20571  , p_source_107            IN VARCHAR2
20572 --Payment Distribution (Cleared Rate) Ledger Amount
20573  , p_source_108            IN NUMBER
20574 --Payment Supplier Identifier
20575  , p_source_109            IN NUMBER
20576 --Payment Supplier Site Identifier
20577  , p_source_110            IN NUMBER
20578 --Payment Distribution Reversed Identifier
20579  , p_source_111            IN NUMBER
20580 --Payment Identifier
20581  , p_source_112            IN NUMBER
20582 --Pooled Bank Account Option
20583  , p_source_113            IN VARCHAR2
20584  , p_source_113_meaning    IN VARCHAR2
20585 )
20586 IS
20587 
20588 l_component_type              VARCHAR2(80);
20589 l_component_code              VARCHAR2(30);
20590 l_component_type_code         VARCHAR2(1);
20591 l_component_appl_id           INTEGER;
20592 l_amb_context_code            VARCHAR2(30);
20593 l_entity_code                 VARCHAR2(30);
20594 l_event_class_code            VARCHAR2(30);
20595 l_ae_header_id                NUMBER;
20596 l_event_type_code             VARCHAR2(30);
20597 l_line_definition_code        VARCHAR2(30);
20598 l_line_definition_owner_code  VARCHAR2(1);
20599 --
20600 -- adr variables
20601 l_segment                     VARCHAR2(30);
20602 l_ccid                        NUMBER;
20603 l_adr_transaction_coa_id      NUMBER;
20604 l_adr_accounting_coa_id       NUMBER;
20605 l_adr_flexfield_segment_code  VARCHAR2(30);
20606 l_adr_flex_value_set_id       NUMBER;
20607 l_adr_value_type_code         VARCHAR2(30);
20608 l_adr_value_combination_id    NUMBER;
20609 l_adr_value_segment_code      VARCHAR2(30);
20610 
20611 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20612 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20613 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20614 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20615 
20616 -- 4262811 Variables ------------------------------------------------------------------------------------------
20617 l_entered_amt_idx             NUMBER;
20618 l_accted_amt_idx              NUMBER;
20619 l_acc_rev_flag                VARCHAR2(1);
20620 l_accrual_line_num            NUMBER;
20621 l_tmp_amt                     NUMBER;
20622 l_acc_rev_natural_side_code   VARCHAR2(1);
20623 
20624 l_num_entries                 NUMBER;
20625 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20626 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20627 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20628 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20629 l_recog_line_1                NUMBER;
20630 l_recog_line_2                NUMBER;
20631 
20632 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20633 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20634 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20635 
20636 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20637 
20638 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20642 
20639 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20640 
20641 ---------------------------------------------------------------------------------------------------------------
20643 
20644 --
20645 -- bulk performance
20646 --
20647 l_balance_type_code           VARCHAR2(1);
20648 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20649 l_log_module                  VARCHAR2(240);
20650 
20651 --
20652 -- Upgrade strategy
20653 --
20654 l_actual_upg_option           VARCHAR2(1);
20655 l_enc_upg_option           VARCHAR2(1);
20656 
20657 --
20658 BEGIN
20659 --
20660 IF g_log_enabled THEN
20661       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
20662 END IF;
20663 --
20664 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20665 
20666       trace
20667          (p_msg      => 'BEGIN of AcctLineType_62'
20668          ,p_level    => C_LEVEL_PROCEDURE
20669          ,p_module   => l_log_module);
20670 
20671 END IF;
20672 --
20673 l_component_type             := 'AMB_JLT';
20674 l_component_code             := 'AP_CASH_CLEARONLY_NP';
20675 l_component_type_code        := 'S';
20676 l_component_appl_id          :=  200;
20677 l_amb_context_code           := 'DEFAULT';
20678 l_entity_code                := 'AP_PAYMENTS';
20679 l_event_class_code           := 'RECONCILED PAYMENTS';
20680 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20681 l_line_definition_owner_code := 'S';
20682 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
20683 --
20684 l_balance_type_code          := 'A';
20685 l_segment                     := NULL;
20686 l_ccid                        := NULL;
20687 l_adr_transaction_coa_id      := NULL;
20688 l_adr_accounting_coa_id       := NULL;
20689 l_adr_flexfield_segment_code  := NULL;
20690 l_adr_flex_value_set_id       := NULL;
20691 l_adr_value_type_code         := NULL;
20692 l_adr_value_combination_id    := NULL;
20693 l_adr_value_segment_code      := NULL;
20694 
20695 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
20696 l_bflow_class_code           := '';    -- 4219869 Business Flow
20697 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20698 l_budgetary_control_flag     := 'N';
20699 
20700 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20701 l_bflow_applied_to_amt       := NULL; -- 5132302
20702 l_entered_amt_idx            := NULL;          -- 4262811
20703 l_accted_amt_idx             := NULL;          -- 4262811
20704 l_acc_rev_flag               := NULL;          -- 4262811
20705 l_accrual_line_num           := NULL;          -- 4262811
20706 l_tmp_amt                    := NULL;          -- 4262811
20707 --
20708  
20709 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20710     l_balance_type_code <> 'B' THEN
20711 IF NVL(p_source_96,'
20712 ') <>  'ISSUE_ISSUE' AND 
20713 (NVL(p_source_47,'
20714 ') <>  'Y' OR 
20715 NVL(p_source_47,'
20716 ') =  'Y' AND 
20717 NVL(p_source_113,'
20718 ') <>  'Y') AND 
20719 (NVL(p_source_97,'
20720 ') =  'CASH' OR 
20721 NVL(p_source_97,'
20722 ') =  'BANK CHARGE' OR 
20723 NVL(p_source_97,'
20724 ') =  'BANK ERROR')
20725  THEN 
20726 
20727    --
20728    XLA_AE_LINES_PKG.SetNewLine;
20729 
20730    p_balance_type_code          := l_balance_type_code;
20731    -- set the flag so later we will know whether the gain loss line needs to be created
20732    
20733    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20734      p_actual_flag :='A';
20735    END IF;
20736 
20737    --
20738    -- bulk performance
20739    --
20740    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20741                                       p_header_num   => 0); -- 4262811
20742    --
20743    -- set accounting line options
20744    --
20745    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20746            p_natural_side_code          => 'C'
20747          , p_gain_or_loss_flag          => 'N'
20748          , p_gl_transfer_mode_code      => 'S'
20749          , p_acct_entry_type_code       => 'A'
20750          , p_switch_side_flag           => 'Y'
20751          , p_merge_duplicate_code       => 'A'
20752          );
20753    --
20754    l_acc_rev_natural_side_code := 'D';  -- 4262811
20755    -- 
20756    --
20757    -- set accounting line type info
20758    --
20759    xla_ae_lines_pkg.SetAcctLineType
20760       (p_component_type             => l_component_type
20761       ,p_event_type_code            => l_event_type_code
20762       ,p_line_definition_owner_code => l_line_definition_owner_code
20763       ,p_line_definition_code       => l_line_definition_code
20764       ,p_accounting_line_code       => l_component_code
20765       ,p_accounting_line_type_code  => l_component_type_code
20766       ,p_accounting_line_appl_id    => l_component_appl_id
20767       ,p_amb_context_code           => l_amb_context_code
20768       ,p_entity_code                => l_entity_code
20769       ,p_event_class_code           => l_event_class_code);
20770    --
20771    -- set accounting class
20772    --
20773    xla_ae_lines_pkg.SetAcctClass(
20774            p_accounting_class_code  => 'CASH'
20775          , p_ae_header_id           => l_ae_header_id
20779    -- set rounding class
20776          );
20777 
20778    --
20780    --
20781    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20782                       'CASH';
20783 
20784    --
20785    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20786    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20787    --
20788    -- bulk performance
20789    --
20790    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20791 
20792    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20793       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20794 
20795    -- 4955764
20796    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20798 
20799    -- 4458381 Public Sector Enh
20800    
20801    --
20802    -- set accounting attributes for the line type
20803    --
20804    l_entered_amt_idx := 10;
20805    l_accted_amt_idx  := 15;
20806    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20807    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20808    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
20809    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20810    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
20811    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20812    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
20813    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20814    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
20815    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20816    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
20817    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20818    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
20819    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20820    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
20821    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20822    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
20823    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20824    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
20825    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20826    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
20827    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20828    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
20829    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20830    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
20831    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20832    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
20833    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20834    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
20835    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20836    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
20837    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20838    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
20839    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20840    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
20841    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20842    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
20843    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20844    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
20845    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20846    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
20847    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20848    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
20849    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20850    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
20851    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20852    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
20853    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20854    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
20855 
20856    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20857    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20858 
20859    ---------------------------------------------------------------------------------------------------------------
20860    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20861    ---------------------------------------------------------------------------------------------------------------
20862    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20863 
20864    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20865    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20866 
20867    IF xla_accounting_cache_pkg.GetValueChar
20868          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20869          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20870    AND l_bflow_method_code = 'PRIOR_ENTRY'
20874        )
20871 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20872    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20873          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20875    THEN
20876          xla_ae_lines_pkg.BflowUpgEntry
20877            (p_business_method_code    => l_bflow_method_code
20878            ,p_business_class_code     => l_bflow_class_code
20879            ,p_balance_type            => l_balance_type_code);
20880    ELSE
20881       NULL;
20882 -- No business flow processing for business flow method of NONE.
20883    END IF;
20884 
20885    --
20886    -- call analytical criteria
20887    --
20888    
20889 
20890 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
20891 xla_ae_lines_pkg.SetAnalyticalCriteria(
20892    p_analytical_criterion_name    => 'Check Id'
20893  , p_analytical_criterion_owner   => 'S'
20894  , p_analytical_criterion_code    => 'CHECK_ID'
20895  , p_amb_context_code             => 'DEFAULT'
20896  , p_balancing_flag               => 'N'
20897  
20898  , p_analytical_detail_char_1    =>  NULL
20899  , p_analytical_detail_num_1     =>  p_source_112
20900  , p_analytical_detail_date_1    =>  NULL
20901 
20902  , p_ae_header_id                 => l_ae_header_id
20903 )
20904 ;
20905 --
20906 
20907    --
20908    -- call description
20909    --
20910    -- No description or it is inherited.
20911    --
20912    -- call ADRs
20913    -- Bug 4922099
20914    --
20915    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20916         (NVL(l_actual_upg_option, 'N') = 'O') OR
20917         (NVL(l_enc_upg_option, 'N') = 'O')
20918       )
20919    THEN
20920    NULL;
20921    --
20922    --
20923    
20924   l_ccid := AcctDerRule_28(
20925            p_application_id           => p_application_id
20926          , p_ae_header_id             => l_ae_header_id 
20927 , p_source_17 => p_source_17
20928          , x_transaction_coa_id       => l_adr_transaction_coa_id
20929          , x_accounting_coa_id        => l_adr_accounting_coa_id
20930          , x_value_type_code          => l_adr_value_type_code
20931          , p_side                     => 'NA'
20932    );
20933 
20934    xla_ae_lines_pkg.set_ccid(
20935     p_code_combination_id          => l_ccid
20936   , p_value_type_code              => l_adr_value_type_code
20937   , p_transaction_coa_id           => l_adr_transaction_coa_id
20938   , p_accounting_coa_id            => l_adr_accounting_coa_id
20939   , p_adr_code                     => 'AP_CASH'
20940   , p_adr_type_code                => 'S'
20941   , p_component_type               => l_component_type
20942   , p_component_code               => l_component_code
20943   , p_component_type_code          => l_component_type_code
20944   , p_component_appl_id            => l_component_appl_id
20945   , p_amb_context_code             => l_amb_context_code
20946   , p_side                         => 'NA'
20947   );
20948 
20949 
20950    --
20951    --
20952    END IF;
20953    --
20954    -- Bug 4922099
20955    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20956           (NVL(l_enc_upg_option, 'N') = 'O')
20957         ) AND
20958         (l_bflow_method_code = 'PRIOR_ENTRY')
20959       )
20960    THEN
20961       IF
20962       --
20963       1 = 2
20964       --
20965       THEN
20966       xla_accounting_err_pkg.build_message
20967                                     (p_appli_s_name            => 'XLA'
20968                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20969                                     ,p_token_1                 => 'LINE_NUMBER'
20970                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20971                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20972                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20973                                                                              l_component_type
20974                                                                             ,l_component_code
20975                                                                             ,l_component_type_code
20976                                                                             ,l_component_appl_id
20977                                                                             ,l_amb_context_code
20978                                                                             ,l_entity_code
20979                                                                             ,l_event_class_code
20980                                                                            )
20981                                     ,p_token_3                 => 'OWNER'
20982                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20983                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20984                                                                           ,p_lookup_code    => l_component_type_code
20985                                                                          )
20986                                     ,p_token_4                 => 'PRODUCT_NAME'
20987                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20991                                     ,p_ae_header_id            =>  NULL
20988                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20989                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20990                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20992                                        );
20993 
20994         IF (C_LEVEL_ERROR>= g_log_level) THEN
20995                  trace
20996                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20997                       ,p_level    => C_LEVEL_ERROR
20998                       ,p_module   => l_log_module);
20999         END IF;
21000       END IF;
21001    END IF;
21002    --
21003    --
21004    ------------------------------------------------------------------------------------------------
21005    -- 4219869 Business Flow
21006    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21007    -- Prior Entry.  Currently, the following code is always generated.
21008    ------------------------------------------------------------------------------------------------
21009    XLA_AE_LINES_PKG.ValidateCurrentLine;
21010 
21011    ------------------------------------------------------------------------------------
21012    -- 4219869 Business Flow
21013    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21014    ------------------------------------------------------------------------------------
21015    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21016 
21017    ----------------------------------------------------------------------------------
21018    -- 4219869 Business Flow
21019    -- Update journal entry status -- Need to generate this within IF <condition>
21020    ----------------------------------------------------------------------------------
21021    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21022          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21023          ,p_balance_type_code => l_balance_type_code
21024          );
21025 
21026    -------------------------------------------------------------------------------------------
21027    -- 4262811 - Generate the Accrual Reversal lines
21028    -------------------------------------------------------------------------------------------
21029    BEGIN
21030       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21031                               (g_array_event(p_event_id).array_value_num('header_index'));
21032       IF l_acc_rev_flag IS NULL THEN
21033          l_acc_rev_flag := 'N';
21034       END IF;
21035    EXCEPTION
21036       WHEN OTHERS THEN
21037          l_acc_rev_flag := 'N';
21038    END;
21039    --
21040    IF (l_acc_rev_flag = 'Y') THEN
21041 
21042        -- 4645092  ------------------------------------------------------------------------------
21043        -- To allow MPA report to determine if it should generate report process
21044        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21045        ------------------------------------------------------------------------------------------
21046 
21047        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21048        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21049    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21050    -- call ADRs
21051    -- Bug 4922099
21052    --
21053    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21054         (NVL(l_actual_upg_option, 'N') = 'O') OR
21055         (NVL(l_enc_upg_option, 'N') = 'O')
21056       )
21057    THEN
21058    NULL;
21059    --
21060    --
21061    
21062   l_ccid := AcctDerRule_28(
21063            p_application_id           => p_application_id
21064          , p_ae_header_id             => l_ae_header_id 
21065 , p_source_17 => p_source_17
21066          , x_transaction_coa_id       => l_adr_transaction_coa_id
21067          , x_accounting_coa_id        => l_adr_accounting_coa_id
21068          , x_value_type_code          => l_adr_value_type_code
21069          , p_side                     => 'NA'
21070    );
21071 
21072    xla_ae_lines_pkg.set_ccid(
21073     p_code_combination_id          => l_ccid
21074   , p_value_type_code              => l_adr_value_type_code
21075   , p_transaction_coa_id           => l_adr_transaction_coa_id
21076   , p_accounting_coa_id            => l_adr_accounting_coa_id
21077   , p_adr_code                     => 'AP_CASH'
21078   , p_adr_type_code                => 'S'
21079   , p_component_type               => l_component_type
21080   , p_component_code               => l_component_code
21081   , p_component_type_code          => l_component_type_code
21082   , p_component_appl_id            => l_component_appl_id
21083   , p_amb_context_code             => l_amb_context_code
21084   , p_side                         => 'NA'
21085   );
21086 
21087 
21088    --
21089    --
21090    END IF;
21091 
21092        --
21093        -- Update the line information that should be overwritten
21094        --
21095        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21096                                          p_header_num   => 1);
21097        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21098 
21102           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21099        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21100 
21101        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21103        END IF;
21104 
21105       --
21106       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21107       --
21108       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21109           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21110       ELSE
21111           ---------------------------------------------------------------------------------------------------
21112           -- 4262811a Switch Sign
21113           ---------------------------------------------------------------------------------------------------
21114           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21115           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21116                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21117           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21118                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21119           -- 5132302
21120           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21121                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21122 
21123       END IF;
21124 
21125       -- 4955764
21126       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21127       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21128 
21129 
21130       XLA_AE_LINES_PKG.ValidateCurrentLine;
21131       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21132 
21133       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21134                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21135                ,p_balance_type_code => l_balance_type_code);
21136 
21137    END IF;
21138 
21139    -----------------------------------------------------------------------------------------
21140    -- 4262811 Multiperiod Accounting
21141    -----------------------------------------------------------------------------------------
21142      -- No MPA option is assigned.
21143 
21144 
21145 END IF;
21146 END IF;
21147 --
21148 
21149 --
21150 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21151    trace
21152       (p_msg      => 'END of AcctLineType_62'
21153       ,p_level    => C_LEVEL_PROCEDURE
21154       ,p_module   => l_log_module);
21155 END IF;
21156 --
21157 EXCEPTION
21158   WHEN xla_exceptions_pkg.application_exception THEN
21159       RAISE;
21160   WHEN OTHERS THEN
21161        xla_exceptions_pkg.raise_message
21162            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_62');
21163 END AcctLineType_62;
21164 --
21165 
21166 ---------------------------------------
21167 --
21168 -- PRIVATE FUNCTION
21169 --         AcctLineType_63
21170 --
21171 ---------------------------------------
21172 PROCEDURE AcctLineType_63 (
21173   p_application_id        IN NUMBER
21174  ,p_event_id              IN NUMBER
21175  ,p_calculate_acctd_flag  IN VARCHAR2
21176  ,p_calculate_g_l_flag    IN VARCHAR2
21177  ,p_actual_flag           IN OUT VARCHAR2
21178  ,p_balance_type_code     OUT VARCHAR2
21179  ,p_gain_or_loss_ref      OUT VARCHAR2
21180  
21181 --Payment Currency Code
21182  , p_source_13            IN VARCHAR2
21183 --Accounting Reversal Indicator
21184  , p_source_52            IN VARCHAR2
21185 --Distribution Link Type
21186  , p_source_54            IN VARCHAR2
21187 --Override Accounted Amount Indicator
21188  , p_source_79            IN VARCHAR2
21189  , p_source_79_meaning    IN VARCHAR2
21190 --Third Party Type
21191  , p_source_82            IN VARCHAR2
21192 --Invoice Distribution Tax Line Identifier
21193  , p_source_85            IN NUMBER
21194 --Invoice Distribution Summary Tax Line Identifier
21195  , p_source_87            IN NUMBER
21196 --Business Flow Accounts Payable Application Identifier
21197  , p_source_90            IN NUMBER
21198 --When to Account for Payment Option
21199  , p_source_96            IN VARCHAR2
21200 --Payment Distribution Type
21201  , p_source_97            IN VARCHAR2
21202  , p_source_97_meaning    IN VARCHAR2
21203 --Payment Distribution Amount
21204  , p_source_98            IN NUMBER
21205 --Business Flow Payment Distribution Type
21206  , p_source_99            IN VARCHAR2
21207 --Business Flow Payment Entity Code
21208  , p_source_100            IN VARCHAR2
21209 --Business Flow Payment Distribution Identifier
21210  , p_source_101            IN NUMBER
21211 --Business Flow Payment Identifier
21212  , p_source_102            IN NUMBER
21213 --Payment Distribution Identifier
21214  , p_source_103            IN NUMBER
21215 --Payment Distribution Reversed Identifier
21216  , p_source_111            IN NUMBER
21217 --Payment Maturity Date
21218  , p_source_114            IN DATE
21219 --Payment Distribution (Payment Rate) Ledger Amount
21220  , p_source_115            IN NUMBER
21224 l_component_type              VARCHAR2(80);
21221 )
21222 IS
21223 
21225 l_component_code              VARCHAR2(30);
21226 l_component_type_code         VARCHAR2(1);
21227 l_component_appl_id           INTEGER;
21228 l_amb_context_code            VARCHAR2(30);
21229 l_entity_code                 VARCHAR2(30);
21230 l_event_class_code            VARCHAR2(30);
21231 l_ae_header_id                NUMBER;
21232 l_event_type_code             VARCHAR2(30);
21233 l_line_definition_code        VARCHAR2(30);
21234 l_line_definition_owner_code  VARCHAR2(1);
21235 --
21236 -- adr variables
21237 l_segment                     VARCHAR2(30);
21238 l_ccid                        NUMBER;
21239 l_adr_transaction_coa_id      NUMBER;
21240 l_adr_accounting_coa_id       NUMBER;
21241 l_adr_flexfield_segment_code  VARCHAR2(30);
21242 l_adr_flex_value_set_id       NUMBER;
21243 l_adr_value_type_code         VARCHAR2(30);
21244 l_adr_value_combination_id    NUMBER;
21245 l_adr_value_segment_code      VARCHAR2(30);
21246 
21247 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21248 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21249 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21250 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21251 
21252 -- 4262811 Variables ------------------------------------------------------------------------------------------
21253 l_entered_amt_idx             NUMBER;
21254 l_accted_amt_idx              NUMBER;
21255 l_acc_rev_flag                VARCHAR2(1);
21256 l_accrual_line_num            NUMBER;
21257 l_tmp_amt                     NUMBER;
21258 l_acc_rev_natural_side_code   VARCHAR2(1);
21259 
21260 l_num_entries                 NUMBER;
21261 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21262 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21263 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21264 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21265 l_recog_line_1                NUMBER;
21266 l_recog_line_2                NUMBER;
21267 
21268 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21269 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21270 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21271 
21272 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21273 
21274 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21275 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21276 
21277 ---------------------------------------------------------------------------------------------------------------
21278 
21279 
21280 --
21281 -- bulk performance
21282 --
21283 l_balance_type_code           VARCHAR2(1);
21284 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21285 l_log_module                  VARCHAR2(240);
21286 
21287 --
21288 -- Upgrade strategy
21289 --
21290 l_actual_upg_option           VARCHAR2(1);
21291 l_enc_upg_option           VARCHAR2(1);
21292 
21293 --
21294 BEGIN
21295 --
21296 IF g_log_enabled THEN
21297       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
21298 END IF;
21299 --
21300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21301 
21302       trace
21303          (p_msg      => 'BEGIN of AcctLineType_63'
21304          ,p_level    => C_LEVEL_PROCEDURE
21305          ,p_module   => l_log_module);
21306 
21307 END IF;
21308 --
21309 l_component_type             := 'AMB_JLT';
21310 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
21311 l_component_type_code        := 'S';
21312 l_component_appl_id          :=  200;
21313 l_amb_context_code           := 'DEFAULT';
21314 l_entity_code                := 'AP_PAYMENTS';
21315 l_event_class_code           := 'RECONCILED PAYMENTS';
21316 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21317 l_line_definition_owner_code := 'S';
21318 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
21319 --
21320 l_balance_type_code          := 'A';
21321 l_segment                     := NULL;
21322 l_ccid                        := NULL;
21323 l_adr_transaction_coa_id      := NULL;
21324 l_adr_accounting_coa_id       := NULL;
21325 l_adr_flexfield_segment_code  := NULL;
21326 l_adr_flex_value_set_id       := NULL;
21327 l_adr_value_type_code         := NULL;
21328 l_adr_value_combination_id    := NULL;
21329 l_adr_value_segment_code      := NULL;
21330 
21331 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
21332 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21333 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21334 l_budgetary_control_flag     := 'N';
21335 
21336 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21337 l_bflow_applied_to_amt       := NULL; -- 5132302
21338 l_entered_amt_idx            := NULL;          -- 4262811
21339 l_accted_amt_idx             := NULL;          -- 4262811
21340 l_acc_rev_flag               := NULL;          -- 4262811
21341 l_accrual_line_num           := NULL;          -- 4262811
21342 l_tmp_amt                    := NULL;          -- 4262811
21343 --
21344  
21345 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21346     l_balance_type_code <> 'B' THEN
21347 IF (NVL(p_source_96,'
21348 ') =  'ALWAYS_ALWAYS' OR 
21349 NVL(p_source_96,'
21350 ') =  'ALWAYS_ISSUE') AND 
21351 NVL(p_source_97,'
21352 ') =  'CASH' AND 
21353 p_source_114 IS NULL 
21357    XLA_AE_LINES_PKG.SetNewLine;
21354  THEN 
21355 
21356    --
21358 
21359    p_balance_type_code          := l_balance_type_code;
21360    -- set the flag so later we will know whether the gain loss line needs to be created
21361    
21362    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21363      p_actual_flag :='A';
21364    END IF;
21365 
21366    --
21367    -- bulk performance
21368    --
21369    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21370                                       p_header_num   => 0); -- 4262811
21371    --
21372    -- set accounting line options
21373    --
21374    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21375            p_natural_side_code          => 'D'
21376          , p_gain_or_loss_flag          => 'N'
21377          , p_gl_transfer_mode_code      => 'S'
21378          , p_acct_entry_type_code       => 'A'
21379          , p_switch_side_flag           => 'Y'
21380          , p_merge_duplicate_code       => 'A'
21381          );
21382    --
21383    l_acc_rev_natural_side_code := 'C';  -- 4262811
21384    -- 
21385    --
21386    -- set accounting line type info
21387    --
21388    xla_ae_lines_pkg.SetAcctLineType
21389       (p_component_type             => l_component_type
21390       ,p_event_type_code            => l_event_type_code
21391       ,p_line_definition_owner_code => l_line_definition_owner_code
21392       ,p_line_definition_code       => l_line_definition_code
21393       ,p_accounting_line_code       => l_component_code
21394       ,p_accounting_line_type_code  => l_component_type_code
21395       ,p_accounting_line_appl_id    => l_component_appl_id
21396       ,p_amb_context_code           => l_amb_context_code
21397       ,p_entity_code                => l_entity_code
21398       ,p_event_class_code           => l_event_class_code);
21399    --
21400    -- set accounting class
21401    --
21402    xla_ae_lines_pkg.SetAcctClass(
21403            p_accounting_class_code  => 'CASH_CLEARING'
21404          , p_ae_header_id           => l_ae_header_id
21405          );
21406 
21407    --
21408    -- set rounding class
21409    --
21410    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21411                       'CASH_CLEARING';
21412 
21413    --
21414    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21415    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21416    --
21417    -- bulk performance
21418    --
21419    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21420 
21421    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21422       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21423 
21424    -- 4955764
21425    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21426       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21427 
21428    -- 4458381 Public Sector Enh
21429    
21430    --
21431    -- set accounting attributes for the line type
21432    --
21433    l_entered_amt_idx := 10;
21434    l_accted_amt_idx  := 12;
21435    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21436    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21437    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
21438    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21439    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
21440    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21441    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
21442    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21443    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
21444    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21445    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
21446    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21447    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
21448    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21449    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
21450    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21451    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
21452    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21453    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
21454    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21455    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
21456    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21457    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
21458    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
21459    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
21460    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
21461    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
21462    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
21463    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
21464    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
21465    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
21466    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
21470    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
21467    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
21468    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
21469    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
21471    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
21472    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
21473    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
21474 
21475    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21476    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21477 
21478    ---------------------------------------------------------------------------------------------------------------
21479    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21480    ---------------------------------------------------------------------------------------------------------------
21481    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21482 
21483    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21484    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21485 
21486    IF xla_accounting_cache_pkg.GetValueChar
21487          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21488          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21489    AND l_bflow_method_code = 'PRIOR_ENTRY'
21490 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21491    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21492          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21493        )
21494    THEN
21495          xla_ae_lines_pkg.BflowUpgEntry
21496            (p_business_method_code    => l_bflow_method_code
21497            ,p_business_class_code     => l_bflow_class_code
21498            ,p_balance_type            => l_balance_type_code);
21499    ELSE
21500       NULL;
21501 XLA_AE_LINES_PKG.business_flow_validation(
21502                                 p_business_method_code     => l_bflow_method_code
21503                                ,p_business_class_code      => l_bflow_class_code
21504                                ,p_inherit_description_flag => l_inherit_desc_flag);
21505    END IF;
21506 
21507    --
21508    -- call analytical criteria
21509    --
21510    -- Inherited Analytical Criteria for business flow method of Prior Entry.
21511    --
21512    -- call description
21513    --
21514    -- No description or it is inherited.
21515    --
21516    -- call ADRs
21517    -- Bug 4922099
21518    --
21519    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21520         (NVL(l_actual_upg_option, 'N') = 'O') OR
21521         (NVL(l_enc_upg_option, 'N') = 'O')
21522       )
21523    THEN
21524    NULL;
21525    --
21526    --
21527    
21528    --
21529    --
21530    END IF;
21531    --
21532    -- Bug 4922099
21533    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21534           (NVL(l_enc_upg_option, 'N') = 'O')
21535         ) AND
21536         (l_bflow_method_code = 'PRIOR_ENTRY')
21537       )
21538    THEN
21539       IF
21540       --
21541       1 = 1
21542       --
21543       THEN
21544       xla_accounting_err_pkg.build_message
21545                                     (p_appli_s_name            => 'XLA'
21546                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21547                                     ,p_token_1                 => 'LINE_NUMBER'
21548                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21549                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21550                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21551                                                                              l_component_type
21552                                                                             ,l_component_code
21553                                                                             ,l_component_type_code
21554                                                                             ,l_component_appl_id
21555                                                                             ,l_amb_context_code
21556                                                                             ,l_entity_code
21557                                                                             ,l_event_class_code
21558                                                                            )
21559                                     ,p_token_3                 => 'OWNER'
21560                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21561                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21562                                                                           ,p_lookup_code    => l_component_type_code
21563                                                                          )
21564                                     ,p_token_4                 => 'PRODUCT_NAME'
21565                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21566                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21567                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21571 
21568                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21569                                     ,p_ae_header_id            =>  NULL
21570                                        );
21572         IF (C_LEVEL_ERROR>= g_log_level) THEN
21573                  trace
21574                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21575                       ,p_level    => C_LEVEL_ERROR
21576                       ,p_module   => l_log_module);
21577         END IF;
21578       END IF;
21579    END IF;
21580    --
21581    --
21582    ------------------------------------------------------------------------------------------------
21583    -- 4219869 Business Flow
21584    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21585    -- Prior Entry.  Currently, the following code is always generated.
21586    ------------------------------------------------------------------------------------------------
21587    -- No ValidateCurrentLine for business flow method of Prior Entry
21588 
21589    ------------------------------------------------------------------------------------
21590    -- 4219869 Business Flow
21591    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21592    ------------------------------------------------------------------------------------
21593    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21594 
21595    ----------------------------------------------------------------------------------
21596    -- 4219869 Business Flow
21597    -- Update journal entry status -- Need to generate this within IF <condition>
21598    ----------------------------------------------------------------------------------
21599    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21600          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21601          ,p_balance_type_code => l_balance_type_code
21602          );
21603 
21604    -------------------------------------------------------------------------------------------
21605    -- 4262811 - Generate the Accrual Reversal lines
21606    -------------------------------------------------------------------------------------------
21607    BEGIN
21608       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21609                               (g_array_event(p_event_id).array_value_num('header_index'));
21610       IF l_acc_rev_flag IS NULL THEN
21611          l_acc_rev_flag := 'N';
21612       END IF;
21613    EXCEPTION
21614       WHEN OTHERS THEN
21615          l_acc_rev_flag := 'N';
21616    END;
21617    --
21618    IF (l_acc_rev_flag = 'Y') THEN
21619 
21620        -- 4645092  ------------------------------------------------------------------------------
21621        -- To allow MPA report to determine if it should generate report process
21622        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21623        ------------------------------------------------------------------------------------------
21624 
21625        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21626        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21627    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21628    -- call ADRs
21629    -- Bug 4922099
21630    --
21631    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21632         (NVL(l_actual_upg_option, 'N') = 'O') OR
21633         (NVL(l_enc_upg_option, 'N') = 'O')
21634       )
21635    THEN
21636    NULL;
21637    --
21638    --
21639    
21640    --
21641    --
21642    END IF;
21643 
21644        --
21645        -- Update the line information that should be overwritten
21646        --
21647        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21648                                          p_header_num   => 1);
21649        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21650 
21651        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21652 
21653        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21654           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21655        END IF;
21656 
21657       --
21658       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21659       --
21660       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21661           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21662       ELSE
21663           ---------------------------------------------------------------------------------------------------
21664           -- 4262811a Switch Sign
21665           ---------------------------------------------------------------------------------------------------
21666           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21667           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21668                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21669           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21670                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21671           -- 5132302
21675       END IF;
21672           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21673                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21674 
21676 
21677       -- 4955764
21678       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21679       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21680 
21681 
21682       XLA_AE_LINES_PKG.ValidateCurrentLine;
21683       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21684 
21685       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21686                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21687                ,p_balance_type_code => l_balance_type_code);
21688 
21689    END IF;
21690 
21691    -----------------------------------------------------------------------------------------
21692    -- 4262811 Multiperiod Accounting
21693    -----------------------------------------------------------------------------------------
21694      -- No MPA option is assigned.
21695 
21696 
21697 END IF;
21698 END IF;
21699 --
21700 
21701 --
21702 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21703    trace
21704       (p_msg      => 'END of AcctLineType_63'
21705       ,p_level    => C_LEVEL_PROCEDURE
21706       ,p_module   => l_log_module);
21707 END IF;
21708 --
21709 EXCEPTION
21710   WHEN xla_exceptions_pkg.application_exception THEN
21711       RAISE;
21712   WHEN OTHERS THEN
21713        xla_exceptions_pkg.raise_message
21714            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_63');
21715 END AcctLineType_63;
21716 --
21717 
21718 ---------------------------------------
21719 --
21720 -- PRIVATE FUNCTION
21721 --         AcctLineType_64
21722 --
21723 ---------------------------------------
21724 PROCEDURE AcctLineType_64 (
21725   p_application_id        IN NUMBER
21726  ,p_event_id              IN NUMBER
21727  ,p_calculate_acctd_flag  IN VARCHAR2
21728  ,p_calculate_g_l_flag    IN VARCHAR2
21729  ,p_actual_flag           IN OUT VARCHAR2
21730  ,p_balance_type_code     OUT VARCHAR2
21731  ,p_gain_or_loss_ref      OUT VARCHAR2
21732  
21733 --Payment Currency Code
21734  , p_source_13            IN VARCHAR2
21735 --Accounting Reversal Indicator
21736  , p_source_52            IN VARCHAR2
21737 --Distribution Link Type
21738  , p_source_54            IN VARCHAR2
21739 --Override Accounted Amount Indicator
21740  , p_source_79            IN VARCHAR2
21741  , p_source_79_meaning    IN VARCHAR2
21742 --Third Party Type
21743  , p_source_82            IN VARCHAR2
21744 --Invoice Distribution Tax Line Identifier
21745  , p_source_85            IN NUMBER
21746 --Invoice Distribution Summary Tax Line Identifier
21747  , p_source_87            IN NUMBER
21748 --Business Flow Accounts Payable Application Identifier
21749  , p_source_90            IN NUMBER
21750 --When to Account for Payment Option
21751  , p_source_96            IN VARCHAR2
21752 --Payment Distribution Type
21753  , p_source_97            IN VARCHAR2
21754  , p_source_97_meaning    IN VARCHAR2
21755 --Payment Distribution Amount
21756  , p_source_98            IN NUMBER
21757 --Business Flow Payment Distribution Type
21758  , p_source_99            IN VARCHAR2
21759 --Business Flow Payment Entity Code
21760  , p_source_100            IN VARCHAR2
21761 --Business Flow Payment Distribution Identifier
21762  , p_source_101            IN NUMBER
21763 --Business Flow Payment Identifier
21764  , p_source_102            IN NUMBER
21765 --Payment Distribution Identifier
21766  , p_source_103            IN NUMBER
21767 --Payment Distribution Reversed Identifier
21768  , p_source_111            IN NUMBER
21769 --Payment Maturity Date
21770  , p_source_114            IN DATE
21771 --Payment Distribution (Invoice Rate) Ledger Amount
21772  , p_source_116            IN NUMBER
21773 )
21774 IS
21775 
21776 l_component_type              VARCHAR2(80);
21777 l_component_code              VARCHAR2(30);
21778 l_component_type_code         VARCHAR2(1);
21779 l_component_appl_id           INTEGER;
21780 l_amb_context_code            VARCHAR2(30);
21781 l_entity_code                 VARCHAR2(30);
21782 l_event_class_code            VARCHAR2(30);
21783 l_ae_header_id                NUMBER;
21784 l_event_type_code             VARCHAR2(30);
21785 l_line_definition_code        VARCHAR2(30);
21786 l_line_definition_owner_code  VARCHAR2(1);
21787 --
21788 -- adr variables
21789 l_segment                     VARCHAR2(30);
21790 l_ccid                        NUMBER;
21791 l_adr_transaction_coa_id      NUMBER;
21792 l_adr_accounting_coa_id       NUMBER;
21793 l_adr_flexfield_segment_code  VARCHAR2(30);
21794 l_adr_flex_value_set_id       NUMBER;
21795 l_adr_value_type_code         VARCHAR2(30);
21796 l_adr_value_combination_id    NUMBER;
21797 l_adr_value_segment_code      VARCHAR2(30);
21798 
21799 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21800 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21801 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21802 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21803 
21807 l_acc_rev_flag                VARCHAR2(1);
21804 -- 4262811 Variables ------------------------------------------------------------------------------------------
21805 l_entered_amt_idx             NUMBER;
21806 l_accted_amt_idx              NUMBER;
21808 l_accrual_line_num            NUMBER;
21809 l_tmp_amt                     NUMBER;
21810 l_acc_rev_natural_side_code   VARCHAR2(1);
21811 
21812 l_num_entries                 NUMBER;
21813 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21814 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21815 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21816 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21817 l_recog_line_1                NUMBER;
21818 l_recog_line_2                NUMBER;
21819 
21820 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21821 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21822 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21823 
21824 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21825 
21826 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21827 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21828 
21829 ---------------------------------------------------------------------------------------------------------------
21830 
21831 
21832 --
21833 -- bulk performance
21834 --
21835 l_balance_type_code           VARCHAR2(1);
21836 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21837 l_log_module                  VARCHAR2(240);
21838 
21839 --
21840 -- Upgrade strategy
21841 --
21842 l_actual_upg_option           VARCHAR2(1);
21843 l_enc_upg_option           VARCHAR2(1);
21844 
21845 --
21846 BEGIN
21847 --
21848 IF g_log_enabled THEN
21849       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
21850 END IF;
21851 --
21852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21853 
21854       trace
21855          (p_msg      => 'BEGIN of AcctLineType_64'
21856          ,p_level    => C_LEVEL_PROCEDURE
21857          ,p_module   => l_log_module);
21858 
21859 END IF;
21860 --
21861 l_component_type             := 'AMB_JLT';
21862 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
21863 l_component_type_code        := 'S';
21864 l_component_appl_id          :=  200;
21865 l_amb_context_code           := 'DEFAULT';
21866 l_entity_code                := 'AP_PAYMENTS';
21867 l_event_class_code           := 'RECONCILED PAYMENTS';
21868 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21869 l_line_definition_owner_code := 'S';
21870 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
21871 --
21872 l_balance_type_code          := 'A';
21873 l_segment                     := NULL;
21874 l_ccid                        := NULL;
21875 l_adr_transaction_coa_id      := NULL;
21876 l_adr_accounting_coa_id       := NULL;
21877 l_adr_flexfield_segment_code  := NULL;
21878 l_adr_flex_value_set_id       := NULL;
21879 l_adr_value_type_code         := NULL;
21880 l_adr_value_combination_id    := NULL;
21881 l_adr_value_segment_code      := NULL;
21882 
21883 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
21884 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21885 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21886 l_budgetary_control_flag     := 'N';
21887 
21888 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21889 l_bflow_applied_to_amt       := NULL; -- 5132302
21890 l_entered_amt_idx            := NULL;          -- 4262811
21891 l_accted_amt_idx             := NULL;          -- 4262811
21892 l_acc_rev_flag               := NULL;          -- 4262811
21893 l_accrual_line_num           := NULL;          -- 4262811
21894 l_tmp_amt                    := NULL;          -- 4262811
21895 --
21896  
21897 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21898     l_balance_type_code <> 'B' THEN
21899 IF NVL(p_source_96,'
21900 ') =  'ALWAYS_CLEAR' AND 
21901 NVL(p_source_97,'
21902 ') =  'CASH' AND 
21903 p_source_114 IS NULL 
21904  THEN 
21905 
21906    --
21907    XLA_AE_LINES_PKG.SetNewLine;
21908 
21909    p_balance_type_code          := l_balance_type_code;
21910    -- set the flag so later we will know whether the gain loss line needs to be created
21911    
21912    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21913      p_actual_flag :='A';
21914    END IF;
21915 
21916    --
21917    -- bulk performance
21918    --
21919    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21920                                       p_header_num   => 0); -- 4262811
21921    --
21922    -- set accounting line options
21923    --
21924    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21925            p_natural_side_code          => 'D'
21926          , p_gain_or_loss_flag          => 'N'
21927          , p_gl_transfer_mode_code      => 'S'
21928          , p_acct_entry_type_code       => 'A'
21929          , p_switch_side_flag           => 'Y'
21930          , p_merge_duplicate_code       => 'A'
21931          );
21932    --
21933    l_acc_rev_natural_side_code := 'C';  -- 4262811
21934    -- 
21935    --
21939       (p_component_type             => l_component_type
21936    -- set accounting line type info
21937    --
21938    xla_ae_lines_pkg.SetAcctLineType
21940       ,p_event_type_code            => l_event_type_code
21941       ,p_line_definition_owner_code => l_line_definition_owner_code
21942       ,p_line_definition_code       => l_line_definition_code
21943       ,p_accounting_line_code       => l_component_code
21944       ,p_accounting_line_type_code  => l_component_type_code
21945       ,p_accounting_line_appl_id    => l_component_appl_id
21946       ,p_amb_context_code           => l_amb_context_code
21947       ,p_entity_code                => l_entity_code
21948       ,p_event_class_code           => l_event_class_code);
21949    --
21950    -- set accounting class
21951    --
21952    xla_ae_lines_pkg.SetAcctClass(
21953            p_accounting_class_code  => 'CASH_CLEARING'
21954          , p_ae_header_id           => l_ae_header_id
21955          );
21956 
21957    --
21958    -- set rounding class
21959    --
21960    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21961                       'CASH_CLEARING';
21962 
21963    --
21964    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21965    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21966    --
21967    -- bulk performance
21968    --
21969    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21970 
21971    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21972       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21973 
21974    -- 4955764
21975    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21976       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21977 
21978    -- 4458381 Public Sector Enh
21979    
21980    --
21981    -- set accounting attributes for the line type
21982    --
21983    l_entered_amt_idx := 10;
21984    l_accted_amt_idx  := 12;
21985    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21986    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21987    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
21988    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21989    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
21990    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21991    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
21992    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21993    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
21994    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21995    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
21996    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21997    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
21998    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21999    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
22000    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22001    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
22002    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22003    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
22004    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22005    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
22006    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22007    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
22008    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
22009    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
22010    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
22011    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
22012    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
22013    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
22014    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
22015    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
22016    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
22017    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
22018    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
22019    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
22020    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
22021    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
22022    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
22023    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
22024 
22025    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22026    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22027 
22028    ---------------------------------------------------------------------------------------------------------------
22029    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22030    ---------------------------------------------------------------------------------------------------------------
22031    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22032 
22036    IF xla_accounting_cache_pkg.GetValueChar
22033    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22034    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22035 
22037          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22038          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22039    AND l_bflow_method_code = 'PRIOR_ENTRY'
22040 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22041    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22042          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22043        )
22044    THEN
22045          xla_ae_lines_pkg.BflowUpgEntry
22046            (p_business_method_code    => l_bflow_method_code
22047            ,p_business_class_code     => l_bflow_class_code
22048            ,p_balance_type            => l_balance_type_code);
22049    ELSE
22050       NULL;
22051 XLA_AE_LINES_PKG.business_flow_validation(
22052                                 p_business_method_code     => l_bflow_method_code
22053                                ,p_business_class_code      => l_bflow_class_code
22054                                ,p_inherit_description_flag => l_inherit_desc_flag);
22055    END IF;
22056 
22057    --
22058    -- call analytical criteria
22059    --
22060    -- Inherited Analytical Criteria for business flow method of Prior Entry.
22061    --
22062    -- call description
22063    --
22064    -- No description or it is inherited.
22065    --
22066    -- call ADRs
22067    -- Bug 4922099
22068    --
22069    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22070         (NVL(l_actual_upg_option, 'N') = 'O') OR
22071         (NVL(l_enc_upg_option, 'N') = 'O')
22072       )
22073    THEN
22074    NULL;
22075    --
22076    --
22077    
22078    --
22079    --
22080    END IF;
22081    --
22082    -- Bug 4922099
22083    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22084           (NVL(l_enc_upg_option, 'N') = 'O')
22085         ) AND
22086         (l_bflow_method_code = 'PRIOR_ENTRY')
22087       )
22088    THEN
22089       IF
22090       --
22091       1 = 1
22092       --
22093       THEN
22094       xla_accounting_err_pkg.build_message
22095                                     (p_appli_s_name            => 'XLA'
22096                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22097                                     ,p_token_1                 => 'LINE_NUMBER'
22098                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22099                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22100                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22101                                                                              l_component_type
22102                                                                             ,l_component_code
22103                                                                             ,l_component_type_code
22104                                                                             ,l_component_appl_id
22105                                                                             ,l_amb_context_code
22106                                                                             ,l_entity_code
22107                                                                             ,l_event_class_code
22108                                                                            )
22109                                     ,p_token_3                 => 'OWNER'
22110                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22111                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22112                                                                           ,p_lookup_code    => l_component_type_code
22113                                                                          )
22114                                     ,p_token_4                 => 'PRODUCT_NAME'
22115                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22116                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22117                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22118                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22119                                     ,p_ae_header_id            =>  NULL
22120                                        );
22121 
22122         IF (C_LEVEL_ERROR>= g_log_level) THEN
22123                  trace
22124                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22125                       ,p_level    => C_LEVEL_ERROR
22126                       ,p_module   => l_log_module);
22127         END IF;
22128       END IF;
22129    END IF;
22130    --
22131    --
22132    ------------------------------------------------------------------------------------------------
22133    -- 4219869 Business Flow
22134    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22135    -- Prior Entry.  Currently, the following code is always generated.
22139    ------------------------------------------------------------------------------------
22136    ------------------------------------------------------------------------------------------------
22137    -- No ValidateCurrentLine for business flow method of Prior Entry
22138 
22140    -- 4219869 Business Flow
22141    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22142    ------------------------------------------------------------------------------------
22143    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22144 
22145    ----------------------------------------------------------------------------------
22146    -- 4219869 Business Flow
22147    -- Update journal entry status -- Need to generate this within IF <condition>
22148    ----------------------------------------------------------------------------------
22149    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22150          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22151          ,p_balance_type_code => l_balance_type_code
22152          );
22153 
22154    -------------------------------------------------------------------------------------------
22155    -- 4262811 - Generate the Accrual Reversal lines
22156    -------------------------------------------------------------------------------------------
22157    BEGIN
22158       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22159                               (g_array_event(p_event_id).array_value_num('header_index'));
22160       IF l_acc_rev_flag IS NULL THEN
22161          l_acc_rev_flag := 'N';
22162       END IF;
22163    EXCEPTION
22164       WHEN OTHERS THEN
22165          l_acc_rev_flag := 'N';
22166    END;
22167    --
22168    IF (l_acc_rev_flag = 'Y') THEN
22169 
22170        -- 4645092  ------------------------------------------------------------------------------
22171        -- To allow MPA report to determine if it should generate report process
22172        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22173        ------------------------------------------------------------------------------------------
22174 
22175        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22176        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22177    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22178    -- call ADRs
22179    -- Bug 4922099
22180    --
22181    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22182         (NVL(l_actual_upg_option, 'N') = 'O') OR
22183         (NVL(l_enc_upg_option, 'N') = 'O')
22184       )
22185    THEN
22186    NULL;
22187    --
22188    --
22189    
22190    --
22191    --
22192    END IF;
22193 
22194        --
22195        -- Update the line information that should be overwritten
22196        --
22197        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22198                                          p_header_num   => 1);
22199        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22200 
22201        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22202 
22203        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22204           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22205        END IF;
22206 
22207       --
22208       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22209       --
22210       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22211           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22212       ELSE
22213           ---------------------------------------------------------------------------------------------------
22214           -- 4262811a Switch Sign
22215           ---------------------------------------------------------------------------------------------------
22216           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22217           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22218                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22219           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22220                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22221           -- 5132302
22222           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22223                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22224 
22225       END IF;
22226 
22227       -- 4955764
22228       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22229       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22230 
22231 
22232       XLA_AE_LINES_PKG.ValidateCurrentLine;
22233       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22234 
22235       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22236                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22237                ,p_balance_type_code => l_balance_type_code);
22238 
22239    END IF;
22240 
22241    -----------------------------------------------------------------------------------------
22245 
22242    -- 4262811 Multiperiod Accounting
22243    -----------------------------------------------------------------------------------------
22244      -- No MPA option is assigned.
22246 
22247 END IF;
22248 END IF;
22249 --
22250 
22251 --
22252 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22253    trace
22254       (p_msg      => 'END of AcctLineType_64'
22255       ,p_level    => C_LEVEL_PROCEDURE
22256       ,p_module   => l_log_module);
22257 END IF;
22258 --
22259 EXCEPTION
22260   WHEN xla_exceptions_pkg.application_exception THEN
22261       RAISE;
22262   WHEN OTHERS THEN
22263        xla_exceptions_pkg.raise_message
22264            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_64');
22265 END AcctLineType_64;
22266 --
22267 
22268 ---------------------------------------
22269 --
22270 -- PRIVATE FUNCTION
22271 --         AcctLineType_65
22272 --
22273 ---------------------------------------
22274 PROCEDURE AcctLineType_65 (
22275   p_application_id        IN NUMBER
22276  ,p_event_id              IN NUMBER
22277  ,p_calculate_acctd_flag  IN VARCHAR2
22278  ,p_calculate_g_l_flag    IN VARCHAR2
22279  ,p_actual_flag           IN OUT VARCHAR2
22280  ,p_balance_type_code     OUT VARCHAR2
22281  ,p_gain_or_loss_ref      OUT VARCHAR2
22282  
22283 --Payment Currency Code
22284  , p_source_13            IN VARCHAR2
22285 --Automatic Offsets Value
22286  , p_source_15            IN VARCHAR2
22287  , p_source_15_meaning    IN VARCHAR2
22288 --Bank Cash Clearing Account
22289  , p_source_35            IN NUMBER
22290 --Accounting Reversal Indicator
22291  , p_source_52            IN VARCHAR2
22292 --Distribution Link Type
22293  , p_source_54            IN VARCHAR2
22294 --Override Accounted Amount Indicator
22295  , p_source_79            IN VARCHAR2
22296  , p_source_79_meaning    IN VARCHAR2
22297 --Third Party Type
22298  , p_source_82            IN VARCHAR2
22299 --Business Flow Accounts Payable Application Identifier
22300  , p_source_90            IN NUMBER
22301 --When to Account for Payment Option
22302  , p_source_96            IN VARCHAR2
22303 --Payment Distribution Type
22304  , p_source_97            IN VARCHAR2
22305  , p_source_97_meaning    IN VARCHAR2
22306 --Payment Distribution Amount
22307  , p_source_98            IN NUMBER
22308 --Business Flow Payment Distribution Type
22309  , p_source_99            IN VARCHAR2
22310 --Business Flow Payment Entity Code
22311  , p_source_100            IN VARCHAR2
22312 --Business Flow Payment Distribution Identifier
22313  , p_source_101            IN NUMBER
22314 --Business Flow Payment Identifier
22315  , p_source_102            IN NUMBER
22316 --Payment Distribution Identifier
22317  , p_source_103            IN NUMBER
22318 --Payment Supplier Identifier
22319  , p_source_109            IN NUMBER
22320 --Payment Supplier Site Identifier
22321  , p_source_110            IN NUMBER
22322 --Payment Distribution Reversed Identifier
22323  , p_source_111            IN NUMBER
22324 --Payment Identifier
22325  , p_source_112            IN NUMBER
22326 --Pooled Bank Account Option
22327  , p_source_113            IN VARCHAR2
22328  , p_source_113_meaning    IN VARCHAR2
22329 --Payment Maturity Date
22330  , p_source_114            IN DATE
22331 --Payment Distribution (Invoice Rate) Ledger Amount
22332  , p_source_116            IN NUMBER
22333 --Payment Exchange Date
22334  , p_source_117            IN DATE
22335 --Payment Exchange Rate
22336  , p_source_118            IN NUMBER
22337 --Payment Exchange Rate Type
22338  , p_source_119            IN VARCHAR2
22339 )
22340 IS
22341 
22342 l_component_type              VARCHAR2(80);
22343 l_component_code              VARCHAR2(30);
22344 l_component_type_code         VARCHAR2(1);
22345 l_component_appl_id           INTEGER;
22346 l_amb_context_code            VARCHAR2(30);
22347 l_entity_code                 VARCHAR2(30);
22348 l_event_class_code            VARCHAR2(30);
22349 l_ae_header_id                NUMBER;
22350 l_event_type_code             VARCHAR2(30);
22351 l_line_definition_code        VARCHAR2(30);
22352 l_line_definition_owner_code  VARCHAR2(1);
22353 --
22354 -- adr variables
22355 l_segment                     VARCHAR2(30);
22356 l_ccid                        NUMBER;
22357 l_adr_transaction_coa_id      NUMBER;
22358 l_adr_accounting_coa_id       NUMBER;
22359 l_adr_flexfield_segment_code  VARCHAR2(30);
22360 l_adr_flex_value_set_id       NUMBER;
22361 l_adr_value_type_code         VARCHAR2(30);
22362 l_adr_value_combination_id    NUMBER;
22363 l_adr_value_segment_code      VARCHAR2(30);
22364 
22365 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22366 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22367 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22368 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22369 
22370 -- 4262811 Variables ------------------------------------------------------------------------------------------
22371 l_entered_amt_idx             NUMBER;
22372 l_accted_amt_idx              NUMBER;
22373 l_acc_rev_flag                VARCHAR2(1);
22374 l_accrual_line_num            NUMBER;
22375 l_tmp_amt                     NUMBER;
22376 l_acc_rev_natural_side_code   VARCHAR2(1);
22377 
22378 l_num_entries                 NUMBER;
22382 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22379 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22380 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22381 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22383 l_recog_line_1                NUMBER;
22384 l_recog_line_2                NUMBER;
22385 
22386 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22387 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22388 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22389 
22390 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22391 
22392 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22393 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22394 
22395 ---------------------------------------------------------------------------------------------------------------
22396 
22397 
22398 --
22399 -- bulk performance
22400 --
22401 l_balance_type_code           VARCHAR2(1);
22402 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22403 l_log_module                  VARCHAR2(240);
22404 
22405 --
22406 -- Upgrade strategy
22407 --
22408 l_actual_upg_option           VARCHAR2(1);
22409 l_enc_upg_option           VARCHAR2(1);
22410 
22411 --
22412 BEGIN
22413 --
22414 IF g_log_enabled THEN
22415       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
22416 END IF;
22417 --
22418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22419 
22420       trace
22421          (p_msg      => 'BEGIN of AcctLineType_65'
22422          ,p_level    => C_LEVEL_PROCEDURE
22423          ,p_module   => l_log_module);
22424 
22425 END IF;
22426 --
22427 l_component_type             := 'AMB_JLT';
22428 l_component_code             := 'AP_CASH_CLEAR_MAT_AS_INVXRATE';
22429 l_component_type_code        := 'S';
22430 l_component_appl_id          :=  200;
22431 l_amb_context_code           := 'DEFAULT';
22432 l_entity_code                := 'AP_PAYMENTS';
22433 l_event_class_code           := 'FUTURE DATED PAYMENTS';
22434 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
22435 l_line_definition_owner_code := 'S';
22436 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
22437 --
22438 l_balance_type_code          := 'A';
22439 l_segment                     := NULL;
22440 l_ccid                        := NULL;
22441 l_adr_transaction_coa_id      := NULL;
22442 l_adr_accounting_coa_id       := NULL;
22443 l_adr_flexfield_segment_code  := NULL;
22444 l_adr_flex_value_set_id       := NULL;
22445 l_adr_value_type_code         := NULL;
22446 l_adr_value_combination_id    := NULL;
22447 l_adr_value_segment_code      := NULL;
22448 
22449 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
22450 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
22451 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22452 l_budgetary_control_flag     := 'N';
22453 
22454 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22455 l_bflow_applied_to_amt       := NULL; -- 5132302
22456 l_entered_amt_idx            := NULL;          -- 4262811
22457 l_accted_amt_idx             := NULL;          -- 4262811
22458 l_acc_rev_flag               := NULL;          -- 4262811
22459 l_accrual_line_num           := NULL;          -- 4262811
22460 l_tmp_amt                    := NULL;          -- 4262811
22461 --
22462  
22463 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22464     l_balance_type_code <> 'B' THEN
22465 IF NVL(p_source_96,'
22466 ') =  'ALWAYS_CLEAR' AND 
22467 (NVL(p_source_113,'
22468 ') =  'Y' AND 
22469 NVL(p_source_15,'
22470 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
22471 p_source_114 IS NOT NULL AND 
22472 NVL(p_source_97,'
22473 ') =  'CASH'
22474  THEN 
22475 
22476    --
22477    XLA_AE_LINES_PKG.SetNewLine;
22478 
22479    p_balance_type_code          := l_balance_type_code;
22480    -- set the flag so later we will know whether the gain loss line needs to be created
22481    
22482    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22483      p_actual_flag :='A';
22484    END IF;
22485 
22486    --
22487    -- bulk performance
22488    --
22489    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22490                                       p_header_num   => 0); -- 4262811
22491    --
22492    -- set accounting line options
22493    --
22494    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22495            p_natural_side_code          => 'C'
22496          , p_gain_or_loss_flag          => 'N'
22497          , p_gl_transfer_mode_code      => 'S'
22498          , p_acct_entry_type_code       => 'A'
22499          , p_switch_side_flag           => 'Y'
22500          , p_merge_duplicate_code       => 'A'
22501          );
22502    --
22503    l_acc_rev_natural_side_code := 'D';  -- 4262811
22504    -- 
22505    --
22506    -- set accounting line type info
22507    --
22508    xla_ae_lines_pkg.SetAcctLineType
22509       (p_component_type             => l_component_type
22510       ,p_event_type_code            => l_event_type_code
22511       ,p_line_definition_owner_code => l_line_definition_owner_code
22515       ,p_accounting_line_appl_id    => l_component_appl_id
22512       ,p_line_definition_code       => l_line_definition_code
22513       ,p_accounting_line_code       => l_component_code
22514       ,p_accounting_line_type_code  => l_component_type_code
22516       ,p_amb_context_code           => l_amb_context_code
22517       ,p_entity_code                => l_entity_code
22518       ,p_event_class_code           => l_event_class_code);
22519    --
22520    -- set accounting class
22521    --
22522    xla_ae_lines_pkg.SetAcctClass(
22523            p_accounting_class_code  => 'CASH_CLEARING'
22524          , p_ae_header_id           => l_ae_header_id
22525          );
22526 
22527    --
22528    -- set rounding class
22529    --
22530    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22531                       'CASH_CLEARING';
22532 
22533    --
22534    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22535    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22536    --
22537    -- bulk performance
22538    --
22539    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22540 
22541    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22542       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22543 
22544    -- 4955764
22545    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22546       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22547 
22548    -- 4458381 Public Sector Enh
22549    
22550    --
22551    -- set accounting attributes for the line type
22552    --
22553    l_entered_amt_idx := 9;
22554    l_accted_amt_idx  := 14;
22555    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
22556    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22557    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
22558    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
22559    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
22560    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22561    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
22562    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
22563    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
22564    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
22565    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
22566    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22567    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
22568    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
22569    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
22570    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
22571    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
22572    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
22573    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
22574    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
22575    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
22576    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
22577    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
22578    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
22579    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
22580    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
22581    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
22582    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
22583    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
22584    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
22585    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
22586    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
22587    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
22588    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
22589    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
22590    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
22591    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
22592    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
22593    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
22594    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
22595    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
22596 
22597    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22598    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22599 
22600    ---------------------------------------------------------------------------------------------------------------
22601    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22602    ---------------------------------------------------------------------------------------------------------------
22603    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22604 
22605    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22606    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22607 
22608    IF xla_accounting_cache_pkg.GetValueChar
22612 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22609          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22610          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22611    AND l_bflow_method_code = 'PRIOR_ENTRY'
22613    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22614          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22615        )
22616    THEN
22617          xla_ae_lines_pkg.BflowUpgEntry
22618            (p_business_method_code    => l_bflow_method_code
22619            ,p_business_class_code     => l_bflow_class_code
22620            ,p_balance_type            => l_balance_type_code);
22621    ELSE
22622       NULL;
22623 XLA_AE_LINES_PKG.business_flow_validation(
22624                                 p_business_method_code     => l_bflow_method_code
22625                                ,p_business_class_code      => l_bflow_class_code
22626                                ,p_inherit_description_flag => l_inherit_desc_flag);
22627    END IF;
22628 
22629    --
22630    -- call analytical criteria
22631    --
22632    
22633 
22634 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
22635 xla_ae_lines_pkg.SetAnalyticalCriteria(
22636    p_analytical_criterion_name    => 'Check Id'
22637  , p_analytical_criterion_owner   => 'S'
22638  , p_analytical_criterion_code    => 'CHECK_ID'
22639  , p_amb_context_code             => 'DEFAULT'
22640  , p_balancing_flag               => 'N'
22641  
22642  , p_analytical_detail_char_1    =>  NULL
22643  , p_analytical_detail_num_1     =>  p_source_112
22644  , p_analytical_detail_date_1    =>  NULL
22645 
22646  , p_ae_header_id                 => l_ae_header_id
22647 )
22648 ;
22649 --
22650 
22651    --
22652    -- call description
22653    --
22654    -- No description or it is inherited.
22655    --
22656    -- call ADRs
22657    -- Bug 4922099
22658    --
22659    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22660         (NVL(l_actual_upg_option, 'N') = 'O') OR
22661         (NVL(l_enc_upg_option, 'N') = 'O')
22662       )
22663    THEN
22664    NULL;
22665    --
22666    --
22667    
22668    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22669      p_code_combination_id      => TO_NUMBER(C_NUM)
22670    , p_value_type_code          => NULL
22671    , p_transaction_coa_id       => null
22672    , p_accounting_coa_id        => null
22673    , p_adr_code                 => NULL
22674    , p_adr_type_code            => NULL
22675    , p_component_type           => l_component_type
22676    , p_component_code           => l_component_code
22677    , p_component_type_code      => l_component_type_code
22678    , p_component_appl_id        => l_component_appl_id
22679    , p_amb_context_code         => l_amb_context_code
22680    , p_side                     => NULL
22681    );
22682 
22683    
22684   -- initialise segments
22685   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22686   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22687   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22688   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22689   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22690   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22691   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22692   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22693   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22694   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22695   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22696   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22697   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22698   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22699   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22700   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22701   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22702   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22703   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22704   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22705   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22706   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22707   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22708   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22709   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22710   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22711   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22712   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22716 
22713   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22714   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22715   --
22717    --
22718 
22719 
22720    l_segment := AcctDerRule_16(
22721            p_application_id           => p_application_id
22722          , p_ae_header_id             => l_ae_header_id 
22723 , p_source_35 => p_source_35
22724          , x_transaction_coa_id       => l_adr_transaction_coa_id
22725          , x_accounting_coa_id        => l_adr_accounting_coa_id
22726          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22727          , x_flex_value_set_id        => l_adr_flex_value_set_id
22728          , x_value_type_code          => l_adr_value_type_code
22729          , x_value_combination_id     => l_adr_value_combination_id
22730          , x_value_segment_code       => l_adr_value_segment_code
22731          , p_side                     => 'NA'
22732          , p_override_seg_flag        => 'Y'
22733    );
22734 
22735    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22736 
22737       xla_ae_lines_pkg.set_segment(
22738           p_to_segment_code         => 'GL_ACCOUNT'
22739         , p_segment_value           => l_segment
22740         , p_from_segment_code       => l_adr_value_segment_code
22741         , p_from_combination_id     => l_adr_value_combination_id
22742         , p_value_type_code         => l_adr_value_type_code
22743         , p_transaction_coa_id      => l_adr_transaction_coa_id
22744         , p_accounting_coa_id       => l_adr_accounting_coa_id
22745         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22746         , p_flex_value_set_id       => l_adr_flex_value_set_id
22747         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22748         , p_adr_type_code           => 'S'
22749         , p_component_type          => l_component_type
22750         , p_component_code          => l_component_code
22751         , p_component_type_code     => l_component_type_code
22752         , p_component_appl_id       => l_component_appl_id
22753         , p_amb_context_code        => l_amb_context_code
22754         , p_entity_code             => 'AP_PAYMENTS'
22755         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
22756         , p_side                    => 'NA'
22757         );
22758 
22759   END IF;
22760 
22761    --
22762    --
22763    END IF;
22764    --
22765    -- Bug 4922099
22766    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22767           (NVL(l_enc_upg_option, 'N') = 'O')
22768         ) AND
22769         (l_bflow_method_code = 'PRIOR_ENTRY')
22770       )
22771    THEN
22772       IF
22773       --
22774       1 = 2
22775       --
22776       THEN
22777       xla_accounting_err_pkg.build_message
22778                                     (p_appli_s_name            => 'XLA'
22779                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22780                                     ,p_token_1                 => 'LINE_NUMBER'
22781                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22782                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22783                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22784                                                                              l_component_type
22785                                                                             ,l_component_code
22786                                                                             ,l_component_type_code
22787                                                                             ,l_component_appl_id
22788                                                                             ,l_amb_context_code
22789                                                                             ,l_entity_code
22790                                                                             ,l_event_class_code
22791                                                                            )
22792                                     ,p_token_3                 => 'OWNER'
22793                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22794                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22795                                                                           ,p_lookup_code    => l_component_type_code
22796                                                                          )
22797                                     ,p_token_4                 => 'PRODUCT_NAME'
22798                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22799                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22800                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22801                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22802                                     ,p_ae_header_id            =>  NULL
22803                                        );
22804 
22805         IF (C_LEVEL_ERROR>= g_log_level) THEN
22806                  trace
22807                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22808                       ,p_level    => C_LEVEL_ERROR
22809                       ,p_module   => l_log_module);
22810         END IF;
22811       END IF;
22815    ------------------------------------------------------------------------------------------------
22812    END IF;
22813    --
22814    --
22816    -- 4219869 Business Flow
22817    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22818    -- Prior Entry.  Currently, the following code is always generated.
22819    ------------------------------------------------------------------------------------------------
22820    XLA_AE_LINES_PKG.ValidateCurrentLine;
22821 
22822    ------------------------------------------------------------------------------------
22823    -- 4219869 Business Flow
22824    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22825    ------------------------------------------------------------------------------------
22826    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22827 
22828    ----------------------------------------------------------------------------------
22829    -- 4219869 Business Flow
22830    -- Update journal entry status -- Need to generate this within IF <condition>
22831    ----------------------------------------------------------------------------------
22832    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22833          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22834          ,p_balance_type_code => l_balance_type_code
22835          );
22836 
22837    -------------------------------------------------------------------------------------------
22838    -- 4262811 - Generate the Accrual Reversal lines
22839    -------------------------------------------------------------------------------------------
22840    BEGIN
22841       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22842                               (g_array_event(p_event_id).array_value_num('header_index'));
22843       IF l_acc_rev_flag IS NULL THEN
22844          l_acc_rev_flag := 'N';
22845       END IF;
22846    EXCEPTION
22847       WHEN OTHERS THEN
22848          l_acc_rev_flag := 'N';
22849    END;
22850    --
22851    IF (l_acc_rev_flag = 'Y') THEN
22852 
22853        -- 4645092  ------------------------------------------------------------------------------
22854        -- To allow MPA report to determine if it should generate report process
22855        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22856        ------------------------------------------------------------------------------------------
22857 
22858        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22859        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22860    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22861    -- call ADRs
22862    -- Bug 4922099
22863    --
22864    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22865         (NVL(l_actual_upg_option, 'N') = 'O') OR
22866         (NVL(l_enc_upg_option, 'N') = 'O')
22867       )
22868    THEN
22869    NULL;
22870    --
22871    --
22872    
22873    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22874      p_code_combination_id      => TO_NUMBER(C_NUM)
22875    , p_value_type_code          => NULL
22876    , p_transaction_coa_id       => null
22877    , p_accounting_coa_id        => null
22878    , p_adr_code                 => NULL
22879    , p_adr_type_code            => NULL
22880    , p_component_type           => l_component_type
22881    , p_component_code           => l_component_code
22882    , p_component_type_code      => l_component_type_code
22883    , p_component_appl_id        => l_component_appl_id
22884    , p_amb_context_code         => l_amb_context_code
22885    , p_side                     => NULL
22886    );
22887 
22888    
22889   -- initialise segments
22890   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22891   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22892   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22893   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22894   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22895   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22896   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22897   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22898   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22899   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22900   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22901   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22902   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22903   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22904   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22905   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22906   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22907   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22908   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22909   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22913   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22910   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22911   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22912   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22914   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22915   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22916   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22917   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22918   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22919   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22920   --
22921 
22922    --
22923 
22924 
22925    l_segment := AcctDerRule_16(
22926            p_application_id           => p_application_id
22927          , p_ae_header_id             => l_ae_header_id 
22928 , p_source_35 => p_source_35
22929          , x_transaction_coa_id       => l_adr_transaction_coa_id
22930          , x_accounting_coa_id        => l_adr_accounting_coa_id
22931          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22932          , x_flex_value_set_id        => l_adr_flex_value_set_id
22933          , x_value_type_code          => l_adr_value_type_code
22934          , x_value_combination_id     => l_adr_value_combination_id
22935          , x_value_segment_code       => l_adr_value_segment_code
22936          , p_side                     => 'NA'
22937          , p_override_seg_flag        => 'Y'
22938    );
22939 
22940    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22941 
22942       xla_ae_lines_pkg.set_segment(
22943           p_to_segment_code         => 'GL_ACCOUNT'
22944         , p_segment_value           => l_segment
22945         , p_from_segment_code       => l_adr_value_segment_code
22946         , p_from_combination_id     => l_adr_value_combination_id
22947         , p_value_type_code         => l_adr_value_type_code
22948         , p_transaction_coa_id      => l_adr_transaction_coa_id
22949         , p_accounting_coa_id       => l_adr_accounting_coa_id
22950         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22951         , p_flex_value_set_id       => l_adr_flex_value_set_id
22952         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22953         , p_adr_type_code           => 'S'
22954         , p_component_type          => l_component_type
22955         , p_component_code          => l_component_code
22956         , p_component_type_code     => l_component_type_code
22957         , p_component_appl_id       => l_component_appl_id
22958         , p_amb_context_code        => l_amb_context_code
22959         , p_entity_code             => 'AP_PAYMENTS'
22960         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
22961         , p_side                    => 'NA'
22962         );
22963 
22964   END IF;
22965 
22966    --
22967    --
22968    END IF;
22969 
22970        --
22971        -- Update the line information that should be overwritten
22972        --
22973        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22974                                          p_header_num   => 1);
22975        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22976 
22977        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22978 
22979        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22980           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22981        END IF;
22982 
22983       --
22984       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22985       --
22986       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22987           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22988       ELSE
22989           ---------------------------------------------------------------------------------------------------
22990           -- 4262811a Switch Sign
22991           ---------------------------------------------------------------------------------------------------
22992           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22993           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22994                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22995           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22996                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22997           -- 5132302
22998           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22999                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23000 
23001       END IF;
23002 
23003       -- 4955764
23004       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23005       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23006 
23007 
23008       XLA_AE_LINES_PKG.ValidateCurrentLine;
23012                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23009       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23010 
23011       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23013                ,p_balance_type_code => l_balance_type_code);
23014 
23015    END IF;
23016 
23017    -----------------------------------------------------------------------------------------
23018    -- 4262811 Multiperiod Accounting
23019    -----------------------------------------------------------------------------------------
23020      -- No MPA option is assigned.
23021 
23022 
23023 END IF;
23024 END IF;
23025 --
23026 
23027 --
23028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23029    trace
23030       (p_msg      => 'END of AcctLineType_65'
23031       ,p_level    => C_LEVEL_PROCEDURE
23032       ,p_module   => l_log_module);
23033 END IF;
23034 --
23035 EXCEPTION
23036   WHEN xla_exceptions_pkg.application_exception THEN
23037       RAISE;
23038   WHEN OTHERS THEN
23039        xla_exceptions_pkg.raise_message
23040            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_65');
23041 END AcctLineType_65;
23042 --
23043 
23044 ---------------------------------------
23045 --
23046 -- PRIVATE FUNCTION
23047 --         AcctLineType_66
23048 --
23049 ---------------------------------------
23050 PROCEDURE AcctLineType_66 (
23051   p_application_id        IN NUMBER
23052  ,p_event_id              IN NUMBER
23053  ,p_calculate_acctd_flag  IN VARCHAR2
23054  ,p_calculate_g_l_flag    IN VARCHAR2
23055  ,p_actual_flag           IN OUT VARCHAR2
23056  ,p_balance_type_code     OUT VARCHAR2
23057  ,p_gain_or_loss_ref      OUT VARCHAR2
23058  
23059 --Payment Currency Code
23060  , p_source_13            IN VARCHAR2
23061 --Automatic Offsets Value
23062  , p_source_15            IN VARCHAR2
23063  , p_source_15_meaning    IN VARCHAR2
23064 --Bank Cash Clearing Account
23065  , p_source_35            IN NUMBER
23066 --Accounting Reversal Indicator
23067  , p_source_52            IN VARCHAR2
23068 --Distribution Link Type
23069  , p_source_54            IN VARCHAR2
23070 --Override Accounted Amount Indicator
23071  , p_source_79            IN VARCHAR2
23072  , p_source_79_meaning    IN VARCHAR2
23073 --Third Party Type
23074  , p_source_82            IN VARCHAR2
23075 --Business Flow Accounts Payable Application Identifier
23076  , p_source_90            IN NUMBER
23077 --When to Account for Payment Option
23078  , p_source_96            IN VARCHAR2
23079 --Payment Distribution Type
23080  , p_source_97            IN VARCHAR2
23081  , p_source_97_meaning    IN VARCHAR2
23082 --Payment Distribution Amount
23083  , p_source_98            IN NUMBER
23084 --Business Flow Payment Distribution Type
23085  , p_source_99            IN VARCHAR2
23086 --Business Flow Payment Entity Code
23087  , p_source_100            IN VARCHAR2
23088 --Business Flow Payment Distribution Identifier
23089  , p_source_101            IN NUMBER
23090 --Business Flow Payment Identifier
23091  , p_source_102            IN NUMBER
23092 --Payment Distribution Identifier
23093  , p_source_103            IN NUMBER
23094 --Payment Supplier Identifier
23095  , p_source_109            IN NUMBER
23096 --Payment Supplier Site Identifier
23097  , p_source_110            IN NUMBER
23098 --Payment Distribution Reversed Identifier
23099  , p_source_111            IN NUMBER
23100 --Payment Identifier
23101  , p_source_112            IN NUMBER
23102 --Pooled Bank Account Option
23103  , p_source_113            IN VARCHAR2
23104  , p_source_113_meaning    IN VARCHAR2
23105 --Payment Maturity Date
23106  , p_source_114            IN DATE
23107 --Payment Distribution (Invoice Rate) Ledger Amount
23108  , p_source_116            IN NUMBER
23109 --Payment Exchange Date
23110  , p_source_117            IN DATE
23111 --Payment Exchange Rate
23112  , p_source_118            IN NUMBER
23113 --Payment Exchange Rate Type
23114  , p_source_119            IN VARCHAR2
23115 )
23116 IS
23117 
23118 l_component_type              VARCHAR2(80);
23119 l_component_code              VARCHAR2(30);
23120 l_component_type_code         VARCHAR2(1);
23121 l_component_appl_id           INTEGER;
23122 l_amb_context_code            VARCHAR2(30);
23123 l_entity_code                 VARCHAR2(30);
23124 l_event_class_code            VARCHAR2(30);
23125 l_ae_header_id                NUMBER;
23126 l_event_type_code             VARCHAR2(30);
23127 l_line_definition_code        VARCHAR2(30);
23128 l_line_definition_owner_code  VARCHAR2(1);
23129 --
23130 -- adr variables
23131 l_segment                     VARCHAR2(30);
23132 l_ccid                        NUMBER;
23133 l_adr_transaction_coa_id      NUMBER;
23134 l_adr_accounting_coa_id       NUMBER;
23135 l_adr_flexfield_segment_code  VARCHAR2(30);
23136 l_adr_flex_value_set_id       NUMBER;
23137 l_adr_value_type_code         VARCHAR2(30);
23138 l_adr_value_combination_id    NUMBER;
23139 l_adr_value_segment_code      VARCHAR2(30);
23140 
23141 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23142 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23143 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23144 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23145 
23149 l_acc_rev_flag                VARCHAR2(1);
23146 -- 4262811 Variables ------------------------------------------------------------------------------------------
23147 l_entered_amt_idx             NUMBER;
23148 l_accted_amt_idx              NUMBER;
23150 l_accrual_line_num            NUMBER;
23151 l_tmp_amt                     NUMBER;
23152 l_acc_rev_natural_side_code   VARCHAR2(1);
23153 
23154 l_num_entries                 NUMBER;
23155 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23156 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23157 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23158 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23159 l_recog_line_1                NUMBER;
23160 l_recog_line_2                NUMBER;
23161 
23162 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23163 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23164 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23165 
23166 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23167 
23168 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23169 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23170 
23171 ---------------------------------------------------------------------------------------------------------------
23172 
23173 
23174 --
23175 -- bulk performance
23176 --
23177 l_balance_type_code           VARCHAR2(1);
23178 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23179 l_log_module                  VARCHAR2(240);
23180 
23181 --
23182 -- Upgrade strategy
23183 --
23184 l_actual_upg_option           VARCHAR2(1);
23185 l_enc_upg_option           VARCHAR2(1);
23186 
23187 --
23188 BEGIN
23189 --
23190 IF g_log_enabled THEN
23191       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
23192 END IF;
23193 --
23194 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23195 
23196       trace
23197          (p_msg      => 'BEGIN of AcctLineType_66'
23198          ,p_level    => C_LEVEL_PROCEDURE
23199          ,p_module   => l_log_module);
23200 
23201 END IF;
23202 --
23203 l_component_type             := 'AMB_JLT';
23204 l_component_code             := 'AP_CASH_CLEAR_MAT_BS_INVXRATE';
23205 l_component_type_code        := 'S';
23206 l_component_appl_id          :=  200;
23207 l_amb_context_code           := 'DEFAULT';
23208 l_entity_code                := 'AP_PAYMENTS';
23209 l_event_class_code           := 'FUTURE DATED PAYMENTS';
23210 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
23211 l_line_definition_owner_code := 'S';
23212 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
23213 --
23214 l_balance_type_code          := 'A';
23215 l_segment                     := NULL;
23216 l_ccid                        := NULL;
23217 l_adr_transaction_coa_id      := NULL;
23218 l_adr_accounting_coa_id       := NULL;
23219 l_adr_flexfield_segment_code  := NULL;
23220 l_adr_flex_value_set_id       := NULL;
23221 l_adr_value_type_code         := NULL;
23222 l_adr_value_combination_id    := NULL;
23223 l_adr_value_segment_code      := NULL;
23224 
23225 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
23226 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23227 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23228 l_budgetary_control_flag     := 'N';
23229 
23230 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23231 l_bflow_applied_to_amt       := NULL; -- 5132302
23232 l_entered_amt_idx            := NULL;          -- 4262811
23233 l_accted_amt_idx             := NULL;          -- 4262811
23234 l_acc_rev_flag               := NULL;          -- 4262811
23235 l_accrual_line_num           := NULL;          -- 4262811
23236 l_tmp_amt                    := NULL;          -- 4262811
23237 --
23238  
23239 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23240     l_balance_type_code <> 'B' THEN
23241 IF NVL(p_source_96,'
23242 ') =  'ALWAYS_CLEAR' AND 
23243 (NVL(p_source_113,'
23244 ') =  'Y' AND 
23245 NVL(p_source_15,'
23246 ') =  'BALANCING_SEGMENT') AND 
23247 p_source_114 IS NOT NULL AND 
23248 NVL(p_source_97,'
23249 ') =  'CASH'
23250  THEN 
23251 
23252    --
23253    XLA_AE_LINES_PKG.SetNewLine;
23254 
23255    p_balance_type_code          := l_balance_type_code;
23256    -- set the flag so later we will know whether the gain loss line needs to be created
23257    
23258    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23259      p_actual_flag :='A';
23260    END IF;
23261 
23262    --
23263    -- bulk performance
23264    --
23265    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23266                                       p_header_num   => 0); -- 4262811
23267    --
23268    -- set accounting line options
23269    --
23270    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23271            p_natural_side_code          => 'C'
23272          , p_gain_or_loss_flag          => 'N'
23273          , p_gl_transfer_mode_code      => 'S'
23274          , p_acct_entry_type_code       => 'A'
23275          , p_switch_side_flag           => 'Y'
23276          , p_merge_duplicate_code       => 'A'
23280    -- 
23277          );
23278    --
23279    l_acc_rev_natural_side_code := 'D';  -- 4262811
23281    --
23282    -- set accounting line type info
23283    --
23284    xla_ae_lines_pkg.SetAcctLineType
23285       (p_component_type             => l_component_type
23286       ,p_event_type_code            => l_event_type_code
23287       ,p_line_definition_owner_code => l_line_definition_owner_code
23288       ,p_line_definition_code       => l_line_definition_code
23289       ,p_accounting_line_code       => l_component_code
23290       ,p_accounting_line_type_code  => l_component_type_code
23291       ,p_accounting_line_appl_id    => l_component_appl_id
23292       ,p_amb_context_code           => l_amb_context_code
23293       ,p_entity_code                => l_entity_code
23294       ,p_event_class_code           => l_event_class_code);
23295    --
23296    -- set accounting class
23297    --
23298    xla_ae_lines_pkg.SetAcctClass(
23299            p_accounting_class_code  => 'CASH_CLEARING'
23300          , p_ae_header_id           => l_ae_header_id
23301          );
23302 
23303    --
23304    -- set rounding class
23305    --
23306    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23307                       'CASH_CLEARING';
23308 
23309    --
23310    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23311    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23312    --
23313    -- bulk performance
23314    --
23315    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23316 
23317    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23318       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23319 
23320    -- 4955764
23321    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23322       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23323 
23324    -- 4458381 Public Sector Enh
23325    
23326    --
23327    -- set accounting attributes for the line type
23328    --
23329    l_entered_amt_idx := 9;
23330    l_accted_amt_idx  := 14;
23331    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
23332    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23333    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
23334    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23335    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
23336    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23337    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
23338    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23339    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
23340    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23341    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
23342    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23343    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
23344    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
23345    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
23346    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
23347    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
23348    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
23349    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
23350    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
23351    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
23352    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
23353    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
23354    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
23355    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
23356    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
23357    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
23358    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
23359    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
23360    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
23361    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
23362    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23363    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
23364    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23365    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
23366    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23367    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
23368    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
23369    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
23370    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
23371    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
23372 
23373    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23374    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23375 
23376    ---------------------------------------------------------------------------------------------------------------
23377    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23378    ---------------------------------------------------------------------------------------------------------------
23382    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23379    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23380 
23381    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23383 
23384    IF xla_accounting_cache_pkg.GetValueChar
23385          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23386          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23387    AND l_bflow_method_code = 'PRIOR_ENTRY'
23388 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23389    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23390          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23391        )
23392    THEN
23393          xla_ae_lines_pkg.BflowUpgEntry
23394            (p_business_method_code    => l_bflow_method_code
23395            ,p_business_class_code     => l_bflow_class_code
23396            ,p_balance_type            => l_balance_type_code);
23397    ELSE
23398       NULL;
23399 XLA_AE_LINES_PKG.business_flow_validation(
23400                                 p_business_method_code     => l_bflow_method_code
23401                                ,p_business_class_code      => l_bflow_class_code
23402                                ,p_inherit_description_flag => l_inherit_desc_flag);
23403    END IF;
23404 
23405    --
23406    -- call analytical criteria
23407    --
23408    
23409 
23410 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
23411 xla_ae_lines_pkg.SetAnalyticalCriteria(
23412    p_analytical_criterion_name    => 'Check Id'
23413  , p_analytical_criterion_owner   => 'S'
23414  , p_analytical_criterion_code    => 'CHECK_ID'
23415  , p_amb_context_code             => 'DEFAULT'
23416  , p_balancing_flag               => 'N'
23417  
23418  , p_analytical_detail_char_1    =>  NULL
23419  , p_analytical_detail_num_1     =>  p_source_112
23420  , p_analytical_detail_date_1    =>  NULL
23421 
23422  , p_ae_header_id                 => l_ae_header_id
23423 )
23424 ;
23425 --
23426 
23427    --
23428    -- call description
23429    --
23430    -- No description or it is inherited.
23431    --
23432    -- call ADRs
23433    -- Bug 4922099
23434    --
23435    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23436         (NVL(l_actual_upg_option, 'N') = 'O') OR
23437         (NVL(l_enc_upg_option, 'N') = 'O')
23438       )
23439    THEN
23440    NULL;
23441    --
23442    --
23443    
23444   l_ccid := AcctDerRule_35(
23445            p_application_id           => p_application_id
23446          , p_ae_header_id             => l_ae_header_id 
23447 , p_source_35 => p_source_35
23448          , x_transaction_coa_id       => l_adr_transaction_coa_id
23449          , x_accounting_coa_id        => l_adr_accounting_coa_id
23450          , x_value_type_code          => l_adr_value_type_code
23451          , p_side                     => 'NA'
23452    );
23453 
23454    xla_ae_lines_pkg.set_ccid(
23455     p_code_combination_id          => l_ccid
23456   , p_value_type_code              => l_adr_value_type_code
23457   , p_transaction_coa_id           => l_adr_transaction_coa_id
23458   , p_accounting_coa_id            => l_adr_accounting_coa_id
23459   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23460   , p_adr_type_code                => 'S'
23461   , p_component_type               => l_component_type
23462   , p_component_code               => l_component_code
23463   , p_component_type_code          => l_component_type_code
23464   , p_component_appl_id            => l_component_appl_id
23465   , p_amb_context_code             => l_amb_context_code
23466   , p_side                         => 'NA'
23467   );
23468 
23469 
23470    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23471      p_to_segment_code         => 'GL_BALANCING'
23472    , p_segment_value           => C_CHAR
23473    , p_from_segment_code       => NULL
23474    , p_from_combination_id     => NULL
23475    , p_value_type_code         => NULL
23476    , p_transaction_coa_id      => null
23477    , p_accounting_coa_id       => null
23478    , p_flexfield_segment_code  => NULL
23479    , p_flex_value_set_id       => NULL
23480    , p_adr_code                => NULL
23481    , p_adr_type_code           => NULL
23482    , p_component_type          => l_component_type
23483    , p_component_code          => l_component_code
23484    , p_component_type_code     => l_component_type_code
23485    , p_component_appl_id       => l_component_appl_id
23486    , p_amb_context_code        => l_amb_context_code
23487    , p_entity_code             => 'AP_PAYMENTS'
23488    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
23489    , p_side                    => 'NA'
23490    );
23491    --
23492 
23493 
23494    --
23495    --
23496    END IF;
23497    --
23498    -- Bug 4922099
23499    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23500           (NVL(l_enc_upg_option, 'N') = 'O')
23501         ) AND
23502         (l_bflow_method_code = 'PRIOR_ENTRY')
23503       )
23504    THEN
23505       IF
23506       --
23507       1 = 2
23508       --
23509       THEN
23510       xla_accounting_err_pkg.build_message
23511                                     (p_appli_s_name            => 'XLA'
23515                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23512                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23513                                     ,p_token_1                 => 'LINE_NUMBER'
23514                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23516                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23517                                                                              l_component_type
23518                                                                             ,l_component_code
23519                                                                             ,l_component_type_code
23520                                                                             ,l_component_appl_id
23521                                                                             ,l_amb_context_code
23522                                                                             ,l_entity_code
23523                                                                             ,l_event_class_code
23524                                                                            )
23525                                     ,p_token_3                 => 'OWNER'
23526                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23527                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23528                                                                           ,p_lookup_code    => l_component_type_code
23529                                                                          )
23530                                     ,p_token_4                 => 'PRODUCT_NAME'
23531                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23532                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23533                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23534                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23535                                     ,p_ae_header_id            =>  NULL
23536                                        );
23537 
23538         IF (C_LEVEL_ERROR>= g_log_level) THEN
23539                  trace
23540                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23541                       ,p_level    => C_LEVEL_ERROR
23542                       ,p_module   => l_log_module);
23543         END IF;
23544       END IF;
23545    END IF;
23546    --
23547    --
23548    ------------------------------------------------------------------------------------------------
23549    -- 4219869 Business Flow
23550    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23551    -- Prior Entry.  Currently, the following code is always generated.
23552    ------------------------------------------------------------------------------------------------
23553    XLA_AE_LINES_PKG.ValidateCurrentLine;
23554 
23555    ------------------------------------------------------------------------------------
23556    -- 4219869 Business Flow
23557    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23558    ------------------------------------------------------------------------------------
23559    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23560 
23561    ----------------------------------------------------------------------------------
23562    -- 4219869 Business Flow
23563    -- Update journal entry status -- Need to generate this within IF <condition>
23564    ----------------------------------------------------------------------------------
23565    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23566          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23567          ,p_balance_type_code => l_balance_type_code
23568          );
23569 
23570    -------------------------------------------------------------------------------------------
23571    -- 4262811 - Generate the Accrual Reversal lines
23572    -------------------------------------------------------------------------------------------
23573    BEGIN
23574       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23575                               (g_array_event(p_event_id).array_value_num('header_index'));
23576       IF l_acc_rev_flag IS NULL THEN
23577          l_acc_rev_flag := 'N';
23578       END IF;
23579    EXCEPTION
23580       WHEN OTHERS THEN
23581          l_acc_rev_flag := 'N';
23582    END;
23583    --
23584    IF (l_acc_rev_flag = 'Y') THEN
23585 
23586        -- 4645092  ------------------------------------------------------------------------------
23587        -- To allow MPA report to determine if it should generate report process
23588        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23589        ------------------------------------------------------------------------------------------
23590 
23591        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23592        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23593    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23594    -- call ADRs
23595    -- Bug 4922099
23596    --
23597    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23598         (NVL(l_actual_upg_option, 'N') = 'O') OR
23602    NULL;
23599         (NVL(l_enc_upg_option, 'N') = 'O')
23600       )
23601    THEN
23603    --
23604    --
23605    
23606   l_ccid := AcctDerRule_35(
23607            p_application_id           => p_application_id
23608          , p_ae_header_id             => l_ae_header_id 
23609 , p_source_35 => p_source_35
23610          , x_transaction_coa_id       => l_adr_transaction_coa_id
23611          , x_accounting_coa_id        => l_adr_accounting_coa_id
23612          , x_value_type_code          => l_adr_value_type_code
23613          , p_side                     => 'NA'
23614    );
23615 
23616    xla_ae_lines_pkg.set_ccid(
23617     p_code_combination_id          => l_ccid
23618   , p_value_type_code              => l_adr_value_type_code
23619   , p_transaction_coa_id           => l_adr_transaction_coa_id
23620   , p_accounting_coa_id            => l_adr_accounting_coa_id
23621   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23622   , p_adr_type_code                => 'S'
23623   , p_component_type               => l_component_type
23624   , p_component_code               => l_component_code
23625   , p_component_type_code          => l_component_type_code
23626   , p_component_appl_id            => l_component_appl_id
23627   , p_amb_context_code             => l_amb_context_code
23628   , p_side                         => 'NA'
23629   );
23630 
23631 
23632    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23633      p_to_segment_code         => 'GL_BALANCING'
23634    , p_segment_value           => C_CHAR
23635    , p_from_segment_code       => NULL
23636    , p_from_combination_id     => NULL
23637    , p_value_type_code         => NULL
23638    , p_transaction_coa_id      => null
23639    , p_accounting_coa_id       => null
23640    , p_flexfield_segment_code  => NULL
23641    , p_flex_value_set_id       => NULL
23642    , p_adr_code                => NULL
23643    , p_adr_type_code           => NULL
23644    , p_component_type          => l_component_type
23645    , p_component_code          => l_component_code
23646    , p_component_type_code     => l_component_type_code
23647    , p_component_appl_id       => l_component_appl_id
23648    , p_amb_context_code        => l_amb_context_code
23649    , p_entity_code             => 'AP_PAYMENTS'
23650    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
23651    , p_side                    => 'NA'
23652    );
23653    --
23654 
23655 
23656    --
23657    --
23658    END IF;
23659 
23660        --
23661        -- Update the line information that should be overwritten
23662        --
23663        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23664                                          p_header_num   => 1);
23665        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23666 
23667        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23668 
23669        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23670           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23671        END IF;
23672 
23673       --
23674       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23675       --
23676       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23677           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23678       ELSE
23679           ---------------------------------------------------------------------------------------------------
23680           -- 4262811a Switch Sign
23681           ---------------------------------------------------------------------------------------------------
23682           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23683           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23684                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23685           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23686                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23687           -- 5132302
23688           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23689                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23690 
23691       END IF;
23692 
23693       -- 4955764
23694       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23695       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23696 
23697 
23698       XLA_AE_LINES_PKG.ValidateCurrentLine;
23699       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23700 
23701       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23702                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23703                ,p_balance_type_code => l_balance_type_code);
23704 
23705    END IF;
23706 
23707    -----------------------------------------------------------------------------------------
23708    -- 4262811 Multiperiod Accounting
23709    -----------------------------------------------------------------------------------------
23710      -- No MPA option is assigned.
23711 
23712 
23713 END IF;
23714 END IF;
23715 --
23716 
23720       (p_msg      => 'END of AcctLineType_66'
23717 --
23718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23719    trace
23721       ,p_level    => C_LEVEL_PROCEDURE
23722       ,p_module   => l_log_module);
23723 END IF;
23724 --
23725 EXCEPTION
23726   WHEN xla_exceptions_pkg.application_exception THEN
23727       RAISE;
23728   WHEN OTHERS THEN
23729        xla_exceptions_pkg.raise_message
23730            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_66');
23731 END AcctLineType_66;
23732 --
23733 
23734 ---------------------------------------
23735 --
23736 -- PRIVATE FUNCTION
23737 --         AcctLineType_67
23738 --
23739 ---------------------------------------
23740 PROCEDURE AcctLineType_67 (
23741   p_application_id        IN NUMBER
23742  ,p_event_id              IN NUMBER
23743  ,p_calculate_acctd_flag  IN VARCHAR2
23744  ,p_calculate_g_l_flag    IN VARCHAR2
23745  ,p_actual_flag           IN OUT VARCHAR2
23746  ,p_balance_type_code     OUT VARCHAR2
23747  ,p_gain_or_loss_ref      OUT VARCHAR2
23748  
23749 --Payment Currency Code
23750  , p_source_13            IN VARCHAR2
23751 --Accounting Reversal Indicator
23752  , p_source_52            IN VARCHAR2
23753 --Distribution Link Type
23754  , p_source_54            IN VARCHAR2
23755 --Override Accounted Amount Indicator
23756  , p_source_79            IN VARCHAR2
23757  , p_source_79_meaning    IN VARCHAR2
23758 --Third Party Type
23759  , p_source_82            IN VARCHAR2
23760 --Invoice Distribution Tax Line Identifier
23761  , p_source_85            IN NUMBER
23762 --Invoice Distribution Summary Tax Line Identifier
23763  , p_source_87            IN NUMBER
23764 --Business Flow Accounts Payable Application Identifier
23765  , p_source_90            IN NUMBER
23766 --When to Account for Payment Option
23767  , p_source_96            IN VARCHAR2
23768 --Payment Distribution Type
23769  , p_source_97            IN VARCHAR2
23770  , p_source_97_meaning    IN VARCHAR2
23771 --Payment Distribution Amount
23772  , p_source_98            IN NUMBER
23773 --Business Flow Payment Distribution Type
23774  , p_source_99            IN VARCHAR2
23775 --Business Flow Payment Entity Code
23776  , p_source_100            IN VARCHAR2
23777 --Business Flow Payment Identifier
23778  , p_source_102            IN NUMBER
23779 --Payment Distribution Identifier
23780  , p_source_103            IN NUMBER
23781 --Payment Distribution Reversed Identifier
23782  , p_source_111            IN NUMBER
23783 --Payment Maturity Date
23784  , p_source_114            IN DATE
23785 --Business Flow Payment Maturity Identifier
23786  , p_source_120            IN NUMBER
23787 --Payment Distribution (Matured Rate) Ledger Amount
23788  , p_source_121            IN NUMBER
23789 )
23790 IS
23791 
23792 l_component_type              VARCHAR2(80);
23793 l_component_code              VARCHAR2(30);
23794 l_component_type_code         VARCHAR2(1);
23795 l_component_appl_id           INTEGER;
23796 l_amb_context_code            VARCHAR2(30);
23797 l_entity_code                 VARCHAR2(30);
23798 l_event_class_code            VARCHAR2(30);
23799 l_ae_header_id                NUMBER;
23800 l_event_type_code             VARCHAR2(30);
23801 l_line_definition_code        VARCHAR2(30);
23802 l_line_definition_owner_code  VARCHAR2(1);
23803 --
23804 -- adr variables
23805 l_segment                     VARCHAR2(30);
23806 l_ccid                        NUMBER;
23807 l_adr_transaction_coa_id      NUMBER;
23808 l_adr_accounting_coa_id       NUMBER;
23809 l_adr_flexfield_segment_code  VARCHAR2(30);
23810 l_adr_flex_value_set_id       NUMBER;
23811 l_adr_value_type_code         VARCHAR2(30);
23812 l_adr_value_combination_id    NUMBER;
23813 l_adr_value_segment_code      VARCHAR2(30);
23814 
23815 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23816 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23817 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23818 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23819 
23820 -- 4262811 Variables ------------------------------------------------------------------------------------------
23821 l_entered_amt_idx             NUMBER;
23822 l_accted_amt_idx              NUMBER;
23823 l_acc_rev_flag                VARCHAR2(1);
23824 l_accrual_line_num            NUMBER;
23825 l_tmp_amt                     NUMBER;
23826 l_acc_rev_natural_side_code   VARCHAR2(1);
23827 
23828 l_num_entries                 NUMBER;
23829 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23830 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23831 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23832 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23833 l_recog_line_1                NUMBER;
23834 l_recog_line_2                NUMBER;
23835 
23836 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23837 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23838 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23839 
23840 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23841 
23842 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23846 
23843 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23844 
23845 ---------------------------------------------------------------------------------------------------------------
23847 
23848 --
23849 -- bulk performance
23850 --
23851 l_balance_type_code           VARCHAR2(1);
23852 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23853 l_log_module                  VARCHAR2(240);
23854 
23855 --
23856 -- Upgrade strategy
23857 --
23858 l_actual_upg_option           VARCHAR2(1);
23859 l_enc_upg_option           VARCHAR2(1);
23860 
23861 --
23862 BEGIN
23863 --
23864 IF g_log_enabled THEN
23865       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
23866 END IF;
23867 --
23868 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23869 
23870       trace
23871          (p_msg      => 'BEGIN of AcctLineType_67'
23872          ,p_level    => C_LEVEL_PROCEDURE
23873          ,p_module   => l_log_module);
23874 
23875 END IF;
23876 --
23877 l_component_type             := 'AMB_JLT';
23878 l_component_code             := 'AP_CASH_CLEAR_MAT_CLEAR';
23879 l_component_type_code        := 'S';
23880 l_component_appl_id          :=  200;
23881 l_amb_context_code           := 'DEFAULT';
23882 l_entity_code                := 'AP_PAYMENTS';
23883 l_event_class_code           := 'RECONCILED PAYMENTS';
23884 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
23885 l_line_definition_owner_code := 'S';
23886 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
23887 --
23888 l_balance_type_code          := 'A';
23889 l_segment                     := NULL;
23890 l_ccid                        := NULL;
23891 l_adr_transaction_coa_id      := NULL;
23892 l_adr_accounting_coa_id       := NULL;
23893 l_adr_flexfield_segment_code  := NULL;
23894 l_adr_flex_value_set_id       := NULL;
23895 l_adr_value_type_code         := NULL;
23896 l_adr_value_combination_id    := NULL;
23897 l_adr_value_segment_code      := NULL;
23898 
23899 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
23900 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23901 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23902 l_budgetary_control_flag     := 'N';
23903 
23904 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23905 l_bflow_applied_to_amt       := NULL; -- 5132302
23906 l_entered_amt_idx            := NULL;          -- 4262811
23907 l_accted_amt_idx             := NULL;          -- 4262811
23908 l_acc_rev_flag               := NULL;          -- 4262811
23909 l_accrual_line_num           := NULL;          -- 4262811
23910 l_tmp_amt                    := NULL;          -- 4262811
23911 --
23912  
23913 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23914     l_balance_type_code <> 'B' THEN
23915 IF (NVL(p_source_96,'
23916 ') =  'ALWAYS_ALWAYS' OR 
23917 NVL(p_source_96,'
23918 ') =  'ALWAYS_CLEAR' OR 
23919 NVL(p_source_96,'
23920 ') =  'ALWAYS_ISSUE') AND 
23921 NVL(p_source_97,'
23922 ') =  'CASH' AND 
23923 p_source_114 IS NOT NULL 
23924  THEN 
23925 
23926    --
23927    XLA_AE_LINES_PKG.SetNewLine;
23928 
23929    p_balance_type_code          := l_balance_type_code;
23930    -- set the flag so later we will know whether the gain loss line needs to be created
23931    
23932    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23933      p_actual_flag :='A';
23934    END IF;
23935 
23936    --
23937    -- bulk performance
23938    --
23939    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23940                                       p_header_num   => 0); -- 4262811
23941    --
23942    -- set accounting line options
23943    --
23944    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23945            p_natural_side_code          => 'D'
23946          , p_gain_or_loss_flag          => 'N'
23947          , p_gl_transfer_mode_code      => 'S'
23948          , p_acct_entry_type_code       => 'A'
23949          , p_switch_side_flag           => 'Y'
23950          , p_merge_duplicate_code       => 'A'
23951          );
23952    --
23953    l_acc_rev_natural_side_code := 'C';  -- 4262811
23954    -- 
23955    --
23956    -- set accounting line type info
23957    --
23958    xla_ae_lines_pkg.SetAcctLineType
23959       (p_component_type             => l_component_type
23960       ,p_event_type_code            => l_event_type_code
23961       ,p_line_definition_owner_code => l_line_definition_owner_code
23962       ,p_line_definition_code       => l_line_definition_code
23963       ,p_accounting_line_code       => l_component_code
23964       ,p_accounting_line_type_code  => l_component_type_code
23965       ,p_accounting_line_appl_id    => l_component_appl_id
23966       ,p_amb_context_code           => l_amb_context_code
23967       ,p_entity_code                => l_entity_code
23968       ,p_event_class_code           => l_event_class_code);
23969    --
23970    -- set accounting class
23971    --
23972    xla_ae_lines_pkg.SetAcctClass(
23973            p_accounting_class_code  => 'CASH_CLEARING'
23974          , p_ae_header_id           => l_ae_header_id
23975          );
23976 
23977    --
23978    -- set rounding class
23979    --
23983    --
23980    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23981                       'CASH_CLEARING';
23982 
23984    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23985    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23986    --
23987    -- bulk performance
23988    --
23989    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23990 
23991    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23992       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23993 
23994    -- 4955764
23995    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23996       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23997 
23998    -- 4458381 Public Sector Enh
23999    
24000    --
24001    -- set accounting attributes for the line type
24002    --
24003    l_entered_amt_idx := 10;
24004    l_accted_amt_idx  := 12;
24005    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
24006    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24007    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
24008    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
24009    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
24010    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
24011    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
24012    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24013    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
24014    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
24015    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
24016    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
24017    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_120);
24018    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24019    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
24020    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
24021    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
24022    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
24023    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
24024    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
24025    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
24026    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
24027    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
24028    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
24029    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
24030    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
24031    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
24032    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
24033    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
24034    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
24035    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
24036    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
24037    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
24038    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
24039    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
24040    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
24041    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
24042    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
24043    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
24044 
24045    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24046    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24047 
24048    ---------------------------------------------------------------------------------------------------------------
24049    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24050    ---------------------------------------------------------------------------------------------------------------
24051    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24052 
24053    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24054    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24055 
24056    IF xla_accounting_cache_pkg.GetValueChar
24057          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24058          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24059    AND l_bflow_method_code = 'PRIOR_ENTRY'
24060 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24061    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24062          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24063        )
24064    THEN
24065          xla_ae_lines_pkg.BflowUpgEntry
24066            (p_business_method_code    => l_bflow_method_code
24067            ,p_business_class_code     => l_bflow_class_code
24068            ,p_balance_type            => l_balance_type_code);
24069    ELSE
24070       NULL;
24071 XLA_AE_LINES_PKG.business_flow_validation(
24075    END IF;
24072                                 p_business_method_code     => l_bflow_method_code
24073                                ,p_business_class_code      => l_bflow_class_code
24074                                ,p_inherit_description_flag => l_inherit_desc_flag);
24076 
24077    --
24078    -- call analytical criteria
24079    --
24080    -- Inherited Analytical Criteria for business flow method of Prior Entry.
24081    --
24082    -- call description
24083    --
24084    -- No description or it is inherited.
24085    --
24086    -- call ADRs
24087    -- Bug 4922099
24088    --
24089    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24090         (NVL(l_actual_upg_option, 'N') = 'O') OR
24091         (NVL(l_enc_upg_option, 'N') = 'O')
24092       )
24093    THEN
24094    NULL;
24095    --
24096    --
24097    
24098    --
24099    --
24100    END IF;
24101    --
24102    -- Bug 4922099
24103    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24104           (NVL(l_enc_upg_option, 'N') = 'O')
24105         ) AND
24106         (l_bflow_method_code = 'PRIOR_ENTRY')
24107       )
24108    THEN
24109       IF
24110       --
24111       1 = 1
24112       --
24113       THEN
24114       xla_accounting_err_pkg.build_message
24115                                     (p_appli_s_name            => 'XLA'
24116                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24117                                     ,p_token_1                 => 'LINE_NUMBER'
24118                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24119                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24120                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24121                                                                              l_component_type
24122                                                                             ,l_component_code
24123                                                                             ,l_component_type_code
24124                                                                             ,l_component_appl_id
24125                                                                             ,l_amb_context_code
24126                                                                             ,l_entity_code
24127                                                                             ,l_event_class_code
24128                                                                            )
24129                                     ,p_token_3                 => 'OWNER'
24130                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24131                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24132                                                                           ,p_lookup_code    => l_component_type_code
24133                                                                          )
24134                                     ,p_token_4                 => 'PRODUCT_NAME'
24135                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24136                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24137                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24138                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24139                                     ,p_ae_header_id            =>  NULL
24140                                        );
24141 
24142         IF (C_LEVEL_ERROR>= g_log_level) THEN
24143                  trace
24144                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24145                       ,p_level    => C_LEVEL_ERROR
24146                       ,p_module   => l_log_module);
24147         END IF;
24148       END IF;
24149    END IF;
24150    --
24151    --
24152    ------------------------------------------------------------------------------------------------
24153    -- 4219869 Business Flow
24154    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24155    -- Prior Entry.  Currently, the following code is always generated.
24156    ------------------------------------------------------------------------------------------------
24157    -- No ValidateCurrentLine for business flow method of Prior Entry
24158 
24159    ------------------------------------------------------------------------------------
24160    -- 4219869 Business Flow
24161    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24162    ------------------------------------------------------------------------------------
24163    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24164 
24165    ----------------------------------------------------------------------------------
24166    -- 4219869 Business Flow
24167    -- Update journal entry status -- Need to generate this within IF <condition>
24168    ----------------------------------------------------------------------------------
24169    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24170          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24171          ,p_balance_type_code => l_balance_type_code
24172          );
24173 
24174    -------------------------------------------------------------------------------------------
24175    -- 4262811 - Generate the Accrual Reversal lines
24176    -------------------------------------------------------------------------------------------
24177    BEGIN
24181          l_acc_rev_flag := 'N';
24178       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24179                               (g_array_event(p_event_id).array_value_num('header_index'));
24180       IF l_acc_rev_flag IS NULL THEN
24182       END IF;
24183    EXCEPTION
24184       WHEN OTHERS THEN
24185          l_acc_rev_flag := 'N';
24186    END;
24187    --
24188    IF (l_acc_rev_flag = 'Y') THEN
24189 
24190        -- 4645092  ------------------------------------------------------------------------------
24191        -- To allow MPA report to determine if it should generate report process
24192        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24193        ------------------------------------------------------------------------------------------
24194 
24195        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24196        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24197    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24198    -- call ADRs
24199    -- Bug 4922099
24200    --
24201    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24202         (NVL(l_actual_upg_option, 'N') = 'O') OR
24203         (NVL(l_enc_upg_option, 'N') = 'O')
24204       )
24205    THEN
24206    NULL;
24207    --
24208    --
24209    
24210    --
24211    --
24212    END IF;
24213 
24214        --
24215        -- Update the line information that should be overwritten
24216        --
24217        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24218                                          p_header_num   => 1);
24219        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24220 
24221        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24222 
24223        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24224           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24225        END IF;
24226 
24227       --
24228       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24229       --
24230       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24231           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24232       ELSE
24233           ---------------------------------------------------------------------------------------------------
24234           -- 4262811a Switch Sign
24235           ---------------------------------------------------------------------------------------------------
24236           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24237           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24238                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24239           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24240                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24241           -- 5132302
24242           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24243                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24244 
24245       END IF;
24246 
24247       -- 4955764
24248       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24249       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24250 
24251 
24252       XLA_AE_LINES_PKG.ValidateCurrentLine;
24253       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24254 
24255       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24256                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24257                ,p_balance_type_code => l_balance_type_code);
24258 
24259    END IF;
24260 
24261    -----------------------------------------------------------------------------------------
24262    -- 4262811 Multiperiod Accounting
24263    -----------------------------------------------------------------------------------------
24264      -- No MPA option is assigned.
24265 
24266 
24267 END IF;
24268 END IF;
24269 --
24270 
24271 --
24272 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24273    trace
24274       (p_msg      => 'END of AcctLineType_67'
24275       ,p_level    => C_LEVEL_PROCEDURE
24276       ,p_module   => l_log_module);
24277 END IF;
24278 --
24279 EXCEPTION
24280   WHEN xla_exceptions_pkg.application_exception THEN
24281       RAISE;
24282   WHEN OTHERS THEN
24283        xla_exceptions_pkg.raise_message
24284            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_67');
24285 END AcctLineType_67;
24286 --
24287 
24288 ---------------------------------------
24289 --
24290 -- PRIVATE FUNCTION
24291 --         AcctLineType_68
24292 --
24293 ---------------------------------------
24294 PROCEDURE AcctLineType_68 (
24295   p_application_id        IN NUMBER
24296  ,p_event_id              IN NUMBER
24297  ,p_calculate_acctd_flag  IN VARCHAR2
24298  ,p_calculate_g_l_flag    IN VARCHAR2
24299  ,p_actual_flag           IN OUT VARCHAR2
24300  ,p_balance_type_code     OUT VARCHAR2
24301  ,p_gain_or_loss_ref      OUT VARCHAR2
24302  
24303 --Payment Currency Code
24304  , p_source_13            IN VARCHAR2
24308  , p_source_47            IN VARCHAR2
24305 --Bank Cash Clearing Account
24306  , p_source_35            IN NUMBER
24307 --Automatic Offsets Flag
24309  , p_source_47_meaning    IN VARCHAR2
24310 --Accounting Reversal Indicator
24311  , p_source_52            IN VARCHAR2
24312 --Distribution Link Type
24313  , p_source_54            IN VARCHAR2
24314 --Override Accounted Amount Indicator
24315  , p_source_79            IN VARCHAR2
24316  , p_source_79_meaning    IN VARCHAR2
24317 --Third Party Type
24318  , p_source_82            IN VARCHAR2
24319 --Invoice Distribution Tax Line Identifier
24320  , p_source_85            IN NUMBER
24321 --Invoice Distribution Tax Distribution Identifier from Tax
24322  , p_source_86            IN NUMBER
24323 --Invoice Distribution Summary Tax Line Identifier
24324  , p_source_87            IN NUMBER
24325 --Business Flow Accounts Payable Application Identifier
24326  , p_source_90            IN NUMBER
24327 --Business Flow Invoice Distribution Type
24328  , p_source_91            IN VARCHAR2
24329 --Business Flow Invoice Entity Code
24330  , p_source_92            IN VARCHAR2
24331 --Business Flow Invoice Distribution Identifier
24332  , p_source_93            IN NUMBER
24333 --Business Flow Invoice Identifier
24334  , p_source_94            IN NUMBER
24335 --When to Account for Payment Option
24336  , p_source_96            IN VARCHAR2
24337 --Payment Distribution Type
24338  , p_source_97            IN VARCHAR2
24339  , p_source_97_meaning    IN VARCHAR2
24340 --Payment Distribution Amount
24341  , p_source_98            IN NUMBER
24342 --Payment Distribution Identifier
24343  , p_source_103            IN NUMBER
24344 --Payment Supplier Identifier
24345  , p_source_109            IN NUMBER
24346 --Payment Supplier Site Identifier
24347  , p_source_110            IN NUMBER
24348 --Payment Distribution Reversed Identifier
24349  , p_source_111            IN NUMBER
24350 --Payment Identifier
24351  , p_source_112            IN NUMBER
24352 --Pooled Bank Account Option
24353  , p_source_113            IN VARCHAR2
24354  , p_source_113_meaning    IN VARCHAR2
24355 --Payment Maturity Date
24356  , p_source_114            IN DATE
24357 --Payment Distribution (Payment Rate) Ledger Amount
24358  , p_source_115            IN NUMBER
24359 --Payment Exchange Date
24360  , p_source_117            IN DATE
24361 --Payment Exchange Rate
24362  , p_source_118            IN NUMBER
24363 --Payment Exchange Rate Type
24364  , p_source_119            IN VARCHAR2
24365 --Payment Type
24366  , p_source_122            IN VARCHAR2
24367  , p_source_122_meaning    IN VARCHAR2
24368 --Payment Processing Type
24369  , p_source_123            IN VARCHAR2
24370 --Invoice Distribution Amount of the Payment Distribution
24371  , p_source_124            IN NUMBER
24372 )
24373 IS
24374 
24375 l_component_type              VARCHAR2(80);
24376 l_component_code              VARCHAR2(30);
24377 l_component_type_code         VARCHAR2(1);
24378 l_component_appl_id           INTEGER;
24379 l_amb_context_code            VARCHAR2(30);
24380 l_entity_code                 VARCHAR2(30);
24381 l_event_class_code            VARCHAR2(30);
24382 l_ae_header_id                NUMBER;
24383 l_event_type_code             VARCHAR2(30);
24384 l_line_definition_code        VARCHAR2(30);
24385 l_line_definition_owner_code  VARCHAR2(1);
24386 --
24387 -- adr variables
24388 l_segment                     VARCHAR2(30);
24389 l_ccid                        NUMBER;
24390 l_adr_transaction_coa_id      NUMBER;
24391 l_adr_accounting_coa_id       NUMBER;
24392 l_adr_flexfield_segment_code  VARCHAR2(30);
24393 l_adr_flex_value_set_id       NUMBER;
24394 l_adr_value_type_code         VARCHAR2(30);
24395 l_adr_value_combination_id    NUMBER;
24396 l_adr_value_segment_code      VARCHAR2(30);
24397 
24398 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24399 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24400 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24401 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24402 
24403 -- 4262811 Variables ------------------------------------------------------------------------------------------
24404 l_entered_amt_idx             NUMBER;
24405 l_accted_amt_idx              NUMBER;
24406 l_acc_rev_flag                VARCHAR2(1);
24407 l_accrual_line_num            NUMBER;
24408 l_tmp_amt                     NUMBER;
24409 l_acc_rev_natural_side_code   VARCHAR2(1);
24410 
24411 l_num_entries                 NUMBER;
24412 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24413 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24414 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24415 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24416 l_recog_line_1                NUMBER;
24417 l_recog_line_2                NUMBER;
24418 
24419 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24420 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24421 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24422 
24423 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24424 
24425 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24426 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24430 
24427 
24428 ---------------------------------------------------------------------------------------------------------------
24429 
24431 --
24432 -- bulk performance
24433 --
24434 l_balance_type_code           VARCHAR2(1);
24435 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24436 l_log_module                  VARCHAR2(240);
24437 
24438 --
24439 -- Upgrade strategy
24440 --
24441 l_actual_upg_option           VARCHAR2(1);
24442 l_enc_upg_option           VARCHAR2(1);
24443 
24444 --
24445 BEGIN
24446 --
24447 IF g_log_enabled THEN
24448       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
24449 END IF;
24450 --
24451 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24452 
24453       trace
24454          (p_msg      => 'BEGIN of AcctLineType_68'
24455          ,p_level    => C_LEVEL_PROCEDURE
24456          ,p_module   => l_log_module);
24457 
24458 END IF;
24459 --
24460 l_component_type             := 'AMB_JLT';
24461 l_component_code             := 'AP_CASH_CLEAR_PMT';
24462 l_component_type_code        := 'S';
24463 l_component_appl_id          :=  200;
24464 l_amb_context_code           := 'DEFAULT';
24465 l_entity_code                := 'AP_PAYMENTS';
24466 l_event_class_code           := 'PAYMENTS';
24467 l_event_type_code            := 'PAYMENTS_ALL';
24468 l_line_definition_owner_code := 'S';
24469 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
24470 --
24471 l_balance_type_code          := 'A';
24472 l_segment                     := NULL;
24473 l_ccid                        := NULL;
24474 l_adr_transaction_coa_id      := NULL;
24475 l_adr_accounting_coa_id       := NULL;
24476 l_adr_flexfield_segment_code  := NULL;
24477 l_adr_flex_value_set_id       := NULL;
24478 l_adr_value_type_code         := NULL;
24479 l_adr_value_combination_id    := NULL;
24480 l_adr_value_segment_code      := NULL;
24481 
24482 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
24483 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24484 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24485 l_budgetary_control_flag     := 'N';
24486 
24487 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24488 l_bflow_applied_to_amt       := NULL; -- 5132302
24489 l_entered_amt_idx            := NULL;          -- 4262811
24490 l_accted_amt_idx             := NULL;          -- 4262811
24491 l_acc_rev_flag               := NULL;          -- 4262811
24492 l_accrual_line_num           := NULL;          -- 4262811
24493 l_tmp_amt                    := NULL;          -- 4262811
24494 --
24495  
24496 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24497     l_balance_type_code <> 'B' THEN
24498 IF NVL(p_source_96,'
24499 ') =  'ALWAYS_ALWAYS' AND 
24500 (NVL(p_source_47,'
24501 ') <>  'Y' OR 
24502 NVL(p_source_47,'
24503 ') =  'Y' AND 
24504 NVL(p_source_113,'
24505 ') <>  'Y') AND 
24506 p_source_114 IS NULL AND 
24507 NVL(p_source_97,'
24508 ') =  'CASH' AND 
24509 NVL(p_source_122,'
24510 ') <>  'R' AND 
24511 NVL(p_source_123,'
24512 ') <>  'PAYMENTCARD'
24513  THEN 
24514 
24515    --
24516    XLA_AE_LINES_PKG.SetNewLine;
24517 
24518    p_balance_type_code          := l_balance_type_code;
24519    -- set the flag so later we will know whether the gain loss line needs to be created
24520    
24521    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24522      p_actual_flag :='A';
24523    END IF;
24524 
24525    --
24526    -- bulk performance
24527    --
24528    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24529                                       p_header_num   => 0); -- 4262811
24530    --
24531    -- set accounting line options
24532    --
24533    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24534            p_natural_side_code          => 'C'
24535          , p_gain_or_loss_flag          => 'N'
24536          , p_gl_transfer_mode_code      => 'S'
24537          , p_acct_entry_type_code       => 'A'
24538          , p_switch_side_flag           => 'Y'
24539          , p_merge_duplicate_code       => 'A'
24540          );
24541    --
24542    l_acc_rev_natural_side_code := 'D';  -- 4262811
24543    -- 
24544    --
24545    -- set accounting line type info
24546    --
24547    xla_ae_lines_pkg.SetAcctLineType
24548       (p_component_type             => l_component_type
24549       ,p_event_type_code            => l_event_type_code
24550       ,p_line_definition_owner_code => l_line_definition_owner_code
24551       ,p_line_definition_code       => l_line_definition_code
24552       ,p_accounting_line_code       => l_component_code
24553       ,p_accounting_line_type_code  => l_component_type_code
24554       ,p_accounting_line_appl_id    => l_component_appl_id
24555       ,p_amb_context_code           => l_amb_context_code
24556       ,p_entity_code                => l_entity_code
24557       ,p_event_class_code           => l_event_class_code);
24558    --
24559    -- set accounting class
24560    --
24561    xla_ae_lines_pkg.SetAcctClass(
24562            p_accounting_class_code  => 'CASH_CLEARING'
24563          , p_ae_header_id           => l_ae_header_id
24564          );
24565 
24566    --
24567    -- set rounding class
24568    --
24569    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24573    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24570                       'CASH_CLEARING';
24571 
24572    --
24574    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24575    --
24576    -- bulk performance
24577    --
24578    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24579 
24580    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24581       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24582 
24583    -- 4955764
24584    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24585       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24586 
24587    -- 4458381 Public Sector Enh
24588    
24589    --
24590    -- set accounting attributes for the line type
24591    --
24592    l_entered_amt_idx := 10;
24593    l_accted_amt_idx  := 15;
24594    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
24595    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24596    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
24597    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
24598    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
24599    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
24600    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
24601    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24602    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
24603    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
24604    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
24605    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
24606    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
24607    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24608    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
24609    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
24610    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
24611    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
24612    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
24613    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
24614    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
24615    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
24616    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
24617    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
24618    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
24619    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
24620    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
24621    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
24622    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
24623    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
24624    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
24625    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
24626    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
24627    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
24628    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
24629    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
24630    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
24631    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
24632    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
24633    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
24634    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
24635    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
24636    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
24637    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
24638    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
24639    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
24640    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
24641    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
24642    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
24643 
24644    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24645    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24646 
24647    ---------------------------------------------------------------------------------------------------------------
24648    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24649    ---------------------------------------------------------------------------------------------------------------
24650    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24651 
24652    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24653    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24654 
24655    IF xla_accounting_cache_pkg.GetValueChar
24656          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24657          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24658    AND l_bflow_method_code = 'PRIOR_ENTRY'
24659 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24660    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24664          xla_ae_lines_pkg.BflowUpgEntry
24661          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24662        )
24663    THEN
24665            (p_business_method_code    => l_bflow_method_code
24666            ,p_business_class_code     => l_bflow_class_code
24667            ,p_balance_type            => l_balance_type_code);
24668    ELSE
24669       NULL;
24670 -- No business flow processing for business flow method of NONE.
24671    END IF;
24672 
24673    --
24674    -- call analytical criteria
24675    --
24676    
24677 
24678 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
24679 xla_ae_lines_pkg.SetAnalyticalCriteria(
24680    p_analytical_criterion_name    => 'Check Id'
24681  , p_analytical_criterion_owner   => 'S'
24682  , p_analytical_criterion_code    => 'CHECK_ID'
24683  , p_amb_context_code             => 'DEFAULT'
24684  , p_balancing_flag               => 'N'
24685  
24686  , p_analytical_detail_char_1    =>  NULL
24687  , p_analytical_detail_num_1     =>  p_source_112
24688  , p_analytical_detail_date_1    =>  NULL
24689 
24690  , p_ae_header_id                 => l_ae_header_id
24691 )
24692 ;
24693 --
24694 
24695    --
24696    -- call description
24697    --
24698    -- No description or it is inherited.
24699    --
24700    -- call ADRs
24701    -- Bug 4922099
24702    --
24703    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24704         (NVL(l_actual_upg_option, 'N') = 'O') OR
24705         (NVL(l_enc_upg_option, 'N') = 'O')
24706       )
24707    THEN
24708    NULL;
24709    --
24710    --
24711    
24712   l_ccid := AcctDerRule_35(
24713            p_application_id           => p_application_id
24714          , p_ae_header_id             => l_ae_header_id 
24715 , p_source_35 => p_source_35
24716          , x_transaction_coa_id       => l_adr_transaction_coa_id
24717          , x_accounting_coa_id        => l_adr_accounting_coa_id
24718          , x_value_type_code          => l_adr_value_type_code
24719          , p_side                     => 'NA'
24720    );
24721 
24722    xla_ae_lines_pkg.set_ccid(
24723     p_code_combination_id          => l_ccid
24724   , p_value_type_code              => l_adr_value_type_code
24725   , p_transaction_coa_id           => l_adr_transaction_coa_id
24726   , p_accounting_coa_id            => l_adr_accounting_coa_id
24727   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24728   , p_adr_type_code                => 'S'
24729   , p_component_type               => l_component_type
24730   , p_component_code               => l_component_code
24731   , p_component_type_code          => l_component_type_code
24732   , p_component_appl_id            => l_component_appl_id
24733   , p_amb_context_code             => l_amb_context_code
24734   , p_side                         => 'NA'
24735   );
24736 
24737 
24738    --
24739    --
24740    END IF;
24741    --
24742    -- Bug 4922099
24743    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24744           (NVL(l_enc_upg_option, 'N') = 'O')
24745         ) AND
24746         (l_bflow_method_code = 'PRIOR_ENTRY')
24747       )
24748    THEN
24749       IF
24750       --
24751       1 = 2
24752       --
24753       THEN
24754       xla_accounting_err_pkg.build_message
24755                                     (p_appli_s_name            => 'XLA'
24756                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24757                                     ,p_token_1                 => 'LINE_NUMBER'
24758                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24759                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24760                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24761                                                                              l_component_type
24762                                                                             ,l_component_code
24763                                                                             ,l_component_type_code
24764                                                                             ,l_component_appl_id
24765                                                                             ,l_amb_context_code
24766                                                                             ,l_entity_code
24767                                                                             ,l_event_class_code
24768                                                                            )
24769                                     ,p_token_3                 => 'OWNER'
24770                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24771                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24772                                                                           ,p_lookup_code    => l_component_type_code
24773                                                                          )
24774                                     ,p_token_4                 => 'PRODUCT_NAME'
24775                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24776                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24780                                        );
24777                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24778                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24779                                     ,p_ae_header_id            =>  NULL
24781 
24782         IF (C_LEVEL_ERROR>= g_log_level) THEN
24783                  trace
24784                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24785                       ,p_level    => C_LEVEL_ERROR
24786                       ,p_module   => l_log_module);
24787         END IF;
24788       END IF;
24789    END IF;
24790    --
24791    --
24792    ------------------------------------------------------------------------------------------------
24793    -- 4219869 Business Flow
24794    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24795    -- Prior Entry.  Currently, the following code is always generated.
24796    ------------------------------------------------------------------------------------------------
24797    XLA_AE_LINES_PKG.ValidateCurrentLine;
24798 
24799    ------------------------------------------------------------------------------------
24800    -- 4219869 Business Flow
24801    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24802    ------------------------------------------------------------------------------------
24803    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24804 
24805    ----------------------------------------------------------------------------------
24806    -- 4219869 Business Flow
24807    -- Update journal entry status -- Need to generate this within IF <condition>
24808    ----------------------------------------------------------------------------------
24809    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24810          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24811          ,p_balance_type_code => l_balance_type_code
24812          );
24813 
24814    -------------------------------------------------------------------------------------------
24815    -- 4262811 - Generate the Accrual Reversal lines
24816    -------------------------------------------------------------------------------------------
24817    BEGIN
24818       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24819                               (g_array_event(p_event_id).array_value_num('header_index'));
24820       IF l_acc_rev_flag IS NULL THEN
24821          l_acc_rev_flag := 'N';
24822       END IF;
24823    EXCEPTION
24824       WHEN OTHERS THEN
24825          l_acc_rev_flag := 'N';
24826    END;
24827    --
24828    IF (l_acc_rev_flag = 'Y') THEN
24829 
24830        -- 4645092  ------------------------------------------------------------------------------
24831        -- To allow MPA report to determine if it should generate report process
24832        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24833        ------------------------------------------------------------------------------------------
24834 
24835        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24836        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24837    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24838    -- call ADRs
24839    -- Bug 4922099
24840    --
24841    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24842         (NVL(l_actual_upg_option, 'N') = 'O') OR
24843         (NVL(l_enc_upg_option, 'N') = 'O')
24844       )
24845    THEN
24846    NULL;
24847    --
24848    --
24849    
24850   l_ccid := AcctDerRule_35(
24851            p_application_id           => p_application_id
24852          , p_ae_header_id             => l_ae_header_id 
24853 , p_source_35 => p_source_35
24854          , x_transaction_coa_id       => l_adr_transaction_coa_id
24855          , x_accounting_coa_id        => l_adr_accounting_coa_id
24856          , x_value_type_code          => l_adr_value_type_code
24857          , p_side                     => 'NA'
24858    );
24859 
24860    xla_ae_lines_pkg.set_ccid(
24861     p_code_combination_id          => l_ccid
24862   , p_value_type_code              => l_adr_value_type_code
24863   , p_transaction_coa_id           => l_adr_transaction_coa_id
24864   , p_accounting_coa_id            => l_adr_accounting_coa_id
24865   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24866   , p_adr_type_code                => 'S'
24867   , p_component_type               => l_component_type
24868   , p_component_code               => l_component_code
24869   , p_component_type_code          => l_component_type_code
24870   , p_component_appl_id            => l_component_appl_id
24871   , p_amb_context_code             => l_amb_context_code
24872   , p_side                         => 'NA'
24873   );
24874 
24875 
24876    --
24877    --
24878    END IF;
24879 
24880        --
24881        -- Update the line information that should be overwritten
24882        --
24883        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24884                                          p_header_num   => 1);
24885        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24886 
24887        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24888 
24889        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24893       --
24890           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24891        END IF;
24892 
24894       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24895       --
24896       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24897           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24898       ELSE
24899           ---------------------------------------------------------------------------------------------------
24900           -- 4262811a Switch Sign
24901           ---------------------------------------------------------------------------------------------------
24902           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24903           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24904                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24905           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24906                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24907           -- 5132302
24908           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24909                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24910 
24911       END IF;
24912 
24913       -- 4955764
24914       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24915       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24916 
24917 
24918       XLA_AE_LINES_PKG.ValidateCurrentLine;
24919       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24920 
24921       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24922                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24923                ,p_balance_type_code => l_balance_type_code);
24924 
24925    END IF;
24926 
24927    -----------------------------------------------------------------------------------------
24928    -- 4262811 Multiperiod Accounting
24929    -----------------------------------------------------------------------------------------
24930      -- No MPA option is assigned.
24931 
24932 
24933 END IF;
24934 END IF;
24935 --
24936 
24937 --
24938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24939    trace
24940       (p_msg      => 'END of AcctLineType_68'
24941       ,p_level    => C_LEVEL_PROCEDURE
24942       ,p_module   => l_log_module);
24943 END IF;
24944 --
24945 EXCEPTION
24946   WHEN xla_exceptions_pkg.application_exception THEN
24947       RAISE;
24948   WHEN OTHERS THEN
24949        xla_exceptions_pkg.raise_message
24950            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_68');
24951 END AcctLineType_68;
24952 --
24953 
24954 ---------------------------------------
24955 --
24956 -- PRIVATE FUNCTION
24957 --         AcctLineType_69
24958 --
24959 ---------------------------------------
24960 PROCEDURE AcctLineType_69 (
24961   p_application_id        IN NUMBER
24962  ,p_event_id              IN NUMBER
24963  ,p_calculate_acctd_flag  IN VARCHAR2
24964  ,p_calculate_g_l_flag    IN VARCHAR2
24965  ,p_actual_flag           IN OUT VARCHAR2
24966  ,p_balance_type_code     OUT VARCHAR2
24967  ,p_gain_or_loss_ref      OUT VARCHAR2
24968  
24969 --Payment Currency Code
24970  , p_source_13            IN VARCHAR2
24971 --Automatic Offsets Value
24972  , p_source_15            IN VARCHAR2
24973  , p_source_15_meaning    IN VARCHAR2
24974 --Bank Cash Clearing Account
24975  , p_source_35            IN NUMBER
24976 --Accounting Reversal Indicator
24977  , p_source_52            IN VARCHAR2
24978 --Distribution Link Type
24979  , p_source_54            IN VARCHAR2
24980 --Override Accounted Amount Indicator
24981  , p_source_79            IN VARCHAR2
24982  , p_source_79_meaning    IN VARCHAR2
24983 --Third Party Type
24984  , p_source_82            IN VARCHAR2
24985 --Invoice Distribution Tax Line Identifier
24986  , p_source_85            IN NUMBER
24987 --Invoice Distribution Tax Distribution Identifier from Tax
24988  , p_source_86            IN NUMBER
24989 --Invoice Distribution Summary Tax Line Identifier
24990  , p_source_87            IN NUMBER
24991 --Business Flow Accounts Payable Application Identifier
24992  , p_source_90            IN NUMBER
24993 --Business Flow Invoice Distribution Type
24994  , p_source_91            IN VARCHAR2
24995 --Business Flow Invoice Entity Code
24996  , p_source_92            IN VARCHAR2
24997 --Business Flow Invoice Distribution Identifier
24998  , p_source_93            IN NUMBER
24999 --Business Flow Invoice Identifier
25000  , p_source_94            IN NUMBER
25001 --When to Account for Payment Option
25002  , p_source_96            IN VARCHAR2
25003 --Payment Distribution Type
25004  , p_source_97            IN VARCHAR2
25005  , p_source_97_meaning    IN VARCHAR2
25006 --Payment Distribution Amount
25007  , p_source_98            IN NUMBER
25008 --Payment Distribution Identifier
25009  , p_source_103            IN NUMBER
25010 --Payment Supplier Identifier
25011  , p_source_109            IN NUMBER
25015  , p_source_111            IN NUMBER
25012 --Payment Supplier Site Identifier
25013  , p_source_110            IN NUMBER
25014 --Payment Distribution Reversed Identifier
25016 --Payment Identifier
25017  , p_source_112            IN NUMBER
25018 --Pooled Bank Account Option
25019  , p_source_113            IN VARCHAR2
25020  , p_source_113_meaning    IN VARCHAR2
25021 --Payment Maturity Date
25022  , p_source_114            IN DATE
25023 --Payment Distribution (Payment Rate) Ledger Amount
25024  , p_source_115            IN NUMBER
25025 --Payment Exchange Date
25026  , p_source_117            IN DATE
25027 --Payment Exchange Rate
25028  , p_source_118            IN NUMBER
25029 --Payment Exchange Rate Type
25030  , p_source_119            IN VARCHAR2
25031 --Payment Type
25032  , p_source_122            IN VARCHAR2
25033  , p_source_122_meaning    IN VARCHAR2
25034 --Payment Processing Type
25035  , p_source_123            IN VARCHAR2
25036 --Invoice Distribution Amount of the Payment Distribution
25037  , p_source_124            IN NUMBER
25038 )
25039 IS
25040 
25041 l_component_type              VARCHAR2(80);
25042 l_component_code              VARCHAR2(30);
25043 l_component_type_code         VARCHAR2(1);
25044 l_component_appl_id           INTEGER;
25045 l_amb_context_code            VARCHAR2(30);
25046 l_entity_code                 VARCHAR2(30);
25047 l_event_class_code            VARCHAR2(30);
25048 l_ae_header_id                NUMBER;
25049 l_event_type_code             VARCHAR2(30);
25050 l_line_definition_code        VARCHAR2(30);
25051 l_line_definition_owner_code  VARCHAR2(1);
25052 --
25053 -- adr variables
25054 l_segment                     VARCHAR2(30);
25055 l_ccid                        NUMBER;
25056 l_adr_transaction_coa_id      NUMBER;
25057 l_adr_accounting_coa_id       NUMBER;
25058 l_adr_flexfield_segment_code  VARCHAR2(30);
25059 l_adr_flex_value_set_id       NUMBER;
25060 l_adr_value_type_code         VARCHAR2(30);
25061 l_adr_value_combination_id    NUMBER;
25062 l_adr_value_segment_code      VARCHAR2(30);
25063 
25064 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25065 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25066 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25067 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25068 
25069 -- 4262811 Variables ------------------------------------------------------------------------------------------
25070 l_entered_amt_idx             NUMBER;
25071 l_accted_amt_idx              NUMBER;
25072 l_acc_rev_flag                VARCHAR2(1);
25073 l_accrual_line_num            NUMBER;
25074 l_tmp_amt                     NUMBER;
25075 l_acc_rev_natural_side_code   VARCHAR2(1);
25076 
25077 l_num_entries                 NUMBER;
25078 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25079 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25080 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25081 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25082 l_recog_line_1                NUMBER;
25083 l_recog_line_2                NUMBER;
25084 
25085 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25086 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25087 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25088 
25089 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25090 
25091 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25092 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25093 
25094 ---------------------------------------------------------------------------------------------------------------
25095 
25096 
25097 --
25098 -- bulk performance
25099 --
25100 l_balance_type_code           VARCHAR2(1);
25101 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25102 l_log_module                  VARCHAR2(240);
25103 
25104 --
25105 -- Upgrade strategy
25106 --
25107 l_actual_upg_option           VARCHAR2(1);
25108 l_enc_upg_option           VARCHAR2(1);
25109 
25110 --
25111 BEGIN
25112 --
25113 IF g_log_enabled THEN
25114       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
25115 END IF;
25116 --
25117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25118 
25119       trace
25120          (p_msg      => 'BEGIN of AcctLineType_69'
25121          ,p_level    => C_LEVEL_PROCEDURE
25122          ,p_module   => l_log_module);
25123 
25124 END IF;
25125 --
25126 l_component_type             := 'AMB_JLT';
25127 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
25128 l_component_type_code        := 'S';
25129 l_component_appl_id          :=  200;
25130 l_amb_context_code           := 'DEFAULT';
25131 l_entity_code                := 'AP_PAYMENTS';
25132 l_event_class_code           := 'PAYMENTS';
25133 l_event_type_code            := 'PAYMENTS_ALL';
25134 l_line_definition_owner_code := 'S';
25135 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
25136 --
25137 l_balance_type_code          := 'A';
25138 l_segment                     := NULL;
25139 l_ccid                        := NULL;
25140 l_adr_transaction_coa_id      := NULL;
25141 l_adr_accounting_coa_id       := NULL;
25142 l_adr_flexfield_segment_code  := NULL;
25143 l_adr_flex_value_set_id       := NULL;
25147 
25144 l_adr_value_type_code         := NULL;
25145 l_adr_value_combination_id    := NULL;
25146 l_adr_value_segment_code      := NULL;
25148 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25149 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25150 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25151 l_budgetary_control_flag     := 'N';
25152 
25153 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25154 l_bflow_applied_to_amt       := NULL; -- 5132302
25155 l_entered_amt_idx            := NULL;          -- 4262811
25156 l_accted_amt_idx             := NULL;          -- 4262811
25157 l_acc_rev_flag               := NULL;          -- 4262811
25158 l_accrual_line_num           := NULL;          -- 4262811
25159 l_tmp_amt                    := NULL;          -- 4262811
25160 --
25161  
25162 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25163     l_balance_type_code <> 'B' THEN
25164 IF NVL(p_source_96,'
25165 ') =  'ALWAYS_ALWAYS' AND 
25166 (NVL(p_source_113,'
25167 ') =  'Y' AND 
25168 NVL(p_source_15,'
25169 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
25170 p_source_114 IS NULL AND 
25171 NVL(p_source_97,'
25172 ') =  'CASH' AND 
25173 NVL(p_source_122,'
25174 ') <>  'R' AND 
25175 NVL(p_source_123,'
25176 ') <>  'PAYMENTCARD'
25177  THEN 
25178 
25179    --
25180    XLA_AE_LINES_PKG.SetNewLine;
25181 
25182    p_balance_type_code          := l_balance_type_code;
25183    -- set the flag so later we will know whether the gain loss line needs to be created
25184    
25185    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25186      p_actual_flag :='A';
25187    END IF;
25188 
25189    --
25190    -- bulk performance
25191    --
25192    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25193                                       p_header_num   => 0); -- 4262811
25194    --
25195    -- set accounting line options
25196    --
25197    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25198            p_natural_side_code          => 'C'
25199          , p_gain_or_loss_flag          => 'N'
25200          , p_gl_transfer_mode_code      => 'S'
25201          , p_acct_entry_type_code       => 'A'
25202          , p_switch_side_flag           => 'Y'
25203          , p_merge_duplicate_code       => 'A'
25204          );
25205    --
25206    l_acc_rev_natural_side_code := 'D';  -- 4262811
25207    -- 
25208    --
25209    -- set accounting line type info
25210    --
25211    xla_ae_lines_pkg.SetAcctLineType
25212       (p_component_type             => l_component_type
25213       ,p_event_type_code            => l_event_type_code
25214       ,p_line_definition_owner_code => l_line_definition_owner_code
25215       ,p_line_definition_code       => l_line_definition_code
25216       ,p_accounting_line_code       => l_component_code
25217       ,p_accounting_line_type_code  => l_component_type_code
25218       ,p_accounting_line_appl_id    => l_component_appl_id
25219       ,p_amb_context_code           => l_amb_context_code
25220       ,p_entity_code                => l_entity_code
25221       ,p_event_class_code           => l_event_class_code);
25222    --
25223    -- set accounting class
25224    --
25225    xla_ae_lines_pkg.SetAcctClass(
25226            p_accounting_class_code  => 'CASH_CLEARING'
25227          , p_ae_header_id           => l_ae_header_id
25228          );
25229 
25230    --
25231    -- set rounding class
25232    --
25233    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25234                       'CASH_CLEARING';
25235 
25236    --
25237    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25238    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25239    --
25240    -- bulk performance
25241    --
25242    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25243 
25244    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25245       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25246 
25247    -- 4955764
25248    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25249       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25250 
25251    -- 4458381 Public Sector Enh
25252    
25253    --
25254    -- set accounting attributes for the line type
25255    --
25256    l_entered_amt_idx := 10;
25257    l_accted_amt_idx  := 15;
25258    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
25259    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25260    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
25261    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
25262    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
25263    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
25264    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
25265    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25266    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
25267    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
25268    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
25272    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
25269    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
25270    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
25271    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25273    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25274    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
25275    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25276    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
25277    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
25278    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
25279    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
25280    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
25281    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
25282    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
25283    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
25284    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
25285    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
25286    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
25287    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
25288    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
25289    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
25290    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
25291    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
25292    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
25293    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
25294    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
25295    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
25296    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
25297    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
25298    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
25299    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
25300    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
25301    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
25302    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
25303    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
25304    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
25305    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
25306    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
25307 
25308    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25309    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25310 
25311    ---------------------------------------------------------------------------------------------------------------
25312    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25313    ---------------------------------------------------------------------------------------------------------------
25314    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25315 
25316    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25317    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25318 
25319    IF xla_accounting_cache_pkg.GetValueChar
25320          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25321          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25322    AND l_bflow_method_code = 'PRIOR_ENTRY'
25323 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25324    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25325          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25326        )
25327    THEN
25328          xla_ae_lines_pkg.BflowUpgEntry
25329            (p_business_method_code    => l_bflow_method_code
25330            ,p_business_class_code     => l_bflow_class_code
25331            ,p_balance_type            => l_balance_type_code);
25332    ELSE
25333       NULL;
25334 XLA_AE_LINES_PKG.business_flow_validation(
25335                                 p_business_method_code     => l_bflow_method_code
25336                                ,p_business_class_code      => l_bflow_class_code
25337                                ,p_inherit_description_flag => l_inherit_desc_flag);
25338    END IF;
25339 
25340    --
25341    -- call analytical criteria
25342    --
25343    
25344 
25345 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
25346 xla_ae_lines_pkg.SetAnalyticalCriteria(
25347    p_analytical_criterion_name    => 'Check Id'
25348  , p_analytical_criterion_owner   => 'S'
25349  , p_analytical_criterion_code    => 'CHECK_ID'
25350  , p_amb_context_code             => 'DEFAULT'
25351  , p_balancing_flag               => 'N'
25352  
25353  , p_analytical_detail_char_1    =>  NULL
25354  , p_analytical_detail_num_1     =>  p_source_112
25355  , p_analytical_detail_date_1    =>  NULL
25356 
25357  , p_ae_header_id                 => l_ae_header_id
25358 )
25359 ;
25360 --
25361 
25362    --
25363    -- call description
25364    --
25365    -- No description or it is inherited.
25366    --
25367    -- call ADRs
25368    -- Bug 4922099
25369    --
25370    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25371         (NVL(l_actual_upg_option, 'N') = 'O') OR
25372         (NVL(l_enc_upg_option, 'N') = 'O')
25376    --
25373       )
25374    THEN
25375    NULL;
25377    --
25378    
25379    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25380      p_code_combination_id      => TO_NUMBER(C_NUM)
25381    , p_value_type_code          => NULL
25382    , p_transaction_coa_id       => null
25383    , p_accounting_coa_id        => null
25384    , p_adr_code                 => NULL
25385    , p_adr_type_code            => NULL
25386    , p_component_type           => l_component_type
25387    , p_component_code           => l_component_code
25388    , p_component_type_code      => l_component_type_code
25389    , p_component_appl_id        => l_component_appl_id
25390    , p_amb_context_code         => l_amb_context_code
25391    , p_side                     => NULL
25392    );
25393 
25394    
25395   -- initialise segments
25396   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25397   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25398   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25399   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25400   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25401   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25402   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25403   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25404   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25405   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25406   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25407   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25408   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25409   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25410   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25411   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25412   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25413   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25414   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25415   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25416   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25417   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25418   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25419   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25420   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25421   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25422   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25423   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25424   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25425   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25426   --
25427 
25428    --
25429 
25430 
25431    l_segment := AcctDerRule_16(
25432            p_application_id           => p_application_id
25433          , p_ae_header_id             => l_ae_header_id 
25434 , p_source_35 => p_source_35
25435          , x_transaction_coa_id       => l_adr_transaction_coa_id
25436          , x_accounting_coa_id        => l_adr_accounting_coa_id
25437          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25438          , x_flex_value_set_id        => l_adr_flex_value_set_id
25439          , x_value_type_code          => l_adr_value_type_code
25440          , x_value_combination_id     => l_adr_value_combination_id
25441          , x_value_segment_code       => l_adr_value_segment_code
25442          , p_side                     => 'NA'
25443          , p_override_seg_flag        => 'Y'
25444    );
25445 
25446    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25447 
25448       xla_ae_lines_pkg.set_segment(
25449           p_to_segment_code         => 'GL_ACCOUNT'
25450         , p_segment_value           => l_segment
25451         , p_from_segment_code       => l_adr_value_segment_code
25452         , p_from_combination_id     => l_adr_value_combination_id
25453         , p_value_type_code         => l_adr_value_type_code
25454         , p_transaction_coa_id      => l_adr_transaction_coa_id
25455         , p_accounting_coa_id       => l_adr_accounting_coa_id
25456         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25457         , p_flex_value_set_id       => l_adr_flex_value_set_id
25458         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25459         , p_adr_type_code           => 'S'
25460         , p_component_type          => l_component_type
25461         , p_component_code          => l_component_code
25462         , p_component_type_code     => l_component_type_code
25463         , p_component_appl_id       => l_component_appl_id
25464         , p_amb_context_code        => l_amb_context_code
25465         , p_entity_code             => 'AP_PAYMENTS'
25469 
25466         , p_event_class_code        => 'PAYMENTS'
25467         , p_side                    => 'NA'
25468         );
25470   END IF;
25471 
25472    --
25473    --
25474    END IF;
25475    --
25476    -- Bug 4922099
25477    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25478           (NVL(l_enc_upg_option, 'N') = 'O')
25479         ) AND
25480         (l_bflow_method_code = 'PRIOR_ENTRY')
25481       )
25482    THEN
25483       IF
25484       --
25485       1 = 2
25486       --
25487       THEN
25488       xla_accounting_err_pkg.build_message
25489                                     (p_appli_s_name            => 'XLA'
25490                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25491                                     ,p_token_1                 => 'LINE_NUMBER'
25492                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25493                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25494                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25495                                                                              l_component_type
25496                                                                             ,l_component_code
25497                                                                             ,l_component_type_code
25498                                                                             ,l_component_appl_id
25499                                                                             ,l_amb_context_code
25500                                                                             ,l_entity_code
25501                                                                             ,l_event_class_code
25502                                                                            )
25503                                     ,p_token_3                 => 'OWNER'
25504                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25505                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25506                                                                           ,p_lookup_code    => l_component_type_code
25507                                                                          )
25508                                     ,p_token_4                 => 'PRODUCT_NAME'
25509                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25510                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25511                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25512                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25513                                     ,p_ae_header_id            =>  NULL
25514                                        );
25515 
25516         IF (C_LEVEL_ERROR>= g_log_level) THEN
25517                  trace
25518                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25519                       ,p_level    => C_LEVEL_ERROR
25520                       ,p_module   => l_log_module);
25521         END IF;
25522       END IF;
25523    END IF;
25524    --
25525    --
25526    ------------------------------------------------------------------------------------------------
25527    -- 4219869 Business Flow
25528    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25529    -- Prior Entry.  Currently, the following code is always generated.
25530    ------------------------------------------------------------------------------------------------
25531    XLA_AE_LINES_PKG.ValidateCurrentLine;
25532 
25533    ------------------------------------------------------------------------------------
25534    -- 4219869 Business Flow
25535    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25536    ------------------------------------------------------------------------------------
25537    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25538 
25539    ----------------------------------------------------------------------------------
25540    -- 4219869 Business Flow
25541    -- Update journal entry status -- Need to generate this within IF <condition>
25542    ----------------------------------------------------------------------------------
25543    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25544          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25545          ,p_balance_type_code => l_balance_type_code
25546          );
25547 
25548    -------------------------------------------------------------------------------------------
25549    -- 4262811 - Generate the Accrual Reversal lines
25550    -------------------------------------------------------------------------------------------
25551    BEGIN
25552       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25553                               (g_array_event(p_event_id).array_value_num('header_index'));
25554       IF l_acc_rev_flag IS NULL THEN
25555          l_acc_rev_flag := 'N';
25556       END IF;
25557    EXCEPTION
25558       WHEN OTHERS THEN
25559          l_acc_rev_flag := 'N';
25560    END;
25561    --
25562    IF (l_acc_rev_flag = 'Y') THEN
25563 
25564        -- 4645092  ------------------------------------------------------------------------------
25568 
25565        -- To allow MPA report to determine if it should generate report process
25566        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25567        ------------------------------------------------------------------------------------------
25569        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25570        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25571    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25572    -- call ADRs
25573    -- Bug 4922099
25574    --
25575    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25576         (NVL(l_actual_upg_option, 'N') = 'O') OR
25577         (NVL(l_enc_upg_option, 'N') = 'O')
25578       )
25579    THEN
25580    NULL;
25581    --
25582    --
25583    
25584    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25585      p_code_combination_id      => TO_NUMBER(C_NUM)
25586    , p_value_type_code          => NULL
25587    , p_transaction_coa_id       => null
25588    , p_accounting_coa_id        => null
25589    , p_adr_code                 => NULL
25590    , p_adr_type_code            => NULL
25591    , p_component_type           => l_component_type
25592    , p_component_code           => l_component_code
25593    , p_component_type_code      => l_component_type_code
25594    , p_component_appl_id        => l_component_appl_id
25595    , p_amb_context_code         => l_amb_context_code
25596    , p_side                     => NULL
25597    );
25598 
25599    
25600   -- initialise segments
25601   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25602   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25603   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25604   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25605   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25606   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25607   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25608   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25609   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25610   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25611   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25612   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25613   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25614   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25615   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25616   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25617   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25618   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25619   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25620   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25621   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25622   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25623   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25624   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25625   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25626   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25627   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25628   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25629   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25630   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25631   --
25632 
25633    --
25634 
25635 
25636    l_segment := AcctDerRule_16(
25637            p_application_id           => p_application_id
25638          , p_ae_header_id             => l_ae_header_id 
25639 , p_source_35 => p_source_35
25640          , x_transaction_coa_id       => l_adr_transaction_coa_id
25641          , x_accounting_coa_id        => l_adr_accounting_coa_id
25642          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25643          , x_flex_value_set_id        => l_adr_flex_value_set_id
25644          , x_value_type_code          => l_adr_value_type_code
25645          , x_value_combination_id     => l_adr_value_combination_id
25646          , x_value_segment_code       => l_adr_value_segment_code
25647          , p_side                     => 'NA'
25648          , p_override_seg_flag        => 'Y'
25649    );
25650 
25651    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25652 
25653       xla_ae_lines_pkg.set_segment(
25654           p_to_segment_code         => 'GL_ACCOUNT'
25655         , p_segment_value           => l_segment
25656         , p_from_segment_code       => l_adr_value_segment_code
25657         , p_from_combination_id     => l_adr_value_combination_id
25658         , p_value_type_code         => l_adr_value_type_code
25662         , p_flex_value_set_id       => l_adr_flex_value_set_id
25659         , p_transaction_coa_id      => l_adr_transaction_coa_id
25660         , p_accounting_coa_id       => l_adr_accounting_coa_id
25661         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25663         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25664         , p_adr_type_code           => 'S'
25665         , p_component_type          => l_component_type
25666         , p_component_code          => l_component_code
25667         , p_component_type_code     => l_component_type_code
25668         , p_component_appl_id       => l_component_appl_id
25669         , p_amb_context_code        => l_amb_context_code
25670         , p_entity_code             => 'AP_PAYMENTS'
25671         , p_event_class_code        => 'PAYMENTS'
25672         , p_side                    => 'NA'
25673         );
25674 
25675   END IF;
25676 
25677    --
25678    --
25679    END IF;
25680 
25681        --
25682        -- Update the line information that should be overwritten
25683        --
25684        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25685                                          p_header_num   => 1);
25686        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25687 
25688        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25689 
25690        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25691           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25692        END IF;
25693 
25694       --
25695       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25696       --
25697       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25698           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25699       ELSE
25700           ---------------------------------------------------------------------------------------------------
25701           -- 4262811a Switch Sign
25702           ---------------------------------------------------------------------------------------------------
25703           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25704           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25705                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25706           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25707                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25708           -- 5132302
25709           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25710                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25711 
25712       END IF;
25713 
25714       -- 4955764
25715       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25716       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25717 
25718 
25719       XLA_AE_LINES_PKG.ValidateCurrentLine;
25720       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25721 
25722       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25723                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25724                ,p_balance_type_code => l_balance_type_code);
25725 
25726    END IF;
25727 
25728    -----------------------------------------------------------------------------------------
25729    -- 4262811 Multiperiod Accounting
25730    -----------------------------------------------------------------------------------------
25731      -- No MPA option is assigned.
25732 
25733 
25734 END IF;
25735 END IF;
25736 --
25737 
25738 --
25739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25740    trace
25741       (p_msg      => 'END of AcctLineType_69'
25742       ,p_level    => C_LEVEL_PROCEDURE
25743       ,p_module   => l_log_module);
25744 END IF;
25745 --
25746 EXCEPTION
25747   WHEN xla_exceptions_pkg.application_exception THEN
25748       RAISE;
25749   WHEN OTHERS THEN
25750        xla_exceptions_pkg.raise_message
25751            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_69');
25752 END AcctLineType_69;
25753 --
25754 
25755 ---------------------------------------
25756 --
25757 -- PRIVATE FUNCTION
25758 --         AcctLineType_70
25759 --
25760 ---------------------------------------
25761 PROCEDURE AcctLineType_70 (
25762   p_application_id        IN NUMBER
25763  ,p_event_id              IN NUMBER
25764  ,p_calculate_acctd_flag  IN VARCHAR2
25765  ,p_calculate_g_l_flag    IN VARCHAR2
25766  ,p_actual_flag           IN OUT VARCHAR2
25767  ,p_balance_type_code     OUT VARCHAR2
25768  ,p_gain_or_loss_ref      OUT VARCHAR2
25769  
25770 --Payment Currency Code
25771  , p_source_13            IN VARCHAR2
25772 --Automatic Offsets Value
25773  , p_source_15            IN VARCHAR2
25774  , p_source_15_meaning    IN VARCHAR2
25775 --Bank Cash Clearing Account
25776  , p_source_35            IN NUMBER
25777 --Accounting Reversal Indicator
25778  , p_source_52            IN VARCHAR2
25779 --Distribution Link Type
25780  , p_source_54            IN VARCHAR2
25784 --Third Party Type
25781 --Override Accounted Amount Indicator
25782  , p_source_79            IN VARCHAR2
25783  , p_source_79_meaning    IN VARCHAR2
25785  , p_source_82            IN VARCHAR2
25786 --Invoice Distribution Tax Line Identifier
25787  , p_source_85            IN NUMBER
25788 --Invoice Distribution Tax Distribution Identifier from Tax
25789  , p_source_86            IN NUMBER
25790 --Invoice Distribution Summary Tax Line Identifier
25791  , p_source_87            IN NUMBER
25792 --Business Flow Accounts Payable Application Identifier
25793  , p_source_90            IN NUMBER
25794 --Business Flow Invoice Distribution Type
25795  , p_source_91            IN VARCHAR2
25796 --Business Flow Invoice Entity Code
25797  , p_source_92            IN VARCHAR2
25798 --Business Flow Invoice Distribution Identifier
25799  , p_source_93            IN NUMBER
25800 --Business Flow Invoice Identifier
25801  , p_source_94            IN NUMBER
25802 --When to Account for Payment Option
25803  , p_source_96            IN VARCHAR2
25804 --Payment Distribution Type
25805  , p_source_97            IN VARCHAR2
25806  , p_source_97_meaning    IN VARCHAR2
25807 --Payment Distribution Amount
25808  , p_source_98            IN NUMBER
25809 --Payment Distribution Identifier
25810  , p_source_103            IN NUMBER
25811 --Payment Supplier Identifier
25812  , p_source_109            IN NUMBER
25813 --Payment Supplier Site Identifier
25814  , p_source_110            IN NUMBER
25815 --Payment Distribution Reversed Identifier
25816  , p_source_111            IN NUMBER
25817 --Payment Identifier
25818  , p_source_112            IN NUMBER
25819 --Pooled Bank Account Option
25820  , p_source_113            IN VARCHAR2
25821  , p_source_113_meaning    IN VARCHAR2
25822 --Payment Maturity Date
25823  , p_source_114            IN DATE
25824 --Payment Distribution (Payment Rate) Ledger Amount
25825  , p_source_115            IN NUMBER
25826 --Payment Exchange Date
25827  , p_source_117            IN DATE
25828 --Payment Exchange Rate
25829  , p_source_118            IN NUMBER
25830 --Payment Exchange Rate Type
25831  , p_source_119            IN VARCHAR2
25832 --Payment Type
25833  , p_source_122            IN VARCHAR2
25834  , p_source_122_meaning    IN VARCHAR2
25835 --Payment Processing Type
25836  , p_source_123            IN VARCHAR2
25837 --Invoice Distribution Amount of the Payment Distribution
25838  , p_source_124            IN NUMBER
25839 )
25840 IS
25841 
25842 l_component_type              VARCHAR2(80);
25843 l_component_code              VARCHAR2(30);
25844 l_component_type_code         VARCHAR2(1);
25845 l_component_appl_id           INTEGER;
25846 l_amb_context_code            VARCHAR2(30);
25847 l_entity_code                 VARCHAR2(30);
25848 l_event_class_code            VARCHAR2(30);
25849 l_ae_header_id                NUMBER;
25850 l_event_type_code             VARCHAR2(30);
25851 l_line_definition_code        VARCHAR2(30);
25852 l_line_definition_owner_code  VARCHAR2(1);
25853 --
25854 -- adr variables
25855 l_segment                     VARCHAR2(30);
25856 l_ccid                        NUMBER;
25857 l_adr_transaction_coa_id      NUMBER;
25858 l_adr_accounting_coa_id       NUMBER;
25859 l_adr_flexfield_segment_code  VARCHAR2(30);
25860 l_adr_flex_value_set_id       NUMBER;
25861 l_adr_value_type_code         VARCHAR2(30);
25862 l_adr_value_combination_id    NUMBER;
25863 l_adr_value_segment_code      VARCHAR2(30);
25864 
25865 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25866 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25867 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25868 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25869 
25870 -- 4262811 Variables ------------------------------------------------------------------------------------------
25871 l_entered_amt_idx             NUMBER;
25872 l_accted_amt_idx              NUMBER;
25873 l_acc_rev_flag                VARCHAR2(1);
25874 l_accrual_line_num            NUMBER;
25875 l_tmp_amt                     NUMBER;
25876 l_acc_rev_natural_side_code   VARCHAR2(1);
25877 
25878 l_num_entries                 NUMBER;
25879 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25880 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25881 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25882 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25883 l_recog_line_1                NUMBER;
25884 l_recog_line_2                NUMBER;
25885 
25886 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25887 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25888 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25889 
25890 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25891 
25892 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25893 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25894 
25895 ---------------------------------------------------------------------------------------------------------------
25896 
25897 
25898 --
25899 -- bulk performance
25900 --
25901 l_balance_type_code           VARCHAR2(1);
25902 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25903 l_log_module                  VARCHAR2(240);
25904 
25908 l_actual_upg_option           VARCHAR2(1);
25905 --
25906 -- Upgrade strategy
25907 --
25909 l_enc_upg_option           VARCHAR2(1);
25910 
25911 --
25912 BEGIN
25913 --
25914 IF g_log_enabled THEN
25915       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
25916 END IF;
25917 --
25918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25919 
25920       trace
25921          (p_msg      => 'BEGIN of AcctLineType_70'
25922          ,p_level    => C_LEVEL_PROCEDURE
25923          ,p_module   => l_log_module);
25924 
25925 END IF;
25926 --
25927 l_component_type             := 'AMB_JLT';
25928 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
25929 l_component_type_code        := 'S';
25930 l_component_appl_id          :=  200;
25931 l_amb_context_code           := 'DEFAULT';
25932 l_entity_code                := 'AP_PAYMENTS';
25933 l_event_class_code           := 'PAYMENTS';
25934 l_event_type_code            := 'PAYMENTS_ALL';
25935 l_line_definition_owner_code := 'S';
25936 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
25937 --
25938 l_balance_type_code          := 'A';
25939 l_segment                     := NULL;
25940 l_ccid                        := NULL;
25941 l_adr_transaction_coa_id      := NULL;
25942 l_adr_accounting_coa_id       := NULL;
25943 l_adr_flexfield_segment_code  := NULL;
25944 l_adr_flex_value_set_id       := NULL;
25945 l_adr_value_type_code         := NULL;
25946 l_adr_value_combination_id    := NULL;
25947 l_adr_value_segment_code      := NULL;
25948 
25949 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25950 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25951 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25952 l_budgetary_control_flag     := 'N';
25953 
25954 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25955 l_bflow_applied_to_amt       := NULL; -- 5132302
25956 l_entered_amt_idx            := NULL;          -- 4262811
25957 l_accted_amt_idx             := NULL;          -- 4262811
25958 l_acc_rev_flag               := NULL;          -- 4262811
25959 l_accrual_line_num           := NULL;          -- 4262811
25960 l_tmp_amt                    := NULL;          -- 4262811
25961 --
25962  
25963 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25964     l_balance_type_code <> 'B' THEN
25965 IF NVL(p_source_96,'
25966 ') =  'ALWAYS_ALWAYS' AND 
25967 (NVL(p_source_113,'
25968 ') =  'Y' AND 
25969 NVL(p_source_15,'
25970 ') =  'BALANCING_SEGMENT') AND 
25971 p_source_114 IS NULL AND 
25972 NVL(p_source_97,'
25973 ') =  'CASH' AND 
25974 NVL(p_source_122,'
25975 ') <>  'R' AND 
25976 NVL(p_source_123,'
25977 ') <>  'PAYMENTCARD'
25978  THEN 
25979 
25980    --
25981    XLA_AE_LINES_PKG.SetNewLine;
25982 
25983    p_balance_type_code          := l_balance_type_code;
25984    -- set the flag so later we will know whether the gain loss line needs to be created
25985    
25986    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25987      p_actual_flag :='A';
25988    END IF;
25989 
25990    --
25991    -- bulk performance
25992    --
25993    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25994                                       p_header_num   => 0); -- 4262811
25995    --
25996    -- set accounting line options
25997    --
25998    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25999            p_natural_side_code          => 'C'
26000          , p_gain_or_loss_flag          => 'N'
26001          , p_gl_transfer_mode_code      => 'S'
26002          , p_acct_entry_type_code       => 'A'
26003          , p_switch_side_flag           => 'Y'
26004          , p_merge_duplicate_code       => 'A'
26005          );
26006    --
26007    l_acc_rev_natural_side_code := 'D';  -- 4262811
26008    -- 
26009    --
26010    -- set accounting line type info
26011    --
26012    xla_ae_lines_pkg.SetAcctLineType
26013       (p_component_type             => l_component_type
26014       ,p_event_type_code            => l_event_type_code
26015       ,p_line_definition_owner_code => l_line_definition_owner_code
26016       ,p_line_definition_code       => l_line_definition_code
26017       ,p_accounting_line_code       => l_component_code
26018       ,p_accounting_line_type_code  => l_component_type_code
26019       ,p_accounting_line_appl_id    => l_component_appl_id
26020       ,p_amb_context_code           => l_amb_context_code
26021       ,p_entity_code                => l_entity_code
26022       ,p_event_class_code           => l_event_class_code);
26023    --
26024    -- set accounting class
26025    --
26026    xla_ae_lines_pkg.SetAcctClass(
26027            p_accounting_class_code  => 'CASH_CLEARING'
26028          , p_ae_header_id           => l_ae_header_id
26029          );
26030 
26031    --
26032    -- set rounding class
26033    --
26034    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26035                       'CASH_CLEARING';
26036 
26037    --
26038    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26039    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26040    --
26041    -- bulk performance
26042    --
26046       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26043    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26044 
26045    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26047 
26048    -- 4955764
26049    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26050       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26051 
26052    -- 4458381 Public Sector Enh
26053    
26054    --
26055    -- set accounting attributes for the line type
26056    --
26057    l_entered_amt_idx := 10;
26058    l_accted_amt_idx  := 15;
26059    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26060    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26061    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
26062    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26063    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
26064    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26065    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
26066    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26067    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
26068    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26069    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
26070    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26071    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
26072    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26073    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
26074    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26075    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
26076    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26077    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
26078    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26079    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
26080    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26081    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
26082    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26083    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
26084    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26085    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
26086    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26087    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
26088    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26089    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
26090    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26091    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
26092    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26093    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
26094    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26095    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
26096    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26097    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
26098    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26099    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
26100    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26101    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
26102    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26103    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
26104    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26105    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
26106    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26107    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
26108 
26109    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26110    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26111 
26112    ---------------------------------------------------------------------------------------------------------------
26113    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26114    ---------------------------------------------------------------------------------------------------------------
26115    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26116 
26117    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26118    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26119 
26120    IF xla_accounting_cache_pkg.GetValueChar
26121          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26122          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26123    AND l_bflow_method_code = 'PRIOR_ENTRY'
26124 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26125    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26126          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26127        )
26128    THEN
26129          xla_ae_lines_pkg.BflowUpgEntry
26130            (p_business_method_code    => l_bflow_method_code
26131            ,p_business_class_code     => l_bflow_class_code
26132            ,p_balance_type            => l_balance_type_code);
26133    ELSE
26134       NULL;
26138                                ,p_inherit_description_flag => l_inherit_desc_flag);
26135 XLA_AE_LINES_PKG.business_flow_validation(
26136                                 p_business_method_code     => l_bflow_method_code
26137                                ,p_business_class_code      => l_bflow_class_code
26139    END IF;
26140 
26141    --
26142    -- call analytical criteria
26143    --
26144    
26145 
26146 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
26147 xla_ae_lines_pkg.SetAnalyticalCriteria(
26148    p_analytical_criterion_name    => 'Check Id'
26149  , p_analytical_criterion_owner   => 'S'
26150  , p_analytical_criterion_code    => 'CHECK_ID'
26151  , p_amb_context_code             => 'DEFAULT'
26152  , p_balancing_flag               => 'N'
26153  
26154  , p_analytical_detail_char_1    =>  NULL
26155  , p_analytical_detail_num_1     =>  p_source_112
26156  , p_analytical_detail_date_1    =>  NULL
26157 
26158  , p_ae_header_id                 => l_ae_header_id
26159 )
26160 ;
26161 --
26162 
26163    --
26164    -- call description
26165    --
26166    -- No description or it is inherited.
26167    --
26168    -- call ADRs
26169    -- Bug 4922099
26170    --
26171    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26172         (NVL(l_actual_upg_option, 'N') = 'O') OR
26173         (NVL(l_enc_upg_option, 'N') = 'O')
26174       )
26175    THEN
26176    NULL;
26177    --
26178    --
26179    
26180   l_ccid := AcctDerRule_35(
26181            p_application_id           => p_application_id
26182          , p_ae_header_id             => l_ae_header_id 
26183 , p_source_35 => p_source_35
26184          , x_transaction_coa_id       => l_adr_transaction_coa_id
26185          , x_accounting_coa_id        => l_adr_accounting_coa_id
26186          , x_value_type_code          => l_adr_value_type_code
26187          , p_side                     => 'NA'
26188    );
26189 
26190    xla_ae_lines_pkg.set_ccid(
26191     p_code_combination_id          => l_ccid
26192   , p_value_type_code              => l_adr_value_type_code
26193   , p_transaction_coa_id           => l_adr_transaction_coa_id
26194   , p_accounting_coa_id            => l_adr_accounting_coa_id
26195   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26196   , p_adr_type_code                => 'S'
26197   , p_component_type               => l_component_type
26198   , p_component_code               => l_component_code
26199   , p_component_type_code          => l_component_type_code
26200   , p_component_appl_id            => l_component_appl_id
26201   , p_amb_context_code             => l_amb_context_code
26202   , p_side                         => 'NA'
26203   );
26204 
26205 
26206    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
26207      p_to_segment_code         => 'GL_BALANCING'
26208    , p_segment_value           => C_CHAR
26209    , p_from_segment_code       => NULL
26210    , p_from_combination_id     => NULL
26211    , p_value_type_code         => NULL
26212    , p_transaction_coa_id      => null
26213    , p_accounting_coa_id       => null
26214    , p_flexfield_segment_code  => NULL
26215    , p_flex_value_set_id       => NULL
26216    , p_adr_code                => NULL
26217    , p_adr_type_code           => NULL
26218    , p_component_type          => l_component_type
26219    , p_component_code          => l_component_code
26220    , p_component_type_code     => l_component_type_code
26221    , p_component_appl_id       => l_component_appl_id
26222    , p_amb_context_code        => l_amb_context_code
26223    , p_entity_code             => 'AP_PAYMENTS'
26224    , p_event_class_code        => 'PAYMENTS'
26225    , p_side                    => 'NA'
26226    );
26227    --
26228 
26229 
26230    --
26231    --
26232    END IF;
26233    --
26234    -- Bug 4922099
26235    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26236           (NVL(l_enc_upg_option, 'N') = 'O')
26237         ) AND
26238         (l_bflow_method_code = 'PRIOR_ENTRY')
26239       )
26240    THEN
26241       IF
26242       --
26243       1 = 2
26244       --
26245       THEN
26246       xla_accounting_err_pkg.build_message
26247                                     (p_appli_s_name            => 'XLA'
26248                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26249                                     ,p_token_1                 => 'LINE_NUMBER'
26250                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26251                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26252                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26253                                                                              l_component_type
26254                                                                             ,l_component_code
26255                                                                             ,l_component_type_code
26256                                                                             ,l_component_appl_id
26257                                                                             ,l_amb_context_code
26258                                                                             ,l_entity_code
26262                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26259                                                                             ,l_event_class_code
26260                                                                            )
26261                                     ,p_token_3                 => 'OWNER'
26263                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26264                                                                           ,p_lookup_code    => l_component_type_code
26265                                                                          )
26266                                     ,p_token_4                 => 'PRODUCT_NAME'
26267                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26268                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26269                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26270                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26271                                     ,p_ae_header_id            =>  NULL
26272                                        );
26273 
26274         IF (C_LEVEL_ERROR>= g_log_level) THEN
26275                  trace
26276                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26277                       ,p_level    => C_LEVEL_ERROR
26278                       ,p_module   => l_log_module);
26279         END IF;
26280       END IF;
26281    END IF;
26282    --
26283    --
26284    ------------------------------------------------------------------------------------------------
26285    -- 4219869 Business Flow
26286    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26287    -- Prior Entry.  Currently, the following code is always generated.
26288    ------------------------------------------------------------------------------------------------
26289    XLA_AE_LINES_PKG.ValidateCurrentLine;
26290 
26291    ------------------------------------------------------------------------------------
26292    -- 4219869 Business Flow
26293    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26294    ------------------------------------------------------------------------------------
26295    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26296 
26297    ----------------------------------------------------------------------------------
26298    -- 4219869 Business Flow
26299    -- Update journal entry status -- Need to generate this within IF <condition>
26300    ----------------------------------------------------------------------------------
26301    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26302          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26303          ,p_balance_type_code => l_balance_type_code
26304          );
26305 
26306    -------------------------------------------------------------------------------------------
26307    -- 4262811 - Generate the Accrual Reversal lines
26308    -------------------------------------------------------------------------------------------
26309    BEGIN
26310       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26311                               (g_array_event(p_event_id).array_value_num('header_index'));
26312       IF l_acc_rev_flag IS NULL THEN
26313          l_acc_rev_flag := 'N';
26314       END IF;
26315    EXCEPTION
26316       WHEN OTHERS THEN
26317          l_acc_rev_flag := 'N';
26318    END;
26319    --
26320    IF (l_acc_rev_flag = 'Y') THEN
26321 
26322        -- 4645092  ------------------------------------------------------------------------------
26323        -- To allow MPA report to determine if it should generate report process
26324        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26325        ------------------------------------------------------------------------------------------
26326 
26327        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26328        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26329    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26330    -- call ADRs
26331    -- Bug 4922099
26332    --
26333    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26334         (NVL(l_actual_upg_option, 'N') = 'O') OR
26335         (NVL(l_enc_upg_option, 'N') = 'O')
26336       )
26337    THEN
26338    NULL;
26339    --
26340    --
26341    
26342   l_ccid := AcctDerRule_35(
26343            p_application_id           => p_application_id
26344          , p_ae_header_id             => l_ae_header_id 
26345 , p_source_35 => p_source_35
26346          , x_transaction_coa_id       => l_adr_transaction_coa_id
26347          , x_accounting_coa_id        => l_adr_accounting_coa_id
26348          , x_value_type_code          => l_adr_value_type_code
26349          , p_side                     => 'NA'
26350    );
26351 
26352    xla_ae_lines_pkg.set_ccid(
26353     p_code_combination_id          => l_ccid
26354   , p_value_type_code              => l_adr_value_type_code
26355   , p_transaction_coa_id           => l_adr_transaction_coa_id
26356   , p_accounting_coa_id            => l_adr_accounting_coa_id
26357   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26358   , p_adr_type_code                => 'S'
26362   , p_component_appl_id            => l_component_appl_id
26359   , p_component_type               => l_component_type
26360   , p_component_code               => l_component_code
26361   , p_component_type_code          => l_component_type_code
26363   , p_amb_context_code             => l_amb_context_code
26364   , p_side                         => 'NA'
26365   );
26366 
26367 
26368    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
26369      p_to_segment_code         => 'GL_BALANCING'
26370    , p_segment_value           => C_CHAR
26371    , p_from_segment_code       => NULL
26372    , p_from_combination_id     => NULL
26373    , p_value_type_code         => NULL
26374    , p_transaction_coa_id      => null
26375    , p_accounting_coa_id       => null
26376    , p_flexfield_segment_code  => NULL
26377    , p_flex_value_set_id       => NULL
26378    , p_adr_code                => NULL
26379    , p_adr_type_code           => NULL
26380    , p_component_type          => l_component_type
26381    , p_component_code          => l_component_code
26382    , p_component_type_code     => l_component_type_code
26383    , p_component_appl_id       => l_component_appl_id
26384    , p_amb_context_code        => l_amb_context_code
26385    , p_entity_code             => 'AP_PAYMENTS'
26386    , p_event_class_code        => 'PAYMENTS'
26387    , p_side                    => 'NA'
26388    );
26389    --
26390 
26391 
26392    --
26393    --
26394    END IF;
26395 
26396        --
26397        -- Update the line information that should be overwritten
26398        --
26399        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26400                                          p_header_num   => 1);
26401        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26402 
26403        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26404 
26405        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26406           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26407        END IF;
26408 
26409       --
26410       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26411       --
26412       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26413           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26414       ELSE
26415           ---------------------------------------------------------------------------------------------------
26416           -- 4262811a Switch Sign
26417           ---------------------------------------------------------------------------------------------------
26418           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26419           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26420                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26421           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26422                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26423           -- 5132302
26424           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26425                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26426 
26427       END IF;
26428 
26429       -- 4955764
26430       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26431       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26432 
26433 
26434       XLA_AE_LINES_PKG.ValidateCurrentLine;
26435       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26436 
26437       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26438                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26439                ,p_balance_type_code => l_balance_type_code);
26440 
26441    END IF;
26442 
26443    -----------------------------------------------------------------------------------------
26444    -- 4262811 Multiperiod Accounting
26445    -----------------------------------------------------------------------------------------
26446      -- No MPA option is assigned.
26447 
26448 
26449 END IF;
26450 END IF;
26451 --
26452 
26453 --
26454 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26455    trace
26456       (p_msg      => 'END of AcctLineType_70'
26457       ,p_level    => C_LEVEL_PROCEDURE
26458       ,p_module   => l_log_module);
26459 END IF;
26460 --
26461 EXCEPTION
26462   WHEN xla_exceptions_pkg.application_exception THEN
26463       RAISE;
26464   WHEN OTHERS THEN
26465        xla_exceptions_pkg.raise_message
26466            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_70');
26467 END AcctLineType_70;
26468 --
26469 
26470 ---------------------------------------
26471 --
26472 -- PRIVATE FUNCTION
26473 --         AcctLineType_71
26474 --
26475 ---------------------------------------
26476 PROCEDURE AcctLineType_71 (
26477   p_application_id        IN NUMBER
26478  ,p_event_id              IN NUMBER
26479  ,p_calculate_acctd_flag  IN VARCHAR2
26480  ,p_calculate_g_l_flag    IN VARCHAR2
26481  ,p_actual_flag           IN OUT VARCHAR2
26485 --Payment Currency Code
26482  ,p_balance_type_code     OUT VARCHAR2
26483  ,p_gain_or_loss_ref      OUT VARCHAR2
26484  
26486  , p_source_13            IN VARCHAR2
26487 --Automatic Offsets Value
26488  , p_source_15            IN VARCHAR2
26489  , p_source_15_meaning    IN VARCHAR2
26490 --Bank Cash Clearing Account
26491  , p_source_35            IN NUMBER
26492 --Accounting Reversal Indicator
26493  , p_source_52            IN VARCHAR2
26494 --Distribution Link Type
26495  , p_source_54            IN VARCHAR2
26496 --Override Accounted Amount Indicator
26497  , p_source_79            IN VARCHAR2
26498  , p_source_79_meaning    IN VARCHAR2
26499 --Third Party Type
26500  , p_source_82            IN VARCHAR2
26501 --Invoice Distribution Tax Line Identifier
26502  , p_source_85            IN NUMBER
26503 --Invoice Distribution Tax Distribution Identifier from Tax
26504  , p_source_86            IN NUMBER
26505 --Invoice Distribution Summary Tax Line Identifier
26506  , p_source_87            IN NUMBER
26507 --Business Flow Accounts Payable Application Identifier
26508  , p_source_90            IN NUMBER
26509 --Business Flow Invoice Distribution Type
26510  , p_source_91            IN VARCHAR2
26511 --Business Flow Invoice Entity Code
26512  , p_source_92            IN VARCHAR2
26513 --Business Flow Invoice Distribution Identifier
26514  , p_source_93            IN NUMBER
26515 --Business Flow Invoice Identifier
26516  , p_source_94            IN NUMBER
26517 --When to Account for Payment Option
26518  , p_source_96            IN VARCHAR2
26519 --Payment Distribution Type
26520  , p_source_97            IN VARCHAR2
26521  , p_source_97_meaning    IN VARCHAR2
26522 --Payment Distribution Amount
26523  , p_source_98            IN NUMBER
26524 --Payment Distribution Identifier
26525  , p_source_103            IN NUMBER
26526 --Payment Supplier Identifier
26527  , p_source_109            IN NUMBER
26528 --Payment Supplier Site Identifier
26529  , p_source_110            IN NUMBER
26530 --Payment Distribution Reversed Identifier
26531  , p_source_111            IN NUMBER
26532 --Payment Identifier
26533  , p_source_112            IN NUMBER
26534 --Pooled Bank Account Option
26535  , p_source_113            IN VARCHAR2
26536  , p_source_113_meaning    IN VARCHAR2
26537 --Payment Maturity Date
26538  , p_source_114            IN DATE
26539 --Payment Distribution (Invoice Rate) Ledger Amount
26540  , p_source_116            IN NUMBER
26541 --Payment Exchange Date
26542  , p_source_117            IN DATE
26543 --Payment Exchange Rate
26544  , p_source_118            IN NUMBER
26545 --Payment Exchange Rate Type
26546  , p_source_119            IN VARCHAR2
26547 --Payment Type
26548  , p_source_122            IN VARCHAR2
26549  , p_source_122_meaning    IN VARCHAR2
26550 --Payment Processing Type
26551  , p_source_123            IN VARCHAR2
26552 --Invoice Distribution Amount of the Payment Distribution
26553  , p_source_124            IN NUMBER
26554 )
26555 IS
26556 
26557 l_component_type              VARCHAR2(80);
26558 l_component_code              VARCHAR2(30);
26559 l_component_type_code         VARCHAR2(1);
26560 l_component_appl_id           INTEGER;
26561 l_amb_context_code            VARCHAR2(30);
26562 l_entity_code                 VARCHAR2(30);
26563 l_event_class_code            VARCHAR2(30);
26564 l_ae_header_id                NUMBER;
26565 l_event_type_code             VARCHAR2(30);
26566 l_line_definition_code        VARCHAR2(30);
26567 l_line_definition_owner_code  VARCHAR2(1);
26568 --
26569 -- adr variables
26570 l_segment                     VARCHAR2(30);
26571 l_ccid                        NUMBER;
26572 l_adr_transaction_coa_id      NUMBER;
26573 l_adr_accounting_coa_id       NUMBER;
26574 l_adr_flexfield_segment_code  VARCHAR2(30);
26575 l_adr_flex_value_set_id       NUMBER;
26576 l_adr_value_type_code         VARCHAR2(30);
26577 l_adr_value_combination_id    NUMBER;
26578 l_adr_value_segment_code      VARCHAR2(30);
26579 
26580 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26581 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26582 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26583 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26584 
26585 -- 4262811 Variables ------------------------------------------------------------------------------------------
26586 l_entered_amt_idx             NUMBER;
26587 l_accted_amt_idx              NUMBER;
26588 l_acc_rev_flag                VARCHAR2(1);
26589 l_accrual_line_num            NUMBER;
26590 l_tmp_amt                     NUMBER;
26591 l_acc_rev_natural_side_code   VARCHAR2(1);
26592 
26593 l_num_entries                 NUMBER;
26594 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26595 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26596 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26597 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26598 l_recog_line_1                NUMBER;
26599 l_recog_line_2                NUMBER;
26600 
26601 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26602 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26603 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26604 
26605 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26606 
26610 ---------------------------------------------------------------------------------------------------------------
26607 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26608 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26609 
26611 
26612 
26613 --
26614 -- bulk performance
26615 --
26616 l_balance_type_code           VARCHAR2(1);
26617 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26618 l_log_module                  VARCHAR2(240);
26619 
26620 --
26621 -- Upgrade strategy
26622 --
26623 l_actual_upg_option           VARCHAR2(1);
26624 l_enc_upg_option           VARCHAR2(1);
26625 
26626 --
26627 BEGIN
26628 --
26629 IF g_log_enabled THEN
26630       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
26631 END IF;
26632 --
26633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26634 
26635       trace
26636          (p_msg      => 'BEGIN of AcctLineType_71'
26637          ,p_level    => C_LEVEL_PROCEDURE
26638          ,p_module   => l_log_module);
26639 
26640 END IF;
26641 --
26642 l_component_type             := 'AMB_JLT';
26643 l_component_code             := 'AP_CASH_CLEAR_PMT_AS_INVXRATE';
26644 l_component_type_code        := 'S';
26645 l_component_appl_id          :=  200;
26646 l_amb_context_code           := 'DEFAULT';
26647 l_entity_code                := 'AP_PAYMENTS';
26648 l_event_class_code           := 'PAYMENTS';
26649 l_event_type_code            := 'PAYMENTS_ALL';
26650 l_line_definition_owner_code := 'S';
26651 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
26652 --
26653 l_balance_type_code          := 'A';
26654 l_segment                     := NULL;
26655 l_ccid                        := NULL;
26656 l_adr_transaction_coa_id      := NULL;
26657 l_adr_accounting_coa_id       := NULL;
26658 l_adr_flexfield_segment_code  := NULL;
26659 l_adr_flex_value_set_id       := NULL;
26660 l_adr_value_type_code         := NULL;
26661 l_adr_value_combination_id    := NULL;
26662 l_adr_value_segment_code      := NULL;
26663 
26664 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26665 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26666 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26667 l_budgetary_control_flag     := 'N';
26668 
26669 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26670 l_bflow_applied_to_amt       := NULL; -- 5132302
26671 l_entered_amt_idx            := NULL;          -- 4262811
26672 l_accted_amt_idx             := NULL;          -- 4262811
26673 l_acc_rev_flag               := NULL;          -- 4262811
26674 l_accrual_line_num           := NULL;          -- 4262811
26675 l_tmp_amt                    := NULL;          -- 4262811
26676 --
26677  
26678 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26679     l_balance_type_code <> 'B' THEN
26680 IF NVL(p_source_96,'
26681 ') =  'ALWAYS_CLEAR' AND 
26682 (NVL(p_source_113,'
26683 ') =  'Y' AND 
26684 NVL(p_source_15,'
26685 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
26686 p_source_114 IS NULL AND 
26687 NVL(p_source_97,'
26688 ') =  'CASH' AND 
26689 NVL(p_source_122,'
26690 ') <>  'R' AND 
26691 NVL(p_source_123,'
26692 ') <>  'PAYMENTCARD'
26693  THEN 
26694 
26695    --
26696    XLA_AE_LINES_PKG.SetNewLine;
26697 
26698    p_balance_type_code          := l_balance_type_code;
26699    -- set the flag so later we will know whether the gain loss line needs to be created
26700    
26701    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26702      p_actual_flag :='A';
26703    END IF;
26704 
26705    --
26706    -- bulk performance
26707    --
26708    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26709                                       p_header_num   => 0); -- 4262811
26710    --
26711    -- set accounting line options
26712    --
26713    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26714            p_natural_side_code          => 'C'
26715          , p_gain_or_loss_flag          => 'N'
26716          , p_gl_transfer_mode_code      => 'S'
26717          , p_acct_entry_type_code       => 'A'
26718          , p_switch_side_flag           => 'Y'
26719          , p_merge_duplicate_code       => 'A'
26720          );
26721    --
26722    l_acc_rev_natural_side_code := 'D';  -- 4262811
26723    -- 
26724    --
26725    -- set accounting line type info
26726    --
26727    xla_ae_lines_pkg.SetAcctLineType
26728       (p_component_type             => l_component_type
26729       ,p_event_type_code            => l_event_type_code
26730       ,p_line_definition_owner_code => l_line_definition_owner_code
26731       ,p_line_definition_code       => l_line_definition_code
26732       ,p_accounting_line_code       => l_component_code
26733       ,p_accounting_line_type_code  => l_component_type_code
26734       ,p_accounting_line_appl_id    => l_component_appl_id
26735       ,p_amb_context_code           => l_amb_context_code
26736       ,p_entity_code                => l_entity_code
26737       ,p_event_class_code           => l_event_class_code);
26738    --
26739    -- set accounting class
26740    --
26741    xla_ae_lines_pkg.SetAcctClass(
26742            p_accounting_class_code  => 'CASH_CLEARING'
26743          , p_ae_header_id           => l_ae_header_id
26747    -- set rounding class
26744          );
26745 
26746    --
26748    --
26749    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26750                       'CASH_CLEARING';
26751 
26752    --
26753    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26754    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26755    --
26756    -- bulk performance
26757    --
26758    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26759 
26760    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26761       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26762 
26763    -- 4955764
26764    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26765       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26766 
26767    -- 4458381 Public Sector Enh
26768    
26769    --
26770    -- set accounting attributes for the line type
26771    --
26772    l_entered_amt_idx := 10;
26773    l_accted_amt_idx  := 15;
26774    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26775    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26776    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
26777    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26778    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
26779    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26780    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
26781    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26782    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
26783    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26784    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
26785    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26786    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
26787    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26788    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
26789    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26790    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
26791    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26792    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
26793    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26794    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
26795    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26796    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
26797    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26798    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
26799    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26800    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
26801    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26802    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
26803    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26804    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
26805    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26806    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
26807    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26808    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
26809    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26810    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
26811    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26812    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
26813    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26814    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
26815    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26816    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
26817    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26818    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
26819    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26820    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
26821    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26822    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
26823 
26824    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26825    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26826 
26827    ---------------------------------------------------------------------------------------------------------------
26828    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26829    ---------------------------------------------------------------------------------------------------------------
26830    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26831 
26832    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26833    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26834 
26835    IF xla_accounting_cache_pkg.GetValueChar
26836          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26837          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26838    AND l_bflow_method_code = 'PRIOR_ENTRY'
26842        )
26839 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26840    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26841          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26843    THEN
26844          xla_ae_lines_pkg.BflowUpgEntry
26845            (p_business_method_code    => l_bflow_method_code
26846            ,p_business_class_code     => l_bflow_class_code
26847            ,p_balance_type            => l_balance_type_code);
26848    ELSE
26849       NULL;
26850 XLA_AE_LINES_PKG.business_flow_validation(
26851                                 p_business_method_code     => l_bflow_method_code
26852                                ,p_business_class_code      => l_bflow_class_code
26853                                ,p_inherit_description_flag => l_inherit_desc_flag);
26854    END IF;
26855 
26856    --
26857    -- call analytical criteria
26858    --
26859    
26860 
26861 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
26862 xla_ae_lines_pkg.SetAnalyticalCriteria(
26863    p_analytical_criterion_name    => 'Check Id'
26864  , p_analytical_criterion_owner   => 'S'
26865  , p_analytical_criterion_code    => 'CHECK_ID'
26866  , p_amb_context_code             => 'DEFAULT'
26867  , p_balancing_flag               => 'N'
26868  
26869  , p_analytical_detail_char_1    =>  NULL
26870  , p_analytical_detail_num_1     =>  p_source_112
26871  , p_analytical_detail_date_1    =>  NULL
26872 
26873  , p_ae_header_id                 => l_ae_header_id
26874 )
26875 ;
26876 --
26877 
26878    --
26879    -- call description
26880    --
26881    -- No description or it is inherited.
26882    --
26883    -- call ADRs
26884    -- Bug 4922099
26885    --
26886    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26887         (NVL(l_actual_upg_option, 'N') = 'O') OR
26888         (NVL(l_enc_upg_option, 'N') = 'O')
26889       )
26890    THEN
26891    NULL;
26892    --
26893    --
26894    
26895    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26896      p_code_combination_id      => TO_NUMBER(C_NUM)
26897    , p_value_type_code          => NULL
26898    , p_transaction_coa_id       => null
26899    , p_accounting_coa_id        => null
26900    , p_adr_code                 => NULL
26901    , p_adr_type_code            => NULL
26902    , p_component_type           => l_component_type
26903    , p_component_code           => l_component_code
26904    , p_component_type_code      => l_component_type_code
26905    , p_component_appl_id        => l_component_appl_id
26906    , p_amb_context_code         => l_amb_context_code
26907    , p_side                     => NULL
26908    );
26909 
26910    
26911   -- initialise segments
26912   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26913   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26914   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26915   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26916   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26917   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26918   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26919   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26920   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26921   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26922   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26923   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26924   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26925   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26926   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26927   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26928   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26929   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26930   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26931   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26932   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26933   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26934   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26935   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26936   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26937   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26938   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26939   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26940   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26941   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26942   --
26943 
26944    --
26945 
26946 
26950 , p_source_35 => p_source_35
26947    l_segment := AcctDerRule_16(
26948            p_application_id           => p_application_id
26949          , p_ae_header_id             => l_ae_header_id 
26951          , x_transaction_coa_id       => l_adr_transaction_coa_id
26952          , x_accounting_coa_id        => l_adr_accounting_coa_id
26953          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26954          , x_flex_value_set_id        => l_adr_flex_value_set_id
26955          , x_value_type_code          => l_adr_value_type_code
26956          , x_value_combination_id     => l_adr_value_combination_id
26957          , x_value_segment_code       => l_adr_value_segment_code
26958          , p_side                     => 'NA'
26959          , p_override_seg_flag        => 'Y'
26960    );
26961 
26962    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26963 
26964       xla_ae_lines_pkg.set_segment(
26965           p_to_segment_code         => 'GL_ACCOUNT'
26966         , p_segment_value           => l_segment
26967         , p_from_segment_code       => l_adr_value_segment_code
26968         , p_from_combination_id     => l_adr_value_combination_id
26969         , p_value_type_code         => l_adr_value_type_code
26970         , p_transaction_coa_id      => l_adr_transaction_coa_id
26971         , p_accounting_coa_id       => l_adr_accounting_coa_id
26972         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26973         , p_flex_value_set_id       => l_adr_flex_value_set_id
26974         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26975         , p_adr_type_code           => 'S'
26976         , p_component_type          => l_component_type
26977         , p_component_code          => l_component_code
26978         , p_component_type_code     => l_component_type_code
26979         , p_component_appl_id       => l_component_appl_id
26980         , p_amb_context_code        => l_amb_context_code
26981         , p_entity_code             => 'AP_PAYMENTS'
26982         , p_event_class_code        => 'PAYMENTS'
26983         , p_side                    => 'NA'
26984         );
26985 
26986   END IF;
26987 
26988    --
26989    --
26990    END IF;
26991    --
26992    -- Bug 4922099
26993    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26994           (NVL(l_enc_upg_option, 'N') = 'O')
26995         ) AND
26996         (l_bflow_method_code = 'PRIOR_ENTRY')
26997       )
26998    THEN
26999       IF
27000       --
27001       1 = 2
27002       --
27003       THEN
27004       xla_accounting_err_pkg.build_message
27005                                     (p_appli_s_name            => 'XLA'
27006                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27007                                     ,p_token_1                 => 'LINE_NUMBER'
27008                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27009                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27010                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27011                                                                              l_component_type
27012                                                                             ,l_component_code
27013                                                                             ,l_component_type_code
27014                                                                             ,l_component_appl_id
27015                                                                             ,l_amb_context_code
27016                                                                             ,l_entity_code
27017                                                                             ,l_event_class_code
27018                                                                            )
27019                                     ,p_token_3                 => 'OWNER'
27020                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27021                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27022                                                                           ,p_lookup_code    => l_component_type_code
27023                                                                          )
27024                                     ,p_token_4                 => 'PRODUCT_NAME'
27025                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27026                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27027                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27028                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27029                                     ,p_ae_header_id            =>  NULL
27030                                        );
27031 
27032         IF (C_LEVEL_ERROR>= g_log_level) THEN
27033                  trace
27034                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27035                       ,p_level    => C_LEVEL_ERROR
27036                       ,p_module   => l_log_module);
27037         END IF;
27038       END IF;
27039    END IF;
27040    --
27041    --
27042    ------------------------------------------------------------------------------------------------
27043    -- 4219869 Business Flow
27047    XLA_AE_LINES_PKG.ValidateCurrentLine;
27044    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27045    -- Prior Entry.  Currently, the following code is always generated.
27046    ------------------------------------------------------------------------------------------------
27048 
27049    ------------------------------------------------------------------------------------
27050    -- 4219869 Business Flow
27051    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27052    ------------------------------------------------------------------------------------
27053    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27054 
27055    ----------------------------------------------------------------------------------
27056    -- 4219869 Business Flow
27057    -- Update journal entry status -- Need to generate this within IF <condition>
27058    ----------------------------------------------------------------------------------
27059    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27060          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27061          ,p_balance_type_code => l_balance_type_code
27062          );
27063 
27064    -------------------------------------------------------------------------------------------
27065    -- 4262811 - Generate the Accrual Reversal lines
27066    -------------------------------------------------------------------------------------------
27067    BEGIN
27068       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27069                               (g_array_event(p_event_id).array_value_num('header_index'));
27070       IF l_acc_rev_flag IS NULL THEN
27071          l_acc_rev_flag := 'N';
27072       END IF;
27073    EXCEPTION
27074       WHEN OTHERS THEN
27075          l_acc_rev_flag := 'N';
27076    END;
27077    --
27078    IF (l_acc_rev_flag = 'Y') THEN
27079 
27080        -- 4645092  ------------------------------------------------------------------------------
27081        -- To allow MPA report to determine if it should generate report process
27082        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27083        ------------------------------------------------------------------------------------------
27084 
27085        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27086        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27087    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27088    -- call ADRs
27089    -- Bug 4922099
27090    --
27091    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27092         (NVL(l_actual_upg_option, 'N') = 'O') OR
27093         (NVL(l_enc_upg_option, 'N') = 'O')
27094       )
27095    THEN
27096    NULL;
27097    --
27098    --
27099    
27100    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
27101      p_code_combination_id      => TO_NUMBER(C_NUM)
27102    , p_value_type_code          => NULL
27103    , p_transaction_coa_id       => null
27104    , p_accounting_coa_id        => null
27105    , p_adr_code                 => NULL
27106    , p_adr_type_code            => NULL
27107    , p_component_type           => l_component_type
27108    , p_component_code           => l_component_code
27109    , p_component_type_code      => l_component_type_code
27110    , p_component_appl_id        => l_component_appl_id
27111    , p_amb_context_code         => l_amb_context_code
27112    , p_side                     => NULL
27113    );
27114 
27115    
27116   -- initialise segments
27117   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27118   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27119   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27120   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27121   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27122   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27123   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27124   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27125   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27126   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27127   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27128   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27129   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27130   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27131   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27132   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27133   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27134   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27135   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27136   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27137   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27138   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27139   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27143   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27140   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27141   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27142   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27144   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27145   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27146   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27147   --
27148 
27149    --
27150 
27151 
27152    l_segment := AcctDerRule_16(
27153            p_application_id           => p_application_id
27154          , p_ae_header_id             => l_ae_header_id 
27155 , p_source_35 => p_source_35
27156          , x_transaction_coa_id       => l_adr_transaction_coa_id
27157          , x_accounting_coa_id        => l_adr_accounting_coa_id
27158          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27159          , x_flex_value_set_id        => l_adr_flex_value_set_id
27160          , x_value_type_code          => l_adr_value_type_code
27161          , x_value_combination_id     => l_adr_value_combination_id
27162          , x_value_segment_code       => l_adr_value_segment_code
27163          , p_side                     => 'NA'
27164          , p_override_seg_flag        => 'Y'
27165    );
27166 
27167    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27168 
27169       xla_ae_lines_pkg.set_segment(
27170           p_to_segment_code         => 'GL_ACCOUNT'
27171         , p_segment_value           => l_segment
27172         , p_from_segment_code       => l_adr_value_segment_code
27173         , p_from_combination_id     => l_adr_value_combination_id
27174         , p_value_type_code         => l_adr_value_type_code
27175         , p_transaction_coa_id      => l_adr_transaction_coa_id
27176         , p_accounting_coa_id       => l_adr_accounting_coa_id
27177         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27178         , p_flex_value_set_id       => l_adr_flex_value_set_id
27179         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27180         , p_adr_type_code           => 'S'
27181         , p_component_type          => l_component_type
27182         , p_component_code          => l_component_code
27183         , p_component_type_code     => l_component_type_code
27184         , p_component_appl_id       => l_component_appl_id
27185         , p_amb_context_code        => l_amb_context_code
27186         , p_entity_code             => 'AP_PAYMENTS'
27187         , p_event_class_code        => 'PAYMENTS'
27188         , p_side                    => 'NA'
27189         );
27190 
27191   END IF;
27192 
27193    --
27194    --
27195    END IF;
27196 
27197        --
27198        -- Update the line information that should be overwritten
27199        --
27200        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27201                                          p_header_num   => 1);
27202        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27203 
27204        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27205 
27206        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27207           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27208        END IF;
27209 
27210       --
27211       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27212       --
27213       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27214           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27215       ELSE
27216           ---------------------------------------------------------------------------------------------------
27217           -- 4262811a Switch Sign
27218           ---------------------------------------------------------------------------------------------------
27219           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27220           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27221                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27222           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27223                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27224           -- 5132302
27225           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27226                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27227 
27228       END IF;
27229 
27230       -- 4955764
27231       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27232       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27233 
27234 
27235       XLA_AE_LINES_PKG.ValidateCurrentLine;
27236       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27237 
27238       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27239                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27240                ,p_balance_type_code => l_balance_type_code);
27241 
27242    END IF;
27243 
27247      -- No MPA option is assigned.
27244    -----------------------------------------------------------------------------------------
27245    -- 4262811 Multiperiod Accounting
27246    -----------------------------------------------------------------------------------------
27248 
27249 
27250 END IF;
27251 END IF;
27252 --
27253 
27254 --
27255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27256    trace
27257       (p_msg      => 'END of AcctLineType_71'
27258       ,p_level    => C_LEVEL_PROCEDURE
27259       ,p_module   => l_log_module);
27260 END IF;
27261 --
27262 EXCEPTION
27263   WHEN xla_exceptions_pkg.application_exception THEN
27264       RAISE;
27265   WHEN OTHERS THEN
27266        xla_exceptions_pkg.raise_message
27267            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_71');
27268 END AcctLineType_71;
27269 --
27270 
27271 ---------------------------------------
27272 --
27273 -- PRIVATE FUNCTION
27274 --         AcctLineType_72
27275 --
27276 ---------------------------------------
27277 PROCEDURE AcctLineType_72 (
27278   p_application_id        IN NUMBER
27279  ,p_event_id              IN NUMBER
27280  ,p_calculate_acctd_flag  IN VARCHAR2
27281  ,p_calculate_g_l_flag    IN VARCHAR2
27282  ,p_actual_flag           IN OUT VARCHAR2
27283  ,p_balance_type_code     OUT VARCHAR2
27284  ,p_gain_or_loss_ref      OUT VARCHAR2
27285  
27286 --Payment Currency Code
27287  , p_source_13            IN VARCHAR2
27288 --Automatic Offsets Value
27289  , p_source_15            IN VARCHAR2
27290  , p_source_15_meaning    IN VARCHAR2
27291 --Bank Cash Clearing Account
27292  , p_source_35            IN NUMBER
27293 --Accounting Reversal Indicator
27294  , p_source_52            IN VARCHAR2
27295 --Distribution Link Type
27296  , p_source_54            IN VARCHAR2
27297 --Override Accounted Amount Indicator
27298  , p_source_79            IN VARCHAR2
27299  , p_source_79_meaning    IN VARCHAR2
27300 --Third Party Type
27301  , p_source_82            IN VARCHAR2
27302 --Invoice Distribution Tax Line Identifier
27303  , p_source_85            IN NUMBER
27304 --Invoice Distribution Tax Distribution Identifier from Tax
27305  , p_source_86            IN NUMBER
27306 --Invoice Distribution Summary Tax Line Identifier
27307  , p_source_87            IN NUMBER
27308 --Business Flow Accounts Payable Application Identifier
27309  , p_source_90            IN NUMBER
27310 --Business Flow Invoice Distribution Type
27311  , p_source_91            IN VARCHAR2
27312 --Business Flow Invoice Entity Code
27313  , p_source_92            IN VARCHAR2
27314 --Business Flow Invoice Distribution Identifier
27315  , p_source_93            IN NUMBER
27316 --Business Flow Invoice Identifier
27317  , p_source_94            IN NUMBER
27318 --When to Account for Payment Option
27319  , p_source_96            IN VARCHAR2
27320 --Payment Distribution Type
27321  , p_source_97            IN VARCHAR2
27322  , p_source_97_meaning    IN VARCHAR2
27323 --Payment Distribution Amount
27324  , p_source_98            IN NUMBER
27325 --Payment Distribution Identifier
27326  , p_source_103            IN NUMBER
27327 --Payment Supplier Identifier
27328  , p_source_109            IN NUMBER
27329 --Payment Supplier Site Identifier
27330  , p_source_110            IN NUMBER
27331 --Payment Distribution Reversed Identifier
27332  , p_source_111            IN NUMBER
27333 --Payment Identifier
27334  , p_source_112            IN NUMBER
27335 --Pooled Bank Account Option
27336  , p_source_113            IN VARCHAR2
27337  , p_source_113_meaning    IN VARCHAR2
27338 --Payment Maturity Date
27339  , p_source_114            IN DATE
27340 --Payment Distribution (Invoice Rate) Ledger Amount
27341  , p_source_116            IN NUMBER
27342 --Payment Exchange Date
27343  , p_source_117            IN DATE
27344 --Payment Exchange Rate
27345  , p_source_118            IN NUMBER
27346 --Payment Exchange Rate Type
27347  , p_source_119            IN VARCHAR2
27348 --Payment Type
27349  , p_source_122            IN VARCHAR2
27350  , p_source_122_meaning    IN VARCHAR2
27351 --Payment Processing Type
27352  , p_source_123            IN VARCHAR2
27353 --Invoice Distribution Amount of the Payment Distribution
27354  , p_source_124            IN NUMBER
27355 )
27356 IS
27357 
27358 l_component_type              VARCHAR2(80);
27359 l_component_code              VARCHAR2(30);
27360 l_component_type_code         VARCHAR2(1);
27361 l_component_appl_id           INTEGER;
27362 l_amb_context_code            VARCHAR2(30);
27363 l_entity_code                 VARCHAR2(30);
27364 l_event_class_code            VARCHAR2(30);
27365 l_ae_header_id                NUMBER;
27366 l_event_type_code             VARCHAR2(30);
27367 l_line_definition_code        VARCHAR2(30);
27368 l_line_definition_owner_code  VARCHAR2(1);
27369 --
27370 -- adr variables
27371 l_segment                     VARCHAR2(30);
27372 l_ccid                        NUMBER;
27373 l_adr_transaction_coa_id      NUMBER;
27374 l_adr_accounting_coa_id       NUMBER;
27375 l_adr_flexfield_segment_code  VARCHAR2(30);
27376 l_adr_flex_value_set_id       NUMBER;
27377 l_adr_value_type_code         VARCHAR2(30);
27378 l_adr_value_combination_id    NUMBER;
27379 l_adr_value_segment_code      VARCHAR2(30);
27380 
27381 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27385 
27382 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27383 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27384 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27386 -- 4262811 Variables ------------------------------------------------------------------------------------------
27387 l_entered_amt_idx             NUMBER;
27388 l_accted_amt_idx              NUMBER;
27389 l_acc_rev_flag                VARCHAR2(1);
27390 l_accrual_line_num            NUMBER;
27391 l_tmp_amt                     NUMBER;
27392 l_acc_rev_natural_side_code   VARCHAR2(1);
27393 
27394 l_num_entries                 NUMBER;
27395 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27396 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27397 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27398 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27399 l_recog_line_1                NUMBER;
27400 l_recog_line_2                NUMBER;
27401 
27402 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27403 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27404 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27405 
27406 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27407 
27408 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27409 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27410 
27411 ---------------------------------------------------------------------------------------------------------------
27412 
27413 
27414 --
27415 -- bulk performance
27416 --
27417 l_balance_type_code           VARCHAR2(1);
27418 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27419 l_log_module                  VARCHAR2(240);
27420 
27421 --
27422 -- Upgrade strategy
27423 --
27424 l_actual_upg_option           VARCHAR2(1);
27425 l_enc_upg_option           VARCHAR2(1);
27426 
27427 --
27428 BEGIN
27429 --
27430 IF g_log_enabled THEN
27431       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
27432 END IF;
27433 --
27434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27435 
27436       trace
27437          (p_msg      => 'BEGIN of AcctLineType_72'
27438          ,p_level    => C_LEVEL_PROCEDURE
27439          ,p_module   => l_log_module);
27440 
27441 END IF;
27442 --
27443 l_component_type             := 'AMB_JLT';
27444 l_component_code             := 'AP_CASH_CLEAR_PMT_BS_INVXRATE';
27445 l_component_type_code        := 'S';
27446 l_component_appl_id          :=  200;
27447 l_amb_context_code           := 'DEFAULT';
27448 l_entity_code                := 'AP_PAYMENTS';
27449 l_event_class_code           := 'PAYMENTS';
27450 l_event_type_code            := 'PAYMENTS_ALL';
27451 l_line_definition_owner_code := 'S';
27452 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
27453 --
27454 l_balance_type_code          := 'A';
27455 l_segment                     := NULL;
27456 l_ccid                        := NULL;
27457 l_adr_transaction_coa_id      := NULL;
27458 l_adr_accounting_coa_id       := NULL;
27459 l_adr_flexfield_segment_code  := NULL;
27460 l_adr_flex_value_set_id       := NULL;
27461 l_adr_value_type_code         := NULL;
27462 l_adr_value_combination_id    := NULL;
27463 l_adr_value_segment_code      := NULL;
27464 
27465 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
27466 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
27467 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27468 l_budgetary_control_flag     := 'N';
27469 
27470 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27471 l_bflow_applied_to_amt       := NULL; -- 5132302
27472 l_entered_amt_idx            := NULL;          -- 4262811
27473 l_accted_amt_idx             := NULL;          -- 4262811
27474 l_acc_rev_flag               := NULL;          -- 4262811
27475 l_accrual_line_num           := NULL;          -- 4262811
27476 l_tmp_amt                    := NULL;          -- 4262811
27477 --
27478  
27479 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27480     l_balance_type_code <> 'B' THEN
27481 IF NVL(p_source_96,'
27482 ') =  'ALWAYS_CLEAR' AND 
27483 (NVL(p_source_113,'
27484 ') =  'Y' AND 
27485 NVL(p_source_15,'
27486 ') =  'BALANCING_SEGMENT') AND 
27487 p_source_114 IS NULL AND 
27488 NVL(p_source_97,'
27489 ') =  'CASH' AND 
27490 NVL(p_source_122,'
27491 ') <>  'R' AND 
27492 NVL(p_source_123,'
27493 ') <>  'PAYMENTCARD'
27494  THEN 
27495 
27496    --
27497    XLA_AE_LINES_PKG.SetNewLine;
27498 
27499    p_balance_type_code          := l_balance_type_code;
27500    -- set the flag so later we will know whether the gain loss line needs to be created
27501    
27502    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27503      p_actual_flag :='A';
27504    END IF;
27505 
27506    --
27507    -- bulk performance
27508    --
27509    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27510                                       p_header_num   => 0); -- 4262811
27511    --
27512    -- set accounting line options
27513    --
27514    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27515            p_natural_side_code          => 'C'
27519          , p_switch_side_flag           => 'Y'
27516          , p_gain_or_loss_flag          => 'N'
27517          , p_gl_transfer_mode_code      => 'S'
27518          , p_acct_entry_type_code       => 'A'
27520          , p_merge_duplicate_code       => 'A'
27521          );
27522    --
27523    l_acc_rev_natural_side_code := 'D';  -- 4262811
27524    -- 
27525    --
27526    -- set accounting line type info
27527    --
27528    xla_ae_lines_pkg.SetAcctLineType
27529       (p_component_type             => l_component_type
27530       ,p_event_type_code            => l_event_type_code
27531       ,p_line_definition_owner_code => l_line_definition_owner_code
27532       ,p_line_definition_code       => l_line_definition_code
27533       ,p_accounting_line_code       => l_component_code
27534       ,p_accounting_line_type_code  => l_component_type_code
27535       ,p_accounting_line_appl_id    => l_component_appl_id
27536       ,p_amb_context_code           => l_amb_context_code
27537       ,p_entity_code                => l_entity_code
27538       ,p_event_class_code           => l_event_class_code);
27539    --
27540    -- set accounting class
27541    --
27542    xla_ae_lines_pkg.SetAcctClass(
27543            p_accounting_class_code  => 'CASH_CLEARING'
27544          , p_ae_header_id           => l_ae_header_id
27545          );
27546 
27547    --
27548    -- set rounding class
27549    --
27550    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27551                       'CASH_CLEARING';
27552 
27553    --
27554    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27555    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27556    --
27557    -- bulk performance
27558    --
27559    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27560 
27561    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27562       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27563 
27564    -- 4955764
27565    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27566       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27567 
27568    -- 4458381 Public Sector Enh
27569    
27570    --
27571    -- set accounting attributes for the line type
27572    --
27573    l_entered_amt_idx := 10;
27574    l_accted_amt_idx  := 15;
27575    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27576    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27577    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
27578    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27579    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
27580    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27581    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
27582    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27583    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
27584    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27585    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
27586    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27587    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
27588    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27589    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
27590    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27591    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
27592    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27593    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
27594    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27595    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
27596    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27597    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
27598    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27599    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
27600    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27601    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
27602    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27603    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
27604    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27605    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
27606    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27607    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
27608    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27609    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
27610    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27611    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
27612    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27613    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
27614    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27615    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
27616    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27617    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
27621    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
27618    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27619    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
27620    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27622    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27623    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
27624 
27625    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27626    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27627 
27628    ---------------------------------------------------------------------------------------------------------------
27629    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27630    ---------------------------------------------------------------------------------------------------------------
27631    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27632 
27633    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27634    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27635 
27636    IF xla_accounting_cache_pkg.GetValueChar
27637          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27638          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27639    AND l_bflow_method_code = 'PRIOR_ENTRY'
27640 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27641    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27642          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27643        )
27644    THEN
27645          xla_ae_lines_pkg.BflowUpgEntry
27646            (p_business_method_code    => l_bflow_method_code
27647            ,p_business_class_code     => l_bflow_class_code
27648            ,p_balance_type            => l_balance_type_code);
27649    ELSE
27650       NULL;
27651 XLA_AE_LINES_PKG.business_flow_validation(
27652                                 p_business_method_code     => l_bflow_method_code
27653                                ,p_business_class_code      => l_bflow_class_code
27654                                ,p_inherit_description_flag => l_inherit_desc_flag);
27655    END IF;
27656 
27657    --
27658    -- call analytical criteria
27659    --
27660    
27661 
27662 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
27663 xla_ae_lines_pkg.SetAnalyticalCriteria(
27664    p_analytical_criterion_name    => 'Check Id'
27665  , p_analytical_criterion_owner   => 'S'
27666  , p_analytical_criterion_code    => 'CHECK_ID'
27667  , p_amb_context_code             => 'DEFAULT'
27668  , p_balancing_flag               => 'N'
27669  
27670  , p_analytical_detail_char_1    =>  NULL
27671  , p_analytical_detail_num_1     =>  p_source_112
27672  , p_analytical_detail_date_1    =>  NULL
27673 
27674  , p_ae_header_id                 => l_ae_header_id
27675 )
27676 ;
27677 --
27678 
27679    --
27680    -- call description
27681    --
27682    -- No description or it is inherited.
27683    --
27684    -- call ADRs
27685    -- Bug 4922099
27686    --
27687    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27688         (NVL(l_actual_upg_option, 'N') = 'O') OR
27689         (NVL(l_enc_upg_option, 'N') = 'O')
27690       )
27691    THEN
27692    NULL;
27693    --
27694    --
27695    
27696   l_ccid := AcctDerRule_35(
27697            p_application_id           => p_application_id
27698          , p_ae_header_id             => l_ae_header_id 
27699 , p_source_35 => p_source_35
27700          , x_transaction_coa_id       => l_adr_transaction_coa_id
27701          , x_accounting_coa_id        => l_adr_accounting_coa_id
27702          , x_value_type_code          => l_adr_value_type_code
27703          , p_side                     => 'NA'
27704    );
27705 
27706    xla_ae_lines_pkg.set_ccid(
27707     p_code_combination_id          => l_ccid
27708   , p_value_type_code              => l_adr_value_type_code
27709   , p_transaction_coa_id           => l_adr_transaction_coa_id
27710   , p_accounting_coa_id            => l_adr_accounting_coa_id
27711   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27712   , p_adr_type_code                => 'S'
27713   , p_component_type               => l_component_type
27714   , p_component_code               => l_component_code
27715   , p_component_type_code          => l_component_type_code
27716   , p_component_appl_id            => l_component_appl_id
27717   , p_amb_context_code             => l_amb_context_code
27718   , p_side                         => 'NA'
27719   );
27720 
27721 
27722    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27723      p_to_segment_code         => 'GL_BALANCING'
27724    , p_segment_value           => C_CHAR
27725    , p_from_segment_code       => NULL
27726    , p_from_combination_id     => NULL
27727    , p_value_type_code         => NULL
27728    , p_transaction_coa_id      => null
27729    , p_accounting_coa_id       => null
27730    , p_flexfield_segment_code  => NULL
27731    , p_flex_value_set_id       => NULL
27732    , p_adr_code                => NULL
27733    , p_adr_type_code           => NULL
27734    , p_component_type          => l_component_type
27735    , p_component_code          => l_component_code
27739    , p_entity_code             => 'AP_PAYMENTS'
27736    , p_component_type_code     => l_component_type_code
27737    , p_component_appl_id       => l_component_appl_id
27738    , p_amb_context_code        => l_amb_context_code
27740    , p_event_class_code        => 'PAYMENTS'
27741    , p_side                    => 'NA'
27742    );
27743    --
27744 
27745 
27746    --
27747    --
27748    END IF;
27749    --
27750    -- Bug 4922099
27751    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27752           (NVL(l_enc_upg_option, 'N') = 'O')
27753         ) AND
27754         (l_bflow_method_code = 'PRIOR_ENTRY')
27755       )
27756    THEN
27757       IF
27758       --
27759       1 = 2
27760       --
27761       THEN
27762       xla_accounting_err_pkg.build_message
27763                                     (p_appli_s_name            => 'XLA'
27764                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27765                                     ,p_token_1                 => 'LINE_NUMBER'
27766                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27767                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27768                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27769                                                                              l_component_type
27770                                                                             ,l_component_code
27771                                                                             ,l_component_type_code
27772                                                                             ,l_component_appl_id
27773                                                                             ,l_amb_context_code
27774                                                                             ,l_entity_code
27775                                                                             ,l_event_class_code
27776                                                                            )
27777                                     ,p_token_3                 => 'OWNER'
27778                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27779                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27780                                                                           ,p_lookup_code    => l_component_type_code
27781                                                                          )
27782                                     ,p_token_4                 => 'PRODUCT_NAME'
27783                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27784                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27785                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27786                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27787                                     ,p_ae_header_id            =>  NULL
27788                                        );
27789 
27790         IF (C_LEVEL_ERROR>= g_log_level) THEN
27791                  trace
27792                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27793                       ,p_level    => C_LEVEL_ERROR
27794                       ,p_module   => l_log_module);
27795         END IF;
27796       END IF;
27797    END IF;
27798    --
27799    --
27800    ------------------------------------------------------------------------------------------------
27801    -- 4219869 Business Flow
27802    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27803    -- Prior Entry.  Currently, the following code is always generated.
27804    ------------------------------------------------------------------------------------------------
27805    XLA_AE_LINES_PKG.ValidateCurrentLine;
27806 
27807    ------------------------------------------------------------------------------------
27808    -- 4219869 Business Flow
27809    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27810    ------------------------------------------------------------------------------------
27811    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27812 
27813    ----------------------------------------------------------------------------------
27814    -- 4219869 Business Flow
27815    -- Update journal entry status -- Need to generate this within IF <condition>
27816    ----------------------------------------------------------------------------------
27817    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27818          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27819          ,p_balance_type_code => l_balance_type_code
27820          );
27821 
27822    -------------------------------------------------------------------------------------------
27823    -- 4262811 - Generate the Accrual Reversal lines
27824    -------------------------------------------------------------------------------------------
27825    BEGIN
27826       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27827                               (g_array_event(p_event_id).array_value_num('header_index'));
27828       IF l_acc_rev_flag IS NULL THEN
27829          l_acc_rev_flag := 'N';
27830       END IF;
27831    EXCEPTION
27832       WHEN OTHERS THEN
27833          l_acc_rev_flag := 'N';
27834    END;
27838        -- 4645092  ------------------------------------------------------------------------------
27835    --
27836    IF (l_acc_rev_flag = 'Y') THEN
27837 
27839        -- To allow MPA report to determine if it should generate report process
27840        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27841        ------------------------------------------------------------------------------------------
27842 
27843        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27844        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27845    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27846    -- call ADRs
27847    -- Bug 4922099
27848    --
27849    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27850         (NVL(l_actual_upg_option, 'N') = 'O') OR
27851         (NVL(l_enc_upg_option, 'N') = 'O')
27852       )
27853    THEN
27854    NULL;
27855    --
27856    --
27857    
27858   l_ccid := AcctDerRule_35(
27859            p_application_id           => p_application_id
27860          , p_ae_header_id             => l_ae_header_id 
27861 , p_source_35 => p_source_35
27862          , x_transaction_coa_id       => l_adr_transaction_coa_id
27863          , x_accounting_coa_id        => l_adr_accounting_coa_id
27864          , x_value_type_code          => l_adr_value_type_code
27865          , p_side                     => 'NA'
27866    );
27867 
27868    xla_ae_lines_pkg.set_ccid(
27869     p_code_combination_id          => l_ccid
27870   , p_value_type_code              => l_adr_value_type_code
27871   , p_transaction_coa_id           => l_adr_transaction_coa_id
27872   , p_accounting_coa_id            => l_adr_accounting_coa_id
27873   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27874   , p_adr_type_code                => 'S'
27875   , p_component_type               => l_component_type
27876   , p_component_code               => l_component_code
27877   , p_component_type_code          => l_component_type_code
27878   , p_component_appl_id            => l_component_appl_id
27879   , p_amb_context_code             => l_amb_context_code
27880   , p_side                         => 'NA'
27881   );
27882 
27883 
27884    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27885      p_to_segment_code         => 'GL_BALANCING'
27886    , p_segment_value           => C_CHAR
27887    , p_from_segment_code       => NULL
27888    , p_from_combination_id     => NULL
27889    , p_value_type_code         => NULL
27890    , p_transaction_coa_id      => null
27891    , p_accounting_coa_id       => null
27892    , p_flexfield_segment_code  => NULL
27893    , p_flex_value_set_id       => NULL
27894    , p_adr_code                => NULL
27895    , p_adr_type_code           => NULL
27896    , p_component_type          => l_component_type
27897    , p_component_code          => l_component_code
27898    , p_component_type_code     => l_component_type_code
27899    , p_component_appl_id       => l_component_appl_id
27900    , p_amb_context_code        => l_amb_context_code
27901    , p_entity_code             => 'AP_PAYMENTS'
27902    , p_event_class_code        => 'PAYMENTS'
27903    , p_side                    => 'NA'
27904    );
27905    --
27906 
27907 
27908    --
27909    --
27910    END IF;
27911 
27912        --
27913        -- Update the line information that should be overwritten
27914        --
27915        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27916                                          p_header_num   => 1);
27917        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27918 
27919        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27920 
27921        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27922           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27923        END IF;
27924 
27925       --
27926       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27927       --
27928       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27929           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27930       ELSE
27931           ---------------------------------------------------------------------------------------------------
27932           -- 4262811a Switch Sign
27933           ---------------------------------------------------------------------------------------------------
27934           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27935           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27936                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27937           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27938                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27939           -- 5132302
27940           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27941                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27942 
27943       END IF;
27944 
27945       -- 4955764
27946       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27950       XLA_AE_LINES_PKG.ValidateCurrentLine;
27947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27948 
27949 
27951       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27952 
27953       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27954                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27955                ,p_balance_type_code => l_balance_type_code);
27956 
27957    END IF;
27958 
27959    -----------------------------------------------------------------------------------------
27960    -- 4262811 Multiperiod Accounting
27961    -----------------------------------------------------------------------------------------
27962      -- No MPA option is assigned.
27963 
27964 
27965 END IF;
27966 END IF;
27967 --
27968 
27969 --
27970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27971    trace
27972       (p_msg      => 'END of AcctLineType_72'
27973       ,p_level    => C_LEVEL_PROCEDURE
27974       ,p_module   => l_log_module);
27975 END IF;
27976 --
27977 EXCEPTION
27978   WHEN xla_exceptions_pkg.application_exception THEN
27979       RAISE;
27980   WHEN OTHERS THEN
27981        xla_exceptions_pkg.raise_message
27982            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_72');
27983 END AcctLineType_72;
27984 --
27985 
27986 ---------------------------------------
27987 --
27988 -- PRIVATE FUNCTION
27989 --         AcctLineType_73
27990 --
27991 ---------------------------------------
27992 PROCEDURE AcctLineType_73 (
27993   p_application_id        IN NUMBER
27994  ,p_event_id              IN NUMBER
27995  ,p_calculate_acctd_flag  IN VARCHAR2
27996  ,p_calculate_g_l_flag    IN VARCHAR2
27997  ,p_actual_flag           IN OUT VARCHAR2
27998  ,p_balance_type_code     OUT VARCHAR2
27999  ,p_gain_or_loss_ref      OUT VARCHAR2
28000  
28001 --Payment Currency Code
28002  , p_source_13            IN VARCHAR2
28003 --Bank Cash Clearing Account
28004  , p_source_35            IN NUMBER
28005 --Automatic Offsets Flag
28006  , p_source_47            IN VARCHAR2
28007  , p_source_47_meaning    IN VARCHAR2
28008 --Accounting Reversal Indicator
28009  , p_source_52            IN VARCHAR2
28010 --Distribution Link Type
28011  , p_source_54            IN VARCHAR2
28012 --Override Accounted Amount Indicator
28013  , p_source_79            IN VARCHAR2
28014  , p_source_79_meaning    IN VARCHAR2
28015 --Third Party Type
28016  , p_source_82            IN VARCHAR2
28017 --Invoice Distribution Tax Line Identifier
28018  , p_source_85            IN NUMBER
28019 --Invoice Distribution Tax Distribution Identifier from Tax
28020  , p_source_86            IN NUMBER
28021 --Invoice Distribution Summary Tax Line Identifier
28022  , p_source_87            IN NUMBER
28023 --Business Flow Accounts Payable Application Identifier
28024  , p_source_90            IN NUMBER
28025 --Business Flow Invoice Distribution Type
28026  , p_source_91            IN VARCHAR2
28027 --Business Flow Invoice Entity Code
28028  , p_source_92            IN VARCHAR2
28029 --Business Flow Invoice Distribution Identifier
28030  , p_source_93            IN NUMBER
28031 --Business Flow Invoice Identifier
28032  , p_source_94            IN NUMBER
28033 --When to Account for Payment Option
28034  , p_source_96            IN VARCHAR2
28035 --Payment Distribution Type
28036  , p_source_97            IN VARCHAR2
28037  , p_source_97_meaning    IN VARCHAR2
28038 --Payment Distribution Amount
28039  , p_source_98            IN NUMBER
28040 --Payment Distribution Identifier
28041  , p_source_103            IN NUMBER
28042 --Payment Supplier Identifier
28043  , p_source_109            IN NUMBER
28044 --Payment Supplier Site Identifier
28045  , p_source_110            IN NUMBER
28046 --Payment Distribution Reversed Identifier
28047  , p_source_111            IN NUMBER
28048 --Payment Identifier
28049  , p_source_112            IN NUMBER
28050 --Pooled Bank Account Option
28051  , p_source_113            IN VARCHAR2
28052  , p_source_113_meaning    IN VARCHAR2
28053 --Payment Maturity Date
28054  , p_source_114            IN DATE
28055 --Payment Distribution (Invoice Rate) Ledger Amount
28056  , p_source_116            IN NUMBER
28057 --Payment Exchange Date
28058  , p_source_117            IN DATE
28059 --Payment Exchange Rate
28060  , p_source_118            IN NUMBER
28061 --Payment Exchange Rate Type
28062  , p_source_119            IN VARCHAR2
28063 --Payment Type
28064  , p_source_122            IN VARCHAR2
28065  , p_source_122_meaning    IN VARCHAR2
28066 --Payment Processing Type
28067  , p_source_123            IN VARCHAR2
28068 --Invoice Distribution Amount of the Payment Distribution
28069  , p_source_124            IN NUMBER
28070 )
28071 IS
28072 
28073 l_component_type              VARCHAR2(80);
28074 l_component_code              VARCHAR2(30);
28075 l_component_type_code         VARCHAR2(1);
28076 l_component_appl_id           INTEGER;
28077 l_amb_context_code            VARCHAR2(30);
28078 l_entity_code                 VARCHAR2(30);
28079 l_event_class_code            VARCHAR2(30);
28080 l_ae_header_id                NUMBER;
28081 l_event_type_code             VARCHAR2(30);
28082 l_line_definition_code        VARCHAR2(30);
28083 l_line_definition_owner_code  VARCHAR2(1);
28084 --
28088 l_adr_transaction_coa_id      NUMBER;
28085 -- adr variables
28086 l_segment                     VARCHAR2(30);
28087 l_ccid                        NUMBER;
28089 l_adr_accounting_coa_id       NUMBER;
28090 l_adr_flexfield_segment_code  VARCHAR2(30);
28091 l_adr_flex_value_set_id       NUMBER;
28092 l_adr_value_type_code         VARCHAR2(30);
28093 l_adr_value_combination_id    NUMBER;
28094 l_adr_value_segment_code      VARCHAR2(30);
28095 
28096 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28097 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28098 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28099 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28100 
28101 -- 4262811 Variables ------------------------------------------------------------------------------------------
28102 l_entered_amt_idx             NUMBER;
28103 l_accted_amt_idx              NUMBER;
28104 l_acc_rev_flag                VARCHAR2(1);
28105 l_accrual_line_num            NUMBER;
28106 l_tmp_amt                     NUMBER;
28107 l_acc_rev_natural_side_code   VARCHAR2(1);
28108 
28109 l_num_entries                 NUMBER;
28110 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28111 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28112 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28113 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28114 l_recog_line_1                NUMBER;
28115 l_recog_line_2                NUMBER;
28116 
28117 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28118 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28119 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28120 
28121 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28122 
28123 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28124 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28125 
28126 ---------------------------------------------------------------------------------------------------------------
28127 
28128 
28129 --
28130 -- bulk performance
28131 --
28132 l_balance_type_code           VARCHAR2(1);
28133 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28134 l_log_module                  VARCHAR2(240);
28135 
28136 --
28137 -- Upgrade strategy
28138 --
28139 l_actual_upg_option           VARCHAR2(1);
28140 l_enc_upg_option           VARCHAR2(1);
28141 
28142 --
28143 BEGIN
28144 --
28145 IF g_log_enabled THEN
28146       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
28147 END IF;
28148 --
28149 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28150 
28151       trace
28152          (p_msg      => 'BEGIN of AcctLineType_73'
28153          ,p_level    => C_LEVEL_PROCEDURE
28154          ,p_module   => l_log_module);
28155 
28156 END IF;
28157 --
28158 l_component_type             := 'AMB_JLT';
28159 l_component_code             := 'AP_CASH_CLEAR_PMT_INVXRATE';
28160 l_component_type_code        := 'S';
28161 l_component_appl_id          :=  200;
28162 l_amb_context_code           := 'DEFAULT';
28163 l_entity_code                := 'AP_PAYMENTS';
28164 l_event_class_code           := 'PAYMENTS';
28165 l_event_type_code            := 'PAYMENTS_ALL';
28166 l_line_definition_owner_code := 'S';
28167 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
28168 --
28169 l_balance_type_code          := 'A';
28170 l_segment                     := NULL;
28171 l_ccid                        := NULL;
28172 l_adr_transaction_coa_id      := NULL;
28173 l_adr_accounting_coa_id       := NULL;
28174 l_adr_flexfield_segment_code  := NULL;
28175 l_adr_flex_value_set_id       := NULL;
28176 l_adr_value_type_code         := NULL;
28177 l_adr_value_combination_id    := NULL;
28178 l_adr_value_segment_code      := NULL;
28179 
28180 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
28181 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28182 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28183 l_budgetary_control_flag     := 'N';
28184 
28185 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28186 l_bflow_applied_to_amt       := NULL; -- 5132302
28187 l_entered_amt_idx            := NULL;          -- 4262811
28188 l_accted_amt_idx             := NULL;          -- 4262811
28189 l_acc_rev_flag               := NULL;          -- 4262811
28190 l_accrual_line_num           := NULL;          -- 4262811
28191 l_tmp_amt                    := NULL;          -- 4262811
28192 --
28193  
28194 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28195     l_balance_type_code <> 'B' THEN
28196 IF NVL(p_source_96,'
28197 ') =  'ALWAYS_CLEAR' AND 
28198 (NVL(p_source_47,'
28199 ') <>  'Y' OR 
28200 NVL(p_source_47,'
28201 ') =  'Y' AND 
28202 NVL(p_source_113,'
28203 ') <>  'Y') AND 
28204 p_source_114 IS NULL AND 
28205 NVL(p_source_97,'
28206 ') =  'CASH' AND 
28207 NVL(p_source_122,'
28208 ') <>  'R' AND 
28209 NVL(p_source_123,'
28210 ') <>  'PAYMENTCARD'
28211  THEN 
28212 
28213    --
28214    XLA_AE_LINES_PKG.SetNewLine;
28215 
28216    p_balance_type_code          := l_balance_type_code;
28217    -- set the flag so later we will know whether the gain loss line needs to be created
28221    END IF;
28218    
28219    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28220      p_actual_flag :='A';
28222 
28223    --
28224    -- bulk performance
28225    --
28226    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28227                                       p_header_num   => 0); -- 4262811
28228    --
28229    -- set accounting line options
28230    --
28231    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28232            p_natural_side_code          => 'C'
28233          , p_gain_or_loss_flag          => 'N'
28234          , p_gl_transfer_mode_code      => 'S'
28235          , p_acct_entry_type_code       => 'A'
28236          , p_switch_side_flag           => 'Y'
28237          , p_merge_duplicate_code       => 'A'
28238          );
28239    --
28240    l_acc_rev_natural_side_code := 'D';  -- 4262811
28241    -- 
28242    --
28243    -- set accounting line type info
28244    --
28245    xla_ae_lines_pkg.SetAcctLineType
28246       (p_component_type             => l_component_type
28247       ,p_event_type_code            => l_event_type_code
28248       ,p_line_definition_owner_code => l_line_definition_owner_code
28249       ,p_line_definition_code       => l_line_definition_code
28250       ,p_accounting_line_code       => l_component_code
28251       ,p_accounting_line_type_code  => l_component_type_code
28252       ,p_accounting_line_appl_id    => l_component_appl_id
28253       ,p_amb_context_code           => l_amb_context_code
28254       ,p_entity_code                => l_entity_code
28255       ,p_event_class_code           => l_event_class_code);
28256    --
28257    -- set accounting class
28258    --
28259    xla_ae_lines_pkg.SetAcctClass(
28260            p_accounting_class_code  => 'CASH_CLEARING'
28261          , p_ae_header_id           => l_ae_header_id
28262          );
28263 
28264    --
28265    -- set rounding class
28266    --
28267    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28268                       'CASH_CLEARING';
28269 
28270    --
28271    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28272    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28273    --
28274    -- bulk performance
28275    --
28276    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28277 
28278    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28279       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28280 
28281    -- 4955764
28282    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28283       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28284 
28285    -- 4458381 Public Sector Enh
28286    
28287    --
28288    -- set accounting attributes for the line type
28289    --
28290    l_entered_amt_idx := 10;
28291    l_accted_amt_idx  := 15;
28292    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28293    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28294    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
28295    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28296    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
28297    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28298    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
28299    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28300    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
28301    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28302    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
28303    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28304    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
28305    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28306    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
28307    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28308    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
28309    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28310    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
28311    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28312    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
28313    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28314    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
28315    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28316    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
28317    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28318    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
28319    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28320    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
28321    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28322    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
28323    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28324    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
28325    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28326    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
28330    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
28327    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28328    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
28329    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28331    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28332    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
28333    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28334    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
28335    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28336    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
28337    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28338    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
28339    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28340    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
28341 
28342    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28343    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28344 
28345    ---------------------------------------------------------------------------------------------------------------
28346    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28347    ---------------------------------------------------------------------------------------------------------------
28348    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28349 
28350    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28351    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28352 
28353    IF xla_accounting_cache_pkg.GetValueChar
28354          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28355          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28356    AND l_bflow_method_code = 'PRIOR_ENTRY'
28357 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28358    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28359          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28360        )
28361    THEN
28362          xla_ae_lines_pkg.BflowUpgEntry
28363            (p_business_method_code    => l_bflow_method_code
28364            ,p_business_class_code     => l_bflow_class_code
28365            ,p_balance_type            => l_balance_type_code);
28366    ELSE
28367       NULL;
28368 -- No business flow processing for business flow method of NONE.
28369    END IF;
28370 
28371    --
28372    -- call analytical criteria
28373    --
28374    
28375 
28376 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
28377 xla_ae_lines_pkg.SetAnalyticalCriteria(
28378    p_analytical_criterion_name    => 'Check Id'
28379  , p_analytical_criterion_owner   => 'S'
28380  , p_analytical_criterion_code    => 'CHECK_ID'
28381  , p_amb_context_code             => 'DEFAULT'
28382  , p_balancing_flag               => 'N'
28383  
28384  , p_analytical_detail_char_1    =>  NULL
28385  , p_analytical_detail_num_1     =>  p_source_112
28386  , p_analytical_detail_date_1    =>  NULL
28387 
28388  , p_ae_header_id                 => l_ae_header_id
28389 )
28390 ;
28391 --
28392 
28393    --
28394    -- call description
28395    --
28396    -- No description or it is inherited.
28397    --
28398    -- call ADRs
28399    -- Bug 4922099
28400    --
28401    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28402         (NVL(l_actual_upg_option, 'N') = 'O') OR
28403         (NVL(l_enc_upg_option, 'N') = 'O')
28404       )
28405    THEN
28406    NULL;
28407    --
28408    --
28409    
28410   l_ccid := AcctDerRule_35(
28411            p_application_id           => p_application_id
28412          , p_ae_header_id             => l_ae_header_id 
28413 , p_source_35 => p_source_35
28414          , x_transaction_coa_id       => l_adr_transaction_coa_id
28415          , x_accounting_coa_id        => l_adr_accounting_coa_id
28416          , x_value_type_code          => l_adr_value_type_code
28417          , p_side                     => 'NA'
28418    );
28419 
28420    xla_ae_lines_pkg.set_ccid(
28421     p_code_combination_id          => l_ccid
28422   , p_value_type_code              => l_adr_value_type_code
28423   , p_transaction_coa_id           => l_adr_transaction_coa_id
28424   , p_accounting_coa_id            => l_adr_accounting_coa_id
28425   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28426   , p_adr_type_code                => 'S'
28427   , p_component_type               => l_component_type
28428   , p_component_code               => l_component_code
28429   , p_component_type_code          => l_component_type_code
28430   , p_component_appl_id            => l_component_appl_id
28431   , p_amb_context_code             => l_amb_context_code
28432   , p_side                         => 'NA'
28433   );
28434 
28435 
28436    --
28437    --
28438    END IF;
28439    --
28440    -- Bug 4922099
28441    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28442           (NVL(l_enc_upg_option, 'N') = 'O')
28443         ) AND
28444         (l_bflow_method_code = 'PRIOR_ENTRY')
28445       )
28446    THEN
28447       IF
28448       --
28452       xla_accounting_err_pkg.build_message
28449       1 = 2
28450       --
28451       THEN
28453                                     (p_appli_s_name            => 'XLA'
28454                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28455                                     ,p_token_1                 => 'LINE_NUMBER'
28456                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28457                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28458                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28459                                                                              l_component_type
28460                                                                             ,l_component_code
28461                                                                             ,l_component_type_code
28462                                                                             ,l_component_appl_id
28463                                                                             ,l_amb_context_code
28464                                                                             ,l_entity_code
28465                                                                             ,l_event_class_code
28466                                                                            )
28467                                     ,p_token_3                 => 'OWNER'
28468                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28469                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28470                                                                           ,p_lookup_code    => l_component_type_code
28471                                                                          )
28472                                     ,p_token_4                 => 'PRODUCT_NAME'
28473                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28474                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28475                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28476                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28477                                     ,p_ae_header_id            =>  NULL
28478                                        );
28479 
28480         IF (C_LEVEL_ERROR>= g_log_level) THEN
28481                  trace
28482                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28483                       ,p_level    => C_LEVEL_ERROR
28484                       ,p_module   => l_log_module);
28485         END IF;
28486       END IF;
28487    END IF;
28488    --
28489    --
28490    ------------------------------------------------------------------------------------------------
28491    -- 4219869 Business Flow
28492    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28493    -- Prior Entry.  Currently, the following code is always generated.
28494    ------------------------------------------------------------------------------------------------
28495    XLA_AE_LINES_PKG.ValidateCurrentLine;
28496 
28497    ------------------------------------------------------------------------------------
28498    -- 4219869 Business Flow
28499    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28500    ------------------------------------------------------------------------------------
28501    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28502 
28503    ----------------------------------------------------------------------------------
28504    -- 4219869 Business Flow
28505    -- Update journal entry status -- Need to generate this within IF <condition>
28506    ----------------------------------------------------------------------------------
28507    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28508          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28509          ,p_balance_type_code => l_balance_type_code
28510          );
28511 
28512    -------------------------------------------------------------------------------------------
28513    -- 4262811 - Generate the Accrual Reversal lines
28514    -------------------------------------------------------------------------------------------
28515    BEGIN
28516       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28517                               (g_array_event(p_event_id).array_value_num('header_index'));
28518       IF l_acc_rev_flag IS NULL THEN
28519          l_acc_rev_flag := 'N';
28520       END IF;
28521    EXCEPTION
28522       WHEN OTHERS THEN
28523          l_acc_rev_flag := 'N';
28524    END;
28525    --
28526    IF (l_acc_rev_flag = 'Y') THEN
28527 
28528        -- 4645092  ------------------------------------------------------------------------------
28529        -- To allow MPA report to determine if it should generate report process
28530        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28531        ------------------------------------------------------------------------------------------
28532 
28533        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28534        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28535    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28536    -- call ADRs
28537    -- Bug 4922099
28538    --
28539    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28543    THEN
28540         (NVL(l_actual_upg_option, 'N') = 'O') OR
28541         (NVL(l_enc_upg_option, 'N') = 'O')
28542       )
28544    NULL;
28545    --
28546    --
28547    
28548   l_ccid := AcctDerRule_35(
28549            p_application_id           => p_application_id
28550          , p_ae_header_id             => l_ae_header_id 
28551 , p_source_35 => p_source_35
28552          , x_transaction_coa_id       => l_adr_transaction_coa_id
28553          , x_accounting_coa_id        => l_adr_accounting_coa_id
28554          , x_value_type_code          => l_adr_value_type_code
28555          , p_side                     => 'NA'
28556    );
28557 
28558    xla_ae_lines_pkg.set_ccid(
28559     p_code_combination_id          => l_ccid
28560   , p_value_type_code              => l_adr_value_type_code
28561   , p_transaction_coa_id           => l_adr_transaction_coa_id
28562   , p_accounting_coa_id            => l_adr_accounting_coa_id
28563   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28564   , p_adr_type_code                => 'S'
28565   , p_component_type               => l_component_type
28566   , p_component_code               => l_component_code
28567   , p_component_type_code          => l_component_type_code
28568   , p_component_appl_id            => l_component_appl_id
28569   , p_amb_context_code             => l_amb_context_code
28570   , p_side                         => 'NA'
28571   );
28572 
28573 
28574    --
28575    --
28576    END IF;
28577 
28578        --
28579        -- Update the line information that should be overwritten
28580        --
28581        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28582                                          p_header_num   => 1);
28583        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28584 
28585        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28586 
28587        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28588           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28589        END IF;
28590 
28591       --
28592       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28593       --
28594       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28595           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28596       ELSE
28597           ---------------------------------------------------------------------------------------------------
28598           -- 4262811a Switch Sign
28599           ---------------------------------------------------------------------------------------------------
28600           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28601           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28602                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28603           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28604                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28605           -- 5132302
28606           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28607                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28608 
28609       END IF;
28610 
28611       -- 4955764
28612       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28613       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28614 
28615 
28616       XLA_AE_LINES_PKG.ValidateCurrentLine;
28617       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28618 
28619       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28620                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28621                ,p_balance_type_code => l_balance_type_code);
28622 
28623    END IF;
28624 
28625    -----------------------------------------------------------------------------------------
28626    -- 4262811 Multiperiod Accounting
28627    -----------------------------------------------------------------------------------------
28628      -- No MPA option is assigned.
28629 
28630 
28631 END IF;
28632 END IF;
28633 --
28634 
28635 --
28636 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28637    trace
28638       (p_msg      => 'END of AcctLineType_73'
28639       ,p_level    => C_LEVEL_PROCEDURE
28640       ,p_module   => l_log_module);
28641 END IF;
28642 --
28643 EXCEPTION
28644   WHEN xla_exceptions_pkg.application_exception THEN
28645       RAISE;
28646   WHEN OTHERS THEN
28647        xla_exceptions_pkg.raise_message
28648            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_73');
28649 END AcctLineType_73;
28650 --
28651 
28652 ---------------------------------------
28653 --
28654 -- PRIVATE FUNCTION
28655 --         AcctLineType_74
28656 --
28657 ---------------------------------------
28658 PROCEDURE AcctLineType_74 (
28659   p_application_id        IN NUMBER
28660  ,p_event_id              IN NUMBER
28661  ,p_calculate_acctd_flag  IN VARCHAR2
28662  ,p_calculate_g_l_flag    IN VARCHAR2
28663  ,p_actual_flag           IN OUT VARCHAR2
28667 --Payment Currency Code
28664  ,p_balance_type_code     OUT VARCHAR2
28665  ,p_gain_or_loss_ref      OUT VARCHAR2
28666  
28668  , p_source_13            IN VARCHAR2
28669 --Bank Cash Clearing Account
28670  , p_source_35            IN NUMBER
28671 --Automatic Offsets Flag
28672  , p_source_47            IN VARCHAR2
28673  , p_source_47_meaning    IN VARCHAR2
28674 --Accounting Reversal Indicator
28675  , p_source_52            IN VARCHAR2
28676 --Distribution Link Type
28677  , p_source_54            IN VARCHAR2
28678 --Override Accounted Amount Indicator
28679  , p_source_79            IN VARCHAR2
28680  , p_source_79_meaning    IN VARCHAR2
28681 --Third Party Type
28682  , p_source_82            IN VARCHAR2
28683 --Business Flow Accounts Payable Application Identifier
28684  , p_source_90            IN NUMBER
28685 --When to Account for Payment Option
28686  , p_source_96            IN VARCHAR2
28687 --Payment Distribution Type
28688  , p_source_97            IN VARCHAR2
28689  , p_source_97_meaning    IN VARCHAR2
28690 --Payment Distribution Amount
28691  , p_source_98            IN NUMBER
28692 --Business Flow Payment Distribution Type
28693  , p_source_99            IN VARCHAR2
28694 --Business Flow Payment Entity Code
28695  , p_source_100            IN VARCHAR2
28696 --Business Flow Payment Distribution Identifier
28697  , p_source_101            IN NUMBER
28698 --Business Flow Payment Identifier
28699  , p_source_102            IN NUMBER
28700 --Payment Distribution Identifier
28701  , p_source_103            IN NUMBER
28702 --Payment Supplier Identifier
28703  , p_source_109            IN NUMBER
28704 --Payment Supplier Site Identifier
28705  , p_source_110            IN NUMBER
28706 --Payment Distribution Reversed Identifier
28707  , p_source_111            IN NUMBER
28708 --Payment Identifier
28709  , p_source_112            IN NUMBER
28710 --Pooled Bank Account Option
28711  , p_source_113            IN VARCHAR2
28712  , p_source_113_meaning    IN VARCHAR2
28713 --Payment Maturity Date
28714  , p_source_114            IN DATE
28715 --Payment Exchange Date
28716  , p_source_117            IN DATE
28717 --Payment Exchange Rate
28718  , p_source_118            IN NUMBER
28719 --Payment Exchange Rate Type
28720  , p_source_119            IN VARCHAR2
28721 --Payment Distribution (Matured Rate) Ledger Amount
28722  , p_source_121            IN NUMBER
28723 )
28724 IS
28725 
28726 l_component_type              VARCHAR2(80);
28727 l_component_code              VARCHAR2(30);
28728 l_component_type_code         VARCHAR2(1);
28729 l_component_appl_id           INTEGER;
28730 l_amb_context_code            VARCHAR2(30);
28731 l_entity_code                 VARCHAR2(30);
28732 l_event_class_code            VARCHAR2(30);
28733 l_ae_header_id                NUMBER;
28734 l_event_type_code             VARCHAR2(30);
28735 l_line_definition_code        VARCHAR2(30);
28736 l_line_definition_owner_code  VARCHAR2(1);
28737 --
28738 -- adr variables
28739 l_segment                     VARCHAR2(30);
28740 l_ccid                        NUMBER;
28741 l_adr_transaction_coa_id      NUMBER;
28742 l_adr_accounting_coa_id       NUMBER;
28743 l_adr_flexfield_segment_code  VARCHAR2(30);
28744 l_adr_flex_value_set_id       NUMBER;
28745 l_adr_value_type_code         VARCHAR2(30);
28746 l_adr_value_combination_id    NUMBER;
28747 l_adr_value_segment_code      VARCHAR2(30);
28748 
28749 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28750 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28751 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28752 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28753 
28754 -- 4262811 Variables ------------------------------------------------------------------------------------------
28755 l_entered_amt_idx             NUMBER;
28756 l_accted_amt_idx              NUMBER;
28757 l_acc_rev_flag                VARCHAR2(1);
28758 l_accrual_line_num            NUMBER;
28759 l_tmp_amt                     NUMBER;
28760 l_acc_rev_natural_side_code   VARCHAR2(1);
28761 
28762 l_num_entries                 NUMBER;
28763 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28764 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28765 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28766 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28767 l_recog_line_1                NUMBER;
28768 l_recog_line_2                NUMBER;
28769 
28770 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28771 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28772 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28773 
28774 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28775 
28776 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28777 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28778 
28779 ---------------------------------------------------------------------------------------------------------------
28780 
28781 
28782 --
28783 -- bulk performance
28784 --
28785 l_balance_type_code           VARCHAR2(1);
28786 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28787 l_log_module                  VARCHAR2(240);
28788 
28789 --
28793 l_enc_upg_option           VARCHAR2(1);
28790 -- Upgrade strategy
28791 --
28792 l_actual_upg_option           VARCHAR2(1);
28794 
28795 --
28796 BEGIN
28797 --
28798 IF g_log_enabled THEN
28799       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
28800 END IF;
28801 --
28802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28803 
28804       trace
28805          (p_msg      => 'BEGIN of AcctLineType_74'
28806          ,p_level    => C_LEVEL_PROCEDURE
28807          ,p_module   => l_log_module);
28808 
28809 END IF;
28810 --
28811 l_component_type             := 'AMB_JLT';
28812 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
28813 l_component_type_code        := 'S';
28814 l_component_appl_id          :=  200;
28815 l_amb_context_code           := 'DEFAULT';
28816 l_entity_code                := 'AP_PAYMENTS';
28817 l_event_class_code           := 'FUTURE DATED PAYMENTS';
28818 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
28819 l_line_definition_owner_code := 'S';
28820 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
28821 --
28822 l_balance_type_code          := 'A';
28823 l_segment                     := NULL;
28824 l_ccid                        := NULL;
28825 l_adr_transaction_coa_id      := NULL;
28826 l_adr_accounting_coa_id       := NULL;
28827 l_adr_flexfield_segment_code  := NULL;
28828 l_adr_flex_value_set_id       := NULL;
28829 l_adr_value_type_code         := NULL;
28830 l_adr_value_combination_id    := NULL;
28831 l_adr_value_segment_code      := NULL;
28832 
28833 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
28834 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28835 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28836 l_budgetary_control_flag     := 'N';
28837 
28838 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28839 l_bflow_applied_to_amt       := NULL; -- 5132302
28840 l_entered_amt_idx            := NULL;          -- 4262811
28841 l_accted_amt_idx             := NULL;          -- 4262811
28842 l_acc_rev_flag               := NULL;          -- 4262811
28843 l_accrual_line_num           := NULL;          -- 4262811
28844 l_tmp_amt                    := NULL;          -- 4262811
28845 --
28846  
28847 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28848     l_balance_type_code <> 'B' THEN
28849 IF (NVL(p_source_96,'
28850 ') =  'ALWAYS_ALWAYS' OR 
28851 NVL(p_source_96,'
28852 ') =  'ALWAYS_ISSUE') AND 
28853 (NVL(p_source_47,'
28854 ') <>  'Y' OR 
28855 NVL(p_source_47,'
28856 ') =  'Y' AND 
28857 NVL(p_source_113,'
28858 ') <>  'Y') AND 
28859 p_source_114 IS NOT NULL AND 
28860 NVL(p_source_97,'
28861 ') =  'CASH'
28862  THEN 
28863 
28864    --
28865    XLA_AE_LINES_PKG.SetNewLine;
28866 
28867    p_balance_type_code          := l_balance_type_code;
28868    -- set the flag so later we will know whether the gain loss line needs to be created
28869    
28870    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28871      p_actual_flag :='A';
28872    END IF;
28873 
28874    --
28875    -- bulk performance
28876    --
28877    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28878                                       p_header_num   => 0); -- 4262811
28879    --
28880    -- set accounting line options
28881    --
28882    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28883            p_natural_side_code          => 'C'
28884          , p_gain_or_loss_flag          => 'N'
28885          , p_gl_transfer_mode_code      => 'S'
28886          , p_acct_entry_type_code       => 'A'
28887          , p_switch_side_flag           => 'Y'
28888          , p_merge_duplicate_code       => 'A'
28889          );
28890    --
28891    l_acc_rev_natural_side_code := 'D';  -- 4262811
28892    -- 
28893    --
28894    -- set accounting line type info
28895    --
28896    xla_ae_lines_pkg.SetAcctLineType
28897       (p_component_type             => l_component_type
28898       ,p_event_type_code            => l_event_type_code
28899       ,p_line_definition_owner_code => l_line_definition_owner_code
28900       ,p_line_definition_code       => l_line_definition_code
28901       ,p_accounting_line_code       => l_component_code
28902       ,p_accounting_line_type_code  => l_component_type_code
28903       ,p_accounting_line_appl_id    => l_component_appl_id
28904       ,p_amb_context_code           => l_amb_context_code
28905       ,p_entity_code                => l_entity_code
28906       ,p_event_class_code           => l_event_class_code);
28907    --
28908    -- set accounting class
28909    --
28910    xla_ae_lines_pkg.SetAcctClass(
28911            p_accounting_class_code  => 'CASH_CLEARING'
28912          , p_ae_header_id           => l_ae_header_id
28913          );
28914 
28915    --
28916    -- set rounding class
28917    --
28918    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28919                       'CASH_CLEARING';
28920 
28921    --
28922    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28923    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28924    --
28925    -- bulk performance
28926    --
28930       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28927    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28928 
28929    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28931 
28932    -- 4955764
28933    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28934       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28935 
28936    -- 4458381 Public Sector Enh
28937    
28938    --
28939    -- set accounting attributes for the line type
28940    --
28941    l_entered_amt_idx := 9;
28942    l_accted_amt_idx  := 14;
28943    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
28944    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28945    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
28946    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
28947    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
28948    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28949    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
28950    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
28951    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
28952    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
28953    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
28954    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28955    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
28956    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
28957    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
28958    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
28959    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
28960    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
28961    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
28962    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
28963    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
28964    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
28965    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
28966    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
28967    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
28968    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
28969    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
28970    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
28971    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
28972    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
28973    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
28974    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
28975    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
28976    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
28977    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
28978    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
28979    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
28980    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
28981    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
28982    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
28983    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
28984 
28985    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28986    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28987 
28988    ---------------------------------------------------------------------------------------------------------------
28989    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28990    ---------------------------------------------------------------------------------------------------------------
28991    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28992 
28993    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28994    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28995 
28996    IF xla_accounting_cache_pkg.GetValueChar
28997          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28998          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28999    AND l_bflow_method_code = 'PRIOR_ENTRY'
29000 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29001    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29002          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29003        )
29004    THEN
29005          xla_ae_lines_pkg.BflowUpgEntry
29006            (p_business_method_code    => l_bflow_method_code
29007            ,p_business_class_code     => l_bflow_class_code
29008            ,p_balance_type            => l_balance_type_code);
29009    ELSE
29010       NULL;
29011 -- No business flow processing for business flow method of NONE.
29012    END IF;
29013 
29014    --
29015    -- call analytical criteria
29016    --
29017    
29018 
29019 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
29020 xla_ae_lines_pkg.SetAnalyticalCriteria(
29021    p_analytical_criterion_name    => 'Check Id'
29022  , p_analytical_criterion_owner   => 'S'
29026  
29023  , p_analytical_criterion_code    => 'CHECK_ID'
29024  , p_amb_context_code             => 'DEFAULT'
29025  , p_balancing_flag               => 'N'
29027  , p_analytical_detail_char_1    =>  NULL
29028  , p_analytical_detail_num_1     =>  p_source_112
29029  , p_analytical_detail_date_1    =>  NULL
29030 
29031  , p_ae_header_id                 => l_ae_header_id
29032 )
29033 ;
29034 --
29035 
29036    --
29037    -- call description
29038    --
29039    -- No description or it is inherited.
29040    --
29041    -- call ADRs
29042    -- Bug 4922099
29043    --
29044    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29045         (NVL(l_actual_upg_option, 'N') = 'O') OR
29046         (NVL(l_enc_upg_option, 'N') = 'O')
29047       )
29048    THEN
29049    NULL;
29050    --
29051    --
29052    
29053   l_ccid := AcctDerRule_35(
29054            p_application_id           => p_application_id
29055          , p_ae_header_id             => l_ae_header_id 
29056 , p_source_35 => p_source_35
29057          , x_transaction_coa_id       => l_adr_transaction_coa_id
29058          , x_accounting_coa_id        => l_adr_accounting_coa_id
29059          , x_value_type_code          => l_adr_value_type_code
29060          , p_side                     => 'NA'
29061    );
29062 
29063    xla_ae_lines_pkg.set_ccid(
29064     p_code_combination_id          => l_ccid
29065   , p_value_type_code              => l_adr_value_type_code
29066   , p_transaction_coa_id           => l_adr_transaction_coa_id
29067   , p_accounting_coa_id            => l_adr_accounting_coa_id
29068   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29069   , p_adr_type_code                => 'S'
29070   , p_component_type               => l_component_type
29071   , p_component_code               => l_component_code
29072   , p_component_type_code          => l_component_type_code
29073   , p_component_appl_id            => l_component_appl_id
29074   , p_amb_context_code             => l_amb_context_code
29075   , p_side                         => 'NA'
29076   );
29077 
29078 
29079    --
29080    --
29081    END IF;
29082    --
29083    -- Bug 4922099
29084    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29085           (NVL(l_enc_upg_option, 'N') = 'O')
29086         ) AND
29087         (l_bflow_method_code = 'PRIOR_ENTRY')
29088       )
29089    THEN
29090       IF
29091       --
29092       1 = 2
29093       --
29094       THEN
29095       xla_accounting_err_pkg.build_message
29096                                     (p_appli_s_name            => 'XLA'
29097                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29098                                     ,p_token_1                 => 'LINE_NUMBER'
29099                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29100                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29101                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29102                                                                              l_component_type
29103                                                                             ,l_component_code
29104                                                                             ,l_component_type_code
29105                                                                             ,l_component_appl_id
29106                                                                             ,l_amb_context_code
29107                                                                             ,l_entity_code
29108                                                                             ,l_event_class_code
29109                                                                            )
29110                                     ,p_token_3                 => 'OWNER'
29111                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29112                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29113                                                                           ,p_lookup_code    => l_component_type_code
29114                                                                          )
29115                                     ,p_token_4                 => 'PRODUCT_NAME'
29116                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29117                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29118                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29119                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29120                                     ,p_ae_header_id            =>  NULL
29121                                        );
29122 
29123         IF (C_LEVEL_ERROR>= g_log_level) THEN
29124                  trace
29125                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29126                       ,p_level    => C_LEVEL_ERROR
29127                       ,p_module   => l_log_module);
29128         END IF;
29129       END IF;
29130    END IF;
29131    --
29132    --
29133    ------------------------------------------------------------------------------------------------
29134    -- 4219869 Business Flow
29138    XLA_AE_LINES_PKG.ValidateCurrentLine;
29135    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29136    -- Prior Entry.  Currently, the following code is always generated.
29137    ------------------------------------------------------------------------------------------------
29139 
29140    ------------------------------------------------------------------------------------
29141    -- 4219869 Business Flow
29142    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29143    ------------------------------------------------------------------------------------
29144    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29145 
29146    ----------------------------------------------------------------------------------
29147    -- 4219869 Business Flow
29148    -- Update journal entry status -- Need to generate this within IF <condition>
29149    ----------------------------------------------------------------------------------
29150    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29151          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29152          ,p_balance_type_code => l_balance_type_code
29153          );
29154 
29155    -------------------------------------------------------------------------------------------
29156    -- 4262811 - Generate the Accrual Reversal lines
29157    -------------------------------------------------------------------------------------------
29158    BEGIN
29159       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29160                               (g_array_event(p_event_id).array_value_num('header_index'));
29161       IF l_acc_rev_flag IS NULL THEN
29162          l_acc_rev_flag := 'N';
29163       END IF;
29164    EXCEPTION
29165       WHEN OTHERS THEN
29166          l_acc_rev_flag := 'N';
29167    END;
29168    --
29169    IF (l_acc_rev_flag = 'Y') THEN
29170 
29171        -- 4645092  ------------------------------------------------------------------------------
29172        -- To allow MPA report to determine if it should generate report process
29173        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29174        ------------------------------------------------------------------------------------------
29175 
29176        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29177        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29178    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29179    -- call ADRs
29180    -- Bug 4922099
29181    --
29182    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29183         (NVL(l_actual_upg_option, 'N') = 'O') OR
29184         (NVL(l_enc_upg_option, 'N') = 'O')
29185       )
29186    THEN
29187    NULL;
29188    --
29189    --
29190    
29191   l_ccid := AcctDerRule_35(
29192            p_application_id           => p_application_id
29193          , p_ae_header_id             => l_ae_header_id 
29194 , p_source_35 => p_source_35
29195          , x_transaction_coa_id       => l_adr_transaction_coa_id
29196          , x_accounting_coa_id        => l_adr_accounting_coa_id
29197          , x_value_type_code          => l_adr_value_type_code
29198          , p_side                     => 'NA'
29199    );
29200 
29201    xla_ae_lines_pkg.set_ccid(
29202     p_code_combination_id          => l_ccid
29203   , p_value_type_code              => l_adr_value_type_code
29204   , p_transaction_coa_id           => l_adr_transaction_coa_id
29205   , p_accounting_coa_id            => l_adr_accounting_coa_id
29206   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29207   , p_adr_type_code                => 'S'
29208   , p_component_type               => l_component_type
29209   , p_component_code               => l_component_code
29210   , p_component_type_code          => l_component_type_code
29211   , p_component_appl_id            => l_component_appl_id
29212   , p_amb_context_code             => l_amb_context_code
29213   , p_side                         => 'NA'
29214   );
29215 
29216 
29217    --
29218    --
29219    END IF;
29220 
29221        --
29222        -- Update the line information that should be overwritten
29223        --
29224        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29225                                          p_header_num   => 1);
29226        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29227 
29228        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29229 
29230        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29231           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29232        END IF;
29233 
29234       --
29235       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29236       --
29237       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29238           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29239       ELSE
29240           ---------------------------------------------------------------------------------------------------
29241           -- 4262811a Switch Sign
29242           ---------------------------------------------------------------------------------------------------
29243           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29244           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29248           -- 5132302
29245                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29246           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29247                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29249           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29250                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29251 
29252       END IF;
29253 
29254       -- 4955764
29255       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29256       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29257 
29258 
29259       XLA_AE_LINES_PKG.ValidateCurrentLine;
29260       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29261 
29262       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29263                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29264                ,p_balance_type_code => l_balance_type_code);
29265 
29266    END IF;
29267 
29268    -----------------------------------------------------------------------------------------
29269    -- 4262811 Multiperiod Accounting
29270    -----------------------------------------------------------------------------------------
29271      -- No MPA option is assigned.
29272 
29273 
29274 END IF;
29275 END IF;
29276 --
29277 
29278 --
29279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29280    trace
29281       (p_msg      => 'END of AcctLineType_74'
29282       ,p_level    => C_LEVEL_PROCEDURE
29283       ,p_module   => l_log_module);
29284 END IF;
29285 --
29286 EXCEPTION
29287   WHEN xla_exceptions_pkg.application_exception THEN
29288       RAISE;
29289   WHEN OTHERS THEN
29290        xla_exceptions_pkg.raise_message
29291            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_74');
29292 END AcctLineType_74;
29293 --
29294 
29295 ---------------------------------------
29296 --
29297 -- PRIVATE FUNCTION
29298 --         AcctLineType_75
29299 --
29300 ---------------------------------------
29301 PROCEDURE AcctLineType_75 (
29302   p_application_id        IN NUMBER
29303  ,p_event_id              IN NUMBER
29304  ,p_calculate_acctd_flag  IN VARCHAR2
29305  ,p_calculate_g_l_flag    IN VARCHAR2
29306  ,p_actual_flag           IN OUT VARCHAR2
29307  ,p_balance_type_code     OUT VARCHAR2
29308  ,p_gain_or_loss_ref      OUT VARCHAR2
29309  
29310 --Payment Currency Code
29311  , p_source_13            IN VARCHAR2
29312 --Automatic Offsets Value
29313  , p_source_15            IN VARCHAR2
29314  , p_source_15_meaning    IN VARCHAR2
29315 --Bank Cash Clearing Account
29316  , p_source_35            IN NUMBER
29317 --Accounting Reversal Indicator
29318  , p_source_52            IN VARCHAR2
29319 --Distribution Link Type
29320  , p_source_54            IN VARCHAR2
29321 --Override Accounted Amount Indicator
29322  , p_source_79            IN VARCHAR2
29323  , p_source_79_meaning    IN VARCHAR2
29324 --Third Party Type
29325  , p_source_82            IN VARCHAR2
29326 --Business Flow Accounts Payable Application Identifier
29327  , p_source_90            IN NUMBER
29328 --When to Account for Payment Option
29329  , p_source_96            IN VARCHAR2
29330 --Payment Distribution Type
29331  , p_source_97            IN VARCHAR2
29332  , p_source_97_meaning    IN VARCHAR2
29333 --Payment Distribution Amount
29334  , p_source_98            IN NUMBER
29335 --Business Flow Payment Distribution Type
29336  , p_source_99            IN VARCHAR2
29337 --Business Flow Payment Entity Code
29338  , p_source_100            IN VARCHAR2
29339 --Business Flow Payment Distribution Identifier
29340  , p_source_101            IN NUMBER
29341 --Business Flow Payment Identifier
29342  , p_source_102            IN NUMBER
29343 --Payment Distribution Identifier
29344  , p_source_103            IN NUMBER
29345 --Payment Supplier Identifier
29346  , p_source_109            IN NUMBER
29347 --Payment Supplier Site Identifier
29348  , p_source_110            IN NUMBER
29349 --Payment Distribution Reversed Identifier
29350  , p_source_111            IN NUMBER
29351 --Payment Identifier
29352  , p_source_112            IN NUMBER
29353 --Pooled Bank Account Option
29354  , p_source_113            IN VARCHAR2
29355  , p_source_113_meaning    IN VARCHAR2
29356 --Payment Maturity Date
29357  , p_source_114            IN DATE
29358 --Payment Exchange Date
29359  , p_source_117            IN DATE
29360 --Payment Exchange Rate
29361  , p_source_118            IN NUMBER
29362 --Payment Exchange Rate Type
29363  , p_source_119            IN VARCHAR2
29364 --Payment Distribution (Matured Rate) Ledger Amount
29365  , p_source_121            IN NUMBER
29366 )
29367 IS
29368 
29369 l_component_type              VARCHAR2(80);
29370 l_component_code              VARCHAR2(30);
29371 l_component_type_code         VARCHAR2(1);
29372 l_component_appl_id           INTEGER;
29373 l_amb_context_code            VARCHAR2(30);
29374 l_entity_code                 VARCHAR2(30);
29375 l_event_class_code            VARCHAR2(30);
29376 l_ae_header_id                NUMBER;
29377 l_event_type_code             VARCHAR2(30);
29381 -- adr variables
29378 l_line_definition_code        VARCHAR2(30);
29379 l_line_definition_owner_code  VARCHAR2(1);
29380 --
29382 l_segment                     VARCHAR2(30);
29383 l_ccid                        NUMBER;
29384 l_adr_transaction_coa_id      NUMBER;
29385 l_adr_accounting_coa_id       NUMBER;
29386 l_adr_flexfield_segment_code  VARCHAR2(30);
29387 l_adr_flex_value_set_id       NUMBER;
29388 l_adr_value_type_code         VARCHAR2(30);
29389 l_adr_value_combination_id    NUMBER;
29390 l_adr_value_segment_code      VARCHAR2(30);
29391 
29392 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29393 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29394 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29395 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29396 
29397 -- 4262811 Variables ------------------------------------------------------------------------------------------
29398 l_entered_amt_idx             NUMBER;
29399 l_accted_amt_idx              NUMBER;
29400 l_acc_rev_flag                VARCHAR2(1);
29401 l_accrual_line_num            NUMBER;
29402 l_tmp_amt                     NUMBER;
29403 l_acc_rev_natural_side_code   VARCHAR2(1);
29404 
29405 l_num_entries                 NUMBER;
29406 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29407 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29408 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29409 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29410 l_recog_line_1                NUMBER;
29411 l_recog_line_2                NUMBER;
29412 
29413 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29414 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29415 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29416 
29417 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29418 
29419 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29420 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29421 
29422 ---------------------------------------------------------------------------------------------------------------
29423 
29424 
29425 --
29426 -- bulk performance
29427 --
29428 l_balance_type_code           VARCHAR2(1);
29429 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29430 l_log_module                  VARCHAR2(240);
29431 
29432 --
29433 -- Upgrade strategy
29434 --
29435 l_actual_upg_option           VARCHAR2(1);
29436 l_enc_upg_option           VARCHAR2(1);
29437 
29438 --
29439 BEGIN
29440 --
29441 IF g_log_enabled THEN
29442       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
29443 END IF;
29444 --
29445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29446 
29447       trace
29448          (p_msg      => 'BEGIN of AcctLineType_75'
29449          ,p_level    => C_LEVEL_PROCEDURE
29450          ,p_module   => l_log_module);
29451 
29452 END IF;
29453 --
29454 l_component_type             := 'AMB_JLT';
29455 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
29456 l_component_type_code        := 'S';
29457 l_component_appl_id          :=  200;
29458 l_amb_context_code           := 'DEFAULT';
29459 l_entity_code                := 'AP_PAYMENTS';
29460 l_event_class_code           := 'FUTURE DATED PAYMENTS';
29461 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
29462 l_line_definition_owner_code := 'S';
29463 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
29464 --
29465 l_balance_type_code          := 'A';
29466 l_segment                     := NULL;
29467 l_ccid                        := NULL;
29468 l_adr_transaction_coa_id      := NULL;
29469 l_adr_accounting_coa_id       := NULL;
29470 l_adr_flexfield_segment_code  := NULL;
29471 l_adr_flex_value_set_id       := NULL;
29472 l_adr_value_type_code         := NULL;
29473 l_adr_value_combination_id    := NULL;
29474 l_adr_value_segment_code      := NULL;
29475 
29476 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
29477 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
29478 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29479 l_budgetary_control_flag     := 'N';
29480 
29481 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29482 l_bflow_applied_to_amt       := NULL; -- 5132302
29483 l_entered_amt_idx            := NULL;          -- 4262811
29484 l_accted_amt_idx             := NULL;          -- 4262811
29485 l_acc_rev_flag               := NULL;          -- 4262811
29486 l_accrual_line_num           := NULL;          -- 4262811
29487 l_tmp_amt                    := NULL;          -- 4262811
29488 --
29489  
29490 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29491     l_balance_type_code <> 'B' THEN
29492 IF (NVL(p_source_96,'
29493 ') =  'ALWAYS_ALWAYS' OR 
29494 NVL(p_source_96,'
29495 ') =  'ALWAYS_ISSUE') AND 
29496 (NVL(p_source_113,'
29497 ') =  'Y' AND 
29498 NVL(p_source_15,'
29499 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
29500 p_source_114 IS NOT NULL AND 
29501 NVL(p_source_97,'
29502 ') =  'CASH'
29503  THEN 
29504 
29505    --
29506    XLA_AE_LINES_PKG.SetNewLine;
29507 
29508    p_balance_type_code          := l_balance_type_code;
29512      p_actual_flag :='A';
29509    -- set the flag so later we will know whether the gain loss line needs to be created
29510    
29511    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29513    END IF;
29514 
29515    --
29516    -- bulk performance
29517    --
29518    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29519                                       p_header_num   => 0); -- 4262811
29520    --
29521    -- set accounting line options
29522    --
29523    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29524            p_natural_side_code          => 'C'
29525          , p_gain_or_loss_flag          => 'N'
29526          , p_gl_transfer_mode_code      => 'S'
29527          , p_acct_entry_type_code       => 'A'
29528          , p_switch_side_flag           => 'Y'
29529          , p_merge_duplicate_code       => 'A'
29530          );
29531    --
29532    l_acc_rev_natural_side_code := 'D';  -- 4262811
29533    -- 
29534    --
29535    -- set accounting line type info
29536    --
29537    xla_ae_lines_pkg.SetAcctLineType
29538       (p_component_type             => l_component_type
29539       ,p_event_type_code            => l_event_type_code
29540       ,p_line_definition_owner_code => l_line_definition_owner_code
29541       ,p_line_definition_code       => l_line_definition_code
29542       ,p_accounting_line_code       => l_component_code
29543       ,p_accounting_line_type_code  => l_component_type_code
29544       ,p_accounting_line_appl_id    => l_component_appl_id
29545       ,p_amb_context_code           => l_amb_context_code
29546       ,p_entity_code                => l_entity_code
29547       ,p_event_class_code           => l_event_class_code);
29548    --
29549    -- set accounting class
29550    --
29551    xla_ae_lines_pkg.SetAcctClass(
29552            p_accounting_class_code  => 'CASH_CLEARING'
29553          , p_ae_header_id           => l_ae_header_id
29554          );
29555 
29556    --
29557    -- set rounding class
29558    --
29559    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29560                       'CASH_CLEARING';
29561 
29562    --
29563    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29564    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29565    --
29566    -- bulk performance
29567    --
29568    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29569 
29570    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29571       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29572 
29573    -- 4955764
29574    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29575       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29576 
29577    -- 4458381 Public Sector Enh
29578    
29579    --
29580    -- set accounting attributes for the line type
29581    --
29582    l_entered_amt_idx := 9;
29583    l_accted_amt_idx  := 14;
29584    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
29585    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29586    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
29587    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29588    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
29589    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29590    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
29591    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29592    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
29593    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29594    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
29595    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29596    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
29597    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
29598    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
29599    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
29600    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
29601    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
29602    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
29603    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
29604    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
29605    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
29606    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
29607    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
29608    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
29609    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
29610    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
29611    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
29612    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
29613    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
29614    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
29615    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29616    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
29620    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
29617    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29618    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
29619    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29621    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
29622    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
29623    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
29624    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
29625 
29626    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29627    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29628 
29629    ---------------------------------------------------------------------------------------------------------------
29630    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29631    ---------------------------------------------------------------------------------------------------------------
29632    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29633 
29634    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29635    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29636 
29637    IF xla_accounting_cache_pkg.GetValueChar
29638          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29639          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29640    AND l_bflow_method_code = 'PRIOR_ENTRY'
29641 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29642    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29643          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29644        )
29645    THEN
29646          xla_ae_lines_pkg.BflowUpgEntry
29647            (p_business_method_code    => l_bflow_method_code
29648            ,p_business_class_code     => l_bflow_class_code
29649            ,p_balance_type            => l_balance_type_code);
29650    ELSE
29651       NULL;
29652 XLA_AE_LINES_PKG.business_flow_validation(
29653                                 p_business_method_code     => l_bflow_method_code
29654                                ,p_business_class_code      => l_bflow_class_code
29655                                ,p_inherit_description_flag => l_inherit_desc_flag);
29656    END IF;
29657 
29658    --
29659    -- call analytical criteria
29660    --
29661    
29662 
29663 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
29664 xla_ae_lines_pkg.SetAnalyticalCriteria(
29665    p_analytical_criterion_name    => 'Check Id'
29666  , p_analytical_criterion_owner   => 'S'
29667  , p_analytical_criterion_code    => 'CHECK_ID'
29668  , p_amb_context_code             => 'DEFAULT'
29669  , p_balancing_flag               => 'N'
29670  
29671  , p_analytical_detail_char_1    =>  NULL
29672  , p_analytical_detail_num_1     =>  p_source_112
29673  , p_analytical_detail_date_1    =>  NULL
29674 
29675  , p_ae_header_id                 => l_ae_header_id
29676 )
29677 ;
29678 --
29679 
29680    --
29681    -- call description
29682    --
29683    -- No description or it is inherited.
29684    --
29685    -- call ADRs
29686    -- Bug 4922099
29687    --
29688    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29689         (NVL(l_actual_upg_option, 'N') = 'O') OR
29690         (NVL(l_enc_upg_option, 'N') = 'O')
29691       )
29692    THEN
29693    NULL;
29694    --
29695    --
29696    
29697    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29698      p_code_combination_id      => TO_NUMBER(C_NUM)
29699    , p_value_type_code          => NULL
29700    , p_transaction_coa_id       => null
29701    , p_accounting_coa_id        => null
29702    , p_adr_code                 => NULL
29703    , p_adr_type_code            => NULL
29704    , p_component_type           => l_component_type
29705    , p_component_code           => l_component_code
29706    , p_component_type_code      => l_component_type_code
29707    , p_component_appl_id        => l_component_appl_id
29708    , p_amb_context_code         => l_amb_context_code
29709    , p_side                     => NULL
29710    );
29711 
29712    
29713   -- initialise segments
29714   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29715   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29716   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29717   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29718   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29719   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29720   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29721   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29722   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29723   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29724   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29725   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29729   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29726   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29727   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29728   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29730   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29731   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29732   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29733   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29734   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29735   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29736   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29737   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29738   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29739   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29740   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29741   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29742   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29743   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29744   --
29745 
29746    --
29747 
29748 
29749    l_segment := AcctDerRule_16(
29750            p_application_id           => p_application_id
29751          , p_ae_header_id             => l_ae_header_id 
29752 , p_source_35 => p_source_35
29753          , x_transaction_coa_id       => l_adr_transaction_coa_id
29754          , x_accounting_coa_id        => l_adr_accounting_coa_id
29755          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29756          , x_flex_value_set_id        => l_adr_flex_value_set_id
29757          , x_value_type_code          => l_adr_value_type_code
29758          , x_value_combination_id     => l_adr_value_combination_id
29759          , x_value_segment_code       => l_adr_value_segment_code
29760          , p_side                     => 'NA'
29761          , p_override_seg_flag        => 'Y'
29762    );
29763 
29764    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29765 
29766       xla_ae_lines_pkg.set_segment(
29767           p_to_segment_code         => 'GL_ACCOUNT'
29768         , p_segment_value           => l_segment
29769         , p_from_segment_code       => l_adr_value_segment_code
29770         , p_from_combination_id     => l_adr_value_combination_id
29771         , p_value_type_code         => l_adr_value_type_code
29772         , p_transaction_coa_id      => l_adr_transaction_coa_id
29773         , p_accounting_coa_id       => l_adr_accounting_coa_id
29774         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29775         , p_flex_value_set_id       => l_adr_flex_value_set_id
29776         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29777         , p_adr_type_code           => 'S'
29778         , p_component_type          => l_component_type
29779         , p_component_code          => l_component_code
29780         , p_component_type_code     => l_component_type_code
29781         , p_component_appl_id       => l_component_appl_id
29782         , p_amb_context_code        => l_amb_context_code
29783         , p_entity_code             => 'AP_PAYMENTS'
29784         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
29785         , p_side                    => 'NA'
29786         );
29787 
29788   END IF;
29789 
29790    --
29791    --
29792    END IF;
29793    --
29794    -- Bug 4922099
29795    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29796           (NVL(l_enc_upg_option, 'N') = 'O')
29797         ) AND
29798         (l_bflow_method_code = 'PRIOR_ENTRY')
29799       )
29800    THEN
29801       IF
29802       --
29803       1 = 2
29804       --
29805       THEN
29806       xla_accounting_err_pkg.build_message
29807                                     (p_appli_s_name            => 'XLA'
29808                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29809                                     ,p_token_1                 => 'LINE_NUMBER'
29810                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29811                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29812                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29813                                                                              l_component_type
29814                                                                             ,l_component_code
29815                                                                             ,l_component_type_code
29816                                                                             ,l_component_appl_id
29817                                                                             ,l_amb_context_code
29818                                                                             ,l_entity_code
29819                                                                             ,l_event_class_code
29820                                                                            )
29821                                     ,p_token_3                 => 'OWNER'
29825                                                                          )
29822                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29823                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29824                                                                           ,p_lookup_code    => l_component_type_code
29826                                     ,p_token_4                 => 'PRODUCT_NAME'
29827                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29828                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29829                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29830                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29831                                     ,p_ae_header_id            =>  NULL
29832                                        );
29833 
29834         IF (C_LEVEL_ERROR>= g_log_level) THEN
29835                  trace
29836                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29837                       ,p_level    => C_LEVEL_ERROR
29838                       ,p_module   => l_log_module);
29839         END IF;
29840       END IF;
29841    END IF;
29842    --
29843    --
29844    ------------------------------------------------------------------------------------------------
29845    -- 4219869 Business Flow
29846    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29847    -- Prior Entry.  Currently, the following code is always generated.
29848    ------------------------------------------------------------------------------------------------
29849    XLA_AE_LINES_PKG.ValidateCurrentLine;
29850 
29851    ------------------------------------------------------------------------------------
29852    -- 4219869 Business Flow
29853    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29854    ------------------------------------------------------------------------------------
29855    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29856 
29857    ----------------------------------------------------------------------------------
29858    -- 4219869 Business Flow
29859    -- Update journal entry status -- Need to generate this within IF <condition>
29860    ----------------------------------------------------------------------------------
29861    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29862          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29863          ,p_balance_type_code => l_balance_type_code
29864          );
29865 
29866    -------------------------------------------------------------------------------------------
29867    -- 4262811 - Generate the Accrual Reversal lines
29868    -------------------------------------------------------------------------------------------
29869    BEGIN
29870       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29871                               (g_array_event(p_event_id).array_value_num('header_index'));
29872       IF l_acc_rev_flag IS NULL THEN
29873          l_acc_rev_flag := 'N';
29874       END IF;
29875    EXCEPTION
29876       WHEN OTHERS THEN
29877          l_acc_rev_flag := 'N';
29878    END;
29879    --
29880    IF (l_acc_rev_flag = 'Y') THEN
29881 
29882        -- 4645092  ------------------------------------------------------------------------------
29883        -- To allow MPA report to determine if it should generate report process
29884        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29885        ------------------------------------------------------------------------------------------
29886 
29887        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29888        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29889    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29890    -- call ADRs
29891    -- Bug 4922099
29892    --
29893    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29894         (NVL(l_actual_upg_option, 'N') = 'O') OR
29895         (NVL(l_enc_upg_option, 'N') = 'O')
29896       )
29897    THEN
29898    NULL;
29899    --
29900    --
29901    
29902    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29903      p_code_combination_id      => TO_NUMBER(C_NUM)
29904    , p_value_type_code          => NULL
29905    , p_transaction_coa_id       => null
29906    , p_accounting_coa_id        => null
29907    , p_adr_code                 => NULL
29908    , p_adr_type_code            => NULL
29909    , p_component_type           => l_component_type
29910    , p_component_code           => l_component_code
29911    , p_component_type_code      => l_component_type_code
29912    , p_component_appl_id        => l_component_appl_id
29913    , p_amb_context_code         => l_amb_context_code
29914    , p_side                     => NULL
29915    );
29916 
29917    
29918   -- initialise segments
29919   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29920   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29921   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29922   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29923   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29927   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29924   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29925   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29926   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29928   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29929   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29930   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29931   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29932   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29933   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29934   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29935   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29936   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29937   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29938   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29939   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29940   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29941   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29942   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29943   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29944   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29945   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29946   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29947   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29948   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29949   --
29950 
29951    --
29952 
29953 
29954    l_segment := AcctDerRule_16(
29955            p_application_id           => p_application_id
29956          , p_ae_header_id             => l_ae_header_id 
29957 , p_source_35 => p_source_35
29958          , x_transaction_coa_id       => l_adr_transaction_coa_id
29959          , x_accounting_coa_id        => l_adr_accounting_coa_id
29960          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29961          , x_flex_value_set_id        => l_adr_flex_value_set_id
29962          , x_value_type_code          => l_adr_value_type_code
29963          , x_value_combination_id     => l_adr_value_combination_id
29964          , x_value_segment_code       => l_adr_value_segment_code
29965          , p_side                     => 'NA'
29966          , p_override_seg_flag        => 'Y'
29967    );
29968 
29969    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29970 
29971       xla_ae_lines_pkg.set_segment(
29972           p_to_segment_code         => 'GL_ACCOUNT'
29973         , p_segment_value           => l_segment
29974         , p_from_segment_code       => l_adr_value_segment_code
29975         , p_from_combination_id     => l_adr_value_combination_id
29976         , p_value_type_code         => l_adr_value_type_code
29977         , p_transaction_coa_id      => l_adr_transaction_coa_id
29978         , p_accounting_coa_id       => l_adr_accounting_coa_id
29979         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29980         , p_flex_value_set_id       => l_adr_flex_value_set_id
29981         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29982         , p_adr_type_code           => 'S'
29983         , p_component_type          => l_component_type
29984         , p_component_code          => l_component_code
29985         , p_component_type_code     => l_component_type_code
29986         , p_component_appl_id       => l_component_appl_id
29987         , p_amb_context_code        => l_amb_context_code
29988         , p_entity_code             => 'AP_PAYMENTS'
29989         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
29990         , p_side                    => 'NA'
29991         );
29992 
29993   END IF;
29994 
29995    --
29996    --
29997    END IF;
29998 
29999        --
30000        -- Update the line information that should be overwritten
30001        --
30002        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30003                                          p_header_num   => 1);
30004        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30005 
30006        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30007 
30008        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30009           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30010        END IF;
30011 
30012       --
30013       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30014       --
30015       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30016           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30017       ELSE
30018           ---------------------------------------------------------------------------------------------------
30019           -- 4262811a Switch Sign
30023                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30020           ---------------------------------------------------------------------------------------------------
30021           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30022           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30024           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30025                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30026           -- 5132302
30027           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30028                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30029 
30030       END IF;
30031 
30032       -- 4955764
30033       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30034       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30035 
30036 
30037       XLA_AE_LINES_PKG.ValidateCurrentLine;
30038       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30039 
30040       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30041                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30042                ,p_balance_type_code => l_balance_type_code);
30043 
30044    END IF;
30045 
30046    -----------------------------------------------------------------------------------------
30047    -- 4262811 Multiperiod Accounting
30048    -----------------------------------------------------------------------------------------
30049      -- No MPA option is assigned.
30050 
30051 
30052 END IF;
30053 END IF;
30054 --
30055 
30056 --
30057 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30058    trace
30059       (p_msg      => 'END of AcctLineType_75'
30060       ,p_level    => C_LEVEL_PROCEDURE
30061       ,p_module   => l_log_module);
30062 END IF;
30063 --
30064 EXCEPTION
30065   WHEN xla_exceptions_pkg.application_exception THEN
30066       RAISE;
30067   WHEN OTHERS THEN
30068        xla_exceptions_pkg.raise_message
30069            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_75');
30070 END AcctLineType_75;
30071 --
30072 
30073 ---------------------------------------
30074 --
30075 -- PRIVATE FUNCTION
30076 --         AcctLineType_76
30077 --
30078 ---------------------------------------
30079 PROCEDURE AcctLineType_76 (
30080   p_application_id        IN NUMBER
30081  ,p_event_id              IN NUMBER
30082  ,p_calculate_acctd_flag  IN VARCHAR2
30083  ,p_calculate_g_l_flag    IN VARCHAR2
30084  ,p_actual_flag           IN OUT VARCHAR2
30085  ,p_balance_type_code     OUT VARCHAR2
30086  ,p_gain_or_loss_ref      OUT VARCHAR2
30087  
30088 --Payment Currency Code
30089  , p_source_13            IN VARCHAR2
30090 --Automatic Offsets Value
30091  , p_source_15            IN VARCHAR2
30092  , p_source_15_meaning    IN VARCHAR2
30093 --Bank Cash Clearing Account
30094  , p_source_35            IN NUMBER
30095 --Accounting Reversal Indicator
30096  , p_source_52            IN VARCHAR2
30097 --Distribution Link Type
30098  , p_source_54            IN VARCHAR2
30099 --Override Accounted Amount Indicator
30100  , p_source_79            IN VARCHAR2
30101  , p_source_79_meaning    IN VARCHAR2
30102 --Third Party Type
30103  , p_source_82            IN VARCHAR2
30104 --Business Flow Accounts Payable Application Identifier
30105  , p_source_90            IN NUMBER
30106 --When to Account for Payment Option
30107  , p_source_96            IN VARCHAR2
30108 --Payment Distribution Type
30109  , p_source_97            IN VARCHAR2
30110  , p_source_97_meaning    IN VARCHAR2
30111 --Payment Distribution Amount
30112  , p_source_98            IN NUMBER
30113 --Business Flow Payment Distribution Type
30114  , p_source_99            IN VARCHAR2
30115 --Business Flow Payment Entity Code
30116  , p_source_100            IN VARCHAR2
30117 --Business Flow Payment Distribution Identifier
30118  , p_source_101            IN NUMBER
30119 --Business Flow Payment Identifier
30120  , p_source_102            IN NUMBER
30121 --Payment Distribution Identifier
30122  , p_source_103            IN NUMBER
30123 --Payment Supplier Identifier
30124  , p_source_109            IN NUMBER
30125 --Payment Supplier Site Identifier
30126  , p_source_110            IN NUMBER
30127 --Payment Distribution Reversed Identifier
30128  , p_source_111            IN NUMBER
30129 --Payment Identifier
30130  , p_source_112            IN NUMBER
30131 --Pooled Bank Account Option
30132  , p_source_113            IN VARCHAR2
30133  , p_source_113_meaning    IN VARCHAR2
30134 --Payment Maturity Date
30135  , p_source_114            IN DATE
30136 --Payment Exchange Date
30137  , p_source_117            IN DATE
30138 --Payment Exchange Rate
30139  , p_source_118            IN NUMBER
30140 --Payment Exchange Rate Type
30141  , p_source_119            IN VARCHAR2
30142 --Payment Distribution (Matured Rate) Ledger Amount
30143  , p_source_121            IN NUMBER
30144 )
30145 IS
30146 
30147 l_component_type              VARCHAR2(80);
30148 l_component_code              VARCHAR2(30);
30149 l_component_type_code         VARCHAR2(1);
30153 l_event_class_code            VARCHAR2(30);
30150 l_component_appl_id           INTEGER;
30151 l_amb_context_code            VARCHAR2(30);
30152 l_entity_code                 VARCHAR2(30);
30154 l_ae_header_id                NUMBER;
30155 l_event_type_code             VARCHAR2(30);
30156 l_line_definition_code        VARCHAR2(30);
30157 l_line_definition_owner_code  VARCHAR2(1);
30158 --
30159 -- adr variables
30160 l_segment                     VARCHAR2(30);
30161 l_ccid                        NUMBER;
30162 l_adr_transaction_coa_id      NUMBER;
30163 l_adr_accounting_coa_id       NUMBER;
30164 l_adr_flexfield_segment_code  VARCHAR2(30);
30165 l_adr_flex_value_set_id       NUMBER;
30166 l_adr_value_type_code         VARCHAR2(30);
30167 l_adr_value_combination_id    NUMBER;
30168 l_adr_value_segment_code      VARCHAR2(30);
30169 
30170 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30171 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30172 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30173 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30174 
30175 -- 4262811 Variables ------------------------------------------------------------------------------------------
30176 l_entered_amt_idx             NUMBER;
30177 l_accted_amt_idx              NUMBER;
30178 l_acc_rev_flag                VARCHAR2(1);
30179 l_accrual_line_num            NUMBER;
30180 l_tmp_amt                     NUMBER;
30181 l_acc_rev_natural_side_code   VARCHAR2(1);
30182 
30183 l_num_entries                 NUMBER;
30184 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30185 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30186 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30187 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30188 l_recog_line_1                NUMBER;
30189 l_recog_line_2                NUMBER;
30190 
30191 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30192 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30193 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30194 
30195 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30196 
30197 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30198 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30199 
30200 ---------------------------------------------------------------------------------------------------------------
30201 
30202 
30203 --
30204 -- bulk performance
30205 --
30206 l_balance_type_code           VARCHAR2(1);
30207 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30208 l_log_module                  VARCHAR2(240);
30209 
30210 --
30211 -- Upgrade strategy
30212 --
30213 l_actual_upg_option           VARCHAR2(1);
30214 l_enc_upg_option           VARCHAR2(1);
30215 
30216 --
30217 BEGIN
30218 --
30219 IF g_log_enabled THEN
30220       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
30221 END IF;
30222 --
30223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30224 
30225       trace
30226          (p_msg      => 'BEGIN of AcctLineType_76'
30227          ,p_level    => C_LEVEL_PROCEDURE
30228          ,p_module   => l_log_module);
30229 
30230 END IF;
30231 --
30232 l_component_type             := 'AMB_JLT';
30233 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
30234 l_component_type_code        := 'S';
30235 l_component_appl_id          :=  200;
30236 l_amb_context_code           := 'DEFAULT';
30237 l_entity_code                := 'AP_PAYMENTS';
30238 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30239 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30240 l_line_definition_owner_code := 'S';
30241 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
30242 --
30243 l_balance_type_code          := 'A';
30244 l_segment                     := NULL;
30245 l_ccid                        := NULL;
30246 l_adr_transaction_coa_id      := NULL;
30247 l_adr_accounting_coa_id       := NULL;
30248 l_adr_flexfield_segment_code  := NULL;
30249 l_adr_flex_value_set_id       := NULL;
30250 l_adr_value_type_code         := NULL;
30251 l_adr_value_combination_id    := NULL;
30252 l_adr_value_segment_code      := NULL;
30253 
30254 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
30255 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30256 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30257 l_budgetary_control_flag     := 'N';
30258 
30259 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30260 l_bflow_applied_to_amt       := NULL; -- 5132302
30261 l_entered_amt_idx            := NULL;          -- 4262811
30262 l_accted_amt_idx             := NULL;          -- 4262811
30263 l_acc_rev_flag               := NULL;          -- 4262811
30264 l_accrual_line_num           := NULL;          -- 4262811
30265 l_tmp_amt                    := NULL;          -- 4262811
30266 --
30267  
30268 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30269     l_balance_type_code <> 'B' THEN
30270 IF (NVL(p_source_96,'
30271 ') =  'ALWAYS_ALWAYS' OR 
30272 NVL(p_source_96,'
30273 ') =  'ALWAYS_CLEAR' OR 
30277 ') =  'Y' AND 
30274 NVL(p_source_96,'
30275 ') =  'ALWAYS_ISSUE') AND 
30276 (NVL(p_source_113,'
30278 NVL(p_source_15,'
30279 ') =  'BALANCING_SEGMENT') AND 
30280 p_source_114 IS NOT NULL AND 
30281 NVL(p_source_97,'
30282 ') =  'CASH'
30283  THEN 
30284 
30285    --
30286    XLA_AE_LINES_PKG.SetNewLine;
30287 
30288    p_balance_type_code          := l_balance_type_code;
30289    -- set the flag so later we will know whether the gain loss line needs to be created
30290    
30291    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30292      p_actual_flag :='A';
30293    END IF;
30294 
30295    --
30296    -- bulk performance
30297    --
30298    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30299                                       p_header_num   => 0); -- 4262811
30300    --
30301    -- set accounting line options
30302    --
30303    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30304            p_natural_side_code          => 'C'
30305          , p_gain_or_loss_flag          => 'N'
30306          , p_gl_transfer_mode_code      => 'S'
30307          , p_acct_entry_type_code       => 'A'
30308          , p_switch_side_flag           => 'Y'
30309          , p_merge_duplicate_code       => 'A'
30310          );
30311    --
30312    l_acc_rev_natural_side_code := 'D';  -- 4262811
30313    -- 
30314    --
30315    -- set accounting line type info
30316    --
30317    xla_ae_lines_pkg.SetAcctLineType
30318       (p_component_type             => l_component_type
30319       ,p_event_type_code            => l_event_type_code
30320       ,p_line_definition_owner_code => l_line_definition_owner_code
30321       ,p_line_definition_code       => l_line_definition_code
30322       ,p_accounting_line_code       => l_component_code
30323       ,p_accounting_line_type_code  => l_component_type_code
30324       ,p_accounting_line_appl_id    => l_component_appl_id
30325       ,p_amb_context_code           => l_amb_context_code
30326       ,p_entity_code                => l_entity_code
30327       ,p_event_class_code           => l_event_class_code);
30328    --
30329    -- set accounting class
30330    --
30331    xla_ae_lines_pkg.SetAcctClass(
30332            p_accounting_class_code  => 'CASH_CLEARING'
30333          , p_ae_header_id           => l_ae_header_id
30334          );
30335 
30336    --
30337    -- set rounding class
30338    --
30339    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30340                       'CASH_CLEARING';
30341 
30342    --
30343    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30344    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30345    --
30346    -- bulk performance
30347    --
30348    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30349 
30350    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30351       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30352 
30353    -- 4955764
30354    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30355       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30356 
30357    -- 4458381 Public Sector Enh
30358    
30359    --
30360    -- set accounting attributes for the line type
30361    --
30362    l_entered_amt_idx := 9;
30363    l_accted_amt_idx  := 14;
30364    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30365    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30366    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
30367    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30368    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
30369    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30370    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
30371    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30372    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
30373    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30374    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
30375    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30376    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
30377    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30378    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
30379    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30380    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
30381    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30382    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
30383    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30384    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
30385    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30386    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
30387    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30388    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
30389    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30390    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
30394    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
30391    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30392    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
30393    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30395    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30396    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
30397    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30398    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
30399    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30400    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
30401    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30402    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
30403    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30404    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
30405 
30406    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30407    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30408 
30409    ---------------------------------------------------------------------------------------------------------------
30410    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30411    ---------------------------------------------------------------------------------------------------------------
30412    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30413 
30414    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30415    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30416 
30417    IF xla_accounting_cache_pkg.GetValueChar
30418          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30419          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30420    AND l_bflow_method_code = 'PRIOR_ENTRY'
30421 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30422    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30423          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30424        )
30425    THEN
30426          xla_ae_lines_pkg.BflowUpgEntry
30427            (p_business_method_code    => l_bflow_method_code
30428            ,p_business_class_code     => l_bflow_class_code
30429            ,p_balance_type            => l_balance_type_code);
30430    ELSE
30431       NULL;
30432 XLA_AE_LINES_PKG.business_flow_validation(
30433                                 p_business_method_code     => l_bflow_method_code
30434                                ,p_business_class_code      => l_bflow_class_code
30435                                ,p_inherit_description_flag => l_inherit_desc_flag);
30436    END IF;
30437 
30438    --
30439    -- call analytical criteria
30440    --
30441    
30442 
30443 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
30444 xla_ae_lines_pkg.SetAnalyticalCriteria(
30445    p_analytical_criterion_name    => 'Check Id'
30446  , p_analytical_criterion_owner   => 'S'
30447  , p_analytical_criterion_code    => 'CHECK_ID'
30448  , p_amb_context_code             => 'DEFAULT'
30449  , p_balancing_flag               => 'N'
30450  
30451  , p_analytical_detail_char_1    =>  NULL
30452  , p_analytical_detail_num_1     =>  p_source_112
30453  , p_analytical_detail_date_1    =>  NULL
30454 
30455  , p_ae_header_id                 => l_ae_header_id
30456 )
30457 ;
30458 --
30459 
30460    --
30461    -- call description
30462    --
30463    -- No description or it is inherited.
30464    --
30465    -- call ADRs
30466    -- Bug 4922099
30467    --
30468    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30469         (NVL(l_actual_upg_option, 'N') = 'O') OR
30470         (NVL(l_enc_upg_option, 'N') = 'O')
30471       )
30472    THEN
30473    NULL;
30474    --
30475    --
30476    
30477   l_ccid := AcctDerRule_35(
30478            p_application_id           => p_application_id
30479          , p_ae_header_id             => l_ae_header_id 
30480 , p_source_35 => p_source_35
30481          , x_transaction_coa_id       => l_adr_transaction_coa_id
30482          , x_accounting_coa_id        => l_adr_accounting_coa_id
30483          , x_value_type_code          => l_adr_value_type_code
30484          , p_side                     => 'NA'
30485    );
30486 
30487    xla_ae_lines_pkg.set_ccid(
30488     p_code_combination_id          => l_ccid
30489   , p_value_type_code              => l_adr_value_type_code
30490   , p_transaction_coa_id           => l_adr_transaction_coa_id
30491   , p_accounting_coa_id            => l_adr_accounting_coa_id
30492   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30493   , p_adr_type_code                => 'S'
30494   , p_component_type               => l_component_type
30495   , p_component_code               => l_component_code
30496   , p_component_type_code          => l_component_type_code
30497   , p_component_appl_id            => l_component_appl_id
30498   , p_amb_context_code             => l_amb_context_code
30499   , p_side                         => 'NA'
30500   );
30501 
30502 
30503    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
30504      p_to_segment_code         => 'GL_BALANCING'
30505    , p_segment_value           => C_CHAR
30506    , p_from_segment_code       => NULL
30507    , p_from_combination_id     => NULL
30511    , p_flexfield_segment_code  => NULL
30508    , p_value_type_code         => NULL
30509    , p_transaction_coa_id      => null
30510    , p_accounting_coa_id       => null
30512    , p_flex_value_set_id       => NULL
30513    , p_adr_code                => NULL
30514    , p_adr_type_code           => NULL
30515    , p_component_type          => l_component_type
30516    , p_component_code          => l_component_code
30517    , p_component_type_code     => l_component_type_code
30518    , p_component_appl_id       => l_component_appl_id
30519    , p_amb_context_code        => l_amb_context_code
30520    , p_entity_code             => 'AP_PAYMENTS'
30521    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30522    , p_side                    => 'NA'
30523    );
30524    --
30525 
30526 
30527    --
30528    --
30529    END IF;
30530    --
30531    -- Bug 4922099
30532    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30533           (NVL(l_enc_upg_option, 'N') = 'O')
30534         ) AND
30535         (l_bflow_method_code = 'PRIOR_ENTRY')
30536       )
30537    THEN
30538       IF
30539       --
30540       1 = 2
30541       --
30542       THEN
30543       xla_accounting_err_pkg.build_message
30544                                     (p_appli_s_name            => 'XLA'
30545                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30546                                     ,p_token_1                 => 'LINE_NUMBER'
30547                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30548                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30549                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30550                                                                              l_component_type
30551                                                                             ,l_component_code
30552                                                                             ,l_component_type_code
30553                                                                             ,l_component_appl_id
30554                                                                             ,l_amb_context_code
30555                                                                             ,l_entity_code
30556                                                                             ,l_event_class_code
30557                                                                            )
30558                                     ,p_token_3                 => 'OWNER'
30559                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30560                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30561                                                                           ,p_lookup_code    => l_component_type_code
30562                                                                          )
30563                                     ,p_token_4                 => 'PRODUCT_NAME'
30564                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30565                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30566                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30567                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30568                                     ,p_ae_header_id            =>  NULL
30569                                        );
30570 
30571         IF (C_LEVEL_ERROR>= g_log_level) THEN
30572                  trace
30573                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30574                       ,p_level    => C_LEVEL_ERROR
30575                       ,p_module   => l_log_module);
30576         END IF;
30577       END IF;
30578    END IF;
30579    --
30580    --
30581    ------------------------------------------------------------------------------------------------
30582    -- 4219869 Business Flow
30583    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30584    -- Prior Entry.  Currently, the following code is always generated.
30585    ------------------------------------------------------------------------------------------------
30586    XLA_AE_LINES_PKG.ValidateCurrentLine;
30587 
30588    ------------------------------------------------------------------------------------
30589    -- 4219869 Business Flow
30590    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30591    ------------------------------------------------------------------------------------
30592    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30593 
30594    ----------------------------------------------------------------------------------
30595    -- 4219869 Business Flow
30596    -- Update journal entry status -- Need to generate this within IF <condition>
30597    ----------------------------------------------------------------------------------
30598    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30599          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30600          ,p_balance_type_code => l_balance_type_code
30601          );
30602 
30603    -------------------------------------------------------------------------------------------
30604    -- 4262811 - Generate the Accrual Reversal lines
30608                               (g_array_event(p_event_id).array_value_num('header_index'));
30605    -------------------------------------------------------------------------------------------
30606    BEGIN
30607       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30609       IF l_acc_rev_flag IS NULL THEN
30610          l_acc_rev_flag := 'N';
30611       END IF;
30612    EXCEPTION
30613       WHEN OTHERS THEN
30614          l_acc_rev_flag := 'N';
30615    END;
30616    --
30617    IF (l_acc_rev_flag = 'Y') THEN
30618 
30619        -- 4645092  ------------------------------------------------------------------------------
30620        -- To allow MPA report to determine if it should generate report process
30621        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30622        ------------------------------------------------------------------------------------------
30623 
30624        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30625        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30626    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30627    -- call ADRs
30628    -- Bug 4922099
30629    --
30630    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30631         (NVL(l_actual_upg_option, 'N') = 'O') OR
30632         (NVL(l_enc_upg_option, 'N') = 'O')
30633       )
30634    THEN
30635    NULL;
30636    --
30637    --
30638    
30639   l_ccid := AcctDerRule_35(
30640            p_application_id           => p_application_id
30641          , p_ae_header_id             => l_ae_header_id 
30642 , p_source_35 => p_source_35
30643          , x_transaction_coa_id       => l_adr_transaction_coa_id
30644          , x_accounting_coa_id        => l_adr_accounting_coa_id
30645          , x_value_type_code          => l_adr_value_type_code
30646          , p_side                     => 'NA'
30647    );
30648 
30649    xla_ae_lines_pkg.set_ccid(
30650     p_code_combination_id          => l_ccid
30651   , p_value_type_code              => l_adr_value_type_code
30652   , p_transaction_coa_id           => l_adr_transaction_coa_id
30653   , p_accounting_coa_id            => l_adr_accounting_coa_id
30654   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30655   , p_adr_type_code                => 'S'
30656   , p_component_type               => l_component_type
30657   , p_component_code               => l_component_code
30658   , p_component_type_code          => l_component_type_code
30659   , p_component_appl_id            => l_component_appl_id
30660   , p_amb_context_code             => l_amb_context_code
30661   , p_side                         => 'NA'
30662   );
30663 
30664 
30665    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
30666      p_to_segment_code         => 'GL_BALANCING'
30667    , p_segment_value           => C_CHAR
30668    , p_from_segment_code       => NULL
30669    , p_from_combination_id     => NULL
30670    , p_value_type_code         => NULL
30671    , p_transaction_coa_id      => null
30672    , p_accounting_coa_id       => null
30673    , p_flexfield_segment_code  => NULL
30674    , p_flex_value_set_id       => NULL
30675    , p_adr_code                => NULL
30676    , p_adr_type_code           => NULL
30677    , p_component_type          => l_component_type
30678    , p_component_code          => l_component_code
30679    , p_component_type_code     => l_component_type_code
30680    , p_component_appl_id       => l_component_appl_id
30681    , p_amb_context_code        => l_amb_context_code
30682    , p_entity_code             => 'AP_PAYMENTS'
30683    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30684    , p_side                    => 'NA'
30685    );
30686    --
30687 
30688 
30689    --
30690    --
30691    END IF;
30692 
30693        --
30694        -- Update the line information that should be overwritten
30695        --
30696        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30697                                          p_header_num   => 1);
30698        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30699 
30700        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30701 
30702        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30703           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30704        END IF;
30705 
30706       --
30707       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30708       --
30709       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30710           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30711       ELSE
30712           ---------------------------------------------------------------------------------------------------
30713           -- 4262811a Switch Sign
30714           ---------------------------------------------------------------------------------------------------
30715           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30716           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30717                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30718           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30722                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30719                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30720           -- 5132302
30721           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30723 
30724       END IF;
30725 
30726       -- 4955764
30727       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30728       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30729 
30730 
30731       XLA_AE_LINES_PKG.ValidateCurrentLine;
30732       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30733 
30734       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30735                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30736                ,p_balance_type_code => l_balance_type_code);
30737 
30738    END IF;
30739 
30740    -----------------------------------------------------------------------------------------
30741    -- 4262811 Multiperiod Accounting
30742    -----------------------------------------------------------------------------------------
30743      -- No MPA option is assigned.
30744 
30745 
30746 END IF;
30747 END IF;
30748 --
30749 
30750 --
30751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30752    trace
30753       (p_msg      => 'END of AcctLineType_76'
30754       ,p_level    => C_LEVEL_PROCEDURE
30755       ,p_module   => l_log_module);
30756 END IF;
30757 --
30758 EXCEPTION
30759   WHEN xla_exceptions_pkg.application_exception THEN
30760       RAISE;
30761   WHEN OTHERS THEN
30762        xla_exceptions_pkg.raise_message
30763            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_76');
30764 END AcctLineType_76;
30765 --
30766 
30767 ---------------------------------------
30768 --
30769 -- PRIVATE FUNCTION
30770 --         AcctLineType_77
30771 --
30772 ---------------------------------------
30773 PROCEDURE AcctLineType_77 (
30774   p_application_id        IN NUMBER
30775  ,p_event_id              IN NUMBER
30776  ,p_calculate_acctd_flag  IN VARCHAR2
30777  ,p_calculate_g_l_flag    IN VARCHAR2
30778  ,p_actual_flag           IN OUT VARCHAR2
30779  ,p_balance_type_code     OUT VARCHAR2
30780  ,p_gain_or_loss_ref      OUT VARCHAR2
30781  
30782 --Payment Currency Code
30783  , p_source_13            IN VARCHAR2
30784 --Bank Cash Clearing Account
30785  , p_source_35            IN NUMBER
30786 --Automatic Offsets Flag
30787  , p_source_47            IN VARCHAR2
30788  , p_source_47_meaning    IN VARCHAR2
30789 --Accounting Reversal Indicator
30790  , p_source_52            IN VARCHAR2
30791 --Distribution Link Type
30792  , p_source_54            IN VARCHAR2
30793 --Override Accounted Amount Indicator
30794  , p_source_79            IN VARCHAR2
30795  , p_source_79_meaning    IN VARCHAR2
30796 --Third Party Type
30797  , p_source_82            IN VARCHAR2
30798 --Business Flow Accounts Payable Application Identifier
30799  , p_source_90            IN NUMBER
30800 --When to Account for Payment Option
30801  , p_source_96            IN VARCHAR2
30802 --Payment Distribution Type
30803  , p_source_97            IN VARCHAR2
30804  , p_source_97_meaning    IN VARCHAR2
30805 --Payment Distribution Amount
30806  , p_source_98            IN NUMBER
30807 --Business Flow Payment Distribution Type
30808  , p_source_99            IN VARCHAR2
30809 --Business Flow Payment Entity Code
30810  , p_source_100            IN VARCHAR2
30811 --Business Flow Payment Distribution Identifier
30812  , p_source_101            IN NUMBER
30813 --Business Flow Payment Identifier
30814  , p_source_102            IN NUMBER
30815 --Payment Distribution Identifier
30816  , p_source_103            IN NUMBER
30817 --Payment Supplier Identifier
30818  , p_source_109            IN NUMBER
30819 --Payment Supplier Site Identifier
30820  , p_source_110            IN NUMBER
30821 --Payment Distribution Reversed Identifier
30822  , p_source_111            IN NUMBER
30823 --Payment Identifier
30824  , p_source_112            IN NUMBER
30825 --Pooled Bank Account Option
30826  , p_source_113            IN VARCHAR2
30827  , p_source_113_meaning    IN VARCHAR2
30828 --Payment Maturity Date
30829  , p_source_114            IN DATE
30830 --Payment Distribution (Invoice Rate) Ledger Amount
30831  , p_source_116            IN NUMBER
30832 --Payment Exchange Date
30833  , p_source_117            IN DATE
30834 --Payment Exchange Rate
30835  , p_source_118            IN NUMBER
30836 --Payment Exchange Rate Type
30837  , p_source_119            IN VARCHAR2
30838 )
30839 IS
30840 
30841 l_component_type              VARCHAR2(80);
30842 l_component_code              VARCHAR2(30);
30843 l_component_type_code         VARCHAR2(1);
30844 l_component_appl_id           INTEGER;
30845 l_amb_context_code            VARCHAR2(30);
30846 l_entity_code                 VARCHAR2(30);
30847 l_event_class_code            VARCHAR2(30);
30848 l_ae_header_id                NUMBER;
30849 l_event_type_code             VARCHAR2(30);
30850 l_line_definition_code        VARCHAR2(30);
30851 l_line_definition_owner_code  VARCHAR2(1);
30852 --
30853 -- adr variables
30854 l_segment                     VARCHAR2(30);
30858 l_adr_flexfield_segment_code  VARCHAR2(30);
30855 l_ccid                        NUMBER;
30856 l_adr_transaction_coa_id      NUMBER;
30857 l_adr_accounting_coa_id       NUMBER;
30859 l_adr_flex_value_set_id       NUMBER;
30860 l_adr_value_type_code         VARCHAR2(30);
30861 l_adr_value_combination_id    NUMBER;
30862 l_adr_value_segment_code      VARCHAR2(30);
30863 
30864 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30865 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30866 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30867 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30868 
30869 -- 4262811 Variables ------------------------------------------------------------------------------------------
30870 l_entered_amt_idx             NUMBER;
30871 l_accted_amt_idx              NUMBER;
30872 l_acc_rev_flag                VARCHAR2(1);
30873 l_accrual_line_num            NUMBER;
30874 l_tmp_amt                     NUMBER;
30875 l_acc_rev_natural_side_code   VARCHAR2(1);
30876 
30877 l_num_entries                 NUMBER;
30878 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30879 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30880 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30881 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30882 l_recog_line_1                NUMBER;
30883 l_recog_line_2                NUMBER;
30884 
30885 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30886 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30887 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30888 
30889 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30890 
30891 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30892 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30893 
30894 ---------------------------------------------------------------------------------------------------------------
30895 
30896 
30897 --
30898 -- bulk performance
30899 --
30900 l_balance_type_code           VARCHAR2(1);
30901 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30902 l_log_module                  VARCHAR2(240);
30903 
30904 --
30905 -- Upgrade strategy
30906 --
30907 l_actual_upg_option           VARCHAR2(1);
30908 l_enc_upg_option           VARCHAR2(1);
30909 
30910 --
30911 BEGIN
30912 --
30913 IF g_log_enabled THEN
30914       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
30915 END IF;
30916 --
30917 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30918 
30919       trace
30920          (p_msg      => 'BEGIN of AcctLineType_77'
30921          ,p_level    => C_LEVEL_PROCEDURE
30922          ,p_module   => l_log_module);
30923 
30924 END IF;
30925 --
30926 l_component_type             := 'AMB_JLT';
30927 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_INVXRATE';
30928 l_component_type_code        := 'S';
30929 l_component_appl_id          :=  200;
30930 l_amb_context_code           := 'DEFAULT';
30931 l_entity_code                := 'AP_PAYMENTS';
30932 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30933 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30934 l_line_definition_owner_code := 'S';
30935 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
30936 --
30937 l_balance_type_code          := 'A';
30938 l_segment                     := NULL;
30939 l_ccid                        := NULL;
30940 l_adr_transaction_coa_id      := NULL;
30941 l_adr_accounting_coa_id       := NULL;
30942 l_adr_flexfield_segment_code  := NULL;
30943 l_adr_flex_value_set_id       := NULL;
30944 l_adr_value_type_code         := NULL;
30945 l_adr_value_combination_id    := NULL;
30946 l_adr_value_segment_code      := NULL;
30947 
30948 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30949 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30950 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30951 l_budgetary_control_flag     := 'N';
30952 
30953 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30954 l_bflow_applied_to_amt       := NULL; -- 5132302
30955 l_entered_amt_idx            := NULL;          -- 4262811
30956 l_accted_amt_idx             := NULL;          -- 4262811
30957 l_acc_rev_flag               := NULL;          -- 4262811
30958 l_accrual_line_num           := NULL;          -- 4262811
30959 l_tmp_amt                    := NULL;          -- 4262811
30960 --
30961  
30962 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30963     l_balance_type_code <> 'B' THEN
30964 IF NVL(p_source_96,'
30965 ') =  'ALWAYS_CLEAR' AND 
30966 (NVL(p_source_47,'
30967 ') <>  'Y' OR 
30968 NVL(p_source_47,'
30969 ') =  'Y' AND 
30970 NVL(p_source_113,'
30971 ') <>  'Y') AND 
30972 p_source_114 IS NOT NULL AND 
30973 NVL(p_source_97,'
30974 ') =  'CASH'
30975  THEN 
30976 
30977    --
30978    XLA_AE_LINES_PKG.SetNewLine;
30979 
30980    p_balance_type_code          := l_balance_type_code;
30981    -- set the flag so later we will know whether the gain loss line needs to be created
30985    END IF;
30982    
30983    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30984      p_actual_flag :='A';
30986 
30987    --
30988    -- bulk performance
30989    --
30990    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30991                                       p_header_num   => 0); -- 4262811
30992    --
30993    -- set accounting line options
30994    --
30995    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30996            p_natural_side_code          => 'C'
30997          , p_gain_or_loss_flag          => 'N'
30998          , p_gl_transfer_mode_code      => 'S'
30999          , p_acct_entry_type_code       => 'A'
31000          , p_switch_side_flag           => 'Y'
31001          , p_merge_duplicate_code       => 'A'
31002          );
31003    --
31004    l_acc_rev_natural_side_code := 'D';  -- 4262811
31005    -- 
31006    --
31007    -- set accounting line type info
31008    --
31009    xla_ae_lines_pkg.SetAcctLineType
31010       (p_component_type             => l_component_type
31011       ,p_event_type_code            => l_event_type_code
31012       ,p_line_definition_owner_code => l_line_definition_owner_code
31013       ,p_line_definition_code       => l_line_definition_code
31014       ,p_accounting_line_code       => l_component_code
31015       ,p_accounting_line_type_code  => l_component_type_code
31016       ,p_accounting_line_appl_id    => l_component_appl_id
31017       ,p_amb_context_code           => l_amb_context_code
31018       ,p_entity_code                => l_entity_code
31019       ,p_event_class_code           => l_event_class_code);
31020    --
31021    -- set accounting class
31022    --
31023    xla_ae_lines_pkg.SetAcctClass(
31024            p_accounting_class_code  => 'CASH_CLEARING'
31025          , p_ae_header_id           => l_ae_header_id
31026          );
31027 
31028    --
31029    -- set rounding class
31030    --
31031    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31032                       'CASH_CLEARING';
31033 
31034    --
31035    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31036    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31037    --
31038    -- bulk performance
31039    --
31040    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31041 
31042    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31043       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31044 
31045    -- 4955764
31046    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31047       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31048 
31049    -- 4458381 Public Sector Enh
31050    
31051    --
31052    -- set accounting attributes for the line type
31053    --
31054    l_entered_amt_idx := 9;
31055    l_accted_amt_idx  := 14;
31056    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31057    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31058    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
31059    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31060    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
31061    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31062    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
31063    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31064    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
31065    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31066    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
31067    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31068    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
31069    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31070    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
31071    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31072    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
31073    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31074    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
31075    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31076    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
31077    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31078    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
31079    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31080    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
31081    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31082    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
31083    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31084    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
31085    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31086    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
31087    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31088    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
31089    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31090    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
31091    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31092    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
31096    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
31093    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31094    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
31095    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31097 
31098    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31099    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31100 
31101    ---------------------------------------------------------------------------------------------------------------
31102    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31103    ---------------------------------------------------------------------------------------------------------------
31104    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31105 
31106    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31107    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31108 
31109    IF xla_accounting_cache_pkg.GetValueChar
31110          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31111          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31112    AND l_bflow_method_code = 'PRIOR_ENTRY'
31113 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31114    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31115          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31116        )
31117    THEN
31118          xla_ae_lines_pkg.BflowUpgEntry
31119            (p_business_method_code    => l_bflow_method_code
31120            ,p_business_class_code     => l_bflow_class_code
31121            ,p_balance_type            => l_balance_type_code);
31122    ELSE
31123       NULL;
31124 -- No business flow processing for business flow method of NONE.
31125    END IF;
31126 
31127    --
31128    -- call analytical criteria
31129    --
31130    
31131 
31132 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
31133 xla_ae_lines_pkg.SetAnalyticalCriteria(
31134    p_analytical_criterion_name    => 'Check Id'
31135  , p_analytical_criterion_owner   => 'S'
31136  , p_analytical_criterion_code    => 'CHECK_ID'
31137  , p_amb_context_code             => 'DEFAULT'
31138  , p_balancing_flag               => 'N'
31139  
31140  , p_analytical_detail_char_1    =>  NULL
31141  , p_analytical_detail_num_1     =>  p_source_112
31142  , p_analytical_detail_date_1    =>  NULL
31143 
31144  , p_ae_header_id                 => l_ae_header_id
31145 )
31146 ;
31147 --
31148 
31149    --
31150    -- call description
31151    --
31152    -- No description or it is inherited.
31153    --
31154    -- call ADRs
31155    -- Bug 4922099
31156    --
31157    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31158         (NVL(l_actual_upg_option, 'N') = 'O') OR
31159         (NVL(l_enc_upg_option, 'N') = 'O')
31160       )
31161    THEN
31162    NULL;
31163    --
31164    --
31165    
31166   l_ccid := AcctDerRule_35(
31167            p_application_id           => p_application_id
31168          , p_ae_header_id             => l_ae_header_id 
31169 , p_source_35 => p_source_35
31170          , x_transaction_coa_id       => l_adr_transaction_coa_id
31171          , x_accounting_coa_id        => l_adr_accounting_coa_id
31172          , x_value_type_code          => l_adr_value_type_code
31173          , p_side                     => 'NA'
31174    );
31175 
31176    xla_ae_lines_pkg.set_ccid(
31177     p_code_combination_id          => l_ccid
31178   , p_value_type_code              => l_adr_value_type_code
31179   , p_transaction_coa_id           => l_adr_transaction_coa_id
31180   , p_accounting_coa_id            => l_adr_accounting_coa_id
31181   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31182   , p_adr_type_code                => 'S'
31183   , p_component_type               => l_component_type
31184   , p_component_code               => l_component_code
31185   , p_component_type_code          => l_component_type_code
31186   , p_component_appl_id            => l_component_appl_id
31187   , p_amb_context_code             => l_amb_context_code
31188   , p_side                         => 'NA'
31189   );
31190 
31191 
31192    --
31193    --
31194    END IF;
31195    --
31196    -- Bug 4922099
31197    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31198           (NVL(l_enc_upg_option, 'N') = 'O')
31199         ) AND
31200         (l_bflow_method_code = 'PRIOR_ENTRY')
31201       )
31202    THEN
31203       IF
31204       --
31205       1 = 2
31206       --
31207       THEN
31208       xla_accounting_err_pkg.build_message
31209                                     (p_appli_s_name            => 'XLA'
31210                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31211                                     ,p_token_1                 => 'LINE_NUMBER'
31212                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31213                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31214                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31215                                                                              l_component_type
31219                                                                             ,l_amb_context_code
31216                                                                             ,l_component_code
31217                                                                             ,l_component_type_code
31218                                                                             ,l_component_appl_id
31220                                                                             ,l_entity_code
31221                                                                             ,l_event_class_code
31222                                                                            )
31223                                     ,p_token_3                 => 'OWNER'
31224                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31225                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31226                                                                           ,p_lookup_code    => l_component_type_code
31227                                                                          )
31228                                     ,p_token_4                 => 'PRODUCT_NAME'
31229                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31230                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31231                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31232                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31233                                     ,p_ae_header_id            =>  NULL
31234                                        );
31235 
31236         IF (C_LEVEL_ERROR>= g_log_level) THEN
31237                  trace
31238                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31239                       ,p_level    => C_LEVEL_ERROR
31240                       ,p_module   => l_log_module);
31241         END IF;
31242       END IF;
31243    END IF;
31244    --
31245    --
31246    ------------------------------------------------------------------------------------------------
31247    -- 4219869 Business Flow
31248    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31249    -- Prior Entry.  Currently, the following code is always generated.
31250    ------------------------------------------------------------------------------------------------
31251    XLA_AE_LINES_PKG.ValidateCurrentLine;
31252 
31253    ------------------------------------------------------------------------------------
31254    -- 4219869 Business Flow
31255    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31256    ------------------------------------------------------------------------------------
31257    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31258 
31259    ----------------------------------------------------------------------------------
31260    -- 4219869 Business Flow
31261    -- Update journal entry status -- Need to generate this within IF <condition>
31262    ----------------------------------------------------------------------------------
31263    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31264          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31265          ,p_balance_type_code => l_balance_type_code
31266          );
31267 
31268    -------------------------------------------------------------------------------------------
31269    -- 4262811 - Generate the Accrual Reversal lines
31270    -------------------------------------------------------------------------------------------
31271    BEGIN
31272       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31273                               (g_array_event(p_event_id).array_value_num('header_index'));
31274       IF l_acc_rev_flag IS NULL THEN
31275          l_acc_rev_flag := 'N';
31276       END IF;
31277    EXCEPTION
31278       WHEN OTHERS THEN
31279          l_acc_rev_flag := 'N';
31280    END;
31281    --
31282    IF (l_acc_rev_flag = 'Y') THEN
31283 
31284        -- 4645092  ------------------------------------------------------------------------------
31285        -- To allow MPA report to determine if it should generate report process
31286        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31287        ------------------------------------------------------------------------------------------
31288 
31289        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31290        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31291    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31292    -- call ADRs
31293    -- Bug 4922099
31294    --
31295    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31296         (NVL(l_actual_upg_option, 'N') = 'O') OR
31297         (NVL(l_enc_upg_option, 'N') = 'O')
31298       )
31299    THEN
31300    NULL;
31301    --
31302    --
31303    
31304   l_ccid := AcctDerRule_35(
31305            p_application_id           => p_application_id
31306          , p_ae_header_id             => l_ae_header_id 
31307 , p_source_35 => p_source_35
31308          , x_transaction_coa_id       => l_adr_transaction_coa_id
31309          , x_accounting_coa_id        => l_adr_accounting_coa_id
31310          , x_value_type_code          => l_adr_value_type_code
31311          , p_side                     => 'NA'
31312    );
31313 
31314    xla_ae_lines_pkg.set_ccid(
31315     p_code_combination_id          => l_ccid
31316   , p_value_type_code              => l_adr_value_type_code
31320   , p_adr_type_code                => 'S'
31317   , p_transaction_coa_id           => l_adr_transaction_coa_id
31318   , p_accounting_coa_id            => l_adr_accounting_coa_id
31319   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31321   , p_component_type               => l_component_type
31322   , p_component_code               => l_component_code
31323   , p_component_type_code          => l_component_type_code
31324   , p_component_appl_id            => l_component_appl_id
31325   , p_amb_context_code             => l_amb_context_code
31326   , p_side                         => 'NA'
31327   );
31328 
31329 
31330    --
31331    --
31332    END IF;
31333 
31334        --
31335        -- Update the line information that should be overwritten
31336        --
31337        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31338                                          p_header_num   => 1);
31339        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31340 
31341        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31342 
31343        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31344           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31345        END IF;
31346 
31347       --
31348       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31349       --
31350       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31351           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31352       ELSE
31353           ---------------------------------------------------------------------------------------------------
31354           -- 4262811a Switch Sign
31355           ---------------------------------------------------------------------------------------------------
31356           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31357           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31358                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31359           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31360                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31361           -- 5132302
31362           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31363                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31364 
31365       END IF;
31366 
31367       -- 4955764
31368       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31369       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31370 
31371 
31372       XLA_AE_LINES_PKG.ValidateCurrentLine;
31373       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31374 
31375       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31376                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31377                ,p_balance_type_code => l_balance_type_code);
31378 
31379    END IF;
31380 
31381    -----------------------------------------------------------------------------------------
31382    -- 4262811 Multiperiod Accounting
31383    -----------------------------------------------------------------------------------------
31384      -- No MPA option is assigned.
31385 
31386 
31387 END IF;
31388 END IF;
31389 --
31390 
31391 --
31392 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31393    trace
31394       (p_msg      => 'END of AcctLineType_77'
31395       ,p_level    => C_LEVEL_PROCEDURE
31396       ,p_module   => l_log_module);
31397 END IF;
31398 --
31399 EXCEPTION
31400   WHEN xla_exceptions_pkg.application_exception THEN
31401       RAISE;
31402   WHEN OTHERS THEN
31403        xla_exceptions_pkg.raise_message
31404            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_77');
31405 END AcctLineType_77;
31406 --
31407 
31408 ---------------------------------------
31409 --
31410 -- PRIVATE FUNCTION
31411 --         AcctLineType_78
31412 --
31413 ---------------------------------------
31414 PROCEDURE AcctLineType_78 (
31415   p_application_id        IN NUMBER
31416  ,p_event_id              IN NUMBER
31417  ,p_calculate_acctd_flag  IN VARCHAR2
31418  ,p_calculate_g_l_flag    IN VARCHAR2
31419  ,p_actual_flag           IN OUT VARCHAR2
31420  ,p_balance_type_code     OUT VARCHAR2
31421  ,p_gain_or_loss_ref      OUT VARCHAR2
31422  
31423 --Payment Currency Code
31424  , p_source_13            IN VARCHAR2
31425 --Bank Cash Clearing Account
31426  , p_source_35            IN NUMBER
31427 --Automatic Offsets Flag
31428  , p_source_47            IN VARCHAR2
31429  , p_source_47_meaning    IN VARCHAR2
31430 --Accounting Reversal Indicator
31431  , p_source_52            IN VARCHAR2
31432 --Distribution Link Type
31433  , p_source_54            IN VARCHAR2
31434 --Override Accounted Amount Indicator
31435  , p_source_79            IN VARCHAR2
31436  , p_source_79_meaning    IN VARCHAR2
31437 --Third Party Type
31441 --Invoice Distribution Tax Distribution Identifier from Tax
31438  , p_source_82            IN VARCHAR2
31439 --Invoice Distribution Tax Line Identifier
31440  , p_source_85            IN NUMBER
31442  , p_source_86            IN NUMBER
31443 --Invoice Distribution Summary Tax Line Identifier
31444  , p_source_87            IN NUMBER
31445 --Business Flow Accounts Payable Application Identifier
31446  , p_source_90            IN NUMBER
31447 --Business Flow Invoice Distribution Type
31448  , p_source_91            IN VARCHAR2
31449 --Business Flow Invoice Entity Code
31450  , p_source_92            IN VARCHAR2
31451 --Business Flow Invoice Distribution Identifier
31452  , p_source_93            IN NUMBER
31453 --Business Flow Invoice Identifier
31454  , p_source_94            IN NUMBER
31455 --When to Account for Payment Option
31456  , p_source_96            IN VARCHAR2
31457 --Payment Distribution Type
31458  , p_source_97            IN VARCHAR2
31459  , p_source_97_meaning    IN VARCHAR2
31460 --Payment Distribution Amount
31461  , p_source_98            IN NUMBER
31462 --Payment Distribution Identifier
31463  , p_source_103            IN NUMBER
31464 --Payment Supplier Identifier
31465  , p_source_109            IN NUMBER
31466 --Payment Supplier Site Identifier
31467  , p_source_110            IN NUMBER
31468 --Payment Distribution Reversed Identifier
31469  , p_source_111            IN NUMBER
31470 --Payment Identifier
31471  , p_source_112            IN NUMBER
31472 --Pooled Bank Account Option
31473  , p_source_113            IN VARCHAR2
31474  , p_source_113_meaning    IN VARCHAR2
31475 --Payment Maturity Date
31476  , p_source_114            IN DATE
31477 --Payment Distribution (Payment Rate) Ledger Amount
31478  , p_source_115            IN NUMBER
31479 --Payment Exchange Date
31480  , p_source_117            IN DATE
31481 --Payment Exchange Rate
31482  , p_source_118            IN NUMBER
31483 --Payment Exchange Rate Type
31484  , p_source_119            IN VARCHAR2
31485 --Payment Type
31486  , p_source_122            IN VARCHAR2
31487  , p_source_122_meaning    IN VARCHAR2
31488 )
31489 IS
31490 
31491 l_component_type              VARCHAR2(80);
31492 l_component_code              VARCHAR2(30);
31493 l_component_type_code         VARCHAR2(1);
31494 l_component_appl_id           INTEGER;
31495 l_amb_context_code            VARCHAR2(30);
31496 l_entity_code                 VARCHAR2(30);
31497 l_event_class_code            VARCHAR2(30);
31498 l_ae_header_id                NUMBER;
31499 l_event_type_code             VARCHAR2(30);
31500 l_line_definition_code        VARCHAR2(30);
31501 l_line_definition_owner_code  VARCHAR2(1);
31502 --
31503 -- adr variables
31504 l_segment                     VARCHAR2(30);
31505 l_ccid                        NUMBER;
31506 l_adr_transaction_coa_id      NUMBER;
31507 l_adr_accounting_coa_id       NUMBER;
31508 l_adr_flexfield_segment_code  VARCHAR2(30);
31509 l_adr_flex_value_set_id       NUMBER;
31510 l_adr_value_type_code         VARCHAR2(30);
31511 l_adr_value_combination_id    NUMBER;
31512 l_adr_value_segment_code      VARCHAR2(30);
31513 
31514 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31515 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31516 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31517 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31518 
31519 -- 4262811 Variables ------------------------------------------------------------------------------------------
31520 l_entered_amt_idx             NUMBER;
31521 l_accted_amt_idx              NUMBER;
31522 l_acc_rev_flag                VARCHAR2(1);
31523 l_accrual_line_num            NUMBER;
31524 l_tmp_amt                     NUMBER;
31525 l_acc_rev_natural_side_code   VARCHAR2(1);
31526 
31527 l_num_entries                 NUMBER;
31528 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31529 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31530 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31531 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31532 l_recog_line_1                NUMBER;
31533 l_recog_line_2                NUMBER;
31534 
31535 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31536 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31537 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31538 
31539 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31540 
31541 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31542 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31543 
31544 ---------------------------------------------------------------------------------------------------------------
31545 
31546 
31547 --
31548 -- bulk performance
31549 --
31550 l_balance_type_code           VARCHAR2(1);
31551 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31552 l_log_module                  VARCHAR2(240);
31553 
31554 --
31555 -- Upgrade strategy
31556 --
31557 l_actual_upg_option           VARCHAR2(1);
31558 l_enc_upg_option           VARCHAR2(1);
31559 
31560 --
31561 BEGIN
31562 --
31563 IF g_log_enabled THEN
31567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31564       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
31565 END IF;
31566 --
31568 
31569       trace
31570          (p_msg      => 'BEGIN of AcctLineType_78'
31571          ,p_level    => C_LEVEL_PROCEDURE
31572          ,p_module   => l_log_module);
31573 
31574 END IF;
31575 --
31576 l_component_type             := 'AMB_JLT';
31577 l_component_code             := 'AP_CASH_CLEAR_REF';
31578 l_component_type_code        := 'S';
31579 l_component_appl_id          :=  200;
31580 l_amb_context_code           := 'DEFAULT';
31581 l_entity_code                := 'AP_PAYMENTS';
31582 l_event_class_code           := 'REFUNDS';
31583 l_event_type_code            := 'REFUNDS_ALL';
31584 l_line_definition_owner_code := 'S';
31585 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
31586 --
31587 l_balance_type_code          := 'A';
31588 l_segment                     := NULL;
31589 l_ccid                        := NULL;
31590 l_adr_transaction_coa_id      := NULL;
31591 l_adr_accounting_coa_id       := NULL;
31592 l_adr_flexfield_segment_code  := NULL;
31593 l_adr_flex_value_set_id       := NULL;
31594 l_adr_value_type_code         := NULL;
31595 l_adr_value_combination_id    := NULL;
31596 l_adr_value_segment_code      := NULL;
31597 
31598 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
31599 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
31600 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31601 l_budgetary_control_flag     := 'N';
31602 
31603 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31604 l_bflow_applied_to_amt       := NULL; -- 5132302
31605 l_entered_amt_idx            := NULL;          -- 4262811
31606 l_accted_amt_idx             := NULL;          -- 4262811
31607 l_acc_rev_flag               := NULL;          -- 4262811
31608 l_accrual_line_num           := NULL;          -- 4262811
31609 l_tmp_amt                    := NULL;          -- 4262811
31610 --
31611  
31612 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31613     l_balance_type_code <> 'B' THEN
31614 IF NVL(p_source_96,'
31615 ') =  'ALWAYS_ALWAYS' AND 
31616 (NVL(p_source_47,'
31617 ') <>  'Y' OR 
31618 NVL(p_source_47,'
31619 ') =  'Y' AND 
31620 NVL(p_source_113,'
31621 ') <>  'Y') AND 
31622 p_source_114 IS NULL AND 
31623 NVL(p_source_97,'
31624 ') =  'CASH' AND 
31625 NVL(p_source_122,'
31626 ') =  'R'
31627  THEN 
31628 
31629    --
31630    XLA_AE_LINES_PKG.SetNewLine;
31631 
31632    p_balance_type_code          := l_balance_type_code;
31633    -- set the flag so later we will know whether the gain loss line needs to be created
31634    
31635    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31636      p_actual_flag :='A';
31637    END IF;
31638 
31639    --
31640    -- bulk performance
31641    --
31642    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31643                                       p_header_num   => 0); -- 4262811
31644    --
31645    -- set accounting line options
31646    --
31647    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31648            p_natural_side_code          => 'C'
31649          , p_gain_or_loss_flag          => 'N'
31650          , p_gl_transfer_mode_code      => 'S'
31651          , p_acct_entry_type_code       => 'A'
31652          , p_switch_side_flag           => 'Y'
31653          , p_merge_duplicate_code       => 'A'
31654          );
31655    --
31656    l_acc_rev_natural_side_code := 'D';  -- 4262811
31657    -- 
31658    --
31659    -- set accounting line type info
31660    --
31661    xla_ae_lines_pkg.SetAcctLineType
31662       (p_component_type             => l_component_type
31663       ,p_event_type_code            => l_event_type_code
31664       ,p_line_definition_owner_code => l_line_definition_owner_code
31665       ,p_line_definition_code       => l_line_definition_code
31666       ,p_accounting_line_code       => l_component_code
31667       ,p_accounting_line_type_code  => l_component_type_code
31668       ,p_accounting_line_appl_id    => l_component_appl_id
31669       ,p_amb_context_code           => l_amb_context_code
31670       ,p_entity_code                => l_entity_code
31671       ,p_event_class_code           => l_event_class_code);
31672    --
31673    -- set accounting class
31674    --
31675    xla_ae_lines_pkg.SetAcctClass(
31676            p_accounting_class_code  => 'CASH_CLEARING'
31677          , p_ae_header_id           => l_ae_header_id
31678          );
31679 
31680    --
31681    -- set rounding class
31682    --
31683    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31684                       'CASH_CLEARING';
31685 
31686    --
31687    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31688    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31689    --
31690    -- bulk performance
31691    --
31692    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31693 
31694    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31695       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31696 
31700 
31697    -- 4955764
31698    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31699       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31701    -- 4458381 Public Sector Enh
31702    
31703    --
31704    -- set accounting attributes for the line type
31705    --
31706    l_entered_amt_idx := 9;
31707    l_accted_amt_idx  := 14;
31708    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31709    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31710    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
31711    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31712    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
31713    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31714    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
31715    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31716    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
31717    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31718    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
31719    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31720    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
31721    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31722    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
31723    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31724    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
31725    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31726    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
31727    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31728    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
31729    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31730    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
31731    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31732    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
31733    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31734    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
31735    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31736    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
31737    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31738    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
31739    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31740    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
31741    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31742    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
31743    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31744    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
31745    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31746    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
31747    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31748    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
31749    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
31750    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
31751    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
31752    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
31753    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
31754    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
31755 
31756    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31757    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31758 
31759    ---------------------------------------------------------------------------------------------------------------
31760    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31761    ---------------------------------------------------------------------------------------------------------------
31762    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31763 
31764    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31765    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31766 
31767    IF xla_accounting_cache_pkg.GetValueChar
31768          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31769          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31770    AND l_bflow_method_code = 'PRIOR_ENTRY'
31771 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31772    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31773          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31774        )
31775    THEN
31776          xla_ae_lines_pkg.BflowUpgEntry
31777            (p_business_method_code    => l_bflow_method_code
31778            ,p_business_class_code     => l_bflow_class_code
31779            ,p_balance_type            => l_balance_type_code);
31780    ELSE
31781       NULL;
31782 -- No business flow processing for business flow method of NONE.
31783    END IF;
31784 
31785    --
31786    -- call analytical criteria
31787    --
31788    
31789 
31790 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
31791 xla_ae_lines_pkg.SetAnalyticalCriteria(
31792    p_analytical_criterion_name    => 'Check Id'
31793  , p_analytical_criterion_owner   => 'S'
31797  
31794  , p_analytical_criterion_code    => 'CHECK_ID'
31795  , p_amb_context_code             => 'DEFAULT'
31796  , p_balancing_flag               => 'N'
31798  , p_analytical_detail_char_1    =>  NULL
31799  , p_analytical_detail_num_1     =>  p_source_112
31800  , p_analytical_detail_date_1    =>  NULL
31801 
31802  , p_ae_header_id                 => l_ae_header_id
31803 )
31804 ;
31805 --
31806 
31807    --
31808    -- call description
31809    --
31810    -- No description or it is inherited.
31811    --
31812    -- call ADRs
31813    -- Bug 4922099
31814    --
31815    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31816         (NVL(l_actual_upg_option, 'N') = 'O') OR
31817         (NVL(l_enc_upg_option, 'N') = 'O')
31818       )
31819    THEN
31820    NULL;
31821    --
31822    --
31823    
31824   l_ccid := AcctDerRule_35(
31825            p_application_id           => p_application_id
31826          , p_ae_header_id             => l_ae_header_id 
31827 , p_source_35 => p_source_35
31828          , x_transaction_coa_id       => l_adr_transaction_coa_id
31829          , x_accounting_coa_id        => l_adr_accounting_coa_id
31830          , x_value_type_code          => l_adr_value_type_code
31831          , p_side                     => 'NA'
31832    );
31833 
31834    xla_ae_lines_pkg.set_ccid(
31835     p_code_combination_id          => l_ccid
31836   , p_value_type_code              => l_adr_value_type_code
31837   , p_transaction_coa_id           => l_adr_transaction_coa_id
31838   , p_accounting_coa_id            => l_adr_accounting_coa_id
31839   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31840   , p_adr_type_code                => 'S'
31841   , p_component_type               => l_component_type
31842   , p_component_code               => l_component_code
31843   , p_component_type_code          => l_component_type_code
31844   , p_component_appl_id            => l_component_appl_id
31845   , p_amb_context_code             => l_amb_context_code
31846   , p_side                         => 'NA'
31847   );
31848 
31849 
31850    --
31851    --
31852    END IF;
31853    --
31854    -- Bug 4922099
31855    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31856           (NVL(l_enc_upg_option, 'N') = 'O')
31857         ) AND
31858         (l_bflow_method_code = 'PRIOR_ENTRY')
31859       )
31860    THEN
31861       IF
31862       --
31863       1 = 2
31864       --
31865       THEN
31866       xla_accounting_err_pkg.build_message
31867                                     (p_appli_s_name            => 'XLA'
31868                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31869                                     ,p_token_1                 => 'LINE_NUMBER'
31870                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31871                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31872                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31873                                                                              l_component_type
31874                                                                             ,l_component_code
31875                                                                             ,l_component_type_code
31876                                                                             ,l_component_appl_id
31877                                                                             ,l_amb_context_code
31878                                                                             ,l_entity_code
31879                                                                             ,l_event_class_code
31880                                                                            )
31881                                     ,p_token_3                 => 'OWNER'
31882                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31883                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31884                                                                           ,p_lookup_code    => l_component_type_code
31885                                                                          )
31886                                     ,p_token_4                 => 'PRODUCT_NAME'
31887                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31888                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31889                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31890                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31891                                     ,p_ae_header_id            =>  NULL
31892                                        );
31893 
31894         IF (C_LEVEL_ERROR>= g_log_level) THEN
31895                  trace
31896                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31897                       ,p_level    => C_LEVEL_ERROR
31898                       ,p_module   => l_log_module);
31899         END IF;
31900       END IF;
31901    END IF;
31902    --
31903    --
31904    ------------------------------------------------------------------------------------------------
31905    -- 4219869 Business Flow
31906    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31910 
31907    -- Prior Entry.  Currently, the following code is always generated.
31908    ------------------------------------------------------------------------------------------------
31909    XLA_AE_LINES_PKG.ValidateCurrentLine;
31911    ------------------------------------------------------------------------------------
31912    -- 4219869 Business Flow
31913    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31914    ------------------------------------------------------------------------------------
31915    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31916 
31917    ----------------------------------------------------------------------------------
31918    -- 4219869 Business Flow
31919    -- Update journal entry status -- Need to generate this within IF <condition>
31920    ----------------------------------------------------------------------------------
31921    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31922          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31923          ,p_balance_type_code => l_balance_type_code
31924          );
31925 
31926    -------------------------------------------------------------------------------------------
31927    -- 4262811 - Generate the Accrual Reversal lines
31928    -------------------------------------------------------------------------------------------
31929    BEGIN
31930       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31931                               (g_array_event(p_event_id).array_value_num('header_index'));
31932       IF l_acc_rev_flag IS NULL THEN
31933          l_acc_rev_flag := 'N';
31934       END IF;
31935    EXCEPTION
31936       WHEN OTHERS THEN
31937          l_acc_rev_flag := 'N';
31938    END;
31939    --
31940    IF (l_acc_rev_flag = 'Y') THEN
31941 
31942        -- 4645092  ------------------------------------------------------------------------------
31943        -- To allow MPA report to determine if it should generate report process
31944        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31945        ------------------------------------------------------------------------------------------
31946 
31947        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31948        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31949    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31950    -- call ADRs
31951    -- Bug 4922099
31952    --
31953    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31954         (NVL(l_actual_upg_option, 'N') = 'O') OR
31955         (NVL(l_enc_upg_option, 'N') = 'O')
31956       )
31957    THEN
31958    NULL;
31959    --
31960    --
31961    
31962   l_ccid := AcctDerRule_35(
31963            p_application_id           => p_application_id
31964          , p_ae_header_id             => l_ae_header_id 
31965 , p_source_35 => p_source_35
31966          , x_transaction_coa_id       => l_adr_transaction_coa_id
31967          , x_accounting_coa_id        => l_adr_accounting_coa_id
31968          , x_value_type_code          => l_adr_value_type_code
31969          , p_side                     => 'NA'
31970    );
31971 
31972    xla_ae_lines_pkg.set_ccid(
31973     p_code_combination_id          => l_ccid
31974   , p_value_type_code              => l_adr_value_type_code
31975   , p_transaction_coa_id           => l_adr_transaction_coa_id
31976   , p_accounting_coa_id            => l_adr_accounting_coa_id
31977   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31978   , p_adr_type_code                => 'S'
31979   , p_component_type               => l_component_type
31980   , p_component_code               => l_component_code
31981   , p_component_type_code          => l_component_type_code
31982   , p_component_appl_id            => l_component_appl_id
31983   , p_amb_context_code             => l_amb_context_code
31984   , p_side                         => 'NA'
31985   );
31986 
31987 
31988    --
31989    --
31990    END IF;
31991 
31992        --
31993        -- Update the line information that should be overwritten
31994        --
31995        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31996                                          p_header_num   => 1);
31997        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31998 
31999        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32000 
32001        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32002           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32003        END IF;
32004 
32005       --
32006       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32007       --
32008       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32009           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32010       ELSE
32011           ---------------------------------------------------------------------------------------------------
32012           -- 4262811a Switch Sign
32013           ---------------------------------------------------------------------------------------------------
32014           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32015           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32019           -- 5132302
32016                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32017           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32018                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32020           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32021                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32022 
32023       END IF;
32024 
32025       -- 4955764
32026       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32027       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32028 
32029 
32030       XLA_AE_LINES_PKG.ValidateCurrentLine;
32031       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32032 
32033       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32034                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32035                ,p_balance_type_code => l_balance_type_code);
32036 
32037    END IF;
32038 
32039    -----------------------------------------------------------------------------------------
32040    -- 4262811 Multiperiod Accounting
32041    -----------------------------------------------------------------------------------------
32042      -- No MPA option is assigned.
32043 
32044 
32045 END IF;
32046 END IF;
32047 --
32048 
32049 --
32050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32051    trace
32052       (p_msg      => 'END of AcctLineType_78'
32053       ,p_level    => C_LEVEL_PROCEDURE
32054       ,p_module   => l_log_module);
32055 END IF;
32056 --
32057 EXCEPTION
32058   WHEN xla_exceptions_pkg.application_exception THEN
32059       RAISE;
32060   WHEN OTHERS THEN
32061        xla_exceptions_pkg.raise_message
32062            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_78');
32063 END AcctLineType_78;
32064 --
32065 
32066 ---------------------------------------
32067 --
32068 -- PRIVATE FUNCTION
32069 --         AcctLineType_79
32070 --
32071 ---------------------------------------
32072 PROCEDURE AcctLineType_79 (
32073   p_application_id        IN NUMBER
32074  ,p_event_id              IN NUMBER
32075  ,p_calculate_acctd_flag  IN VARCHAR2
32076  ,p_calculate_g_l_flag    IN VARCHAR2
32077  ,p_actual_flag           IN OUT VARCHAR2
32078  ,p_balance_type_code     OUT VARCHAR2
32079  ,p_gain_or_loss_ref      OUT VARCHAR2
32080  
32081 --Payment Currency Code
32082  , p_source_13            IN VARCHAR2
32083 --Automatic Offsets Value
32084  , p_source_15            IN VARCHAR2
32085  , p_source_15_meaning    IN VARCHAR2
32086 --Bank Cash Clearing Account
32087  , p_source_35            IN NUMBER
32088 --Accounting Reversal Indicator
32089  , p_source_52            IN VARCHAR2
32090 --Distribution Link Type
32091  , p_source_54            IN VARCHAR2
32092 --Override Accounted Amount Indicator
32093  , p_source_79            IN VARCHAR2
32094  , p_source_79_meaning    IN VARCHAR2
32095 --Third Party Type
32096  , p_source_82            IN VARCHAR2
32097 --Invoice Distribution Tax Line Identifier
32098  , p_source_85            IN NUMBER
32099 --Invoice Distribution Tax Distribution Identifier from Tax
32100  , p_source_86            IN NUMBER
32101 --Invoice Distribution Summary Tax Line Identifier
32102  , p_source_87            IN NUMBER
32103 --Business Flow Accounts Payable Application Identifier
32104  , p_source_90            IN NUMBER
32105 --Business Flow Invoice Distribution Type
32106  , p_source_91            IN VARCHAR2
32107 --Business Flow Invoice Entity Code
32108  , p_source_92            IN VARCHAR2
32109 --Business Flow Invoice Distribution Identifier
32110  , p_source_93            IN NUMBER
32111 --Business Flow Invoice Identifier
32112  , p_source_94            IN NUMBER
32113 --When to Account for Payment Option
32114  , p_source_96            IN VARCHAR2
32115 --Payment Distribution Type
32116  , p_source_97            IN VARCHAR2
32117  , p_source_97_meaning    IN VARCHAR2
32118 --Payment Distribution Amount
32119  , p_source_98            IN NUMBER
32120 --Payment Distribution Identifier
32121  , p_source_103            IN NUMBER
32122 --Payment Supplier Identifier
32123  , p_source_109            IN NUMBER
32124 --Payment Supplier Site Identifier
32125  , p_source_110            IN NUMBER
32126 --Payment Distribution Reversed Identifier
32127  , p_source_111            IN NUMBER
32128 --Payment Identifier
32129  , p_source_112            IN NUMBER
32130 --Pooled Bank Account Option
32131  , p_source_113            IN VARCHAR2
32132  , p_source_113_meaning    IN VARCHAR2
32133 --Payment Maturity Date
32134  , p_source_114            IN DATE
32135 --Payment Distribution (Payment Rate) Ledger Amount
32136  , p_source_115            IN NUMBER
32137 --Payment Exchange Date
32138  , p_source_117            IN DATE
32139 --Payment Exchange Rate
32140  , p_source_118            IN NUMBER
32141 --Payment Exchange Rate Type
32142  , p_source_119            IN VARCHAR2
32143 --Payment Type
32144  , p_source_122            IN VARCHAR2
32145  , p_source_122_meaning    IN VARCHAR2
32146 )
32147 IS
32148 
32152 l_component_appl_id           INTEGER;
32149 l_component_type              VARCHAR2(80);
32150 l_component_code              VARCHAR2(30);
32151 l_component_type_code         VARCHAR2(1);
32153 l_amb_context_code            VARCHAR2(30);
32154 l_entity_code                 VARCHAR2(30);
32155 l_event_class_code            VARCHAR2(30);
32156 l_ae_header_id                NUMBER;
32157 l_event_type_code             VARCHAR2(30);
32158 l_line_definition_code        VARCHAR2(30);
32159 l_line_definition_owner_code  VARCHAR2(1);
32160 --
32161 -- adr variables
32162 l_segment                     VARCHAR2(30);
32163 l_ccid                        NUMBER;
32164 l_adr_transaction_coa_id      NUMBER;
32165 l_adr_accounting_coa_id       NUMBER;
32166 l_adr_flexfield_segment_code  VARCHAR2(30);
32167 l_adr_flex_value_set_id       NUMBER;
32168 l_adr_value_type_code         VARCHAR2(30);
32169 l_adr_value_combination_id    NUMBER;
32170 l_adr_value_segment_code      VARCHAR2(30);
32171 
32172 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32173 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32174 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32175 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32176 
32177 -- 4262811 Variables ------------------------------------------------------------------------------------------
32178 l_entered_amt_idx             NUMBER;
32179 l_accted_amt_idx              NUMBER;
32180 l_acc_rev_flag                VARCHAR2(1);
32181 l_accrual_line_num            NUMBER;
32182 l_tmp_amt                     NUMBER;
32183 l_acc_rev_natural_side_code   VARCHAR2(1);
32184 
32185 l_num_entries                 NUMBER;
32186 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32187 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32188 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32189 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32190 l_recog_line_1                NUMBER;
32191 l_recog_line_2                NUMBER;
32192 
32193 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32194 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32195 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32196 
32197 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32198 
32199 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32200 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32201 
32202 ---------------------------------------------------------------------------------------------------------------
32203 
32204 
32205 --
32206 -- bulk performance
32207 --
32208 l_balance_type_code           VARCHAR2(1);
32209 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32210 l_log_module                  VARCHAR2(240);
32211 
32212 --
32213 -- Upgrade strategy
32214 --
32215 l_actual_upg_option           VARCHAR2(1);
32216 l_enc_upg_option           VARCHAR2(1);
32217 
32218 --
32219 BEGIN
32220 --
32221 IF g_log_enabled THEN
32222       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
32223 END IF;
32224 --
32225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32226 
32227       trace
32228          (p_msg      => 'BEGIN of AcctLineType_79'
32229          ,p_level    => C_LEVEL_PROCEDURE
32230          ,p_module   => l_log_module);
32231 
32232 END IF;
32233 --
32234 l_component_type             := 'AMB_JLT';
32235 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
32236 l_component_type_code        := 'S';
32237 l_component_appl_id          :=  200;
32238 l_amb_context_code           := 'DEFAULT';
32239 l_entity_code                := 'AP_PAYMENTS';
32240 l_event_class_code           := 'REFUNDS';
32241 l_event_type_code            := 'REFUNDS_ALL';
32242 l_line_definition_owner_code := 'S';
32243 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
32244 --
32245 l_balance_type_code          := 'A';
32246 l_segment                     := NULL;
32247 l_ccid                        := NULL;
32248 l_adr_transaction_coa_id      := NULL;
32249 l_adr_accounting_coa_id       := NULL;
32250 l_adr_flexfield_segment_code  := NULL;
32251 l_adr_flex_value_set_id       := NULL;
32252 l_adr_value_type_code         := NULL;
32253 l_adr_value_combination_id    := NULL;
32254 l_adr_value_segment_code      := NULL;
32255 
32256 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
32257 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32258 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32259 l_budgetary_control_flag     := 'N';
32260 
32261 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32262 l_bflow_applied_to_amt       := NULL; -- 5132302
32263 l_entered_amt_idx            := NULL;          -- 4262811
32264 l_accted_amt_idx             := NULL;          -- 4262811
32265 l_acc_rev_flag               := NULL;          -- 4262811
32266 l_accrual_line_num           := NULL;          -- 4262811
32267 l_tmp_amt                    := NULL;          -- 4262811
32268 --
32269  
32270 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32274 (NVL(p_source_113,'
32271     l_balance_type_code <> 'B' THEN
32272 IF NVL(p_source_96,'
32273 ') =  'ALWAYS_ALWAYS' AND 
32275 ') =  'Y' AND 
32276 NVL(p_source_15,'
32277 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
32278 p_source_114 IS NULL AND 
32279 NVL(p_source_97,'
32280 ') =  'CASH' AND 
32281 NVL(p_source_122,'
32282 ') =  'R'
32283  THEN 
32284 
32285    --
32286    XLA_AE_LINES_PKG.SetNewLine;
32287 
32288    p_balance_type_code          := l_balance_type_code;
32289    -- set the flag so later we will know whether the gain loss line needs to be created
32290    
32291    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32292      p_actual_flag :='A';
32293    END IF;
32294 
32295    --
32296    -- bulk performance
32297    --
32298    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32299                                       p_header_num   => 0); -- 4262811
32300    --
32301    -- set accounting line options
32302    --
32303    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32304            p_natural_side_code          => 'C'
32305          , p_gain_or_loss_flag          => 'N'
32306          , p_gl_transfer_mode_code      => 'S'
32307          , p_acct_entry_type_code       => 'A'
32308          , p_switch_side_flag           => 'Y'
32309          , p_merge_duplicate_code       => 'A'
32310          );
32311    --
32312    l_acc_rev_natural_side_code := 'D';  -- 4262811
32313    -- 
32314    --
32315    -- set accounting line type info
32316    --
32317    xla_ae_lines_pkg.SetAcctLineType
32318       (p_component_type             => l_component_type
32319       ,p_event_type_code            => l_event_type_code
32320       ,p_line_definition_owner_code => l_line_definition_owner_code
32321       ,p_line_definition_code       => l_line_definition_code
32322       ,p_accounting_line_code       => l_component_code
32323       ,p_accounting_line_type_code  => l_component_type_code
32324       ,p_accounting_line_appl_id    => l_component_appl_id
32325       ,p_amb_context_code           => l_amb_context_code
32326       ,p_entity_code                => l_entity_code
32327       ,p_event_class_code           => l_event_class_code);
32328    --
32329    -- set accounting class
32330    --
32331    xla_ae_lines_pkg.SetAcctClass(
32332            p_accounting_class_code  => 'CASH_CLEARING'
32333          , p_ae_header_id           => l_ae_header_id
32334          );
32335 
32336    --
32337    -- set rounding class
32338    --
32339    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32340                       'CASH_CLEARING';
32341 
32342    --
32343    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32344    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32345    --
32346    -- bulk performance
32347    --
32348    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32349 
32350    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32351       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32352 
32353    -- 4955764
32354    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32355       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32356 
32357    -- 4458381 Public Sector Enh
32358    
32359    --
32360    -- set accounting attributes for the line type
32361    --
32362    l_entered_amt_idx := 9;
32363    l_accted_amt_idx  := 14;
32364    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32365    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32366    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
32367    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32368    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
32369    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32370    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
32371    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32372    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
32373    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32374    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
32375    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32376    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
32377    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32378    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
32379    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32380    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
32381    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32382    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
32383    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32384    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
32385    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32386    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
32387    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32388    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
32389    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32390    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
32394    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
32391    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32392    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
32393    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32395    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32396    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
32397    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32398    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
32399    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32400    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
32401    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32402    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
32403    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32404    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
32405    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32406    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
32407    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32408    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
32409    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32410    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
32411 
32412    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32413    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32414 
32415    ---------------------------------------------------------------------------------------------------------------
32416    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32417    ---------------------------------------------------------------------------------------------------------------
32418    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32419 
32420    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32421    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32422 
32423    IF xla_accounting_cache_pkg.GetValueChar
32424          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32425          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32426    AND l_bflow_method_code = 'PRIOR_ENTRY'
32427 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32428    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32429          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32430        )
32431    THEN
32432          xla_ae_lines_pkg.BflowUpgEntry
32433            (p_business_method_code    => l_bflow_method_code
32434            ,p_business_class_code     => l_bflow_class_code
32435            ,p_balance_type            => l_balance_type_code);
32436    ELSE
32437       NULL;
32438 XLA_AE_LINES_PKG.business_flow_validation(
32439                                 p_business_method_code     => l_bflow_method_code
32440                                ,p_business_class_code      => l_bflow_class_code
32441                                ,p_inherit_description_flag => l_inherit_desc_flag);
32442    END IF;
32443 
32444    --
32445    -- call analytical criteria
32446    --
32447    
32448 
32449 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
32450 xla_ae_lines_pkg.SetAnalyticalCriteria(
32451    p_analytical_criterion_name    => 'Check Id'
32452  , p_analytical_criterion_owner   => 'S'
32453  , p_analytical_criterion_code    => 'CHECK_ID'
32454  , p_amb_context_code             => 'DEFAULT'
32455  , p_balancing_flag               => 'N'
32456  
32457  , p_analytical_detail_char_1    =>  NULL
32458  , p_analytical_detail_num_1     =>  p_source_112
32459  , p_analytical_detail_date_1    =>  NULL
32460 
32461  , p_ae_header_id                 => l_ae_header_id
32462 )
32463 ;
32464 --
32465 
32466    --
32467    -- call description
32468    --
32469    -- No description or it is inherited.
32470    --
32471    -- call ADRs
32472    -- Bug 4922099
32473    --
32474    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32475         (NVL(l_actual_upg_option, 'N') = 'O') OR
32476         (NVL(l_enc_upg_option, 'N') = 'O')
32477       )
32478    THEN
32479    NULL;
32480    --
32481    --
32482    
32483    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32484      p_code_combination_id      => TO_NUMBER(C_NUM)
32485    , p_value_type_code          => NULL
32486    , p_transaction_coa_id       => null
32487    , p_accounting_coa_id        => null
32488    , p_adr_code                 => NULL
32489    , p_adr_type_code            => NULL
32490    , p_component_type           => l_component_type
32491    , p_component_code           => l_component_code
32492    , p_component_type_code      => l_component_type_code
32493    , p_component_appl_id        => l_component_appl_id
32494    , p_amb_context_code         => l_amb_context_code
32495    , p_side                     => NULL
32496    );
32497 
32498    
32499   -- initialise segments
32500   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32501   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32502   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32506   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32503   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32504   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32505   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32507   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32508   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32509   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32510   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32511   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32512   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32513   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32514   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32515   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32516   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32517   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32518   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32519   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32520   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32521   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32522   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32523   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32524   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32525   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32526   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32527   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32528   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32529   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32530   --
32531 
32532    --
32533 
32534 
32535    l_segment := AcctDerRule_16(
32536            p_application_id           => p_application_id
32537          , p_ae_header_id             => l_ae_header_id 
32538 , p_source_35 => p_source_35
32539          , x_transaction_coa_id       => l_adr_transaction_coa_id
32540          , x_accounting_coa_id        => l_adr_accounting_coa_id
32541          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32542          , x_flex_value_set_id        => l_adr_flex_value_set_id
32543          , x_value_type_code          => l_adr_value_type_code
32544          , x_value_combination_id     => l_adr_value_combination_id
32545          , x_value_segment_code       => l_adr_value_segment_code
32546          , p_side                     => 'NA'
32547          , p_override_seg_flag        => 'Y'
32548    );
32549 
32550    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32551 
32552       xla_ae_lines_pkg.set_segment(
32553           p_to_segment_code         => 'GL_ACCOUNT'
32554         , p_segment_value           => l_segment
32555         , p_from_segment_code       => l_adr_value_segment_code
32556         , p_from_combination_id     => l_adr_value_combination_id
32557         , p_value_type_code         => l_adr_value_type_code
32558         , p_transaction_coa_id      => l_adr_transaction_coa_id
32559         , p_accounting_coa_id       => l_adr_accounting_coa_id
32560         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32561         , p_flex_value_set_id       => l_adr_flex_value_set_id
32562         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
32563         , p_adr_type_code           => 'S'
32564         , p_component_type          => l_component_type
32565         , p_component_code          => l_component_code
32566         , p_component_type_code     => l_component_type_code
32567         , p_component_appl_id       => l_component_appl_id
32568         , p_amb_context_code        => l_amb_context_code
32569         , p_entity_code             => 'AP_PAYMENTS'
32570         , p_event_class_code        => 'REFUNDS'
32571         , p_side                    => 'NA'
32572         );
32573 
32574   END IF;
32575 
32576    --
32577    --
32578    END IF;
32579    --
32580    -- Bug 4922099
32581    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32582           (NVL(l_enc_upg_option, 'N') = 'O')
32583         ) AND
32584         (l_bflow_method_code = 'PRIOR_ENTRY')
32585       )
32586    THEN
32587       IF
32588       --
32589       1 = 2
32590       --
32591       THEN
32592       xla_accounting_err_pkg.build_message
32593                                     (p_appli_s_name            => 'XLA'
32594                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32595                                     ,p_token_1                 => 'LINE_NUMBER'
32596                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32597                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32598                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32599                                                                              l_component_type
32603                                                                             ,l_amb_context_code
32600                                                                             ,l_component_code
32601                                                                             ,l_component_type_code
32602                                                                             ,l_component_appl_id
32604                                                                             ,l_entity_code
32605                                                                             ,l_event_class_code
32606                                                                            )
32607                                     ,p_token_3                 => 'OWNER'
32608                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32609                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32610                                                                           ,p_lookup_code    => l_component_type_code
32611                                                                          )
32612                                     ,p_token_4                 => 'PRODUCT_NAME'
32613                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32614                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32615                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32616                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32617                                     ,p_ae_header_id            =>  NULL
32618                                        );
32619 
32620         IF (C_LEVEL_ERROR>= g_log_level) THEN
32621                  trace
32622                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32623                       ,p_level    => C_LEVEL_ERROR
32624                       ,p_module   => l_log_module);
32625         END IF;
32626       END IF;
32627    END IF;
32628    --
32629    --
32630    ------------------------------------------------------------------------------------------------
32631    -- 4219869 Business Flow
32632    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32633    -- Prior Entry.  Currently, the following code is always generated.
32634    ------------------------------------------------------------------------------------------------
32635    XLA_AE_LINES_PKG.ValidateCurrentLine;
32636 
32637    ------------------------------------------------------------------------------------
32638    -- 4219869 Business Flow
32639    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32640    ------------------------------------------------------------------------------------
32641    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32642 
32643    ----------------------------------------------------------------------------------
32644    -- 4219869 Business Flow
32645    -- Update journal entry status -- Need to generate this within IF <condition>
32646    ----------------------------------------------------------------------------------
32647    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32648          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32649          ,p_balance_type_code => l_balance_type_code
32650          );
32651 
32652    -------------------------------------------------------------------------------------------
32653    -- 4262811 - Generate the Accrual Reversal lines
32654    -------------------------------------------------------------------------------------------
32655    BEGIN
32656       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32657                               (g_array_event(p_event_id).array_value_num('header_index'));
32658       IF l_acc_rev_flag IS NULL THEN
32659          l_acc_rev_flag := 'N';
32660       END IF;
32661    EXCEPTION
32662       WHEN OTHERS THEN
32663          l_acc_rev_flag := 'N';
32664    END;
32665    --
32666    IF (l_acc_rev_flag = 'Y') THEN
32667 
32668        -- 4645092  ------------------------------------------------------------------------------
32669        -- To allow MPA report to determine if it should generate report process
32670        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32671        ------------------------------------------------------------------------------------------
32672 
32673        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32674        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32675    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32676    -- call ADRs
32677    -- Bug 4922099
32678    --
32679    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32680         (NVL(l_actual_upg_option, 'N') = 'O') OR
32681         (NVL(l_enc_upg_option, 'N') = 'O')
32682       )
32683    THEN
32684    NULL;
32685    --
32686    --
32687    
32688    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32689      p_code_combination_id      => TO_NUMBER(C_NUM)
32690    , p_value_type_code          => NULL
32691    , p_transaction_coa_id       => null
32692    , p_accounting_coa_id        => null
32693    , p_adr_code                 => NULL
32694    , p_adr_type_code            => NULL
32695    , p_component_type           => l_component_type
32699    , p_amb_context_code         => l_amb_context_code
32696    , p_component_code           => l_component_code
32697    , p_component_type_code      => l_component_type_code
32698    , p_component_appl_id        => l_component_appl_id
32700    , p_side                     => NULL
32701    );
32702 
32703    
32704   -- initialise segments
32705   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32706   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32707   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32708   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32709   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32710   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32711   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32712   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32713   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32714   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32715   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32716   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32717   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32718   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32719   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32720   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32721   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32722   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32723   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32724   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32725   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32726   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32727   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32728   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32729   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32730   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32731   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32732   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32733   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32734   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32735   --
32736 
32737    --
32738 
32739 
32740    l_segment := AcctDerRule_16(
32741            p_application_id           => p_application_id
32742          , p_ae_header_id             => l_ae_header_id 
32743 , p_source_35 => p_source_35
32744          , x_transaction_coa_id       => l_adr_transaction_coa_id
32745          , x_accounting_coa_id        => l_adr_accounting_coa_id
32746          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32747          , x_flex_value_set_id        => l_adr_flex_value_set_id
32748          , x_value_type_code          => l_adr_value_type_code
32749          , x_value_combination_id     => l_adr_value_combination_id
32750          , x_value_segment_code       => l_adr_value_segment_code
32751          , p_side                     => 'NA'
32752          , p_override_seg_flag        => 'Y'
32753    );
32754 
32755    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32756 
32757       xla_ae_lines_pkg.set_segment(
32758           p_to_segment_code         => 'GL_ACCOUNT'
32759         , p_segment_value           => l_segment
32760         , p_from_segment_code       => l_adr_value_segment_code
32761         , p_from_combination_id     => l_adr_value_combination_id
32762         , p_value_type_code         => l_adr_value_type_code
32763         , p_transaction_coa_id      => l_adr_transaction_coa_id
32764         , p_accounting_coa_id       => l_adr_accounting_coa_id
32765         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32766         , p_flex_value_set_id       => l_adr_flex_value_set_id
32767         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
32768         , p_adr_type_code           => 'S'
32769         , p_component_type          => l_component_type
32770         , p_component_code          => l_component_code
32771         , p_component_type_code     => l_component_type_code
32772         , p_component_appl_id       => l_component_appl_id
32773         , p_amb_context_code        => l_amb_context_code
32774         , p_entity_code             => 'AP_PAYMENTS'
32775         , p_event_class_code        => 'REFUNDS'
32776         , p_side                    => 'NA'
32777         );
32778 
32779   END IF;
32780 
32781    --
32782    --
32783    END IF;
32784 
32785        --
32786        -- Update the line information that should be overwritten
32787        --
32788        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32789                                          p_header_num   => 1);
32793 
32790        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32791 
32792        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32794        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32795           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32796        END IF;
32797 
32798       --
32799       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32800       --
32801       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32802           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32803       ELSE
32804           ---------------------------------------------------------------------------------------------------
32805           -- 4262811a Switch Sign
32806           ---------------------------------------------------------------------------------------------------
32807           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32808           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32809                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32810           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32811                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32812           -- 5132302
32813           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32814                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32815 
32816       END IF;
32817 
32818       -- 4955764
32819       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32820       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32821 
32822 
32823       XLA_AE_LINES_PKG.ValidateCurrentLine;
32824       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32825 
32826       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32827                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32828                ,p_balance_type_code => l_balance_type_code);
32829 
32830    END IF;
32831 
32832    -----------------------------------------------------------------------------------------
32833    -- 4262811 Multiperiod Accounting
32834    -----------------------------------------------------------------------------------------
32835      -- No MPA option is assigned.
32836 
32837 
32838 END IF;
32839 END IF;
32840 --
32841 
32842 --
32843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32844    trace
32845       (p_msg      => 'END of AcctLineType_79'
32846       ,p_level    => C_LEVEL_PROCEDURE
32847       ,p_module   => l_log_module);
32848 END IF;
32849 --
32850 EXCEPTION
32851   WHEN xla_exceptions_pkg.application_exception THEN
32852       RAISE;
32853   WHEN OTHERS THEN
32854        xla_exceptions_pkg.raise_message
32855            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_79');
32856 END AcctLineType_79;
32857 --
32858 
32859 ---------------------------------------
32860 --
32861 -- PRIVATE FUNCTION
32862 --         AcctLineType_80
32863 --
32864 ---------------------------------------
32865 PROCEDURE AcctLineType_80 (
32866   p_application_id        IN NUMBER
32867  ,p_event_id              IN NUMBER
32868  ,p_calculate_acctd_flag  IN VARCHAR2
32869  ,p_calculate_g_l_flag    IN VARCHAR2
32870  ,p_actual_flag           IN OUT VARCHAR2
32871  ,p_balance_type_code     OUT VARCHAR2
32872  ,p_gain_or_loss_ref      OUT VARCHAR2
32873  
32874 --Payment Currency Code
32875  , p_source_13            IN VARCHAR2
32876 --Automatic Offsets Value
32877  , p_source_15            IN VARCHAR2
32878  , p_source_15_meaning    IN VARCHAR2
32879 --Bank Cash Clearing Account
32880  , p_source_35            IN NUMBER
32881 --Accounting Reversal Indicator
32882  , p_source_52            IN VARCHAR2
32883 --Distribution Link Type
32884  , p_source_54            IN VARCHAR2
32885 --Override Accounted Amount Indicator
32886  , p_source_79            IN VARCHAR2
32887  , p_source_79_meaning    IN VARCHAR2
32888 --Third Party Type
32889  , p_source_82            IN VARCHAR2
32890 --Invoice Distribution Tax Line Identifier
32891  , p_source_85            IN NUMBER
32892 --Invoice Distribution Tax Distribution Identifier from Tax
32893  , p_source_86            IN NUMBER
32894 --Invoice Distribution Summary Tax Line Identifier
32895  , p_source_87            IN NUMBER
32896 --Business Flow Accounts Payable Application Identifier
32897  , p_source_90            IN NUMBER
32898 --Business Flow Invoice Distribution Type
32899  , p_source_91            IN VARCHAR2
32900 --Business Flow Invoice Entity Code
32901  , p_source_92            IN VARCHAR2
32902 --Business Flow Invoice Distribution Identifier
32903  , p_source_93            IN NUMBER
32904 --Business Flow Invoice Identifier
32905  , p_source_94            IN NUMBER
32906 --When to Account for Payment Option
32907  , p_source_96            IN VARCHAR2
32908 --Payment Distribution Type
32909  , p_source_97            IN VARCHAR2
32910  , p_source_97_meaning    IN VARCHAR2
32914  , p_source_103            IN NUMBER
32911 --Payment Distribution Amount
32912  , p_source_98            IN NUMBER
32913 --Payment Distribution Identifier
32915 --Payment Supplier Identifier
32916  , p_source_109            IN NUMBER
32917 --Payment Supplier Site Identifier
32918  , p_source_110            IN NUMBER
32919 --Payment Distribution Reversed Identifier
32920  , p_source_111            IN NUMBER
32921 --Payment Identifier
32922  , p_source_112            IN NUMBER
32923 --Pooled Bank Account Option
32924  , p_source_113            IN VARCHAR2
32925  , p_source_113_meaning    IN VARCHAR2
32926 --Payment Maturity Date
32927  , p_source_114            IN DATE
32928 --Payment Distribution (Payment Rate) Ledger Amount
32929  , p_source_115            IN NUMBER
32930 --Payment Exchange Date
32931  , p_source_117            IN DATE
32932 --Payment Exchange Rate
32933  , p_source_118            IN NUMBER
32934 --Payment Exchange Rate Type
32935  , p_source_119            IN VARCHAR2
32936 --Payment Type
32937  , p_source_122            IN VARCHAR2
32938  , p_source_122_meaning    IN VARCHAR2
32939 )
32940 IS
32941 
32942 l_component_type              VARCHAR2(80);
32943 l_component_code              VARCHAR2(30);
32944 l_component_type_code         VARCHAR2(1);
32945 l_component_appl_id           INTEGER;
32946 l_amb_context_code            VARCHAR2(30);
32947 l_entity_code                 VARCHAR2(30);
32948 l_event_class_code            VARCHAR2(30);
32949 l_ae_header_id                NUMBER;
32950 l_event_type_code             VARCHAR2(30);
32951 l_line_definition_code        VARCHAR2(30);
32952 l_line_definition_owner_code  VARCHAR2(1);
32953 --
32954 -- adr variables
32955 l_segment                     VARCHAR2(30);
32956 l_ccid                        NUMBER;
32957 l_adr_transaction_coa_id      NUMBER;
32958 l_adr_accounting_coa_id       NUMBER;
32959 l_adr_flexfield_segment_code  VARCHAR2(30);
32960 l_adr_flex_value_set_id       NUMBER;
32961 l_adr_value_type_code         VARCHAR2(30);
32962 l_adr_value_combination_id    NUMBER;
32963 l_adr_value_segment_code      VARCHAR2(30);
32964 
32965 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32966 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32967 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32968 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32969 
32970 -- 4262811 Variables ------------------------------------------------------------------------------------------
32971 l_entered_amt_idx             NUMBER;
32972 l_accted_amt_idx              NUMBER;
32973 l_acc_rev_flag                VARCHAR2(1);
32974 l_accrual_line_num            NUMBER;
32975 l_tmp_amt                     NUMBER;
32976 l_acc_rev_natural_side_code   VARCHAR2(1);
32977 
32978 l_num_entries                 NUMBER;
32979 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32980 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32981 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32982 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32983 l_recog_line_1                NUMBER;
32984 l_recog_line_2                NUMBER;
32985 
32986 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32987 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32988 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32989 
32990 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32991 
32992 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32993 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32994 
32995 ---------------------------------------------------------------------------------------------------------------
32996 
32997 
32998 --
32999 -- bulk performance
33000 --
33001 l_balance_type_code           VARCHAR2(1);
33002 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33003 l_log_module                  VARCHAR2(240);
33004 
33005 --
33006 -- Upgrade strategy
33007 --
33008 l_actual_upg_option           VARCHAR2(1);
33009 l_enc_upg_option           VARCHAR2(1);
33010 
33011 --
33012 BEGIN
33013 --
33014 IF g_log_enabled THEN
33015       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
33016 END IF;
33017 --
33018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33019 
33020       trace
33021          (p_msg      => 'BEGIN of AcctLineType_80'
33022          ,p_level    => C_LEVEL_PROCEDURE
33023          ,p_module   => l_log_module);
33024 
33025 END IF;
33026 --
33027 l_component_type             := 'AMB_JLT';
33028 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
33029 l_component_type_code        := 'S';
33030 l_component_appl_id          :=  200;
33031 l_amb_context_code           := 'DEFAULT';
33032 l_entity_code                := 'AP_PAYMENTS';
33033 l_event_class_code           := 'REFUNDS';
33034 l_event_type_code            := 'REFUNDS_ALL';
33035 l_line_definition_owner_code := 'S';
33036 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
33037 --
33038 l_balance_type_code          := 'A';
33039 l_segment                     := NULL;
33040 l_ccid                        := NULL;
33041 l_adr_transaction_coa_id      := NULL;
33042 l_adr_accounting_coa_id       := NULL;
33046 l_adr_value_combination_id    := NULL;
33043 l_adr_flexfield_segment_code  := NULL;
33044 l_adr_flex_value_set_id       := NULL;
33045 l_adr_value_type_code         := NULL;
33047 l_adr_value_segment_code      := NULL;
33048 
33049 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33050 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33051 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33052 l_budgetary_control_flag     := 'N';
33053 
33054 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33055 l_bflow_applied_to_amt       := NULL; -- 5132302
33056 l_entered_amt_idx            := NULL;          -- 4262811
33057 l_accted_amt_idx             := NULL;          -- 4262811
33058 l_acc_rev_flag               := NULL;          -- 4262811
33059 l_accrual_line_num           := NULL;          -- 4262811
33060 l_tmp_amt                    := NULL;          -- 4262811
33061 --
33062  
33063 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33064     l_balance_type_code <> 'B' THEN
33065 IF NVL(p_source_96,'
33066 ') =  'ALWAYS_ALWAYS' AND 
33067 (NVL(p_source_113,'
33068 ') =  'Y' AND 
33069 NVL(p_source_15,'
33070 ') =  'BALANCING_SEGMENT') AND 
33071 p_source_114 IS NULL AND 
33072 NVL(p_source_97,'
33073 ') =  'CASH' AND 
33074 NVL(p_source_122,'
33075 ') =  'R'
33076  THEN 
33077 
33078    --
33079    XLA_AE_LINES_PKG.SetNewLine;
33080 
33081    p_balance_type_code          := l_balance_type_code;
33082    -- set the flag so later we will know whether the gain loss line needs to be created
33083    
33084    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33085      p_actual_flag :='A';
33086    END IF;
33087 
33088    --
33089    -- bulk performance
33090    --
33091    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33092                                       p_header_num   => 0); -- 4262811
33093    --
33094    -- set accounting line options
33095    --
33096    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33097            p_natural_side_code          => 'C'
33098          , p_gain_or_loss_flag          => 'N'
33099          , p_gl_transfer_mode_code      => 'S'
33100          , p_acct_entry_type_code       => 'A'
33101          , p_switch_side_flag           => 'Y'
33102          , p_merge_duplicate_code       => 'A'
33103          );
33104    --
33105    l_acc_rev_natural_side_code := 'D';  -- 4262811
33106    -- 
33107    --
33108    -- set accounting line type info
33109    --
33110    xla_ae_lines_pkg.SetAcctLineType
33111       (p_component_type             => l_component_type
33112       ,p_event_type_code            => l_event_type_code
33113       ,p_line_definition_owner_code => l_line_definition_owner_code
33114       ,p_line_definition_code       => l_line_definition_code
33115       ,p_accounting_line_code       => l_component_code
33116       ,p_accounting_line_type_code  => l_component_type_code
33117       ,p_accounting_line_appl_id    => l_component_appl_id
33118       ,p_amb_context_code           => l_amb_context_code
33119       ,p_entity_code                => l_entity_code
33120       ,p_event_class_code           => l_event_class_code);
33121    --
33122    -- set accounting class
33123    --
33124    xla_ae_lines_pkg.SetAcctClass(
33125            p_accounting_class_code  => 'CASH_CLEARING'
33126          , p_ae_header_id           => l_ae_header_id
33127          );
33128 
33129    --
33130    -- set rounding class
33131    --
33132    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33133                       'CASH_CLEARING';
33134 
33135    --
33136    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33137    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33138    --
33139    -- bulk performance
33140    --
33141    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33142 
33143    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33144       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33145 
33146    -- 4955764
33147    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33148       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33149 
33150    -- 4458381 Public Sector Enh
33151    
33152    --
33153    -- set accounting attributes for the line type
33154    --
33155    l_entered_amt_idx := 9;
33156    l_accted_amt_idx  := 14;
33157    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33158    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33159    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
33160    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33161    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
33162    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33163    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
33164    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33165    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
33166    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33167    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
33171    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
33168    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33169    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
33170    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33172    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33173    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
33174    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33175    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
33176    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33177    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
33178    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33179    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
33180    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33181    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
33182    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33183    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
33184    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33185    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
33186    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33187    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
33188    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33189    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
33190    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33191    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
33192    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33193    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
33194    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33195    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
33196    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33197    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
33198    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33199    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
33200    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33201    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
33202    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33203    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
33204 
33205    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33206    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33207 
33208    ---------------------------------------------------------------------------------------------------------------
33209    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33210    ---------------------------------------------------------------------------------------------------------------
33211    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33212 
33213    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33214    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33215 
33216    IF xla_accounting_cache_pkg.GetValueChar
33217          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33218          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33219    AND l_bflow_method_code = 'PRIOR_ENTRY'
33220 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33221    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33222          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33223        )
33224    THEN
33225          xla_ae_lines_pkg.BflowUpgEntry
33226            (p_business_method_code    => l_bflow_method_code
33227            ,p_business_class_code     => l_bflow_class_code
33228            ,p_balance_type            => l_balance_type_code);
33229    ELSE
33230       NULL;
33231 XLA_AE_LINES_PKG.business_flow_validation(
33232                                 p_business_method_code     => l_bflow_method_code
33233                                ,p_business_class_code      => l_bflow_class_code
33234                                ,p_inherit_description_flag => l_inherit_desc_flag);
33235    END IF;
33236 
33237    --
33238    -- call analytical criteria
33239    --
33240    
33241 
33242 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
33243 xla_ae_lines_pkg.SetAnalyticalCriteria(
33244    p_analytical_criterion_name    => 'Check Id'
33245  , p_analytical_criterion_owner   => 'S'
33246  , p_analytical_criterion_code    => 'CHECK_ID'
33247  , p_amb_context_code             => 'DEFAULT'
33248  , p_balancing_flag               => 'N'
33249  
33250  , p_analytical_detail_char_1    =>  NULL
33251  , p_analytical_detail_num_1     =>  p_source_112
33252  , p_analytical_detail_date_1    =>  NULL
33253 
33254  , p_ae_header_id                 => l_ae_header_id
33255 )
33256 ;
33257 --
33258 
33259    --
33260    -- call description
33261    --
33262    -- No description or it is inherited.
33263    --
33264    -- call ADRs
33265    -- Bug 4922099
33266    --
33267    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33268         (NVL(l_actual_upg_option, 'N') = 'O') OR
33269         (NVL(l_enc_upg_option, 'N') = 'O')
33270       )
33271    THEN
33272    NULL;
33273    --
33274    --
33278          , p_ae_header_id             => l_ae_header_id 
33275    
33276   l_ccid := AcctDerRule_35(
33277            p_application_id           => p_application_id
33279 , p_source_35 => p_source_35
33280          , x_transaction_coa_id       => l_adr_transaction_coa_id
33281          , x_accounting_coa_id        => l_adr_accounting_coa_id
33282          , x_value_type_code          => l_adr_value_type_code
33283          , p_side                     => 'NA'
33284    );
33285 
33286    xla_ae_lines_pkg.set_ccid(
33287     p_code_combination_id          => l_ccid
33288   , p_value_type_code              => l_adr_value_type_code
33289   , p_transaction_coa_id           => l_adr_transaction_coa_id
33290   , p_accounting_coa_id            => l_adr_accounting_coa_id
33291   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33292   , p_adr_type_code                => 'S'
33293   , p_component_type               => l_component_type
33294   , p_component_code               => l_component_code
33295   , p_component_type_code          => l_component_type_code
33296   , p_component_appl_id            => l_component_appl_id
33297   , p_amb_context_code             => l_amb_context_code
33298   , p_side                         => 'NA'
33299   );
33300 
33301 
33302    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33303      p_to_segment_code         => 'GL_BALANCING'
33304    , p_segment_value           => C_CHAR
33305    , p_from_segment_code       => NULL
33306    , p_from_combination_id     => NULL
33307    , p_value_type_code         => NULL
33308    , p_transaction_coa_id      => null
33309    , p_accounting_coa_id       => null
33310    , p_flexfield_segment_code  => NULL
33311    , p_flex_value_set_id       => NULL
33312    , p_adr_code                => NULL
33313    , p_adr_type_code           => NULL
33314    , p_component_type          => l_component_type
33315    , p_component_code          => l_component_code
33316    , p_component_type_code     => l_component_type_code
33317    , p_component_appl_id       => l_component_appl_id
33318    , p_amb_context_code        => l_amb_context_code
33319    , p_entity_code             => 'AP_PAYMENTS'
33320    , p_event_class_code        => 'REFUNDS'
33321    , p_side                    => 'NA'
33322    );
33323    --
33324 
33325 
33326    --
33327    --
33328    END IF;
33329    --
33330    -- Bug 4922099
33331    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33332           (NVL(l_enc_upg_option, 'N') = 'O')
33333         ) AND
33334         (l_bflow_method_code = 'PRIOR_ENTRY')
33335       )
33336    THEN
33337       IF
33338       --
33339       1 = 2
33340       --
33341       THEN
33342       xla_accounting_err_pkg.build_message
33343                                     (p_appli_s_name            => 'XLA'
33344                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33345                                     ,p_token_1                 => 'LINE_NUMBER'
33346                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33347                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33348                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33349                                                                              l_component_type
33350                                                                             ,l_component_code
33351                                                                             ,l_component_type_code
33352                                                                             ,l_component_appl_id
33353                                                                             ,l_amb_context_code
33354                                                                             ,l_entity_code
33355                                                                             ,l_event_class_code
33356                                                                            )
33357                                     ,p_token_3                 => 'OWNER'
33358                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33359                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33360                                                                           ,p_lookup_code    => l_component_type_code
33361                                                                          )
33362                                     ,p_token_4                 => 'PRODUCT_NAME'
33363                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33364                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33365                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33366                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33367                                     ,p_ae_header_id            =>  NULL
33368                                        );
33369 
33370         IF (C_LEVEL_ERROR>= g_log_level) THEN
33371                  trace
33372                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33373                       ,p_level    => C_LEVEL_ERROR
33374                       ,p_module   => l_log_module);
33375         END IF;
33376       END IF;
33377    END IF;
33378    --
33382    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33379    --
33380    ------------------------------------------------------------------------------------------------
33381    -- 4219869 Business Flow
33383    -- Prior Entry.  Currently, the following code is always generated.
33384    ------------------------------------------------------------------------------------------------
33385    XLA_AE_LINES_PKG.ValidateCurrentLine;
33386 
33387    ------------------------------------------------------------------------------------
33388    -- 4219869 Business Flow
33389    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33390    ------------------------------------------------------------------------------------
33391    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33392 
33393    ----------------------------------------------------------------------------------
33394    -- 4219869 Business Flow
33395    -- Update journal entry status -- Need to generate this within IF <condition>
33396    ----------------------------------------------------------------------------------
33397    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33398          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33399          ,p_balance_type_code => l_balance_type_code
33400          );
33401 
33402    -------------------------------------------------------------------------------------------
33403    -- 4262811 - Generate the Accrual Reversal lines
33404    -------------------------------------------------------------------------------------------
33405    BEGIN
33406       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33407                               (g_array_event(p_event_id).array_value_num('header_index'));
33408       IF l_acc_rev_flag IS NULL THEN
33409          l_acc_rev_flag := 'N';
33410       END IF;
33411    EXCEPTION
33412       WHEN OTHERS THEN
33413          l_acc_rev_flag := 'N';
33414    END;
33415    --
33416    IF (l_acc_rev_flag = 'Y') THEN
33417 
33418        -- 4645092  ------------------------------------------------------------------------------
33419        -- To allow MPA report to determine if it should generate report process
33420        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33421        ------------------------------------------------------------------------------------------
33422 
33423        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33424        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33425    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33426    -- call ADRs
33427    -- Bug 4922099
33428    --
33429    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33430         (NVL(l_actual_upg_option, 'N') = 'O') OR
33431         (NVL(l_enc_upg_option, 'N') = 'O')
33432       )
33433    THEN
33434    NULL;
33435    --
33436    --
33437    
33438   l_ccid := AcctDerRule_35(
33439            p_application_id           => p_application_id
33440          , p_ae_header_id             => l_ae_header_id 
33441 , p_source_35 => p_source_35
33442          , x_transaction_coa_id       => l_adr_transaction_coa_id
33443          , x_accounting_coa_id        => l_adr_accounting_coa_id
33444          , x_value_type_code          => l_adr_value_type_code
33445          , p_side                     => 'NA'
33446    );
33447 
33448    xla_ae_lines_pkg.set_ccid(
33449     p_code_combination_id          => l_ccid
33450   , p_value_type_code              => l_adr_value_type_code
33451   , p_transaction_coa_id           => l_adr_transaction_coa_id
33452   , p_accounting_coa_id            => l_adr_accounting_coa_id
33453   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33454   , p_adr_type_code                => 'S'
33455   , p_component_type               => l_component_type
33456   , p_component_code               => l_component_code
33457   , p_component_type_code          => l_component_type_code
33458   , p_component_appl_id            => l_component_appl_id
33459   , p_amb_context_code             => l_amb_context_code
33460   , p_side                         => 'NA'
33461   );
33462 
33463 
33464    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33465      p_to_segment_code         => 'GL_BALANCING'
33466    , p_segment_value           => C_CHAR
33467    , p_from_segment_code       => NULL
33468    , p_from_combination_id     => NULL
33469    , p_value_type_code         => NULL
33470    , p_transaction_coa_id      => null
33471    , p_accounting_coa_id       => null
33472    , p_flexfield_segment_code  => NULL
33473    , p_flex_value_set_id       => NULL
33474    , p_adr_code                => NULL
33475    , p_adr_type_code           => NULL
33476    , p_component_type          => l_component_type
33477    , p_component_code          => l_component_code
33478    , p_component_type_code     => l_component_type_code
33479    , p_component_appl_id       => l_component_appl_id
33480    , p_amb_context_code        => l_amb_context_code
33481    , p_entity_code             => 'AP_PAYMENTS'
33482    , p_event_class_code        => 'REFUNDS'
33483    , p_side                    => 'NA'
33484    );
33485    --
33486 
33487 
33488    --
33489    --
33490    END IF;
33491 
33492        --
33493        -- Update the line information that should be overwritten
33494        --
33498 
33495        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33496                                          p_header_num   => 1);
33497        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33499        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33500 
33501        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33502           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33503        END IF;
33504 
33505       --
33506       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33507       --
33508       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33509           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33510       ELSE
33511           ---------------------------------------------------------------------------------------------------
33512           -- 4262811a Switch Sign
33513           ---------------------------------------------------------------------------------------------------
33514           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33515           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33516                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33517           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33518                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33519           -- 5132302
33520           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33521                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33522 
33523       END IF;
33524 
33525       -- 4955764
33526       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33527       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33528 
33529 
33530       XLA_AE_LINES_PKG.ValidateCurrentLine;
33531       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33532 
33533       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33534                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33535                ,p_balance_type_code => l_balance_type_code);
33536 
33537    END IF;
33538 
33539    -----------------------------------------------------------------------------------------
33540    -- 4262811 Multiperiod Accounting
33541    -----------------------------------------------------------------------------------------
33542      -- No MPA option is assigned.
33543 
33544 
33545 END IF;
33546 END IF;
33547 --
33548 
33549 --
33550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33551    trace
33552       (p_msg      => 'END of AcctLineType_80'
33553       ,p_level    => C_LEVEL_PROCEDURE
33554       ,p_module   => l_log_module);
33555 END IF;
33556 --
33557 EXCEPTION
33558   WHEN xla_exceptions_pkg.application_exception THEN
33559       RAISE;
33560   WHEN OTHERS THEN
33561        xla_exceptions_pkg.raise_message
33562            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_80');
33563 END AcctLineType_80;
33564 --
33565 
33566 ---------------------------------------
33567 --
33568 -- PRIVATE FUNCTION
33569 --         AcctLineType_81
33570 --
33571 ---------------------------------------
33572 PROCEDURE AcctLineType_81 (
33573   p_application_id        IN NUMBER
33574  ,p_event_id              IN NUMBER
33575  ,p_calculate_acctd_flag  IN VARCHAR2
33576  ,p_calculate_g_l_flag    IN VARCHAR2
33577  ,p_actual_flag           IN OUT VARCHAR2
33578  ,p_balance_type_code     OUT VARCHAR2
33579  ,p_gain_or_loss_ref      OUT VARCHAR2
33580  
33581 --Payment Currency Code
33582  , p_source_13            IN VARCHAR2
33583 --Automatic Offsets Value
33584  , p_source_15            IN VARCHAR2
33585  , p_source_15_meaning    IN VARCHAR2
33586 --Bank Cash Clearing Account
33587  , p_source_35            IN NUMBER
33588 --Accounting Reversal Indicator
33589  , p_source_52            IN VARCHAR2
33590 --Distribution Link Type
33591  , p_source_54            IN VARCHAR2
33592 --Override Accounted Amount Indicator
33593  , p_source_79            IN VARCHAR2
33594  , p_source_79_meaning    IN VARCHAR2
33595 --Third Party Type
33596  , p_source_82            IN VARCHAR2
33597 --Invoice Distribution Tax Line Identifier
33598  , p_source_85            IN NUMBER
33599 --Invoice Distribution Tax Distribution Identifier from Tax
33600  , p_source_86            IN NUMBER
33601 --Invoice Distribution Summary Tax Line Identifier
33602  , p_source_87            IN NUMBER
33603 --Business Flow Accounts Payable Application Identifier
33604  , p_source_90            IN NUMBER
33605 --Business Flow Invoice Distribution Type
33606  , p_source_91            IN VARCHAR2
33607 --Business Flow Invoice Entity Code
33608  , p_source_92            IN VARCHAR2
33609 --Business Flow Invoice Distribution Identifier
33610  , p_source_93            IN NUMBER
33611 --Business Flow Invoice Identifier
33612  , p_source_94            IN NUMBER
33613 --When to Account for Payment Option
33614  , p_source_96            IN VARCHAR2
33615 --Payment Distribution Type
33616  , p_source_97            IN VARCHAR2
33620 --Payment Distribution Identifier
33617  , p_source_97_meaning    IN VARCHAR2
33618 --Payment Distribution Amount
33619  , p_source_98            IN NUMBER
33621  , p_source_103            IN NUMBER
33622 --Payment Supplier Identifier
33623  , p_source_109            IN NUMBER
33624 --Payment Supplier Site Identifier
33625  , p_source_110            IN NUMBER
33626 --Payment Distribution Reversed Identifier
33627  , p_source_111            IN NUMBER
33628 --Payment Identifier
33629  , p_source_112            IN NUMBER
33630 --Pooled Bank Account Option
33631  , p_source_113            IN VARCHAR2
33632  , p_source_113_meaning    IN VARCHAR2
33633 --Payment Maturity Date
33634  , p_source_114            IN DATE
33635 --Payment Distribution (Invoice Rate) Ledger Amount
33636  , p_source_116            IN NUMBER
33637 --Payment Exchange Date
33638  , p_source_117            IN DATE
33639 --Payment Exchange Rate
33640  , p_source_118            IN NUMBER
33641 --Payment Exchange Rate Type
33642  , p_source_119            IN VARCHAR2
33643 --Payment Type
33644  , p_source_122            IN VARCHAR2
33645  , p_source_122_meaning    IN VARCHAR2
33646 )
33647 IS
33648 
33649 l_component_type              VARCHAR2(80);
33650 l_component_code              VARCHAR2(30);
33651 l_component_type_code         VARCHAR2(1);
33652 l_component_appl_id           INTEGER;
33653 l_amb_context_code            VARCHAR2(30);
33654 l_entity_code                 VARCHAR2(30);
33655 l_event_class_code            VARCHAR2(30);
33656 l_ae_header_id                NUMBER;
33657 l_event_type_code             VARCHAR2(30);
33658 l_line_definition_code        VARCHAR2(30);
33659 l_line_definition_owner_code  VARCHAR2(1);
33660 --
33661 -- adr variables
33662 l_segment                     VARCHAR2(30);
33663 l_ccid                        NUMBER;
33664 l_adr_transaction_coa_id      NUMBER;
33665 l_adr_accounting_coa_id       NUMBER;
33666 l_adr_flexfield_segment_code  VARCHAR2(30);
33667 l_adr_flex_value_set_id       NUMBER;
33668 l_adr_value_type_code         VARCHAR2(30);
33669 l_adr_value_combination_id    NUMBER;
33670 l_adr_value_segment_code      VARCHAR2(30);
33671 
33672 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33673 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33674 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33675 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33676 
33677 -- 4262811 Variables ------------------------------------------------------------------------------------------
33678 l_entered_amt_idx             NUMBER;
33679 l_accted_amt_idx              NUMBER;
33680 l_acc_rev_flag                VARCHAR2(1);
33681 l_accrual_line_num            NUMBER;
33682 l_tmp_amt                     NUMBER;
33683 l_acc_rev_natural_side_code   VARCHAR2(1);
33684 
33685 l_num_entries                 NUMBER;
33686 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33687 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33688 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33689 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33690 l_recog_line_1                NUMBER;
33691 l_recog_line_2                NUMBER;
33692 
33693 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33694 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33695 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33696 
33697 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33698 
33699 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33700 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33701 
33702 ---------------------------------------------------------------------------------------------------------------
33703 
33704 
33705 --
33706 -- bulk performance
33707 --
33708 l_balance_type_code           VARCHAR2(1);
33709 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33710 l_log_module                  VARCHAR2(240);
33711 
33712 --
33713 -- Upgrade strategy
33714 --
33715 l_actual_upg_option           VARCHAR2(1);
33716 l_enc_upg_option           VARCHAR2(1);
33717 
33718 --
33719 BEGIN
33720 --
33721 IF g_log_enabled THEN
33722       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
33723 END IF;
33724 --
33725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33726 
33727       trace
33728          (p_msg      => 'BEGIN of AcctLineType_81'
33729          ,p_level    => C_LEVEL_PROCEDURE
33730          ,p_module   => l_log_module);
33731 
33732 END IF;
33733 --
33734 l_component_type             := 'AMB_JLT';
33735 l_component_code             := 'AP_CASH_CLEAR_REF_AS_INVXRATE';
33736 l_component_type_code        := 'S';
33737 l_component_appl_id          :=  200;
33738 l_amb_context_code           := 'DEFAULT';
33739 l_entity_code                := 'AP_PAYMENTS';
33740 l_event_class_code           := 'REFUNDS';
33741 l_event_type_code            := 'REFUNDS_ALL';
33742 l_line_definition_owner_code := 'S';
33743 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
33744 --
33745 l_balance_type_code          := 'A';
33746 l_segment                     := NULL;
33747 l_ccid                        := NULL;
33751 l_adr_flex_value_set_id       := NULL;
33748 l_adr_transaction_coa_id      := NULL;
33749 l_adr_accounting_coa_id       := NULL;
33750 l_adr_flexfield_segment_code  := NULL;
33752 l_adr_value_type_code         := NULL;
33753 l_adr_value_combination_id    := NULL;
33754 l_adr_value_segment_code      := NULL;
33755 
33756 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33757 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33758 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33759 l_budgetary_control_flag     := 'N';
33760 
33761 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33762 l_bflow_applied_to_amt       := NULL; -- 5132302
33763 l_entered_amt_idx            := NULL;          -- 4262811
33764 l_accted_amt_idx             := NULL;          -- 4262811
33765 l_acc_rev_flag               := NULL;          -- 4262811
33766 l_accrual_line_num           := NULL;          -- 4262811
33767 l_tmp_amt                    := NULL;          -- 4262811
33768 --
33769  
33770 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33771     l_balance_type_code <> 'B' THEN
33772 IF NVL(p_source_96,'
33773 ') =  'ALWAYS_CLEAR' AND 
33774 (NVL(p_source_113,'
33775 ') =  'Y' AND 
33776 NVL(p_source_15,'
33777 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
33778 p_source_114 IS NULL AND 
33779 NVL(p_source_97,'
33780 ') =  'CASH' AND 
33781 NVL(p_source_122,'
33782 ') =  'R'
33783  THEN 
33784 
33785    --
33786    XLA_AE_LINES_PKG.SetNewLine;
33787 
33788    p_balance_type_code          := l_balance_type_code;
33789    -- set the flag so later we will know whether the gain loss line needs to be created
33790    
33791    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33792      p_actual_flag :='A';
33793    END IF;
33794 
33795    --
33796    -- bulk performance
33797    --
33798    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33799                                       p_header_num   => 0); -- 4262811
33800    --
33801    -- set accounting line options
33802    --
33803    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33804            p_natural_side_code          => 'C'
33805          , p_gain_or_loss_flag          => 'N'
33806          , p_gl_transfer_mode_code      => 'S'
33807          , p_acct_entry_type_code       => 'A'
33808          , p_switch_side_flag           => 'Y'
33809          , p_merge_duplicate_code       => 'A'
33810          );
33811    --
33812    l_acc_rev_natural_side_code := 'D';  -- 4262811
33813    -- 
33814    --
33815    -- set accounting line type info
33816    --
33817    xla_ae_lines_pkg.SetAcctLineType
33818       (p_component_type             => l_component_type
33819       ,p_event_type_code            => l_event_type_code
33820       ,p_line_definition_owner_code => l_line_definition_owner_code
33821       ,p_line_definition_code       => l_line_definition_code
33822       ,p_accounting_line_code       => l_component_code
33823       ,p_accounting_line_type_code  => l_component_type_code
33824       ,p_accounting_line_appl_id    => l_component_appl_id
33825       ,p_amb_context_code           => l_amb_context_code
33826       ,p_entity_code                => l_entity_code
33827       ,p_event_class_code           => l_event_class_code);
33828    --
33829    -- set accounting class
33830    --
33831    xla_ae_lines_pkg.SetAcctClass(
33832            p_accounting_class_code  => 'CASH_CLEARING'
33833          , p_ae_header_id           => l_ae_header_id
33834          );
33835 
33836    --
33837    -- set rounding class
33838    --
33839    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33840                       'CASH_CLEARING';
33841 
33842    --
33843    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33844    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33845    --
33846    -- bulk performance
33847    --
33848    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33849 
33850    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33851       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33852 
33853    -- 4955764
33854    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33855       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33856 
33857    -- 4458381 Public Sector Enh
33858    
33859    --
33860    -- set accounting attributes for the line type
33861    --
33862    l_entered_amt_idx := 9;
33863    l_accted_amt_idx  := 14;
33864    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33865    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33866    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
33867    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33868    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
33869    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33870    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
33871    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33872    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
33873    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33877    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33874    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
33875    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33876    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
33878    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
33879    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33880    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
33881    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33882    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
33883    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33884    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
33885    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33886    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
33887    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33888    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
33889    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33890    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
33891    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33892    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
33893    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33894    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
33895    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33896    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
33897    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33898    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
33899    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33900    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
33901    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33902    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
33903    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33904    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
33905    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33906    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
33907    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33908    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
33909    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33910    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
33911 
33912    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33913    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33914 
33915    ---------------------------------------------------------------------------------------------------------------
33916    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33917    ---------------------------------------------------------------------------------------------------------------
33918    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33919 
33920    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33921    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33922 
33923    IF xla_accounting_cache_pkg.GetValueChar
33924          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33925          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33926    AND l_bflow_method_code = 'PRIOR_ENTRY'
33927 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33928    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33929          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33930        )
33931    THEN
33932          xla_ae_lines_pkg.BflowUpgEntry
33933            (p_business_method_code    => l_bflow_method_code
33934            ,p_business_class_code     => l_bflow_class_code
33935            ,p_balance_type            => l_balance_type_code);
33936    ELSE
33937       NULL;
33938 XLA_AE_LINES_PKG.business_flow_validation(
33939                                 p_business_method_code     => l_bflow_method_code
33940                                ,p_business_class_code      => l_bflow_class_code
33941                                ,p_inherit_description_flag => l_inherit_desc_flag);
33942    END IF;
33943 
33944    --
33945    -- call analytical criteria
33946    --
33947    
33948 
33949 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
33950 xla_ae_lines_pkg.SetAnalyticalCriteria(
33951    p_analytical_criterion_name    => 'Check Id'
33952  , p_analytical_criterion_owner   => 'S'
33953  , p_analytical_criterion_code    => 'CHECK_ID'
33954  , p_amb_context_code             => 'DEFAULT'
33955  , p_balancing_flag               => 'N'
33956  
33957  , p_analytical_detail_char_1    =>  NULL
33958  , p_analytical_detail_num_1     =>  p_source_112
33959  , p_analytical_detail_date_1    =>  NULL
33960 
33961  , p_ae_header_id                 => l_ae_header_id
33962 )
33963 ;
33964 --
33965 
33966    --
33967    -- call description
33968    --
33969    -- No description or it is inherited.
33970    --
33971    -- call ADRs
33972    -- Bug 4922099
33973    --
33974    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33975         (NVL(l_actual_upg_option, 'N') = 'O') OR
33979    NULL;
33976         (NVL(l_enc_upg_option, 'N') = 'O')
33977       )
33978    THEN
33980    --
33981    --
33982    
33983    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33984      p_code_combination_id      => TO_NUMBER(C_NUM)
33985    , p_value_type_code          => NULL
33986    , p_transaction_coa_id       => null
33987    , p_accounting_coa_id        => null
33988    , p_adr_code                 => NULL
33989    , p_adr_type_code            => NULL
33990    , p_component_type           => l_component_type
33991    , p_component_code           => l_component_code
33992    , p_component_type_code      => l_component_type_code
33993    , p_component_appl_id        => l_component_appl_id
33994    , p_amb_context_code         => l_amb_context_code
33995    , p_side                     => NULL
33996    );
33997 
33998    
33999   -- initialise segments
34000   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34001   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34002   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34003   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34004   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34005   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34006   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34007   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34008   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34009   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34010   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34011   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34012   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34013   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34014   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34015   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34016   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34017   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34018   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34019   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34020   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34021   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34022   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34023   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34024   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34025   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34026   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34027   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34028   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34029   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34030   --
34031 
34032    --
34033 
34034 
34035    l_segment := AcctDerRule_16(
34036            p_application_id           => p_application_id
34037          , p_ae_header_id             => l_ae_header_id 
34038 , p_source_35 => p_source_35
34039          , x_transaction_coa_id       => l_adr_transaction_coa_id
34040          , x_accounting_coa_id        => l_adr_accounting_coa_id
34041          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34042          , x_flex_value_set_id        => l_adr_flex_value_set_id
34043          , x_value_type_code          => l_adr_value_type_code
34044          , x_value_combination_id     => l_adr_value_combination_id
34045          , x_value_segment_code       => l_adr_value_segment_code
34046          , p_side                     => 'NA'
34047          , p_override_seg_flag        => 'Y'
34048    );
34049 
34050    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34051 
34052       xla_ae_lines_pkg.set_segment(
34053           p_to_segment_code         => 'GL_ACCOUNT'
34054         , p_segment_value           => l_segment
34055         , p_from_segment_code       => l_adr_value_segment_code
34056         , p_from_combination_id     => l_adr_value_combination_id
34057         , p_value_type_code         => l_adr_value_type_code
34058         , p_transaction_coa_id      => l_adr_transaction_coa_id
34059         , p_accounting_coa_id       => l_adr_accounting_coa_id
34060         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34061         , p_flex_value_set_id       => l_adr_flex_value_set_id
34062         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
34063         , p_adr_type_code           => 'S'
34064         , p_component_type          => l_component_type
34065         , p_component_code          => l_component_code
34066         , p_component_type_code     => l_component_type_code
34067         , p_component_appl_id       => l_component_appl_id
34068         , p_amb_context_code        => l_amb_context_code
34072         );
34069         , p_entity_code             => 'AP_PAYMENTS'
34070         , p_event_class_code        => 'REFUNDS'
34071         , p_side                    => 'NA'
34073 
34074   END IF;
34075 
34076    --
34077    --
34078    END IF;
34079    --
34080    -- Bug 4922099
34081    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34082           (NVL(l_enc_upg_option, 'N') = 'O')
34083         ) AND
34084         (l_bflow_method_code = 'PRIOR_ENTRY')
34085       )
34086    THEN
34087       IF
34088       --
34089       1 = 2
34090       --
34091       THEN
34092       xla_accounting_err_pkg.build_message
34093                                     (p_appli_s_name            => 'XLA'
34094                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34095                                     ,p_token_1                 => 'LINE_NUMBER'
34096                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34097                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34098                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34099                                                                              l_component_type
34100                                                                             ,l_component_code
34101                                                                             ,l_component_type_code
34102                                                                             ,l_component_appl_id
34103                                                                             ,l_amb_context_code
34104                                                                             ,l_entity_code
34105                                                                             ,l_event_class_code
34106                                                                            )
34107                                     ,p_token_3                 => 'OWNER'
34108                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34109                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34110                                                                           ,p_lookup_code    => l_component_type_code
34111                                                                          )
34112                                     ,p_token_4                 => 'PRODUCT_NAME'
34113                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34114                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34115                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34116                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34117                                     ,p_ae_header_id            =>  NULL
34118                                        );
34119 
34120         IF (C_LEVEL_ERROR>= g_log_level) THEN
34121                  trace
34122                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34123                       ,p_level    => C_LEVEL_ERROR
34124                       ,p_module   => l_log_module);
34125         END IF;
34126       END IF;
34127    END IF;
34128    --
34129    --
34130    ------------------------------------------------------------------------------------------------
34131    -- 4219869 Business Flow
34132    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34133    -- Prior Entry.  Currently, the following code is always generated.
34134    ------------------------------------------------------------------------------------------------
34135    XLA_AE_LINES_PKG.ValidateCurrentLine;
34136 
34137    ------------------------------------------------------------------------------------
34138    -- 4219869 Business Flow
34139    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34140    ------------------------------------------------------------------------------------
34141    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34142 
34143    ----------------------------------------------------------------------------------
34144    -- 4219869 Business Flow
34145    -- Update journal entry status -- Need to generate this within IF <condition>
34146    ----------------------------------------------------------------------------------
34147    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34148          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34149          ,p_balance_type_code => l_balance_type_code
34150          );
34151 
34152    -------------------------------------------------------------------------------------------
34153    -- 4262811 - Generate the Accrual Reversal lines
34154    -------------------------------------------------------------------------------------------
34155    BEGIN
34156       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34157                               (g_array_event(p_event_id).array_value_num('header_index'));
34158       IF l_acc_rev_flag IS NULL THEN
34159          l_acc_rev_flag := 'N';
34160       END IF;
34161    EXCEPTION
34162       WHEN OTHERS THEN
34163          l_acc_rev_flag := 'N';
34164    END;
34165    --
34166    IF (l_acc_rev_flag = 'Y') THEN
34167 
34168        -- 4645092  ------------------------------------------------------------------------------
34172 
34169        -- To allow MPA report to determine if it should generate report process
34170        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34171        ------------------------------------------------------------------------------------------
34173        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34174        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34175    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34176    -- call ADRs
34177    -- Bug 4922099
34178    --
34179    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34180         (NVL(l_actual_upg_option, 'N') = 'O') OR
34181         (NVL(l_enc_upg_option, 'N') = 'O')
34182       )
34183    THEN
34184    NULL;
34185    --
34186    --
34187    
34188    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
34189      p_code_combination_id      => TO_NUMBER(C_NUM)
34190    , p_value_type_code          => NULL
34191    , p_transaction_coa_id       => null
34192    , p_accounting_coa_id        => null
34193    , p_adr_code                 => NULL
34194    , p_adr_type_code            => NULL
34195    , p_component_type           => l_component_type
34196    , p_component_code           => l_component_code
34197    , p_component_type_code      => l_component_type_code
34198    , p_component_appl_id        => l_component_appl_id
34199    , p_amb_context_code         => l_amb_context_code
34200    , p_side                     => NULL
34201    );
34202 
34203    
34204   -- initialise segments
34205   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34206   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34207   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34208   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34209   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34210   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34211   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34212   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34213   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
34214   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34215   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34216   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34217   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34218   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34219   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34220   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34221   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34222   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34223   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34224   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34225   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34226   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34227   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34228   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34229   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34230   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34231   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34232   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34233   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34234   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
34235   --
34236 
34237    --
34238 
34239 
34240    l_segment := AcctDerRule_16(
34241            p_application_id           => p_application_id
34242          , p_ae_header_id             => l_ae_header_id 
34243 , p_source_35 => p_source_35
34244          , x_transaction_coa_id       => l_adr_transaction_coa_id
34245          , x_accounting_coa_id        => l_adr_accounting_coa_id
34246          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
34247          , x_flex_value_set_id        => l_adr_flex_value_set_id
34248          , x_value_type_code          => l_adr_value_type_code
34249          , x_value_combination_id     => l_adr_value_combination_id
34250          , x_value_segment_code       => l_adr_value_segment_code
34251          , p_side                     => 'NA'
34252          , p_override_seg_flag        => 'Y'
34253    );
34254 
34255    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
34256 
34257       xla_ae_lines_pkg.set_segment(
34258           p_to_segment_code         => 'GL_ACCOUNT'
34259         , p_segment_value           => l_segment
34260         , p_from_segment_code       => l_adr_value_segment_code
34261         , p_from_combination_id     => l_adr_value_combination_id
34262         , p_value_type_code         => l_adr_value_type_code
34263         , p_transaction_coa_id      => l_adr_transaction_coa_id
34264         , p_accounting_coa_id       => l_adr_accounting_coa_id
34268         , p_adr_type_code           => 'S'
34265         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
34266         , p_flex_value_set_id       => l_adr_flex_value_set_id
34267         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
34269         , p_component_type          => l_component_type
34270         , p_component_code          => l_component_code
34271         , p_component_type_code     => l_component_type_code
34272         , p_component_appl_id       => l_component_appl_id
34273         , p_amb_context_code        => l_amb_context_code
34274         , p_entity_code             => 'AP_PAYMENTS'
34275         , p_event_class_code        => 'REFUNDS'
34276         , p_side                    => 'NA'
34277         );
34278 
34279   END IF;
34280 
34281    --
34282    --
34283    END IF;
34284 
34285        --
34286        -- Update the line information that should be overwritten
34287        --
34288        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34289                                          p_header_num   => 1);
34290        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34291 
34292        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34293 
34294        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34295           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34296        END IF;
34297 
34298       --
34299       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34300       --
34301       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34302           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34303       ELSE
34304           ---------------------------------------------------------------------------------------------------
34305           -- 4262811a Switch Sign
34306           ---------------------------------------------------------------------------------------------------
34307           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34308           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34309                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34310           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34311                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34312           -- 5132302
34313           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34314                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34315 
34316       END IF;
34317 
34318       -- 4955764
34319       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34320       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34321 
34322 
34323       XLA_AE_LINES_PKG.ValidateCurrentLine;
34324       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34325 
34326       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34327                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34328                ,p_balance_type_code => l_balance_type_code);
34329 
34330    END IF;
34331 
34332    -----------------------------------------------------------------------------------------
34333    -- 4262811 Multiperiod Accounting
34334    -----------------------------------------------------------------------------------------
34335      -- No MPA option is assigned.
34336 
34337 
34338 END IF;
34339 END IF;
34340 --
34341 
34342 --
34343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34344    trace
34345       (p_msg      => 'END of AcctLineType_81'
34346       ,p_level    => C_LEVEL_PROCEDURE
34347       ,p_module   => l_log_module);
34348 END IF;
34349 --
34350 EXCEPTION
34351   WHEN xla_exceptions_pkg.application_exception THEN
34352       RAISE;
34353   WHEN OTHERS THEN
34354        xla_exceptions_pkg.raise_message
34355            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_81');
34356 END AcctLineType_81;
34357 --
34358 
34359 ---------------------------------------
34360 --
34361 -- PRIVATE FUNCTION
34362 --         AcctLineType_82
34363 --
34364 ---------------------------------------
34365 PROCEDURE AcctLineType_82 (
34366   p_application_id        IN NUMBER
34367  ,p_event_id              IN NUMBER
34368  ,p_calculate_acctd_flag  IN VARCHAR2
34369  ,p_calculate_g_l_flag    IN VARCHAR2
34370  ,p_actual_flag           IN OUT VARCHAR2
34371  ,p_balance_type_code     OUT VARCHAR2
34372  ,p_gain_or_loss_ref      OUT VARCHAR2
34373  
34374 --Payment Currency Code
34375  , p_source_13            IN VARCHAR2
34376 --Automatic Offsets Value
34377  , p_source_15            IN VARCHAR2
34378  , p_source_15_meaning    IN VARCHAR2
34379 --Bank Cash Clearing Account
34380  , p_source_35            IN NUMBER
34381 --Accounting Reversal Indicator
34382  , p_source_52            IN VARCHAR2
34383 --Distribution Link Type
34384  , p_source_54            IN VARCHAR2
34385 --Override Accounted Amount Indicator
34389  , p_source_82            IN VARCHAR2
34386  , p_source_79            IN VARCHAR2
34387  , p_source_79_meaning    IN VARCHAR2
34388 --Third Party Type
34390 --Invoice Distribution Tax Line Identifier
34391  , p_source_85            IN NUMBER
34392 --Invoice Distribution Tax Distribution Identifier from Tax
34393  , p_source_86            IN NUMBER
34394 --Invoice Distribution Summary Tax Line Identifier
34395  , p_source_87            IN NUMBER
34396 --Business Flow Accounts Payable Application Identifier
34397  , p_source_90            IN NUMBER
34398 --Business Flow Invoice Distribution Type
34399  , p_source_91            IN VARCHAR2
34400 --Business Flow Invoice Entity Code
34401  , p_source_92            IN VARCHAR2
34402 --Business Flow Invoice Distribution Identifier
34403  , p_source_93            IN NUMBER
34404 --Business Flow Invoice Identifier
34405  , p_source_94            IN NUMBER
34406 --When to Account for Payment Option
34407  , p_source_96            IN VARCHAR2
34408 --Payment Distribution Type
34409  , p_source_97            IN VARCHAR2
34410  , p_source_97_meaning    IN VARCHAR2
34411 --Payment Distribution Amount
34412  , p_source_98            IN NUMBER
34413 --Payment Distribution Identifier
34414  , p_source_103            IN NUMBER
34415 --Payment Supplier Identifier
34416  , p_source_109            IN NUMBER
34417 --Payment Supplier Site Identifier
34418  , p_source_110            IN NUMBER
34419 --Payment Distribution Reversed Identifier
34420  , p_source_111            IN NUMBER
34421 --Payment Identifier
34422  , p_source_112            IN NUMBER
34423 --Pooled Bank Account Option
34424  , p_source_113            IN VARCHAR2
34425  , p_source_113_meaning    IN VARCHAR2
34426 --Payment Maturity Date
34427  , p_source_114            IN DATE
34428 --Payment Distribution (Invoice Rate) Ledger Amount
34429  , p_source_116            IN NUMBER
34430 --Payment Exchange Date
34431  , p_source_117            IN DATE
34432 --Payment Exchange Rate
34433  , p_source_118            IN NUMBER
34434 --Payment Exchange Rate Type
34435  , p_source_119            IN VARCHAR2
34436 --Payment Type
34437  , p_source_122            IN VARCHAR2
34438  , p_source_122_meaning    IN VARCHAR2
34439 )
34440 IS
34441 
34442 l_component_type              VARCHAR2(80);
34443 l_component_code              VARCHAR2(30);
34444 l_component_type_code         VARCHAR2(1);
34445 l_component_appl_id           INTEGER;
34446 l_amb_context_code            VARCHAR2(30);
34447 l_entity_code                 VARCHAR2(30);
34448 l_event_class_code            VARCHAR2(30);
34449 l_ae_header_id                NUMBER;
34450 l_event_type_code             VARCHAR2(30);
34451 l_line_definition_code        VARCHAR2(30);
34452 l_line_definition_owner_code  VARCHAR2(1);
34453 --
34454 -- adr variables
34455 l_segment                     VARCHAR2(30);
34456 l_ccid                        NUMBER;
34457 l_adr_transaction_coa_id      NUMBER;
34458 l_adr_accounting_coa_id       NUMBER;
34459 l_adr_flexfield_segment_code  VARCHAR2(30);
34460 l_adr_flex_value_set_id       NUMBER;
34461 l_adr_value_type_code         VARCHAR2(30);
34462 l_adr_value_combination_id    NUMBER;
34463 l_adr_value_segment_code      VARCHAR2(30);
34464 
34465 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34466 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34467 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34468 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34469 
34470 -- 4262811 Variables ------------------------------------------------------------------------------------------
34471 l_entered_amt_idx             NUMBER;
34472 l_accted_amt_idx              NUMBER;
34473 l_acc_rev_flag                VARCHAR2(1);
34474 l_accrual_line_num            NUMBER;
34475 l_tmp_amt                     NUMBER;
34476 l_acc_rev_natural_side_code   VARCHAR2(1);
34477 
34478 l_num_entries                 NUMBER;
34479 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34480 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34481 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34482 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34483 l_recog_line_1                NUMBER;
34484 l_recog_line_2                NUMBER;
34485 
34486 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34487 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34488 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34489 
34490 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34491 
34492 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34493 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34494 
34495 ---------------------------------------------------------------------------------------------------------------
34496 
34497 
34498 --
34499 -- bulk performance
34500 --
34501 l_balance_type_code           VARCHAR2(1);
34502 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34503 l_log_module                  VARCHAR2(240);
34504 
34505 --
34506 -- Upgrade strategy
34507 --
34508 l_actual_upg_option           VARCHAR2(1);
34509 l_enc_upg_option           VARCHAR2(1);
34510 
34511 --
34512 BEGIN
34513 --
34514 IF g_log_enabled THEN
34515       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
34519 
34516 END IF;
34517 --
34518 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34520       trace
34521          (p_msg      => 'BEGIN of AcctLineType_82'
34522          ,p_level    => C_LEVEL_PROCEDURE
34523          ,p_module   => l_log_module);
34524 
34525 END IF;
34526 --
34527 l_component_type             := 'AMB_JLT';
34528 l_component_code             := 'AP_CASH_CLEAR_REF_BS_INVXRATE';
34529 l_component_type_code        := 'S';
34530 l_component_appl_id          :=  200;
34531 l_amb_context_code           := 'DEFAULT';
34532 l_entity_code                := 'AP_PAYMENTS';
34533 l_event_class_code           := 'REFUNDS';
34534 l_event_type_code            := 'REFUNDS_ALL';
34535 l_line_definition_owner_code := 'S';
34536 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
34537 --
34538 l_balance_type_code          := 'A';
34539 l_segment                     := NULL;
34540 l_ccid                        := NULL;
34541 l_adr_transaction_coa_id      := NULL;
34542 l_adr_accounting_coa_id       := NULL;
34543 l_adr_flexfield_segment_code  := NULL;
34544 l_adr_flex_value_set_id       := NULL;
34545 l_adr_value_type_code         := NULL;
34546 l_adr_value_combination_id    := NULL;
34547 l_adr_value_segment_code      := NULL;
34548 
34549 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
34550 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34551 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34552 l_budgetary_control_flag     := 'N';
34553 
34554 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34555 l_bflow_applied_to_amt       := NULL; -- 5132302
34556 l_entered_amt_idx            := NULL;          -- 4262811
34557 l_accted_amt_idx             := NULL;          -- 4262811
34558 l_acc_rev_flag               := NULL;          -- 4262811
34559 l_accrual_line_num           := NULL;          -- 4262811
34560 l_tmp_amt                    := NULL;          -- 4262811
34561 --
34562  
34563 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34564     l_balance_type_code <> 'B' THEN
34565 IF NVL(p_source_96,'
34566 ') =  'ALWAYS_CLEAR' AND 
34567 (NVL(p_source_113,'
34568 ') =  'Y' AND 
34569 NVL(p_source_15,'
34570 ') =  'BALANCING_SEGMENT') AND 
34571 p_source_114 IS NULL AND 
34572 NVL(p_source_97,'
34573 ') =  'CASH' AND 
34574 NVL(p_source_122,'
34575 ') =  'R'
34576  THEN 
34577 
34578    --
34579    XLA_AE_LINES_PKG.SetNewLine;
34580 
34581    p_balance_type_code          := l_balance_type_code;
34582    -- set the flag so later we will know whether the gain loss line needs to be created
34583    
34584    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34585      p_actual_flag :='A';
34586    END IF;
34587 
34588    --
34589    -- bulk performance
34590    --
34591    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34592                                       p_header_num   => 0); -- 4262811
34593    --
34594    -- set accounting line options
34595    --
34596    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34597            p_natural_side_code          => 'C'
34598          , p_gain_or_loss_flag          => 'N'
34599          , p_gl_transfer_mode_code      => 'S'
34600          , p_acct_entry_type_code       => 'A'
34601          , p_switch_side_flag           => 'Y'
34602          , p_merge_duplicate_code       => 'A'
34603          );
34604    --
34605    l_acc_rev_natural_side_code := 'D';  -- 4262811
34606    -- 
34607    --
34608    -- set accounting line type info
34609    --
34610    xla_ae_lines_pkg.SetAcctLineType
34611       (p_component_type             => l_component_type
34612       ,p_event_type_code            => l_event_type_code
34613       ,p_line_definition_owner_code => l_line_definition_owner_code
34614       ,p_line_definition_code       => l_line_definition_code
34615       ,p_accounting_line_code       => l_component_code
34616       ,p_accounting_line_type_code  => l_component_type_code
34617       ,p_accounting_line_appl_id    => l_component_appl_id
34618       ,p_amb_context_code           => l_amb_context_code
34619       ,p_entity_code                => l_entity_code
34620       ,p_event_class_code           => l_event_class_code);
34621    --
34622    -- set accounting class
34623    --
34624    xla_ae_lines_pkg.SetAcctClass(
34625            p_accounting_class_code  => 'CASH_CLEARING'
34626          , p_ae_header_id           => l_ae_header_id
34627          );
34628 
34629    --
34630    -- set rounding class
34631    --
34632    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34633                       'CASH_CLEARING';
34634 
34635    --
34636    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34637    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34638    --
34639    -- bulk performance
34640    --
34641    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34642 
34643    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34644       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34645 
34646    -- 4955764
34650    -- 4458381 Public Sector Enh
34647    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34648       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34649 
34651    
34652    --
34653    -- set accounting attributes for the line type
34654    --
34655    l_entered_amt_idx := 9;
34656    l_accted_amt_idx  := 14;
34657    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
34658    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34659    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
34660    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34661    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
34662    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34663    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
34664    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34665    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
34666    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34667    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
34668    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34669    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
34670    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
34671    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
34672    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
34673    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
34674    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
34675    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
34676    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
34677    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
34678    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
34679    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
34680    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
34681    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
34682    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
34683    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
34684    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
34685    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
34686    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
34687    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
34688    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34689    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
34690    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34691    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
34692    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34693    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
34694    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
34695    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
34696    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
34697    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
34698    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
34699    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
34700    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
34701    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
34702    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
34703    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
34704 
34705    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34706    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34707 
34708    ---------------------------------------------------------------------------------------------------------------
34709    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34710    ---------------------------------------------------------------------------------------------------------------
34711    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34712 
34713    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34714    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34715 
34716    IF xla_accounting_cache_pkg.GetValueChar
34717          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34718          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34719    AND l_bflow_method_code = 'PRIOR_ENTRY'
34720 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34721    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34722          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34723        )
34724    THEN
34725          xla_ae_lines_pkg.BflowUpgEntry
34726            (p_business_method_code    => l_bflow_method_code
34727            ,p_business_class_code     => l_bflow_class_code
34728            ,p_balance_type            => l_balance_type_code);
34729    ELSE
34730       NULL;
34731 XLA_AE_LINES_PKG.business_flow_validation(
34732                                 p_business_method_code     => l_bflow_method_code
34733                                ,p_business_class_code      => l_bflow_class_code
34734                                ,p_inherit_description_flag => l_inherit_desc_flag);
34735    END IF;
34736 
34737    --
34741 
34738    -- call analytical criteria
34739    --
34740    
34742 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
34743 xla_ae_lines_pkg.SetAnalyticalCriteria(
34744    p_analytical_criterion_name    => 'Check Id'
34745  , p_analytical_criterion_owner   => 'S'
34746  , p_analytical_criterion_code    => 'CHECK_ID'
34747  , p_amb_context_code             => 'DEFAULT'
34748  , p_balancing_flag               => 'N'
34749  
34750  , p_analytical_detail_char_1    =>  NULL
34751  , p_analytical_detail_num_1     =>  p_source_112
34752  , p_analytical_detail_date_1    =>  NULL
34753 
34754  , p_ae_header_id                 => l_ae_header_id
34755 )
34756 ;
34757 --
34758 
34759    --
34760    -- call description
34761    --
34762    -- No description or it is inherited.
34763    --
34764    -- call ADRs
34765    -- Bug 4922099
34766    --
34767    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34768         (NVL(l_actual_upg_option, 'N') = 'O') OR
34769         (NVL(l_enc_upg_option, 'N') = 'O')
34770       )
34771    THEN
34772    NULL;
34773    --
34774    --
34775    
34776   l_ccid := AcctDerRule_35(
34777            p_application_id           => p_application_id
34778          , p_ae_header_id             => l_ae_header_id 
34779 , p_source_35 => p_source_35
34780          , x_transaction_coa_id       => l_adr_transaction_coa_id
34781          , x_accounting_coa_id        => l_adr_accounting_coa_id
34782          , x_value_type_code          => l_adr_value_type_code
34783          , p_side                     => 'NA'
34784    );
34785 
34786    xla_ae_lines_pkg.set_ccid(
34787     p_code_combination_id          => l_ccid
34788   , p_value_type_code              => l_adr_value_type_code
34789   , p_transaction_coa_id           => l_adr_transaction_coa_id
34790   , p_accounting_coa_id            => l_adr_accounting_coa_id
34791   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34792   , p_adr_type_code                => 'S'
34793   , p_component_type               => l_component_type
34794   , p_component_code               => l_component_code
34795   , p_component_type_code          => l_component_type_code
34796   , p_component_appl_id            => l_component_appl_id
34797   , p_amb_context_code             => l_amb_context_code
34798   , p_side                         => 'NA'
34799   );
34800 
34801 
34802    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34803      p_to_segment_code         => 'GL_BALANCING'
34804    , p_segment_value           => C_CHAR
34805    , p_from_segment_code       => NULL
34806    , p_from_combination_id     => NULL
34807    , p_value_type_code         => NULL
34808    , p_transaction_coa_id      => null
34809    , p_accounting_coa_id       => null
34810    , p_flexfield_segment_code  => NULL
34811    , p_flex_value_set_id       => NULL
34812    , p_adr_code                => NULL
34813    , p_adr_type_code           => NULL
34814    , p_component_type          => l_component_type
34815    , p_component_code          => l_component_code
34816    , p_component_type_code     => l_component_type_code
34817    , p_component_appl_id       => l_component_appl_id
34818    , p_amb_context_code        => l_amb_context_code
34819    , p_entity_code             => 'AP_PAYMENTS'
34820    , p_event_class_code        => 'REFUNDS'
34821    , p_side                    => 'NA'
34822    );
34823    --
34824 
34825 
34826    --
34827    --
34828    END IF;
34829    --
34830    -- Bug 4922099
34831    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34832           (NVL(l_enc_upg_option, 'N') = 'O')
34833         ) AND
34834         (l_bflow_method_code = 'PRIOR_ENTRY')
34835       )
34836    THEN
34837       IF
34838       --
34839       1 = 2
34840       --
34841       THEN
34842       xla_accounting_err_pkg.build_message
34843                                     (p_appli_s_name            => 'XLA'
34844                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34845                                     ,p_token_1                 => 'LINE_NUMBER'
34846                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34847                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34848                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34849                                                                              l_component_type
34850                                                                             ,l_component_code
34851                                                                             ,l_component_type_code
34852                                                                             ,l_component_appl_id
34853                                                                             ,l_amb_context_code
34854                                                                             ,l_entity_code
34855                                                                             ,l_event_class_code
34856                                                                            )
34857                                     ,p_token_3                 => 'OWNER'
34858                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34859                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34863                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34860                                                                           ,p_lookup_code    => l_component_type_code
34861                                                                          )
34862                                     ,p_token_4                 => 'PRODUCT_NAME'
34864                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34865                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34866                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34867                                     ,p_ae_header_id            =>  NULL
34868                                        );
34869 
34870         IF (C_LEVEL_ERROR>= g_log_level) THEN
34871                  trace
34872                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34873                       ,p_level    => C_LEVEL_ERROR
34874                       ,p_module   => l_log_module);
34875         END IF;
34876       END IF;
34877    END IF;
34878    --
34879    --
34880    ------------------------------------------------------------------------------------------------
34881    -- 4219869 Business Flow
34882    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34883    -- Prior Entry.  Currently, the following code is always generated.
34884    ------------------------------------------------------------------------------------------------
34885    XLA_AE_LINES_PKG.ValidateCurrentLine;
34886 
34887    ------------------------------------------------------------------------------------
34888    -- 4219869 Business Flow
34889    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34890    ------------------------------------------------------------------------------------
34891    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34892 
34893    ----------------------------------------------------------------------------------
34894    -- 4219869 Business Flow
34895    -- Update journal entry status -- Need to generate this within IF <condition>
34896    ----------------------------------------------------------------------------------
34897    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34898          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34899          ,p_balance_type_code => l_balance_type_code
34900          );
34901 
34902    -------------------------------------------------------------------------------------------
34903    -- 4262811 - Generate the Accrual Reversal lines
34904    -------------------------------------------------------------------------------------------
34905    BEGIN
34906       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34907                               (g_array_event(p_event_id).array_value_num('header_index'));
34908       IF l_acc_rev_flag IS NULL THEN
34909          l_acc_rev_flag := 'N';
34910       END IF;
34911    EXCEPTION
34912       WHEN OTHERS THEN
34913          l_acc_rev_flag := 'N';
34914    END;
34915    --
34916    IF (l_acc_rev_flag = 'Y') THEN
34917 
34918        -- 4645092  ------------------------------------------------------------------------------
34919        -- To allow MPA report to determine if it should generate report process
34920        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34921        ------------------------------------------------------------------------------------------
34922 
34923        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34924        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34925    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34926    -- call ADRs
34927    -- Bug 4922099
34928    --
34929    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34930         (NVL(l_actual_upg_option, 'N') = 'O') OR
34931         (NVL(l_enc_upg_option, 'N') = 'O')
34932       )
34933    THEN
34934    NULL;
34935    --
34936    --
34937    
34938   l_ccid := AcctDerRule_35(
34939            p_application_id           => p_application_id
34940          , p_ae_header_id             => l_ae_header_id 
34941 , p_source_35 => p_source_35
34942          , x_transaction_coa_id       => l_adr_transaction_coa_id
34943          , x_accounting_coa_id        => l_adr_accounting_coa_id
34944          , x_value_type_code          => l_adr_value_type_code
34945          , p_side                     => 'NA'
34946    );
34947 
34948    xla_ae_lines_pkg.set_ccid(
34949     p_code_combination_id          => l_ccid
34950   , p_value_type_code              => l_adr_value_type_code
34951   , p_transaction_coa_id           => l_adr_transaction_coa_id
34952   , p_accounting_coa_id            => l_adr_accounting_coa_id
34953   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34954   , p_adr_type_code                => 'S'
34955   , p_component_type               => l_component_type
34956   , p_component_code               => l_component_code
34957   , p_component_type_code          => l_component_type_code
34958   , p_component_appl_id            => l_component_appl_id
34959   , p_amb_context_code             => l_amb_context_code
34960   , p_side                         => 'NA'
34961   );
34962 
34963 
34964    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34965      p_to_segment_code         => 'GL_BALANCING'
34966    , p_segment_value           => C_CHAR
34967    , p_from_segment_code       => NULL
34971    , p_accounting_coa_id       => null
34968    , p_from_combination_id     => NULL
34969    , p_value_type_code         => NULL
34970    , p_transaction_coa_id      => null
34972    , p_flexfield_segment_code  => NULL
34973    , p_flex_value_set_id       => NULL
34974    , p_adr_code                => NULL
34975    , p_adr_type_code           => NULL
34976    , p_component_type          => l_component_type
34977    , p_component_code          => l_component_code
34978    , p_component_type_code     => l_component_type_code
34979    , p_component_appl_id       => l_component_appl_id
34980    , p_amb_context_code        => l_amb_context_code
34981    , p_entity_code             => 'AP_PAYMENTS'
34982    , p_event_class_code        => 'REFUNDS'
34983    , p_side                    => 'NA'
34984    );
34985    --
34986 
34987 
34988    --
34989    --
34990    END IF;
34991 
34992        --
34993        -- Update the line information that should be overwritten
34994        --
34995        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34996                                          p_header_num   => 1);
34997        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34998 
34999        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35000 
35001        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35002           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35003        END IF;
35004 
35005       --
35006       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35007       --
35008       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35009           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35010       ELSE
35011           ---------------------------------------------------------------------------------------------------
35012           -- 4262811a Switch Sign
35013           ---------------------------------------------------------------------------------------------------
35014           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35015           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35016                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35017           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35018                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35019           -- 5132302
35020           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35021                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35022 
35023       END IF;
35024 
35025       -- 4955764
35026       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35027       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35028 
35029 
35030       XLA_AE_LINES_PKG.ValidateCurrentLine;
35031       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35032 
35033       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35034                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35035                ,p_balance_type_code => l_balance_type_code);
35036 
35037    END IF;
35038 
35039    -----------------------------------------------------------------------------------------
35040    -- 4262811 Multiperiod Accounting
35041    -----------------------------------------------------------------------------------------
35042      -- No MPA option is assigned.
35043 
35044 
35045 END IF;
35046 END IF;
35047 --
35048 
35049 --
35050 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35051    trace
35052       (p_msg      => 'END of AcctLineType_82'
35053       ,p_level    => C_LEVEL_PROCEDURE
35054       ,p_module   => l_log_module);
35055 END IF;
35056 --
35057 EXCEPTION
35058   WHEN xla_exceptions_pkg.application_exception THEN
35059       RAISE;
35060   WHEN OTHERS THEN
35061        xla_exceptions_pkg.raise_message
35062            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_82');
35063 END AcctLineType_82;
35064 --
35065 
35066 ---------------------------------------
35067 --
35068 -- PRIVATE FUNCTION
35069 --         AcctLineType_83
35070 --
35071 ---------------------------------------
35072 PROCEDURE AcctLineType_83 (
35073   p_application_id        IN NUMBER
35074  ,p_event_id              IN NUMBER
35075  ,p_calculate_acctd_flag  IN VARCHAR2
35076  ,p_calculate_g_l_flag    IN VARCHAR2
35077  ,p_actual_flag           IN OUT VARCHAR2
35078  ,p_balance_type_code     OUT VARCHAR2
35079  ,p_gain_or_loss_ref      OUT VARCHAR2
35080  
35081 --Payment Currency Code
35082  , p_source_13            IN VARCHAR2
35083 --Bank Cash Clearing Account
35084  , p_source_35            IN NUMBER
35085 --Automatic Offsets Flag
35086  , p_source_47            IN VARCHAR2
35087  , p_source_47_meaning    IN VARCHAR2
35088 --Accounting Reversal Indicator
35089  , p_source_52            IN VARCHAR2
35090 --Distribution Link Type
35091  , p_source_54            IN VARCHAR2
35095 --Third Party Type
35092 --Override Accounted Amount Indicator
35093  , p_source_79            IN VARCHAR2
35094  , p_source_79_meaning    IN VARCHAR2
35096  , p_source_82            IN VARCHAR2
35097 --Invoice Distribution Tax Line Identifier
35098  , p_source_85            IN NUMBER
35099 --Invoice Distribution Tax Distribution Identifier from Tax
35100  , p_source_86            IN NUMBER
35101 --Invoice Distribution Summary Tax Line Identifier
35102  , p_source_87            IN NUMBER
35103 --Business Flow Accounts Payable Application Identifier
35104  , p_source_90            IN NUMBER
35105 --Business Flow Invoice Distribution Type
35106  , p_source_91            IN VARCHAR2
35107 --Business Flow Invoice Entity Code
35108  , p_source_92            IN VARCHAR2
35109 --Business Flow Invoice Distribution Identifier
35110  , p_source_93            IN NUMBER
35111 --Business Flow Invoice Identifier
35112  , p_source_94            IN NUMBER
35113 --When to Account for Payment Option
35114  , p_source_96            IN VARCHAR2
35115 --Payment Distribution Type
35116  , p_source_97            IN VARCHAR2
35117  , p_source_97_meaning    IN VARCHAR2
35118 --Payment Distribution Amount
35119  , p_source_98            IN NUMBER
35120 --Payment Distribution Identifier
35121  , p_source_103            IN NUMBER
35122 --Payment Supplier Identifier
35123  , p_source_109            IN NUMBER
35124 --Payment Supplier Site Identifier
35125  , p_source_110            IN NUMBER
35126 --Payment Distribution Reversed Identifier
35127  , p_source_111            IN NUMBER
35128 --Payment Identifier
35129  , p_source_112            IN NUMBER
35130 --Pooled Bank Account Option
35131  , p_source_113            IN VARCHAR2
35132  , p_source_113_meaning    IN VARCHAR2
35133 --Payment Maturity Date
35134  , p_source_114            IN DATE
35135 --Payment Distribution (Invoice Rate) Ledger Amount
35136  , p_source_116            IN NUMBER
35137 --Payment Exchange Date
35138  , p_source_117            IN DATE
35139 --Payment Exchange Rate
35140  , p_source_118            IN NUMBER
35141 --Payment Exchange Rate Type
35142  , p_source_119            IN VARCHAR2
35143 --Payment Type
35144  , p_source_122            IN VARCHAR2
35145  , p_source_122_meaning    IN VARCHAR2
35146 )
35147 IS
35148 
35149 l_component_type              VARCHAR2(80);
35150 l_component_code              VARCHAR2(30);
35151 l_component_type_code         VARCHAR2(1);
35152 l_component_appl_id           INTEGER;
35153 l_amb_context_code            VARCHAR2(30);
35154 l_entity_code                 VARCHAR2(30);
35155 l_event_class_code            VARCHAR2(30);
35156 l_ae_header_id                NUMBER;
35157 l_event_type_code             VARCHAR2(30);
35158 l_line_definition_code        VARCHAR2(30);
35159 l_line_definition_owner_code  VARCHAR2(1);
35160 --
35161 -- adr variables
35162 l_segment                     VARCHAR2(30);
35163 l_ccid                        NUMBER;
35164 l_adr_transaction_coa_id      NUMBER;
35165 l_adr_accounting_coa_id       NUMBER;
35166 l_adr_flexfield_segment_code  VARCHAR2(30);
35167 l_adr_flex_value_set_id       NUMBER;
35168 l_adr_value_type_code         VARCHAR2(30);
35169 l_adr_value_combination_id    NUMBER;
35170 l_adr_value_segment_code      VARCHAR2(30);
35171 
35172 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35173 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35174 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35175 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35176 
35177 -- 4262811 Variables ------------------------------------------------------------------------------------------
35178 l_entered_amt_idx             NUMBER;
35179 l_accted_amt_idx              NUMBER;
35180 l_acc_rev_flag                VARCHAR2(1);
35181 l_accrual_line_num            NUMBER;
35182 l_tmp_amt                     NUMBER;
35183 l_acc_rev_natural_side_code   VARCHAR2(1);
35184 
35185 l_num_entries                 NUMBER;
35186 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35187 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35188 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35189 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35190 l_recog_line_1                NUMBER;
35191 l_recog_line_2                NUMBER;
35192 
35193 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35194 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35195 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35196 
35197 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35198 
35199 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35200 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35201 
35202 ---------------------------------------------------------------------------------------------------------------
35203 
35204 
35205 --
35206 -- bulk performance
35207 --
35208 l_balance_type_code           VARCHAR2(1);
35209 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35210 l_log_module                  VARCHAR2(240);
35211 
35212 --
35213 -- Upgrade strategy
35214 --
35215 l_actual_upg_option           VARCHAR2(1);
35216 l_enc_upg_option           VARCHAR2(1);
35217 
35218 --
35222       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
35219 BEGIN
35220 --
35221 IF g_log_enabled THEN
35223 END IF;
35224 --
35225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35226 
35227       trace
35228          (p_msg      => 'BEGIN of AcctLineType_83'
35229          ,p_level    => C_LEVEL_PROCEDURE
35230          ,p_module   => l_log_module);
35231 
35232 END IF;
35233 --
35234 l_component_type             := 'AMB_JLT';
35235 l_component_code             := 'AP_CASH_CLEAR_REF_INVXRATE';
35236 l_component_type_code        := 'S';
35237 l_component_appl_id          :=  200;
35238 l_amb_context_code           := 'DEFAULT';
35239 l_entity_code                := 'AP_PAYMENTS';
35240 l_event_class_code           := 'REFUNDS';
35241 l_event_type_code            := 'REFUNDS_ALL';
35242 l_line_definition_owner_code := 'S';
35243 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
35244 --
35245 l_balance_type_code          := 'A';
35246 l_segment                     := NULL;
35247 l_ccid                        := NULL;
35248 l_adr_transaction_coa_id      := NULL;
35249 l_adr_accounting_coa_id       := NULL;
35250 l_adr_flexfield_segment_code  := NULL;
35251 l_adr_flex_value_set_id       := NULL;
35252 l_adr_value_type_code         := NULL;
35253 l_adr_value_combination_id    := NULL;
35254 l_adr_value_segment_code      := NULL;
35255 
35256 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35257 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
35258 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35259 l_budgetary_control_flag     := 'N';
35260 
35261 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35262 l_bflow_applied_to_amt       := NULL; -- 5132302
35263 l_entered_amt_idx            := NULL;          -- 4262811
35264 l_accted_amt_idx             := NULL;          -- 4262811
35265 l_acc_rev_flag               := NULL;          -- 4262811
35266 l_accrual_line_num           := NULL;          -- 4262811
35267 l_tmp_amt                    := NULL;          -- 4262811
35268 --
35269  
35270 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35271     l_balance_type_code <> 'B' THEN
35272 IF NVL(p_source_96,'
35273 ') =  'ALWAYS_CLEAR' AND 
35274 (NVL(p_source_47,'
35275 ') <>  'Y' OR 
35276 NVL(p_source_47,'
35277 ') =  'Y' AND 
35278 NVL(p_source_113,'
35279 ') <>  'Y') AND 
35280 p_source_114 IS NULL AND 
35281 NVL(p_source_97,'
35282 ') =  'CASH' AND 
35283 NVL(p_source_122,'
35284 ') =  'R'
35285  THEN 
35286 
35287    --
35288    XLA_AE_LINES_PKG.SetNewLine;
35289 
35290    p_balance_type_code          := l_balance_type_code;
35291    -- set the flag so later we will know whether the gain loss line needs to be created
35292    
35293    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35294      p_actual_flag :='A';
35295    END IF;
35296 
35297    --
35298    -- bulk performance
35299    --
35300    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35301                                       p_header_num   => 0); -- 4262811
35302    --
35303    -- set accounting line options
35304    --
35305    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35306            p_natural_side_code          => 'C'
35307          , p_gain_or_loss_flag          => 'N'
35308          , p_gl_transfer_mode_code      => 'S'
35309          , p_acct_entry_type_code       => 'A'
35310          , p_switch_side_flag           => 'Y'
35311          , p_merge_duplicate_code       => 'A'
35312          );
35313    --
35314    l_acc_rev_natural_side_code := 'D';  -- 4262811
35315    -- 
35316    --
35317    -- set accounting line type info
35318    --
35319    xla_ae_lines_pkg.SetAcctLineType
35320       (p_component_type             => l_component_type
35321       ,p_event_type_code            => l_event_type_code
35322       ,p_line_definition_owner_code => l_line_definition_owner_code
35323       ,p_line_definition_code       => l_line_definition_code
35324       ,p_accounting_line_code       => l_component_code
35325       ,p_accounting_line_type_code  => l_component_type_code
35326       ,p_accounting_line_appl_id    => l_component_appl_id
35327       ,p_amb_context_code           => l_amb_context_code
35328       ,p_entity_code                => l_entity_code
35329       ,p_event_class_code           => l_event_class_code);
35330    --
35331    -- set accounting class
35332    --
35333    xla_ae_lines_pkg.SetAcctClass(
35334            p_accounting_class_code  => 'CASH_CLEARING'
35335          , p_ae_header_id           => l_ae_header_id
35336          );
35337 
35338    --
35339    -- set rounding class
35340    --
35341    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35342                       'CASH_CLEARING';
35343 
35344    --
35345    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35346    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35347    --
35348    -- bulk performance
35349    --
35350    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35351 
35352    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35353       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35354 
35355    -- 4955764
35356    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35358 
35359    -- 4458381 Public Sector Enh
35360    
35361    --
35362    -- set accounting attributes for the line type
35363    --
35364    l_entered_amt_idx := 9;
35365    l_accted_amt_idx  := 14;
35366    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35367    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35368    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
35369    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35370    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
35371    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35372    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
35373    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35374    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
35375    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35376    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
35377    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35378    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
35379    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35380    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
35381    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35382    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
35383    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35384    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
35385    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35386    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
35387    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35388    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
35389    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35390    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
35391    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35392    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
35393    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35394    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
35395    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35396    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
35397    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35398    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
35399    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35400    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
35401    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35402    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
35403    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35404    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
35405    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35406    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
35407    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35408    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
35409    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35410    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
35411    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35412    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
35413 
35414    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35415    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35416 
35417    ---------------------------------------------------------------------------------------------------------------
35418    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35419    ---------------------------------------------------------------------------------------------------------------
35420    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35421 
35422    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35423    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35424 
35425    IF xla_accounting_cache_pkg.GetValueChar
35426          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35427          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35428    AND l_bflow_method_code = 'PRIOR_ENTRY'
35429 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35430    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35431          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35432        )
35433    THEN
35434          xla_ae_lines_pkg.BflowUpgEntry
35435            (p_business_method_code    => l_bflow_method_code
35436            ,p_business_class_code     => l_bflow_class_code
35437            ,p_balance_type            => l_balance_type_code);
35438    ELSE
35439       NULL;
35440 -- No business flow processing for business flow method of NONE.
35441    END IF;
35442 
35443    --
35444    -- call analytical criteria
35445    --
35446    
35447 
35448 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
35449 xla_ae_lines_pkg.SetAnalyticalCriteria(
35453  , p_amb_context_code             => 'DEFAULT'
35450    p_analytical_criterion_name    => 'Check Id'
35451  , p_analytical_criterion_owner   => 'S'
35452  , p_analytical_criterion_code    => 'CHECK_ID'
35454  , p_balancing_flag               => 'N'
35455  
35456  , p_analytical_detail_char_1    =>  NULL
35457  , p_analytical_detail_num_1     =>  p_source_112
35458  , p_analytical_detail_date_1    =>  NULL
35459 
35460  , p_ae_header_id                 => l_ae_header_id
35461 )
35462 ;
35463 --
35464 
35465    --
35466    -- call description
35467    --
35468    -- No description or it is inherited.
35469    --
35470    -- call ADRs
35471    -- Bug 4922099
35472    --
35473    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35474         (NVL(l_actual_upg_option, 'N') = 'O') OR
35475         (NVL(l_enc_upg_option, 'N') = 'O')
35476       )
35477    THEN
35478    NULL;
35479    --
35480    --
35481    
35482   l_ccid := AcctDerRule_35(
35483            p_application_id           => p_application_id
35484          , p_ae_header_id             => l_ae_header_id 
35485 , p_source_35 => p_source_35
35486          , x_transaction_coa_id       => l_adr_transaction_coa_id
35487          , x_accounting_coa_id        => l_adr_accounting_coa_id
35488          , x_value_type_code          => l_adr_value_type_code
35489          , p_side                     => 'NA'
35490    );
35491 
35492    xla_ae_lines_pkg.set_ccid(
35493     p_code_combination_id          => l_ccid
35494   , p_value_type_code              => l_adr_value_type_code
35495   , p_transaction_coa_id           => l_adr_transaction_coa_id
35496   , p_accounting_coa_id            => l_adr_accounting_coa_id
35497   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35498   , p_adr_type_code                => 'S'
35499   , p_component_type               => l_component_type
35500   , p_component_code               => l_component_code
35501   , p_component_type_code          => l_component_type_code
35502   , p_component_appl_id            => l_component_appl_id
35503   , p_amb_context_code             => l_amb_context_code
35504   , p_side                         => 'NA'
35505   );
35506 
35507 
35508    --
35509    --
35510    END IF;
35511    --
35512    -- Bug 4922099
35513    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35514           (NVL(l_enc_upg_option, 'N') = 'O')
35515         ) AND
35516         (l_bflow_method_code = 'PRIOR_ENTRY')
35517       )
35518    THEN
35519       IF
35520       --
35521       1 = 2
35522       --
35523       THEN
35524       xla_accounting_err_pkg.build_message
35525                                     (p_appli_s_name            => 'XLA'
35526                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35527                                     ,p_token_1                 => 'LINE_NUMBER'
35528                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35529                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35530                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35531                                                                              l_component_type
35532                                                                             ,l_component_code
35533                                                                             ,l_component_type_code
35534                                                                             ,l_component_appl_id
35535                                                                             ,l_amb_context_code
35536                                                                             ,l_entity_code
35537                                                                             ,l_event_class_code
35538                                                                            )
35539                                     ,p_token_3                 => 'OWNER'
35540                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35541                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35542                                                                           ,p_lookup_code    => l_component_type_code
35543                                                                          )
35544                                     ,p_token_4                 => 'PRODUCT_NAME'
35545                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35546                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35547                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35548                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35549                                     ,p_ae_header_id            =>  NULL
35550                                        );
35551 
35552         IF (C_LEVEL_ERROR>= g_log_level) THEN
35553                  trace
35554                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35555                       ,p_level    => C_LEVEL_ERROR
35556                       ,p_module   => l_log_module);
35557         END IF;
35558       END IF;
35559    END IF;
35560    --
35561    --
35565    -- Prior Entry.  Currently, the following code is always generated.
35562    ------------------------------------------------------------------------------------------------
35563    -- 4219869 Business Flow
35564    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35566    ------------------------------------------------------------------------------------------------
35567    XLA_AE_LINES_PKG.ValidateCurrentLine;
35568 
35569    ------------------------------------------------------------------------------------
35570    -- 4219869 Business Flow
35571    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35572    ------------------------------------------------------------------------------------
35573    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35574 
35575    ----------------------------------------------------------------------------------
35576    -- 4219869 Business Flow
35577    -- Update journal entry status -- Need to generate this within IF <condition>
35578    ----------------------------------------------------------------------------------
35579    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35580          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35581          ,p_balance_type_code => l_balance_type_code
35582          );
35583 
35584    -------------------------------------------------------------------------------------------
35585    -- 4262811 - Generate the Accrual Reversal lines
35586    -------------------------------------------------------------------------------------------
35587    BEGIN
35588       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35589                               (g_array_event(p_event_id).array_value_num('header_index'));
35590       IF l_acc_rev_flag IS NULL THEN
35591          l_acc_rev_flag := 'N';
35592       END IF;
35593    EXCEPTION
35594       WHEN OTHERS THEN
35595          l_acc_rev_flag := 'N';
35596    END;
35597    --
35598    IF (l_acc_rev_flag = 'Y') THEN
35599 
35600        -- 4645092  ------------------------------------------------------------------------------
35601        -- To allow MPA report to determine if it should generate report process
35602        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35603        ------------------------------------------------------------------------------------------
35604 
35605        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35606        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35607    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35608    -- call ADRs
35609    -- Bug 4922099
35610    --
35611    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35612         (NVL(l_actual_upg_option, 'N') = 'O') OR
35613         (NVL(l_enc_upg_option, 'N') = 'O')
35614       )
35615    THEN
35616    NULL;
35617    --
35618    --
35619    
35620   l_ccid := AcctDerRule_35(
35621            p_application_id           => p_application_id
35622          , p_ae_header_id             => l_ae_header_id 
35623 , p_source_35 => p_source_35
35624          , x_transaction_coa_id       => l_adr_transaction_coa_id
35625          , x_accounting_coa_id        => l_adr_accounting_coa_id
35626          , x_value_type_code          => l_adr_value_type_code
35627          , p_side                     => 'NA'
35628    );
35629 
35630    xla_ae_lines_pkg.set_ccid(
35631     p_code_combination_id          => l_ccid
35632   , p_value_type_code              => l_adr_value_type_code
35633   , p_transaction_coa_id           => l_adr_transaction_coa_id
35634   , p_accounting_coa_id            => l_adr_accounting_coa_id
35635   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35636   , p_adr_type_code                => 'S'
35637   , p_component_type               => l_component_type
35638   , p_component_code               => l_component_code
35639   , p_component_type_code          => l_component_type_code
35640   , p_component_appl_id            => l_component_appl_id
35641   , p_amb_context_code             => l_amb_context_code
35642   , p_side                         => 'NA'
35643   );
35644 
35645 
35646    --
35647    --
35648    END IF;
35649 
35650        --
35651        -- Update the line information that should be overwritten
35652        --
35653        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35654                                          p_header_num   => 1);
35655        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35656 
35657        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35658 
35659        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35660           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35661        END IF;
35662 
35663       --
35664       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35665       --
35666       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35667           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35668       ELSE
35669           ---------------------------------------------------------------------------------------------------
35670           -- 4262811a Switch Sign
35671           ---------------------------------------------------------------------------------------------------
35675           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35672           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35673           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35674                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35676                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35677           -- 5132302
35678           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35679                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35680 
35681       END IF;
35682 
35683       -- 4955764
35684       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35685       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35686 
35687 
35688       XLA_AE_LINES_PKG.ValidateCurrentLine;
35689       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35690 
35691       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35692                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35693                ,p_balance_type_code => l_balance_type_code);
35694 
35695    END IF;
35696 
35697    -----------------------------------------------------------------------------------------
35698    -- 4262811 Multiperiod Accounting
35699    -----------------------------------------------------------------------------------------
35700      -- No MPA option is assigned.
35701 
35702 
35703 END IF;
35704 END IF;
35705 --
35706 
35707 --
35708 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35709    trace
35710       (p_msg      => 'END of AcctLineType_83'
35711       ,p_level    => C_LEVEL_PROCEDURE
35712       ,p_module   => l_log_module);
35713 END IF;
35714 --
35715 EXCEPTION
35716   WHEN xla_exceptions_pkg.application_exception THEN
35717       RAISE;
35718   WHEN OTHERS THEN
35719        xla_exceptions_pkg.raise_message
35720            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_83');
35721 END AcctLineType_83;
35722 --
35723 
35724 ---------------------------------------
35725 --
35726 -- PRIVATE FUNCTION
35727 --         AcctLineType_84
35728 --
35729 ---------------------------------------
35730 PROCEDURE AcctLineType_84 (
35731   p_application_id        IN NUMBER
35732  ,p_event_id              IN NUMBER
35733  ,p_calculate_acctd_flag  IN VARCHAR2
35734  ,p_calculate_g_l_flag    IN VARCHAR2
35735  ,p_actual_flag           IN OUT VARCHAR2
35736  ,p_balance_type_code     OUT VARCHAR2
35737  ,p_gain_or_loss_ref      OUT VARCHAR2
35738  
35739 --Payment Currency Code
35740  , p_source_13            IN VARCHAR2
35741 --Bank Cash Account
35742  , p_source_17            IN NUMBER
35743 --Automatic Offsets Flag
35744  , p_source_47            IN VARCHAR2
35745  , p_source_47_meaning    IN VARCHAR2
35746 --Accounting Reversal Indicator
35747  , p_source_52            IN VARCHAR2
35748 --Distribution Link Type
35749  , p_source_54            IN VARCHAR2
35750 --Override Accounted Amount Indicator
35751  , p_source_79            IN VARCHAR2
35752  , p_source_79_meaning    IN VARCHAR2
35753 --Third Party Type
35754  , p_source_82            IN VARCHAR2
35755 --Invoice Distribution Tax Line Identifier
35756  , p_source_85            IN NUMBER
35757 --Invoice Distribution Tax Distribution Identifier from Tax
35758  , p_source_86            IN NUMBER
35759 --Invoice Distribution Summary Tax Line Identifier
35760  , p_source_87            IN NUMBER
35761 --Business Flow Accounts Payable Application Identifier
35762  , p_source_90            IN NUMBER
35763 --Business Flow Invoice Distribution Type
35764  , p_source_91            IN VARCHAR2
35765 --Business Flow Invoice Entity Code
35766  , p_source_92            IN VARCHAR2
35767 --Business Flow Invoice Distribution Identifier
35768  , p_source_93            IN NUMBER
35769 --Business Flow Invoice Identifier
35770  , p_source_94            IN NUMBER
35771 --When to Account for Payment Option
35772  , p_source_96            IN VARCHAR2
35773 --Payment Distribution Type
35774  , p_source_97            IN VARCHAR2
35775  , p_source_97_meaning    IN VARCHAR2
35776 --Payment Distribution Amount
35777  , p_source_98            IN NUMBER
35778 --Payment Distribution Identifier
35779  , p_source_103            IN NUMBER
35780 --Payment Supplier Identifier
35781  , p_source_109            IN NUMBER
35782 --Payment Supplier Site Identifier
35783  , p_source_110            IN NUMBER
35784 --Payment Distribution Reversed Identifier
35785  , p_source_111            IN NUMBER
35786 --Payment Identifier
35787  , p_source_112            IN NUMBER
35788 --Pooled Bank Account Option
35789  , p_source_113            IN VARCHAR2
35790  , p_source_113_meaning    IN VARCHAR2
35791 --Payment Maturity Date
35792  , p_source_114            IN DATE
35793 --Payment Distribution (Payment Rate) Ledger Amount
35794  , p_source_115            IN NUMBER
35795 --Payment Exchange Date
35796  , p_source_117            IN DATE
35797 --Payment Exchange Rate
35798  , p_source_118            IN NUMBER
35799 --Payment Exchange Rate Type
35800  , p_source_119            IN VARCHAR2
35801 --Payment Type
35802  , p_source_122            IN VARCHAR2
35806 --Invoice Distribution Amount of the Payment Distribution
35803  , p_source_122_meaning    IN VARCHAR2
35804 --Payment Processing Type
35805  , p_source_123            IN VARCHAR2
35807  , p_source_124            IN NUMBER
35808 )
35809 IS
35810 
35811 l_component_type              VARCHAR2(80);
35812 l_component_code              VARCHAR2(30);
35813 l_component_type_code         VARCHAR2(1);
35814 l_component_appl_id           INTEGER;
35815 l_amb_context_code            VARCHAR2(30);
35816 l_entity_code                 VARCHAR2(30);
35817 l_event_class_code            VARCHAR2(30);
35818 l_ae_header_id                NUMBER;
35819 l_event_type_code             VARCHAR2(30);
35820 l_line_definition_code        VARCHAR2(30);
35821 l_line_definition_owner_code  VARCHAR2(1);
35822 --
35823 -- adr variables
35824 l_segment                     VARCHAR2(30);
35825 l_ccid                        NUMBER;
35826 l_adr_transaction_coa_id      NUMBER;
35827 l_adr_accounting_coa_id       NUMBER;
35828 l_adr_flexfield_segment_code  VARCHAR2(30);
35829 l_adr_flex_value_set_id       NUMBER;
35830 l_adr_value_type_code         VARCHAR2(30);
35831 l_adr_value_combination_id    NUMBER;
35832 l_adr_value_segment_code      VARCHAR2(30);
35833 
35834 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35835 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35836 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35837 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35838 
35839 -- 4262811 Variables ------------------------------------------------------------------------------------------
35840 l_entered_amt_idx             NUMBER;
35841 l_accted_amt_idx              NUMBER;
35842 l_acc_rev_flag                VARCHAR2(1);
35843 l_accrual_line_num            NUMBER;
35844 l_tmp_amt                     NUMBER;
35845 l_acc_rev_natural_side_code   VARCHAR2(1);
35846 
35847 l_num_entries                 NUMBER;
35848 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35849 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35850 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35851 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35852 l_recog_line_1                NUMBER;
35853 l_recog_line_2                NUMBER;
35854 
35855 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35856 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35857 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35858 
35859 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35860 
35861 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35862 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35863 
35864 ---------------------------------------------------------------------------------------------------------------
35865 
35866 
35867 --
35868 -- bulk performance
35869 --
35870 l_balance_type_code           VARCHAR2(1);
35871 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35872 l_log_module                  VARCHAR2(240);
35873 
35874 --
35875 -- Upgrade strategy
35876 --
35877 l_actual_upg_option           VARCHAR2(1);
35878 l_enc_upg_option           VARCHAR2(1);
35879 
35880 --
35881 BEGIN
35882 --
35883 IF g_log_enabled THEN
35884       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
35885 END IF;
35886 --
35887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35888 
35889       trace
35890          (p_msg      => 'BEGIN of AcctLineType_84'
35891          ,p_level    => C_LEVEL_PROCEDURE
35892          ,p_module   => l_log_module);
35893 
35894 END IF;
35895 --
35896 l_component_type             := 'AMB_JLT';
35897 l_component_code             := 'AP_CASH_PMT';
35898 l_component_type_code        := 'S';
35899 l_component_appl_id          :=  200;
35900 l_amb_context_code           := 'DEFAULT';
35901 l_entity_code                := 'AP_PAYMENTS';
35902 l_event_class_code           := 'PAYMENTS';
35903 l_event_type_code            := 'PAYMENTS_ALL';
35904 l_line_definition_owner_code := 'S';
35905 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
35906 --
35907 l_balance_type_code          := 'A';
35908 l_segment                     := NULL;
35909 l_ccid                        := NULL;
35910 l_adr_transaction_coa_id      := NULL;
35911 l_adr_accounting_coa_id       := NULL;
35912 l_adr_flexfield_segment_code  := NULL;
35913 l_adr_flex_value_set_id       := NULL;
35914 l_adr_value_type_code         := NULL;
35915 l_adr_value_combination_id    := NULL;
35916 l_adr_value_segment_code      := NULL;
35917 
35918 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35919 l_bflow_class_code           := '';    -- 4219869 Business Flow
35920 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35921 l_budgetary_control_flag     := 'N';
35922 
35923 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35924 l_bflow_applied_to_amt       := NULL; -- 5132302
35925 l_entered_amt_idx            := NULL;          -- 4262811
35926 l_accted_amt_idx             := NULL;          -- 4262811
35927 l_acc_rev_flag               := NULL;          -- 4262811
35928 l_accrual_line_num           := NULL;          -- 4262811
35932 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35929 l_tmp_amt                    := NULL;          -- 4262811
35930 --
35931  
35933     l_balance_type_code <> 'B' THEN
35934 IF NVL(p_source_96,'
35935 ') =  'ISSUE_ISSUE' AND 
35936 (NVL(p_source_47,'
35937 ') <>  'Y' OR 
35938 NVL(p_source_47,'
35939 ') =  'Y' AND 
35940 NVL(p_source_113,'
35941 ') <>  'Y') AND 
35942 p_source_114 IS NULL AND 
35943 NVL(p_source_97,'
35944 ') =  'CASH' AND 
35945 NVL(p_source_122,'
35946 ') <>  'R' AND 
35947 NVL(p_source_123,'
35948 ') <>  'PAYMENTCARD'
35949  THEN 
35950 
35951    --
35952    XLA_AE_LINES_PKG.SetNewLine;
35953 
35954    p_balance_type_code          := l_balance_type_code;
35955    -- set the flag so later we will know whether the gain loss line needs to be created
35956    
35957    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35958      p_actual_flag :='A';
35959    END IF;
35960 
35961    --
35962    -- bulk performance
35963    --
35964    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35965                                       p_header_num   => 0); -- 4262811
35966    --
35967    -- set accounting line options
35968    --
35969    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35970            p_natural_side_code          => 'C'
35971          , p_gain_or_loss_flag          => 'N'
35972          , p_gl_transfer_mode_code      => 'S'
35973          , p_acct_entry_type_code       => 'A'
35974          , p_switch_side_flag           => 'Y'
35975          , p_merge_duplicate_code       => 'A'
35976          );
35977    --
35978    l_acc_rev_natural_side_code := 'D';  -- 4262811
35979    -- 
35980    --
35981    -- set accounting line type info
35982    --
35983    xla_ae_lines_pkg.SetAcctLineType
35984       (p_component_type             => l_component_type
35985       ,p_event_type_code            => l_event_type_code
35986       ,p_line_definition_owner_code => l_line_definition_owner_code
35987       ,p_line_definition_code       => l_line_definition_code
35988       ,p_accounting_line_code       => l_component_code
35989       ,p_accounting_line_type_code  => l_component_type_code
35990       ,p_accounting_line_appl_id    => l_component_appl_id
35991       ,p_amb_context_code           => l_amb_context_code
35992       ,p_entity_code                => l_entity_code
35993       ,p_event_class_code           => l_event_class_code);
35994    --
35995    -- set accounting class
35996    --
35997    xla_ae_lines_pkg.SetAcctClass(
35998            p_accounting_class_code  => 'CASH'
35999          , p_ae_header_id           => l_ae_header_id
36000          );
36001 
36002    --
36003    -- set rounding class
36004    --
36005    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36006                       'CASH';
36007 
36008    --
36009    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36010    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36011    --
36012    -- bulk performance
36013    --
36014    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36015 
36016    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36017       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36018 
36019    -- 4955764
36020    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36021       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36022 
36023    -- 4458381 Public Sector Enh
36024    
36025    --
36026    -- set accounting attributes for the line type
36027    --
36028    l_entered_amt_idx := 10;
36029    l_accted_amt_idx  := 15;
36030    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
36031    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36032    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
36033    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36034    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
36035    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36036    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
36037    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36038    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
36039    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36040    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
36041    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36042    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
36043    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36044    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
36045    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36046    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
36047    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36048    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
36049    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36050    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
36051    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36052    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
36056    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
36053    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36054    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
36055    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36057    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36058    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
36059    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36060    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
36061    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36062    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
36063    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36064    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
36065    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36066    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
36067    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36068    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
36069    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36070    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
36071    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36072    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
36073    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36074    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
36075    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36076    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
36077    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36078    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
36079 
36080    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36081    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36082 
36083    ---------------------------------------------------------------------------------------------------------------
36084    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36085    ---------------------------------------------------------------------------------------------------------------
36086    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36087 
36088    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36089    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36090 
36091    IF xla_accounting_cache_pkg.GetValueChar
36092          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36093          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36094    AND l_bflow_method_code = 'PRIOR_ENTRY'
36095 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36096    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36097          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36098        )
36099    THEN
36100          xla_ae_lines_pkg.BflowUpgEntry
36101            (p_business_method_code    => l_bflow_method_code
36102            ,p_business_class_code     => l_bflow_class_code
36103            ,p_balance_type            => l_balance_type_code);
36104    ELSE
36105       NULL;
36106 -- No business flow processing for business flow method of NONE.
36107    END IF;
36108 
36109    --
36110    -- call analytical criteria
36111    --
36112    
36113 
36114 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
36115 xla_ae_lines_pkg.SetAnalyticalCriteria(
36116    p_analytical_criterion_name    => 'Check Id'
36117  , p_analytical_criterion_owner   => 'S'
36118  , p_analytical_criterion_code    => 'CHECK_ID'
36119  , p_amb_context_code             => 'DEFAULT'
36120  , p_balancing_flag               => 'N'
36121  
36122  , p_analytical_detail_char_1    =>  NULL
36123  , p_analytical_detail_num_1     =>  p_source_112
36124  , p_analytical_detail_date_1    =>  NULL
36125 
36126  , p_ae_header_id                 => l_ae_header_id
36127 )
36128 ;
36129 --
36130 
36131    --
36132    -- call description
36133    --
36134    -- No description or it is inherited.
36135    --
36136    -- call ADRs
36137    -- Bug 4922099
36138    --
36139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36140         (NVL(l_actual_upg_option, 'N') = 'O') OR
36141         (NVL(l_enc_upg_option, 'N') = 'O')
36142       )
36143    THEN
36144    NULL;
36145    --
36146    --
36147    
36148   l_ccid := AcctDerRule_28(
36149            p_application_id           => p_application_id
36150          , p_ae_header_id             => l_ae_header_id 
36151 , p_source_17 => p_source_17
36152          , x_transaction_coa_id       => l_adr_transaction_coa_id
36153          , x_accounting_coa_id        => l_adr_accounting_coa_id
36154          , x_value_type_code          => l_adr_value_type_code
36155          , p_side                     => 'NA'
36156    );
36157 
36158    xla_ae_lines_pkg.set_ccid(
36159     p_code_combination_id          => l_ccid
36160   , p_value_type_code              => l_adr_value_type_code
36161   , p_transaction_coa_id           => l_adr_transaction_coa_id
36162   , p_accounting_coa_id            => l_adr_accounting_coa_id
36163   , p_adr_code                     => 'AP_CASH'
36164   , p_adr_type_code                => 'S'
36168   , p_component_appl_id            => l_component_appl_id
36165   , p_component_type               => l_component_type
36166   , p_component_code               => l_component_code
36167   , p_component_type_code          => l_component_type_code
36169   , p_amb_context_code             => l_amb_context_code
36170   , p_side                         => 'NA'
36171   );
36172 
36173 
36174    --
36175    --
36176    END IF;
36177    --
36178    -- Bug 4922099
36179    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36180           (NVL(l_enc_upg_option, 'N') = 'O')
36181         ) AND
36182         (l_bflow_method_code = 'PRIOR_ENTRY')
36183       )
36184    THEN
36185       IF
36186       --
36187       1 = 2
36188       --
36189       THEN
36190       xla_accounting_err_pkg.build_message
36191                                     (p_appli_s_name            => 'XLA'
36192                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36193                                     ,p_token_1                 => 'LINE_NUMBER'
36194                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36195                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36196                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36197                                                                              l_component_type
36198                                                                             ,l_component_code
36199                                                                             ,l_component_type_code
36200                                                                             ,l_component_appl_id
36201                                                                             ,l_amb_context_code
36202                                                                             ,l_entity_code
36203                                                                             ,l_event_class_code
36204                                                                            )
36205                                     ,p_token_3                 => 'OWNER'
36206                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36207                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36208                                                                           ,p_lookup_code    => l_component_type_code
36209                                                                          )
36210                                     ,p_token_4                 => 'PRODUCT_NAME'
36211                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36212                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36213                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36214                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36215                                     ,p_ae_header_id            =>  NULL
36216                                        );
36217 
36218         IF (C_LEVEL_ERROR>= g_log_level) THEN
36219                  trace
36220                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36221                       ,p_level    => C_LEVEL_ERROR
36222                       ,p_module   => l_log_module);
36223         END IF;
36224       END IF;
36225    END IF;
36226    --
36227    --
36228    ------------------------------------------------------------------------------------------------
36229    -- 4219869 Business Flow
36230    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36231    -- Prior Entry.  Currently, the following code is always generated.
36232    ------------------------------------------------------------------------------------------------
36233    XLA_AE_LINES_PKG.ValidateCurrentLine;
36234 
36235    ------------------------------------------------------------------------------------
36236    -- 4219869 Business Flow
36237    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36238    ------------------------------------------------------------------------------------
36239    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36240 
36241    ----------------------------------------------------------------------------------
36242    -- 4219869 Business Flow
36243    -- Update journal entry status -- Need to generate this within IF <condition>
36244    ----------------------------------------------------------------------------------
36245    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36246          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36247          ,p_balance_type_code => l_balance_type_code
36248          );
36249 
36250    -------------------------------------------------------------------------------------------
36251    -- 4262811 - Generate the Accrual Reversal lines
36252    -------------------------------------------------------------------------------------------
36253    BEGIN
36254       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36255                               (g_array_event(p_event_id).array_value_num('header_index'));
36256       IF l_acc_rev_flag IS NULL THEN
36257          l_acc_rev_flag := 'N';
36258       END IF;
36259    EXCEPTION
36260       WHEN OTHERS THEN
36264    IF (l_acc_rev_flag = 'Y') THEN
36261          l_acc_rev_flag := 'N';
36262    END;
36263    --
36265 
36266        -- 4645092  ------------------------------------------------------------------------------
36267        -- To allow MPA report to determine if it should generate report process
36268        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36269        ------------------------------------------------------------------------------------------
36270 
36271        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36272        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36273    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36274    -- call ADRs
36275    -- Bug 4922099
36276    --
36277    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36278         (NVL(l_actual_upg_option, 'N') = 'O') OR
36279         (NVL(l_enc_upg_option, 'N') = 'O')
36280       )
36281    THEN
36282    NULL;
36283    --
36284    --
36285    
36286   l_ccid := AcctDerRule_28(
36287            p_application_id           => p_application_id
36288          , p_ae_header_id             => l_ae_header_id 
36289 , p_source_17 => p_source_17
36290          , x_transaction_coa_id       => l_adr_transaction_coa_id
36291          , x_accounting_coa_id        => l_adr_accounting_coa_id
36292          , x_value_type_code          => l_adr_value_type_code
36293          , p_side                     => 'NA'
36294    );
36295 
36296    xla_ae_lines_pkg.set_ccid(
36297     p_code_combination_id          => l_ccid
36298   , p_value_type_code              => l_adr_value_type_code
36299   , p_transaction_coa_id           => l_adr_transaction_coa_id
36300   , p_accounting_coa_id            => l_adr_accounting_coa_id
36301   , p_adr_code                     => 'AP_CASH'
36302   , p_adr_type_code                => 'S'
36303   , p_component_type               => l_component_type
36304   , p_component_code               => l_component_code
36305   , p_component_type_code          => l_component_type_code
36306   , p_component_appl_id            => l_component_appl_id
36307   , p_amb_context_code             => l_amb_context_code
36308   , p_side                         => 'NA'
36309   );
36310 
36311 
36312    --
36313    --
36314    END IF;
36315 
36316        --
36317        -- Update the line information that should be overwritten
36318        --
36319        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36320                                          p_header_num   => 1);
36321        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36322 
36323        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36324 
36325        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36326           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36327        END IF;
36328 
36329       --
36330       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36331       --
36332       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36333           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36334       ELSE
36335           ---------------------------------------------------------------------------------------------------
36336           -- 4262811a Switch Sign
36337           ---------------------------------------------------------------------------------------------------
36338           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36339           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36340                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36341           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36342                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36343           -- 5132302
36344           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36345                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36346 
36347       END IF;
36348 
36349       -- 4955764
36350       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36351       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36352 
36353 
36354       XLA_AE_LINES_PKG.ValidateCurrentLine;
36355       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36356 
36357       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36358                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36359                ,p_balance_type_code => l_balance_type_code);
36360 
36361    END IF;
36362 
36363    -----------------------------------------------------------------------------------------
36364    -- 4262811 Multiperiod Accounting
36365    -----------------------------------------------------------------------------------------
36366      -- No MPA option is assigned.
36367 
36368 
36369 END IF;
36370 END IF;
36371 --
36372 
36373 --
36374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36375    trace
36376       (p_msg      => 'END of AcctLineType_84'
36380 --
36377       ,p_level    => C_LEVEL_PROCEDURE
36378       ,p_module   => l_log_module);
36379 END IF;
36381 EXCEPTION
36382   WHEN xla_exceptions_pkg.application_exception THEN
36383       RAISE;
36384   WHEN OTHERS THEN
36385        xla_exceptions_pkg.raise_message
36386            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_84');
36387 END AcctLineType_84;
36388 --
36389 
36390 ---------------------------------------
36391 --
36392 -- PRIVATE FUNCTION
36393 --         AcctLineType_85
36394 --
36395 ---------------------------------------
36396 PROCEDURE AcctLineType_85 (
36397   p_application_id        IN NUMBER
36398  ,p_event_id              IN NUMBER
36399  ,p_calculate_acctd_flag  IN VARCHAR2
36400  ,p_calculate_g_l_flag    IN VARCHAR2
36401  ,p_actual_flag           IN OUT VARCHAR2
36402  ,p_balance_type_code     OUT VARCHAR2
36403  ,p_gain_or_loss_ref      OUT VARCHAR2
36404  
36405 --Payment Currency Code
36406  , p_source_13            IN VARCHAR2
36407 --Automatic Offsets Value
36408  , p_source_15            IN VARCHAR2
36409  , p_source_15_meaning    IN VARCHAR2
36410 --Bank Cash Account
36411  , p_source_17            IN NUMBER
36412 --Accounting Reversal Indicator
36413  , p_source_52            IN VARCHAR2
36414 --Distribution Link Type
36415  , p_source_54            IN VARCHAR2
36416 --Override Accounted Amount Indicator
36417  , p_source_79            IN VARCHAR2
36418  , p_source_79_meaning    IN VARCHAR2
36419 --Third Party Type
36420  , p_source_82            IN VARCHAR2
36421 --Invoice Distribution Tax Line Identifier
36422  , p_source_85            IN NUMBER
36423 --Invoice Distribution Tax Distribution Identifier from Tax
36424  , p_source_86            IN NUMBER
36425 --Invoice Distribution Summary Tax Line Identifier
36426  , p_source_87            IN NUMBER
36427 --Business Flow Accounts Payable Application Identifier
36428  , p_source_90            IN NUMBER
36429 --Business Flow Invoice Distribution Type
36430  , p_source_91            IN VARCHAR2
36431 --Business Flow Invoice Entity Code
36432  , p_source_92            IN VARCHAR2
36433 --Business Flow Invoice Distribution Identifier
36434  , p_source_93            IN NUMBER
36435 --Business Flow Invoice Identifier
36436  , p_source_94            IN NUMBER
36437 --When to Account for Payment Option
36438  , p_source_96            IN VARCHAR2
36439 --Payment Distribution Type
36440  , p_source_97            IN VARCHAR2
36441  , p_source_97_meaning    IN VARCHAR2
36442 --Payment Distribution Amount
36443  , p_source_98            IN NUMBER
36444 --Payment Distribution Identifier
36445  , p_source_103            IN NUMBER
36446 --Payment Supplier Identifier
36447  , p_source_109            IN NUMBER
36448 --Payment Supplier Site Identifier
36449  , p_source_110            IN NUMBER
36450 --Payment Distribution Reversed Identifier
36451  , p_source_111            IN NUMBER
36452 --Payment Identifier
36453  , p_source_112            IN NUMBER
36454 --Pooled Bank Account Option
36455  , p_source_113            IN VARCHAR2
36456  , p_source_113_meaning    IN VARCHAR2
36457 --Payment Maturity Date
36458  , p_source_114            IN DATE
36459 --Payment Distribution (Payment Rate) Ledger Amount
36460  , p_source_115            IN NUMBER
36461 --Payment Exchange Date
36462  , p_source_117            IN DATE
36463 --Payment Exchange Rate
36464  , p_source_118            IN NUMBER
36465 --Payment Exchange Rate Type
36466  , p_source_119            IN VARCHAR2
36467 --Payment Type
36468  , p_source_122            IN VARCHAR2
36469  , p_source_122_meaning    IN VARCHAR2
36470 --Payment Processing Type
36471  , p_source_123            IN VARCHAR2
36472 --Invoice Distribution Amount of the Payment Distribution
36473  , p_source_124            IN NUMBER
36474 )
36475 IS
36476 
36477 l_component_type              VARCHAR2(80);
36478 l_component_code              VARCHAR2(30);
36479 l_component_type_code         VARCHAR2(1);
36480 l_component_appl_id           INTEGER;
36481 l_amb_context_code            VARCHAR2(30);
36482 l_entity_code                 VARCHAR2(30);
36483 l_event_class_code            VARCHAR2(30);
36484 l_ae_header_id                NUMBER;
36485 l_event_type_code             VARCHAR2(30);
36486 l_line_definition_code        VARCHAR2(30);
36487 l_line_definition_owner_code  VARCHAR2(1);
36488 --
36489 -- adr variables
36490 l_segment                     VARCHAR2(30);
36491 l_ccid                        NUMBER;
36492 l_adr_transaction_coa_id      NUMBER;
36493 l_adr_accounting_coa_id       NUMBER;
36494 l_adr_flexfield_segment_code  VARCHAR2(30);
36495 l_adr_flex_value_set_id       NUMBER;
36496 l_adr_value_type_code         VARCHAR2(30);
36497 l_adr_value_combination_id    NUMBER;
36498 l_adr_value_segment_code      VARCHAR2(30);
36499 
36500 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36501 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36502 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36503 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36504 
36505 -- 4262811 Variables ------------------------------------------------------------------------------------------
36506 l_entered_amt_idx             NUMBER;
36507 l_accted_amt_idx              NUMBER;
36508 l_acc_rev_flag                VARCHAR2(1);
36509 l_accrual_line_num            NUMBER;
36510 l_tmp_amt                     NUMBER;
36514 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36511 l_acc_rev_natural_side_code   VARCHAR2(1);
36512 
36513 l_num_entries                 NUMBER;
36515 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36516 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36517 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36518 l_recog_line_1                NUMBER;
36519 l_recog_line_2                NUMBER;
36520 
36521 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36522 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36523 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36524 
36525 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36526 
36527 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36528 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36529 
36530 ---------------------------------------------------------------------------------------------------------------
36531 
36532 
36533 --
36534 -- bulk performance
36535 --
36536 l_balance_type_code           VARCHAR2(1);
36537 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36538 l_log_module                  VARCHAR2(240);
36539 
36540 --
36541 -- Upgrade strategy
36542 --
36543 l_actual_upg_option           VARCHAR2(1);
36544 l_enc_upg_option           VARCHAR2(1);
36545 
36546 --
36547 BEGIN
36548 --
36549 IF g_log_enabled THEN
36550       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
36551 END IF;
36552 --
36553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36554 
36555       trace
36556          (p_msg      => 'BEGIN of AcctLineType_85'
36557          ,p_level    => C_LEVEL_PROCEDURE
36558          ,p_module   => l_log_module);
36559 
36560 END IF;
36561 --
36562 l_component_type             := 'AMB_JLT';
36563 l_component_code             := 'AP_CASH_PMT_AOS_AS';
36564 l_component_type_code        := 'S';
36565 l_component_appl_id          :=  200;
36566 l_amb_context_code           := 'DEFAULT';
36567 l_entity_code                := 'AP_PAYMENTS';
36568 l_event_class_code           := 'PAYMENTS';
36569 l_event_type_code            := 'PAYMENTS_ALL';
36570 l_line_definition_owner_code := 'S';
36571 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
36572 --
36573 l_balance_type_code          := 'A';
36574 l_segment                     := NULL;
36575 l_ccid                        := NULL;
36576 l_adr_transaction_coa_id      := NULL;
36577 l_adr_accounting_coa_id       := NULL;
36578 l_adr_flexfield_segment_code  := NULL;
36579 l_adr_flex_value_set_id       := NULL;
36580 l_adr_value_type_code         := NULL;
36581 l_adr_value_combination_id    := NULL;
36582 l_adr_value_segment_code      := NULL;
36583 
36584 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
36585 l_bflow_class_code           := '';    -- 4219869 Business Flow
36586 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36587 l_budgetary_control_flag     := 'N';
36588 
36589 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36590 l_bflow_applied_to_amt       := NULL; -- 5132302
36591 l_entered_amt_idx            := NULL;          -- 4262811
36592 l_accted_amt_idx             := NULL;          -- 4262811
36593 l_acc_rev_flag               := NULL;          -- 4262811
36594 l_accrual_line_num           := NULL;          -- 4262811
36595 l_tmp_amt                    := NULL;          -- 4262811
36596 --
36597  
36598 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36599     l_balance_type_code <> 'B' THEN
36600 IF NVL(p_source_96,'
36601 ') =  'ISSUE_ISSUE' AND 
36602 (NVL(p_source_113,'
36603 ') =  'Y' AND 
36604 NVL(p_source_15,'
36605 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
36606 p_source_114 IS NULL AND 
36607 NVL(p_source_97,'
36608 ') =  'CASH' AND 
36609 NVL(p_source_122,'
36610 ') <>  'R' AND 
36611 NVL(p_source_123,'
36612 ') <>  'PAYMENTCARD'
36613  THEN 
36614 
36615    --
36616    XLA_AE_LINES_PKG.SetNewLine;
36617 
36618    p_balance_type_code          := l_balance_type_code;
36619    -- set the flag so later we will know whether the gain loss line needs to be created
36620    
36621    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36622      p_actual_flag :='A';
36623    END IF;
36624 
36625    --
36626    -- bulk performance
36627    --
36628    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36629                                       p_header_num   => 0); -- 4262811
36630    --
36631    -- set accounting line options
36632    --
36633    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36634            p_natural_side_code          => 'C'
36635          , p_gain_or_loss_flag          => 'N'
36636          , p_gl_transfer_mode_code      => 'S'
36637          , p_acct_entry_type_code       => 'A'
36638          , p_switch_side_flag           => 'Y'
36639          , p_merge_duplicate_code       => 'A'
36640          );
36641    --
36642    l_acc_rev_natural_side_code := 'D';  -- 4262811
36643    -- 
36644    --
36645    -- set accounting line type info
36646    --
36647    xla_ae_lines_pkg.SetAcctLineType
36651       ,p_line_definition_code       => l_line_definition_code
36648       (p_component_type             => l_component_type
36649       ,p_event_type_code            => l_event_type_code
36650       ,p_line_definition_owner_code => l_line_definition_owner_code
36652       ,p_accounting_line_code       => l_component_code
36653       ,p_accounting_line_type_code  => l_component_type_code
36654       ,p_accounting_line_appl_id    => l_component_appl_id
36655       ,p_amb_context_code           => l_amb_context_code
36656       ,p_entity_code                => l_entity_code
36657       ,p_event_class_code           => l_event_class_code);
36658    --
36659    -- set accounting class
36660    --
36661    xla_ae_lines_pkg.SetAcctClass(
36662            p_accounting_class_code  => 'CASH'
36663          , p_ae_header_id           => l_ae_header_id
36664          );
36665 
36666    --
36667    -- set rounding class
36668    --
36669    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36670                       'CASH';
36671 
36672    --
36673    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36674    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36675    --
36676    -- bulk performance
36677    --
36678    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36679 
36680    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36681       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36682 
36683    -- 4955764
36684    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36685       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36686 
36687    -- 4458381 Public Sector Enh
36688    
36689    --
36690    -- set accounting attributes for the line type
36691    --
36692    l_entered_amt_idx := 10;
36693    l_accted_amt_idx  := 15;
36694    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
36695    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36696    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
36697    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36698    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
36699    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36700    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
36701    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36702    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
36703    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36704    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
36705    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36706    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
36707    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36708    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
36709    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36710    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
36711    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36712    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
36713    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36714    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
36715    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36716    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
36717    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36718    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
36719    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36720    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
36721    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36722    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
36723    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36724    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
36725    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36726    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
36727    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36728    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
36729    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36730    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
36731    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36732    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
36733    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36734    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
36735    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36736    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
36737    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36738    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
36739    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36740    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
36741    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36742    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
36743 
36744    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36745    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36746 
36750    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36747    ---------------------------------------------------------------------------------------------------------------
36748    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36749    ---------------------------------------------------------------------------------------------------------------
36751 
36752    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36753    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36754 
36755    IF xla_accounting_cache_pkg.GetValueChar
36756          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36757          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36758    AND l_bflow_method_code = 'PRIOR_ENTRY'
36759 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36760    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36761          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36762        )
36763    THEN
36764          xla_ae_lines_pkg.BflowUpgEntry
36765            (p_business_method_code    => l_bflow_method_code
36766            ,p_business_class_code     => l_bflow_class_code
36767            ,p_balance_type            => l_balance_type_code);
36768    ELSE
36769       NULL;
36770 XLA_AE_LINES_PKG.business_flow_validation(
36771                                 p_business_method_code     => l_bflow_method_code
36772                                ,p_business_class_code      => l_bflow_class_code
36773                                ,p_inherit_description_flag => l_inherit_desc_flag);
36774    END IF;
36775 
36776    --
36777    -- call analytical criteria
36778    --
36779    
36780 
36781 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
36782 xla_ae_lines_pkg.SetAnalyticalCriteria(
36783    p_analytical_criterion_name    => 'Check Id'
36784  , p_analytical_criterion_owner   => 'S'
36785  , p_analytical_criterion_code    => 'CHECK_ID'
36786  , p_amb_context_code             => 'DEFAULT'
36787  , p_balancing_flag               => 'N'
36788  
36789  , p_analytical_detail_char_1    =>  NULL
36790  , p_analytical_detail_num_1     =>  p_source_112
36791  , p_analytical_detail_date_1    =>  NULL
36792 
36793  , p_ae_header_id                 => l_ae_header_id
36794 )
36795 ;
36796 --
36797 
36798    --
36799    -- call description
36800    --
36801    -- No description or it is inherited.
36802    --
36803    -- call ADRs
36804    -- Bug 4922099
36805    --
36806    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36807         (NVL(l_actual_upg_option, 'N') = 'O') OR
36808         (NVL(l_enc_upg_option, 'N') = 'O')
36809       )
36810    THEN
36811    NULL;
36812    --
36813    --
36814    
36815    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
36816      p_code_combination_id      => TO_NUMBER(C_NUM)
36817    , p_value_type_code          => NULL
36818    , p_transaction_coa_id       => null
36819    , p_accounting_coa_id        => null
36820    , p_adr_code                 => NULL
36821    , p_adr_type_code            => NULL
36822    , p_component_type           => l_component_type
36823    , p_component_code           => l_component_code
36824    , p_component_type_code      => l_component_type_code
36825    , p_component_appl_id        => l_component_appl_id
36826    , p_amb_context_code         => l_amb_context_code
36827    , p_side                     => NULL
36828    );
36829 
36830    
36831   -- initialise segments
36832   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36833   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36834   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36835   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36836   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36837   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36838   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36839   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36840   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36841   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36842   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36843   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36844   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36845   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36846   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36847   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36848   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36849   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36850   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36851   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36855   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36852   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36853   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36854   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36856   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36857   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36858   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36859   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36860   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36861   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36862   --
36863 
36864    --
36865 
36866 
36867    l_segment := AcctDerRule_6(
36868            p_application_id           => p_application_id
36869          , p_ae_header_id             => l_ae_header_id 
36870 , p_source_17 => p_source_17
36871          , x_transaction_coa_id       => l_adr_transaction_coa_id
36872          , x_accounting_coa_id        => l_adr_accounting_coa_id
36873          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36874          , x_flex_value_set_id        => l_adr_flex_value_set_id
36875          , x_value_type_code          => l_adr_value_type_code
36876          , x_value_combination_id     => l_adr_value_combination_id
36877          , x_value_segment_code       => l_adr_value_segment_code
36878          , p_side                     => 'NA'
36879          , p_override_seg_flag        => 'Y'
36880    );
36881 
36882    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36883 
36884       xla_ae_lines_pkg.set_segment(
36885           p_to_segment_code         => 'GL_ACCOUNT'
36886         , p_segment_value           => l_segment
36887         , p_from_segment_code       => l_adr_value_segment_code
36888         , p_from_combination_id     => l_adr_value_combination_id
36889         , p_value_type_code         => l_adr_value_type_code
36890         , p_transaction_coa_id      => l_adr_transaction_coa_id
36891         , p_accounting_coa_id       => l_adr_accounting_coa_id
36892         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36893         , p_flex_value_set_id       => l_adr_flex_value_set_id
36894         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
36895         , p_adr_type_code           => 'S'
36896         , p_component_type          => l_component_type
36897         , p_component_code          => l_component_code
36898         , p_component_type_code     => l_component_type_code
36899         , p_component_appl_id       => l_component_appl_id
36900         , p_amb_context_code        => l_amb_context_code
36901         , p_entity_code             => 'AP_PAYMENTS'
36902         , p_event_class_code        => 'PAYMENTS'
36903         , p_side                    => 'NA'
36904         );
36905 
36906   END IF;
36907 
36908    --
36909    --
36910    END IF;
36911    --
36912    -- Bug 4922099
36913    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36914           (NVL(l_enc_upg_option, 'N') = 'O')
36915         ) AND
36916         (l_bflow_method_code = 'PRIOR_ENTRY')
36917       )
36918    THEN
36919       IF
36920       --
36921       1 = 2
36922       --
36923       THEN
36924       xla_accounting_err_pkg.build_message
36925                                     (p_appli_s_name            => 'XLA'
36926                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36927                                     ,p_token_1                 => 'LINE_NUMBER'
36928                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36929                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36930                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36931                                                                              l_component_type
36932                                                                             ,l_component_code
36933                                                                             ,l_component_type_code
36934                                                                             ,l_component_appl_id
36935                                                                             ,l_amb_context_code
36936                                                                             ,l_entity_code
36937                                                                             ,l_event_class_code
36938                                                                            )
36939                                     ,p_token_3                 => 'OWNER'
36940                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36941                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36942                                                                           ,p_lookup_code    => l_component_type_code
36943                                                                          )
36944                                     ,p_token_4                 => 'PRODUCT_NAME'
36945                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36946                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36950                                        );
36947                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36948                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36949                                     ,p_ae_header_id            =>  NULL
36951 
36952         IF (C_LEVEL_ERROR>= g_log_level) THEN
36953                  trace
36954                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36955                       ,p_level    => C_LEVEL_ERROR
36956                       ,p_module   => l_log_module);
36957         END IF;
36958       END IF;
36959    END IF;
36960    --
36961    --
36962    ------------------------------------------------------------------------------------------------
36963    -- 4219869 Business Flow
36964    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36965    -- Prior Entry.  Currently, the following code is always generated.
36966    ------------------------------------------------------------------------------------------------
36967    XLA_AE_LINES_PKG.ValidateCurrentLine;
36968 
36969    ------------------------------------------------------------------------------------
36970    -- 4219869 Business Flow
36971    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36972    ------------------------------------------------------------------------------------
36973    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36974 
36975    ----------------------------------------------------------------------------------
36976    -- 4219869 Business Flow
36977    -- Update journal entry status -- Need to generate this within IF <condition>
36978    ----------------------------------------------------------------------------------
36979    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36980          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36981          ,p_balance_type_code => l_balance_type_code
36982          );
36983 
36984    -------------------------------------------------------------------------------------------
36985    -- 4262811 - Generate the Accrual Reversal lines
36986    -------------------------------------------------------------------------------------------
36987    BEGIN
36988       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36989                               (g_array_event(p_event_id).array_value_num('header_index'));
36990       IF l_acc_rev_flag IS NULL THEN
36991          l_acc_rev_flag := 'N';
36992       END IF;
36993    EXCEPTION
36994       WHEN OTHERS THEN
36995          l_acc_rev_flag := 'N';
36996    END;
36997    --
36998    IF (l_acc_rev_flag = 'Y') THEN
36999 
37000        -- 4645092  ------------------------------------------------------------------------------
37001        -- To allow MPA report to determine if it should generate report process
37002        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37003        ------------------------------------------------------------------------------------------
37004 
37005        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37006        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37007    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37008    -- call ADRs
37009    -- Bug 4922099
37010    --
37011    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37012         (NVL(l_actual_upg_option, 'N') = 'O') OR
37013         (NVL(l_enc_upg_option, 'N') = 'O')
37014       )
37015    THEN
37016    NULL;
37017    --
37018    --
37019    
37020    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
37021      p_code_combination_id      => TO_NUMBER(C_NUM)
37022    , p_value_type_code          => NULL
37023    , p_transaction_coa_id       => null
37024    , p_accounting_coa_id        => null
37025    , p_adr_code                 => NULL
37026    , p_adr_type_code            => NULL
37027    , p_component_type           => l_component_type
37028    , p_component_code           => l_component_code
37029    , p_component_type_code      => l_component_type_code
37030    , p_component_appl_id        => l_component_appl_id
37031    , p_amb_context_code         => l_amb_context_code
37032    , p_side                     => NULL
37033    );
37034 
37035    
37036   -- initialise segments
37037   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37038   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37039   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37040   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37041   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37042   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37043   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37044   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37045   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
37046   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37047   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37048   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37052   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37049   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37050   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37051   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37053   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37054   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37055   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37056   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37057   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37058   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37059   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37060   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37061   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37062   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37063   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37064   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37065   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37066   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
37067   --
37068 
37069    --
37070 
37071 
37072    l_segment := AcctDerRule_6(
37073            p_application_id           => p_application_id
37074          , p_ae_header_id             => l_ae_header_id 
37075 , p_source_17 => p_source_17
37076          , x_transaction_coa_id       => l_adr_transaction_coa_id
37077          , x_accounting_coa_id        => l_adr_accounting_coa_id
37078          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
37079          , x_flex_value_set_id        => l_adr_flex_value_set_id
37080          , x_value_type_code          => l_adr_value_type_code
37081          , x_value_combination_id     => l_adr_value_combination_id
37082          , x_value_segment_code       => l_adr_value_segment_code
37083          , p_side                     => 'NA'
37084          , p_override_seg_flag        => 'Y'
37085    );
37086 
37087    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
37088 
37089       xla_ae_lines_pkg.set_segment(
37090           p_to_segment_code         => 'GL_ACCOUNT'
37091         , p_segment_value           => l_segment
37092         , p_from_segment_code       => l_adr_value_segment_code
37093         , p_from_combination_id     => l_adr_value_combination_id
37094         , p_value_type_code         => l_adr_value_type_code
37095         , p_transaction_coa_id      => l_adr_transaction_coa_id
37096         , p_accounting_coa_id       => l_adr_accounting_coa_id
37097         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
37098         , p_flex_value_set_id       => l_adr_flex_value_set_id
37099         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
37100         , p_adr_type_code           => 'S'
37101         , p_component_type          => l_component_type
37102         , p_component_code          => l_component_code
37103         , p_component_type_code     => l_component_type_code
37104         , p_component_appl_id       => l_component_appl_id
37105         , p_amb_context_code        => l_amb_context_code
37106         , p_entity_code             => 'AP_PAYMENTS'
37107         , p_event_class_code        => 'PAYMENTS'
37108         , p_side                    => 'NA'
37109         );
37110 
37111   END IF;
37112 
37113    --
37114    --
37115    END IF;
37116 
37117        --
37118        -- Update the line information that should be overwritten
37119        --
37120        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37121                                          p_header_num   => 1);
37122        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37123 
37124        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37125 
37126        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37127           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37128        END IF;
37129 
37130       --
37131       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37132       --
37133       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37134           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37135       ELSE
37136           ---------------------------------------------------------------------------------------------------
37137           -- 4262811a Switch Sign
37138           ---------------------------------------------------------------------------------------------------
37139           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37140           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37141                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37142           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37143                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37147 
37144           -- 5132302
37145           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37146                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37148       END IF;
37149 
37150       -- 4955764
37151       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37152       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37153 
37154 
37155       XLA_AE_LINES_PKG.ValidateCurrentLine;
37156       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37157 
37158       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37159                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37160                ,p_balance_type_code => l_balance_type_code);
37161 
37162    END IF;
37163 
37164    -----------------------------------------------------------------------------------------
37165    -- 4262811 Multiperiod Accounting
37166    -----------------------------------------------------------------------------------------
37167      -- No MPA option is assigned.
37168 
37169 
37170 END IF;
37171 END IF;
37172 --
37173 
37174 --
37175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37176    trace
37177       (p_msg      => 'END of AcctLineType_85'
37178       ,p_level    => C_LEVEL_PROCEDURE
37179       ,p_module   => l_log_module);
37180 END IF;
37181 --
37182 EXCEPTION
37183   WHEN xla_exceptions_pkg.application_exception THEN
37184       RAISE;
37185   WHEN OTHERS THEN
37186        xla_exceptions_pkg.raise_message
37187            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_85');
37188 END AcctLineType_85;
37189 --
37190 
37191 ---------------------------------------
37192 --
37193 -- PRIVATE FUNCTION
37194 --         AcctLineType_86
37195 --
37196 ---------------------------------------
37197 PROCEDURE AcctLineType_86 (
37198   p_application_id        IN NUMBER
37199  ,p_event_id              IN NUMBER
37200  ,p_calculate_acctd_flag  IN VARCHAR2
37201  ,p_calculate_g_l_flag    IN VARCHAR2
37202  ,p_actual_flag           IN OUT VARCHAR2
37203  ,p_balance_type_code     OUT VARCHAR2
37204  ,p_gain_or_loss_ref      OUT VARCHAR2
37205  
37206 --Payment Currency Code
37207  , p_source_13            IN VARCHAR2
37208 --Automatic Offsets Value
37209  , p_source_15            IN VARCHAR2
37210  , p_source_15_meaning    IN VARCHAR2
37211 --Bank Cash Account
37212  , p_source_17            IN NUMBER
37213 --Accounting Reversal Indicator
37214  , p_source_52            IN VARCHAR2
37215 --Distribution Link Type
37216  , p_source_54            IN VARCHAR2
37217 --Override Accounted Amount Indicator
37218  , p_source_79            IN VARCHAR2
37219  , p_source_79_meaning    IN VARCHAR2
37220 --Third Party Type
37221  , p_source_82            IN VARCHAR2
37222 --Invoice Distribution Tax Line Identifier
37223  , p_source_85            IN NUMBER
37224 --Invoice Distribution Tax Distribution Identifier from Tax
37225  , p_source_86            IN NUMBER
37226 --Invoice Distribution Summary Tax Line Identifier
37227  , p_source_87            IN NUMBER
37228 --Business Flow Accounts Payable Application Identifier
37229  , p_source_90            IN NUMBER
37230 --Business Flow Invoice Distribution Type
37231  , p_source_91            IN VARCHAR2
37232 --Business Flow Invoice Entity Code
37233  , p_source_92            IN VARCHAR2
37234 --Business Flow Invoice Distribution Identifier
37235  , p_source_93            IN NUMBER
37236 --Business Flow Invoice Identifier
37237  , p_source_94            IN NUMBER
37238 --When to Account for Payment Option
37239  , p_source_96            IN VARCHAR2
37240 --Payment Distribution Type
37241  , p_source_97            IN VARCHAR2
37242  , p_source_97_meaning    IN VARCHAR2
37243 --Payment Distribution Amount
37244  , p_source_98            IN NUMBER
37245 --Payment Distribution Identifier
37246  , p_source_103            IN NUMBER
37247 --Payment Supplier Identifier
37248  , p_source_109            IN NUMBER
37249 --Payment Supplier Site Identifier
37250  , p_source_110            IN NUMBER
37251 --Payment Distribution Reversed Identifier
37252  , p_source_111            IN NUMBER
37253 --Payment Identifier
37254  , p_source_112            IN NUMBER
37255 --Pooled Bank Account Option
37256  , p_source_113            IN VARCHAR2
37257  , p_source_113_meaning    IN VARCHAR2
37258 --Payment Maturity Date
37259  , p_source_114            IN DATE
37260 --Payment Distribution (Payment Rate) Ledger Amount
37261  , p_source_115            IN NUMBER
37262 --Payment Exchange Date
37263  , p_source_117            IN DATE
37264 --Payment Exchange Rate
37265  , p_source_118            IN NUMBER
37266 --Payment Exchange Rate Type
37267  , p_source_119            IN VARCHAR2
37268 --Payment Type
37269  , p_source_122            IN VARCHAR2
37270  , p_source_122_meaning    IN VARCHAR2
37271 --Payment Processing Type
37272  , p_source_123            IN VARCHAR2
37273 --Invoice Distribution Amount of the Payment Distribution
37274  , p_source_124            IN NUMBER
37275 )
37276 IS
37277 
37278 l_component_type              VARCHAR2(80);
37279 l_component_code              VARCHAR2(30);
37280 l_component_type_code         VARCHAR2(1);
37281 l_component_appl_id           INTEGER;
37285 l_ae_header_id                NUMBER;
37282 l_amb_context_code            VARCHAR2(30);
37283 l_entity_code                 VARCHAR2(30);
37284 l_event_class_code            VARCHAR2(30);
37286 l_event_type_code             VARCHAR2(30);
37287 l_line_definition_code        VARCHAR2(30);
37288 l_line_definition_owner_code  VARCHAR2(1);
37289 --
37290 -- adr variables
37291 l_segment                     VARCHAR2(30);
37292 l_ccid                        NUMBER;
37293 l_adr_transaction_coa_id      NUMBER;
37294 l_adr_accounting_coa_id       NUMBER;
37295 l_adr_flexfield_segment_code  VARCHAR2(30);
37296 l_adr_flex_value_set_id       NUMBER;
37297 l_adr_value_type_code         VARCHAR2(30);
37298 l_adr_value_combination_id    NUMBER;
37299 l_adr_value_segment_code      VARCHAR2(30);
37300 
37301 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37302 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37303 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37304 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37305 
37306 -- 4262811 Variables ------------------------------------------------------------------------------------------
37307 l_entered_amt_idx             NUMBER;
37308 l_accted_amt_idx              NUMBER;
37309 l_acc_rev_flag                VARCHAR2(1);
37310 l_accrual_line_num            NUMBER;
37311 l_tmp_amt                     NUMBER;
37312 l_acc_rev_natural_side_code   VARCHAR2(1);
37313 
37314 l_num_entries                 NUMBER;
37315 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37316 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37317 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37318 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37319 l_recog_line_1                NUMBER;
37320 l_recog_line_2                NUMBER;
37321 
37322 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37323 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37324 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37325 
37326 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37327 
37328 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37329 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37330 
37331 ---------------------------------------------------------------------------------------------------------------
37332 
37333 
37334 --
37335 -- bulk performance
37336 --
37337 l_balance_type_code           VARCHAR2(1);
37338 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37339 l_log_module                  VARCHAR2(240);
37340 
37341 --
37342 -- Upgrade strategy
37343 --
37344 l_actual_upg_option           VARCHAR2(1);
37345 l_enc_upg_option           VARCHAR2(1);
37346 
37347 --
37348 BEGIN
37349 --
37350 IF g_log_enabled THEN
37351       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
37352 END IF;
37353 --
37354 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37355 
37356       trace
37357          (p_msg      => 'BEGIN of AcctLineType_86'
37358          ,p_level    => C_LEVEL_PROCEDURE
37359          ,p_module   => l_log_module);
37360 
37361 END IF;
37362 --
37363 l_component_type             := 'AMB_JLT';
37364 l_component_code             := 'AP_CASH_PMT_AOS_BS';
37365 l_component_type_code        := 'S';
37366 l_component_appl_id          :=  200;
37367 l_amb_context_code           := 'DEFAULT';
37368 l_entity_code                := 'AP_PAYMENTS';
37369 l_event_class_code           := 'PAYMENTS';
37370 l_event_type_code            := 'PAYMENTS_ALL';
37371 l_line_definition_owner_code := 'S';
37372 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
37373 --
37374 l_balance_type_code          := 'A';
37375 l_segment                     := NULL;
37376 l_ccid                        := NULL;
37377 l_adr_transaction_coa_id      := NULL;
37378 l_adr_accounting_coa_id       := NULL;
37379 l_adr_flexfield_segment_code  := NULL;
37380 l_adr_flex_value_set_id       := NULL;
37381 l_adr_value_type_code         := NULL;
37382 l_adr_value_combination_id    := NULL;
37383 l_adr_value_segment_code      := NULL;
37384 
37385 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
37386 l_bflow_class_code           := '';    -- 4219869 Business Flow
37387 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37388 l_budgetary_control_flag     := 'N';
37389 
37390 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37391 l_bflow_applied_to_amt       := NULL; -- 5132302
37392 l_entered_amt_idx            := NULL;          -- 4262811
37393 l_accted_amt_idx             := NULL;          -- 4262811
37394 l_acc_rev_flag               := NULL;          -- 4262811
37395 l_accrual_line_num           := NULL;          -- 4262811
37396 l_tmp_amt                    := NULL;          -- 4262811
37397 --
37398  
37399 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37400     l_balance_type_code <> 'B' THEN
37401 IF NVL(p_source_96,'
37402 ') =  'ISSUE_ISSUE' AND 
37403 (NVL(p_source_113,'
37404 ') =  'Y' AND 
37405 NVL(p_source_15,'
37406 ') =  'BALANCING_SEGMENT') AND 
37407 p_source_114 IS NULL AND 
37408 NVL(p_source_97,'
37409 ') =  'CASH' AND 
37413 ') <>  'PAYMENTCARD'
37410 NVL(p_source_122,'
37411 ') <>  'R' AND 
37412 NVL(p_source_123,'
37414  THEN 
37415 
37416    --
37417    XLA_AE_LINES_PKG.SetNewLine;
37418 
37419    p_balance_type_code          := l_balance_type_code;
37420    -- set the flag so later we will know whether the gain loss line needs to be created
37421    
37422    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37423      p_actual_flag :='A';
37424    END IF;
37425 
37426    --
37427    -- bulk performance
37428    --
37429    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37430                                       p_header_num   => 0); -- 4262811
37431    --
37432    -- set accounting line options
37433    --
37434    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37435            p_natural_side_code          => 'C'
37436          , p_gain_or_loss_flag          => 'N'
37437          , p_gl_transfer_mode_code      => 'S'
37438          , p_acct_entry_type_code       => 'A'
37439          , p_switch_side_flag           => 'Y'
37440          , p_merge_duplicate_code       => 'A'
37441          );
37442    --
37443    l_acc_rev_natural_side_code := 'D';  -- 4262811
37444    -- 
37445    --
37446    -- set accounting line type info
37447    --
37448    xla_ae_lines_pkg.SetAcctLineType
37449       (p_component_type             => l_component_type
37450       ,p_event_type_code            => l_event_type_code
37451       ,p_line_definition_owner_code => l_line_definition_owner_code
37452       ,p_line_definition_code       => l_line_definition_code
37453       ,p_accounting_line_code       => l_component_code
37454       ,p_accounting_line_type_code  => l_component_type_code
37455       ,p_accounting_line_appl_id    => l_component_appl_id
37456       ,p_amb_context_code           => l_amb_context_code
37457       ,p_entity_code                => l_entity_code
37458       ,p_event_class_code           => l_event_class_code);
37459    --
37460    -- set accounting class
37461    --
37462    xla_ae_lines_pkg.SetAcctClass(
37463            p_accounting_class_code  => 'CASH'
37464          , p_ae_header_id           => l_ae_header_id
37465          );
37466 
37467    --
37468    -- set rounding class
37469    --
37470    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37471                       'CASH';
37472 
37473    --
37474    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37475    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37476    --
37477    -- bulk performance
37478    --
37479    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37480 
37481    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37482       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37483 
37484    -- 4955764
37485    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37486       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37487 
37488    -- 4458381 Public Sector Enh
37489    
37490    --
37491    -- set accounting attributes for the line type
37492    --
37493    l_entered_amt_idx := 10;
37494    l_accted_amt_idx  := 15;
37495    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37496    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37497    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
37498    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37499    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
37500    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37501    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
37502    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37503    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
37504    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37505    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
37506    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37507    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
37508    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37509    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
37510    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37511    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
37512    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37513    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
37514    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37515    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
37516    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37517    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
37518    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37519    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
37520    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37521    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
37522    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37523    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
37524    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37525    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
37529    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
37526    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37527    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
37528    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37530    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37531    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
37532    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37533    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
37534    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37535    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
37536    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37537    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
37538    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37539    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
37540    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37541    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
37542    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37543    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
37544 
37545    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37546    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37547 
37548    ---------------------------------------------------------------------------------------------------------------
37549    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37550    ---------------------------------------------------------------------------------------------------------------
37551    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37552 
37553    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37554    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37555 
37556    IF xla_accounting_cache_pkg.GetValueChar
37557          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37558          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37559    AND l_bflow_method_code = 'PRIOR_ENTRY'
37560 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37561    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37562          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37563        )
37564    THEN
37565          xla_ae_lines_pkg.BflowUpgEntry
37566            (p_business_method_code    => l_bflow_method_code
37567            ,p_business_class_code     => l_bflow_class_code
37568            ,p_balance_type            => l_balance_type_code);
37569    ELSE
37570       NULL;
37571 XLA_AE_LINES_PKG.business_flow_validation(
37572                                 p_business_method_code     => l_bflow_method_code
37573                                ,p_business_class_code      => l_bflow_class_code
37574                                ,p_inherit_description_flag => l_inherit_desc_flag);
37575    END IF;
37576 
37577    --
37578    -- call analytical criteria
37579    --
37580    
37581 
37582 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
37583 xla_ae_lines_pkg.SetAnalyticalCriteria(
37584    p_analytical_criterion_name    => 'Check Id'
37585  , p_analytical_criterion_owner   => 'S'
37586  , p_analytical_criterion_code    => 'CHECK_ID'
37587  , p_amb_context_code             => 'DEFAULT'
37588  , p_balancing_flag               => 'N'
37589  
37590  , p_analytical_detail_char_1    =>  NULL
37591  , p_analytical_detail_num_1     =>  p_source_112
37592  , p_analytical_detail_date_1    =>  NULL
37593 
37594  , p_ae_header_id                 => l_ae_header_id
37595 )
37596 ;
37597 --
37598 
37599    --
37600    -- call description
37601    --
37602    -- No description or it is inherited.
37603    --
37604    -- call ADRs
37605    -- Bug 4922099
37606    --
37607    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37608         (NVL(l_actual_upg_option, 'N') = 'O') OR
37609         (NVL(l_enc_upg_option, 'N') = 'O')
37610       )
37611    THEN
37612    NULL;
37613    --
37614    --
37615    
37616   l_ccid := AcctDerRule_28(
37617            p_application_id           => p_application_id
37618          , p_ae_header_id             => l_ae_header_id 
37619 , p_source_17 => p_source_17
37620          , x_transaction_coa_id       => l_adr_transaction_coa_id
37621          , x_accounting_coa_id        => l_adr_accounting_coa_id
37622          , x_value_type_code          => l_adr_value_type_code
37623          , p_side                     => 'NA'
37624    );
37625 
37626    xla_ae_lines_pkg.set_ccid(
37627     p_code_combination_id          => l_ccid
37628   , p_value_type_code              => l_adr_value_type_code
37629   , p_transaction_coa_id           => l_adr_transaction_coa_id
37630   , p_accounting_coa_id            => l_adr_accounting_coa_id
37631   , p_adr_code                     => 'AP_CASH'
37632   , p_adr_type_code                => 'S'
37633   , p_component_type               => l_component_type
37634   , p_component_code               => l_component_code
37635   , p_component_type_code          => l_component_type_code
37636   , p_component_appl_id            => l_component_appl_id
37640 
37637   , p_amb_context_code             => l_amb_context_code
37638   , p_side                         => 'NA'
37639   );
37641 
37642    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
37643      p_to_segment_code         => 'GL_BALANCING'
37644    , p_segment_value           => C_CHAR
37645    , p_from_segment_code       => NULL
37646    , p_from_combination_id     => NULL
37647    , p_value_type_code         => NULL
37648    , p_transaction_coa_id      => null
37649    , p_accounting_coa_id       => null
37650    , p_flexfield_segment_code  => NULL
37651    , p_flex_value_set_id       => NULL
37652    , p_adr_code                => NULL
37653    , p_adr_type_code           => NULL
37654    , p_component_type          => l_component_type
37655    , p_component_code          => l_component_code
37656    , p_component_type_code     => l_component_type_code
37657    , p_component_appl_id       => l_component_appl_id
37658    , p_amb_context_code        => l_amb_context_code
37659    , p_entity_code             => 'AP_PAYMENTS'
37660    , p_event_class_code        => 'PAYMENTS'
37661    , p_side                    => 'NA'
37662    );
37663    --
37664 
37665 
37666    --
37667    --
37668    END IF;
37669    --
37670    -- Bug 4922099
37671    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37672           (NVL(l_enc_upg_option, 'N') = 'O')
37673         ) AND
37674         (l_bflow_method_code = 'PRIOR_ENTRY')
37675       )
37676    THEN
37677       IF
37678       --
37679       1 = 2
37680       --
37681       THEN
37682       xla_accounting_err_pkg.build_message
37683                                     (p_appli_s_name            => 'XLA'
37684                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37685                                     ,p_token_1                 => 'LINE_NUMBER'
37686                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37687                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37688                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37689                                                                              l_component_type
37690                                                                             ,l_component_code
37691                                                                             ,l_component_type_code
37692                                                                             ,l_component_appl_id
37693                                                                             ,l_amb_context_code
37694                                                                             ,l_entity_code
37695                                                                             ,l_event_class_code
37696                                                                            )
37697                                     ,p_token_3                 => 'OWNER'
37698                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37699                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37700                                                                           ,p_lookup_code    => l_component_type_code
37701                                                                          )
37702                                     ,p_token_4                 => 'PRODUCT_NAME'
37703                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37704                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37705                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37706                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37707                                     ,p_ae_header_id            =>  NULL
37708                                        );
37709 
37710         IF (C_LEVEL_ERROR>= g_log_level) THEN
37711                  trace
37712                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37713                       ,p_level    => C_LEVEL_ERROR
37714                       ,p_module   => l_log_module);
37715         END IF;
37716       END IF;
37717    END IF;
37718    --
37719    --
37720    ------------------------------------------------------------------------------------------------
37721    -- 4219869 Business Flow
37722    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37723    -- Prior Entry.  Currently, the following code is always generated.
37724    ------------------------------------------------------------------------------------------------
37725    XLA_AE_LINES_PKG.ValidateCurrentLine;
37726 
37727    ------------------------------------------------------------------------------------
37728    -- 4219869 Business Flow
37729    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37730    ------------------------------------------------------------------------------------
37731    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37732 
37733    ----------------------------------------------------------------------------------
37734    -- 4219869 Business Flow
37735    -- Update journal entry status -- Need to generate this within IF <condition>
37736    ----------------------------------------------------------------------------------
37740          );
37737    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37738          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37739          ,p_balance_type_code => l_balance_type_code
37741 
37742    -------------------------------------------------------------------------------------------
37743    -- 4262811 - Generate the Accrual Reversal lines
37744    -------------------------------------------------------------------------------------------
37745    BEGIN
37746       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37747                               (g_array_event(p_event_id).array_value_num('header_index'));
37748       IF l_acc_rev_flag IS NULL THEN
37749          l_acc_rev_flag := 'N';
37750       END IF;
37751    EXCEPTION
37752       WHEN OTHERS THEN
37753          l_acc_rev_flag := 'N';
37754    END;
37755    --
37756    IF (l_acc_rev_flag = 'Y') THEN
37757 
37758        -- 4645092  ------------------------------------------------------------------------------
37759        -- To allow MPA report to determine if it should generate report process
37760        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37761        ------------------------------------------------------------------------------------------
37762 
37763        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37764        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37765    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37766    -- call ADRs
37767    -- Bug 4922099
37768    --
37769    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37770         (NVL(l_actual_upg_option, 'N') = 'O') OR
37771         (NVL(l_enc_upg_option, 'N') = 'O')
37772       )
37773    THEN
37774    NULL;
37775    --
37776    --
37777    
37778   l_ccid := AcctDerRule_28(
37779            p_application_id           => p_application_id
37780          , p_ae_header_id             => l_ae_header_id 
37781 , p_source_17 => p_source_17
37782          , x_transaction_coa_id       => l_adr_transaction_coa_id
37783          , x_accounting_coa_id        => l_adr_accounting_coa_id
37784          , x_value_type_code          => l_adr_value_type_code
37785          , p_side                     => 'NA'
37786    );
37787 
37788    xla_ae_lines_pkg.set_ccid(
37789     p_code_combination_id          => l_ccid
37790   , p_value_type_code              => l_adr_value_type_code
37791   , p_transaction_coa_id           => l_adr_transaction_coa_id
37792   , p_accounting_coa_id            => l_adr_accounting_coa_id
37793   , p_adr_code                     => 'AP_CASH'
37794   , p_adr_type_code                => 'S'
37795   , p_component_type               => l_component_type
37796   , p_component_code               => l_component_code
37797   , p_component_type_code          => l_component_type_code
37798   , p_component_appl_id            => l_component_appl_id
37799   , p_amb_context_code             => l_amb_context_code
37800   , p_side                         => 'NA'
37801   );
37802 
37803 
37804    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
37805      p_to_segment_code         => 'GL_BALANCING'
37806    , p_segment_value           => C_CHAR
37807    , p_from_segment_code       => NULL
37808    , p_from_combination_id     => NULL
37809    , p_value_type_code         => NULL
37810    , p_transaction_coa_id      => null
37811    , p_accounting_coa_id       => null
37812    , p_flexfield_segment_code  => NULL
37813    , p_flex_value_set_id       => NULL
37814    , p_adr_code                => NULL
37815    , p_adr_type_code           => NULL
37816    , p_component_type          => l_component_type
37817    , p_component_code          => l_component_code
37818    , p_component_type_code     => l_component_type_code
37819    , p_component_appl_id       => l_component_appl_id
37820    , p_amb_context_code        => l_amb_context_code
37821    , p_entity_code             => 'AP_PAYMENTS'
37822    , p_event_class_code        => 'PAYMENTS'
37823    , p_side                    => 'NA'
37824    );
37825    --
37826 
37827 
37828    --
37829    --
37830    END IF;
37831 
37832        --
37833        -- Update the line information that should be overwritten
37834        --
37835        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37836                                          p_header_num   => 1);
37837        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37838 
37839        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37840 
37841        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37842           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37843        END IF;
37844 
37845       --
37846       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37847       --
37848       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37849           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37850       ELSE
37851           ---------------------------------------------------------------------------------------------------
37852           -- 4262811a Switch Sign
37853           ---------------------------------------------------------------------------------------------------
37857           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37854           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37855           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37856                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37858                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37859           -- 5132302
37860           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37861                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37862 
37863       END IF;
37864 
37865       -- 4955764
37866       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37867       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37868 
37869 
37870       XLA_AE_LINES_PKG.ValidateCurrentLine;
37871       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37872 
37873       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37874                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37875                ,p_balance_type_code => l_balance_type_code);
37876 
37877    END IF;
37878 
37879    -----------------------------------------------------------------------------------------
37880    -- 4262811 Multiperiod Accounting
37881    -----------------------------------------------------------------------------------------
37882      -- No MPA option is assigned.
37883 
37884 
37885 END IF;
37886 END IF;
37887 --
37888 
37889 --
37890 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37891    trace
37892       (p_msg      => 'END of AcctLineType_86'
37893       ,p_level    => C_LEVEL_PROCEDURE
37894       ,p_module   => l_log_module);
37895 END IF;
37896 --
37897 EXCEPTION
37898   WHEN xla_exceptions_pkg.application_exception THEN
37899       RAISE;
37900   WHEN OTHERS THEN
37901        xla_exceptions_pkg.raise_message
37902            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_86');
37903 END AcctLineType_86;
37904 --
37905 
37906 ---------------------------------------
37907 --
37908 -- PRIVATE FUNCTION
37909 --         AcctLineType_87
37910 --
37911 ---------------------------------------
37912 PROCEDURE AcctLineType_87 (
37913   p_application_id        IN NUMBER
37914  ,p_event_id              IN NUMBER
37915  ,p_calculate_acctd_flag  IN VARCHAR2
37916  ,p_calculate_g_l_flag    IN VARCHAR2
37917  ,p_actual_flag           IN OUT VARCHAR2
37918  ,p_balance_type_code     OUT VARCHAR2
37919  ,p_gain_or_loss_ref      OUT VARCHAR2
37920  
37921 --Payment Currency Code
37922  , p_source_13            IN VARCHAR2
37923 --Bank Cash Account
37924  , p_source_17            IN NUMBER
37925 --Automatic Offsets Flag
37926  , p_source_47            IN VARCHAR2
37927  , p_source_47_meaning    IN VARCHAR2
37928 --Accounting Reversal Indicator
37929  , p_source_52            IN VARCHAR2
37930 --Distribution Link Type
37931  , p_source_54            IN VARCHAR2
37932 --Override Accounted Amount Indicator
37933  , p_source_79            IN VARCHAR2
37934  , p_source_79_meaning    IN VARCHAR2
37935 --Third Party Type
37936  , p_source_82            IN VARCHAR2
37937 --Business Flow Accounts Payable Application Identifier
37938  , p_source_90            IN NUMBER
37939 --When to Account for Payment Option
37940  , p_source_96            IN VARCHAR2
37941 --Payment Distribution Type
37942  , p_source_97            IN VARCHAR2
37943  , p_source_97_meaning    IN VARCHAR2
37944 --Payment Distribution Amount
37945  , p_source_98            IN NUMBER
37946 --Business Flow Payment Distribution Type
37947  , p_source_99            IN VARCHAR2
37948 --Business Flow Payment Entity Code
37949  , p_source_100            IN VARCHAR2
37950 --Business Flow Payment Distribution Identifier
37951  , p_source_101            IN NUMBER
37952 --Business Flow Payment Identifier
37953  , p_source_102            IN NUMBER
37954 --Payment Distribution Identifier
37955  , p_source_103            IN NUMBER
37956 --Payment Supplier Identifier
37957  , p_source_109            IN NUMBER
37958 --Payment Supplier Site Identifier
37959  , p_source_110            IN NUMBER
37960 --Payment Distribution Reversed Identifier
37961  , p_source_111            IN NUMBER
37962 --Payment Identifier
37963  , p_source_112            IN NUMBER
37964 --Pooled Bank Account Option
37965  , p_source_113            IN VARCHAR2
37966  , p_source_113_meaning    IN VARCHAR2
37967 --Payment Maturity Date
37968  , p_source_114            IN DATE
37969 --Payment Exchange Date
37970  , p_source_117            IN DATE
37971 --Payment Exchange Rate
37972  , p_source_118            IN NUMBER
37973 --Payment Exchange Rate Type
37974  , p_source_119            IN VARCHAR2
37975 --Payment Distribution (Matured Rate) Ledger Amount
37976  , p_source_121            IN NUMBER
37977 )
37978 IS
37979 
37980 l_component_type              VARCHAR2(80);
37981 l_component_code              VARCHAR2(30);
37982 l_component_type_code         VARCHAR2(1);
37983 l_component_appl_id           INTEGER;
37984 l_amb_context_code            VARCHAR2(30);
37985 l_entity_code                 VARCHAR2(30);
37989 l_line_definition_code        VARCHAR2(30);
37986 l_event_class_code            VARCHAR2(30);
37987 l_ae_header_id                NUMBER;
37988 l_event_type_code             VARCHAR2(30);
37990 l_line_definition_owner_code  VARCHAR2(1);
37991 --
37992 -- adr variables
37993 l_segment                     VARCHAR2(30);
37994 l_ccid                        NUMBER;
37995 l_adr_transaction_coa_id      NUMBER;
37996 l_adr_accounting_coa_id       NUMBER;
37997 l_adr_flexfield_segment_code  VARCHAR2(30);
37998 l_adr_flex_value_set_id       NUMBER;
37999 l_adr_value_type_code         VARCHAR2(30);
38000 l_adr_value_combination_id    NUMBER;
38001 l_adr_value_segment_code      VARCHAR2(30);
38002 
38003 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38004 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38005 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38006 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38007 
38008 -- 4262811 Variables ------------------------------------------------------------------------------------------
38009 l_entered_amt_idx             NUMBER;
38010 l_accted_amt_idx              NUMBER;
38011 l_acc_rev_flag                VARCHAR2(1);
38012 l_accrual_line_num            NUMBER;
38013 l_tmp_amt                     NUMBER;
38014 l_acc_rev_natural_side_code   VARCHAR2(1);
38015 
38016 l_num_entries                 NUMBER;
38017 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38018 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38019 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38020 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38021 l_recog_line_1                NUMBER;
38022 l_recog_line_2                NUMBER;
38023 
38024 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38025 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38026 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38027 
38028 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38029 
38030 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38031 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38032 
38033 ---------------------------------------------------------------------------------------------------------------
38034 
38035 
38036 --
38037 -- bulk performance
38038 --
38039 l_balance_type_code           VARCHAR2(1);
38040 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38041 l_log_module                  VARCHAR2(240);
38042 
38043 --
38044 -- Upgrade strategy
38045 --
38046 l_actual_upg_option           VARCHAR2(1);
38047 l_enc_upg_option           VARCHAR2(1);
38048 
38049 --
38050 BEGIN
38051 --
38052 IF g_log_enabled THEN
38053       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
38054 END IF;
38055 --
38056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38057 
38058       trace
38059          (p_msg      => 'BEGIN of AcctLineType_87'
38060          ,p_level    => C_LEVEL_PROCEDURE
38061          ,p_module   => l_log_module);
38062 
38063 END IF;
38064 --
38065 l_component_type             := 'AMB_JLT';
38066 l_component_code             := 'AP_CASH_PMT_MAT';
38067 l_component_type_code        := 'S';
38068 l_component_appl_id          :=  200;
38069 l_amb_context_code           := 'DEFAULT';
38070 l_entity_code                := 'AP_PAYMENTS';
38071 l_event_class_code           := 'FUTURE DATED PAYMENTS';
38072 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
38073 l_line_definition_owner_code := 'S';
38074 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
38075 --
38076 l_balance_type_code          := 'A';
38077 l_segment                     := NULL;
38078 l_ccid                        := NULL;
38079 l_adr_transaction_coa_id      := NULL;
38080 l_adr_accounting_coa_id       := NULL;
38081 l_adr_flexfield_segment_code  := NULL;
38082 l_adr_flex_value_set_id       := NULL;
38083 l_adr_value_type_code         := NULL;
38084 l_adr_value_combination_id    := NULL;
38085 l_adr_value_segment_code      := NULL;
38086 
38087 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
38088 l_bflow_class_code           := '';    -- 4219869 Business Flow
38089 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38090 l_budgetary_control_flag     := 'N';
38091 
38092 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38093 l_bflow_applied_to_amt       := NULL; -- 5132302
38094 l_entered_amt_idx            := NULL;          -- 4262811
38095 l_accted_amt_idx             := NULL;          -- 4262811
38096 l_acc_rev_flag               := NULL;          -- 4262811
38097 l_accrual_line_num           := NULL;          -- 4262811
38098 l_tmp_amt                    := NULL;          -- 4262811
38099 --
38100  
38101 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38102     l_balance_type_code <> 'B' THEN
38103 IF NVL(p_source_96,'
38104 ') =  'ISSUE_ISSUE' AND 
38105 (NVL(p_source_47,'
38106 ') <>  'Y' OR 
38107 NVL(p_source_47,'
38108 ') =  'Y' AND 
38109 NVL(p_source_113,'
38110 ') <>  'Y') AND 
38111 p_source_114 IS NOT NULL AND 
38112 NVL(p_source_97,'
38113 ') =  'CASH'
38114  THEN 
38115 
38116    --
38117    XLA_AE_LINES_PKG.SetNewLine;
38118 
38122    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38119    p_balance_type_code          := l_balance_type_code;
38120    -- set the flag so later we will know whether the gain loss line needs to be created
38121    
38123      p_actual_flag :='A';
38124    END IF;
38125 
38126    --
38127    -- bulk performance
38128    --
38129    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38130                                       p_header_num   => 0); -- 4262811
38131    --
38132    -- set accounting line options
38133    --
38134    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38135            p_natural_side_code          => 'C'
38136          , p_gain_or_loss_flag          => 'N'
38137          , p_gl_transfer_mode_code      => 'S'
38138          , p_acct_entry_type_code       => 'A'
38139          , p_switch_side_flag           => 'Y'
38140          , p_merge_duplicate_code       => 'A'
38141          );
38142    --
38143    l_acc_rev_natural_side_code := 'D';  -- 4262811
38144    -- 
38145    --
38146    -- set accounting line type info
38147    --
38148    xla_ae_lines_pkg.SetAcctLineType
38149       (p_component_type             => l_component_type
38150       ,p_event_type_code            => l_event_type_code
38151       ,p_line_definition_owner_code => l_line_definition_owner_code
38152       ,p_line_definition_code       => l_line_definition_code
38153       ,p_accounting_line_code       => l_component_code
38154       ,p_accounting_line_type_code  => l_component_type_code
38155       ,p_accounting_line_appl_id    => l_component_appl_id
38156       ,p_amb_context_code           => l_amb_context_code
38157       ,p_entity_code                => l_entity_code
38158       ,p_event_class_code           => l_event_class_code);
38159    --
38160    -- set accounting class
38161    --
38162    xla_ae_lines_pkg.SetAcctClass(
38163            p_accounting_class_code  => 'CASH'
38164          , p_ae_header_id           => l_ae_header_id
38165          );
38166 
38167    --
38168    -- set rounding class
38169    --
38170    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38171                       'CASH';
38172 
38173    --
38174    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38175    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38176    --
38177    -- bulk performance
38178    --
38179    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38180 
38181    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38182       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38183 
38184    -- 4955764
38185    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38186       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38187 
38188    -- 4458381 Public Sector Enh
38189    
38190    --
38191    -- set accounting attributes for the line type
38192    --
38193    l_entered_amt_idx := 9;
38194    l_accted_amt_idx  := 14;
38195    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38196    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38197    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
38198    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
38199    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
38200    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38201    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
38202    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
38203    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
38204    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
38205    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
38206    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38207    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
38208    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
38209    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
38210    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
38211    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
38212    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
38213    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
38214    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
38215    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
38216    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
38217    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
38218    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
38219    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
38220    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
38221    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
38222    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
38223    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
38224    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
38225    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
38226    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
38227    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
38231    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
38228    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
38229    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
38230    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
38232    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
38233    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
38234    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
38235    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
38236 
38237    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38238    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38239 
38240    ---------------------------------------------------------------------------------------------------------------
38241    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38242    ---------------------------------------------------------------------------------------------------------------
38243    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38244 
38245    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38246    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38247 
38248    IF xla_accounting_cache_pkg.GetValueChar
38249          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38250          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38251    AND l_bflow_method_code = 'PRIOR_ENTRY'
38252 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38253    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38254          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38255        )
38256    THEN
38257          xla_ae_lines_pkg.BflowUpgEntry
38258            (p_business_method_code    => l_bflow_method_code
38259            ,p_business_class_code     => l_bflow_class_code
38260            ,p_balance_type            => l_balance_type_code);
38261    ELSE
38262       NULL;
38263 -- No business flow processing for business flow method of NONE.
38264    END IF;
38265 
38266    --
38267    -- call analytical criteria
38268    --
38269    
38270 
38271 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
38272 xla_ae_lines_pkg.SetAnalyticalCriteria(
38273    p_analytical_criterion_name    => 'Check Id'
38274  , p_analytical_criterion_owner   => 'S'
38275  , p_analytical_criterion_code    => 'CHECK_ID'
38276  , p_amb_context_code             => 'DEFAULT'
38277  , p_balancing_flag               => 'N'
38278  
38279  , p_analytical_detail_char_1    =>  NULL
38280  , p_analytical_detail_num_1     =>  p_source_112
38281  , p_analytical_detail_date_1    =>  NULL
38282 
38283  , p_ae_header_id                 => l_ae_header_id
38284 )
38285 ;
38286 --
38287 
38288    --
38289    -- call description
38290    --
38291    -- No description or it is inherited.
38292    --
38293    -- call ADRs
38294    -- Bug 4922099
38295    --
38296    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38297         (NVL(l_actual_upg_option, 'N') = 'O') OR
38298         (NVL(l_enc_upg_option, 'N') = 'O')
38299       )
38300    THEN
38301    NULL;
38302    --
38303    --
38304    
38305   l_ccid := AcctDerRule_28(
38306            p_application_id           => p_application_id
38307          , p_ae_header_id             => l_ae_header_id 
38308 , p_source_17 => p_source_17
38309          , x_transaction_coa_id       => l_adr_transaction_coa_id
38310          , x_accounting_coa_id        => l_adr_accounting_coa_id
38311          , x_value_type_code          => l_adr_value_type_code
38312          , p_side                     => 'NA'
38313    );
38314 
38315    xla_ae_lines_pkg.set_ccid(
38316     p_code_combination_id          => l_ccid
38317   , p_value_type_code              => l_adr_value_type_code
38318   , p_transaction_coa_id           => l_adr_transaction_coa_id
38319   , p_accounting_coa_id            => l_adr_accounting_coa_id
38320   , p_adr_code                     => 'AP_CASH'
38321   , p_adr_type_code                => 'S'
38322   , p_component_type               => l_component_type
38323   , p_component_code               => l_component_code
38324   , p_component_type_code          => l_component_type_code
38325   , p_component_appl_id            => l_component_appl_id
38326   , p_amb_context_code             => l_amb_context_code
38327   , p_side                         => 'NA'
38328   );
38329 
38330 
38331    --
38332    --
38333    END IF;
38334    --
38335    -- Bug 4922099
38336    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38337           (NVL(l_enc_upg_option, 'N') = 'O')
38338         ) AND
38339         (l_bflow_method_code = 'PRIOR_ENTRY')
38340       )
38341    THEN
38342       IF
38343       --
38344       1 = 2
38345       --
38346       THEN
38347       xla_accounting_err_pkg.build_message
38348                                     (p_appli_s_name            => 'XLA'
38349                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38350                                     ,p_token_1                 => 'LINE_NUMBER'
38354                                                                              l_component_type
38351                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38352                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38353                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38355                                                                             ,l_component_code
38356                                                                             ,l_component_type_code
38357                                                                             ,l_component_appl_id
38358                                                                             ,l_amb_context_code
38359                                                                             ,l_entity_code
38360                                                                             ,l_event_class_code
38361                                                                            )
38362                                     ,p_token_3                 => 'OWNER'
38363                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38364                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38365                                                                           ,p_lookup_code    => l_component_type_code
38366                                                                          )
38367                                     ,p_token_4                 => 'PRODUCT_NAME'
38368                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38369                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38370                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38371                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38372                                     ,p_ae_header_id            =>  NULL
38373                                        );
38374 
38375         IF (C_LEVEL_ERROR>= g_log_level) THEN
38376                  trace
38377                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38378                       ,p_level    => C_LEVEL_ERROR
38379                       ,p_module   => l_log_module);
38380         END IF;
38381       END IF;
38382    END IF;
38383    --
38384    --
38385    ------------------------------------------------------------------------------------------------
38386    -- 4219869 Business Flow
38387    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38388    -- Prior Entry.  Currently, the following code is always generated.
38389    ------------------------------------------------------------------------------------------------
38390    XLA_AE_LINES_PKG.ValidateCurrentLine;
38391 
38392    ------------------------------------------------------------------------------------
38393    -- 4219869 Business Flow
38394    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38395    ------------------------------------------------------------------------------------
38396    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38397 
38398    ----------------------------------------------------------------------------------
38399    -- 4219869 Business Flow
38400    -- Update journal entry status -- Need to generate this within IF <condition>
38401    ----------------------------------------------------------------------------------
38402    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38403          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38404          ,p_balance_type_code => l_balance_type_code
38405          );
38406 
38407    -------------------------------------------------------------------------------------------
38408    -- 4262811 - Generate the Accrual Reversal lines
38409    -------------------------------------------------------------------------------------------
38410    BEGIN
38411       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38412                               (g_array_event(p_event_id).array_value_num('header_index'));
38413       IF l_acc_rev_flag IS NULL THEN
38414          l_acc_rev_flag := 'N';
38415       END IF;
38416    EXCEPTION
38417       WHEN OTHERS THEN
38418          l_acc_rev_flag := 'N';
38419    END;
38420    --
38421    IF (l_acc_rev_flag = 'Y') THEN
38422 
38423        -- 4645092  ------------------------------------------------------------------------------
38424        -- To allow MPA report to determine if it should generate report process
38425        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38426        ------------------------------------------------------------------------------------------
38427 
38428        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38429        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38430    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38431    -- call ADRs
38432    -- Bug 4922099
38433    --
38434    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38435         (NVL(l_actual_upg_option, 'N') = 'O') OR
38436         (NVL(l_enc_upg_option, 'N') = 'O')
38437       )
38438    THEN
38439    NULL;
38440    --
38441    --
38442    
38443   l_ccid := AcctDerRule_28(
38444            p_application_id           => p_application_id
38448          , x_accounting_coa_id        => l_adr_accounting_coa_id
38445          , p_ae_header_id             => l_ae_header_id 
38446 , p_source_17 => p_source_17
38447          , x_transaction_coa_id       => l_adr_transaction_coa_id
38449          , x_value_type_code          => l_adr_value_type_code
38450          , p_side                     => 'NA'
38451    );
38452 
38453    xla_ae_lines_pkg.set_ccid(
38454     p_code_combination_id          => l_ccid
38455   , p_value_type_code              => l_adr_value_type_code
38456   , p_transaction_coa_id           => l_adr_transaction_coa_id
38457   , p_accounting_coa_id            => l_adr_accounting_coa_id
38458   , p_adr_code                     => 'AP_CASH'
38459   , p_adr_type_code                => 'S'
38460   , p_component_type               => l_component_type
38461   , p_component_code               => l_component_code
38462   , p_component_type_code          => l_component_type_code
38463   , p_component_appl_id            => l_component_appl_id
38464   , p_amb_context_code             => l_amb_context_code
38465   , p_side                         => 'NA'
38466   );
38467 
38468 
38469    --
38470    --
38471    END IF;
38472 
38473        --
38474        -- Update the line information that should be overwritten
38475        --
38476        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38477                                          p_header_num   => 1);
38478        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38479 
38480        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38481 
38482        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38483           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38484        END IF;
38485 
38486       --
38487       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38488       --
38489       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38490           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38491       ELSE
38492           ---------------------------------------------------------------------------------------------------
38493           -- 4262811a Switch Sign
38494           ---------------------------------------------------------------------------------------------------
38495           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38496           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38497                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38498           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38499                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38500           -- 5132302
38501           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38502                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38503 
38504       END IF;
38505 
38506       -- 4955764
38507       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38508       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38509 
38510 
38511       XLA_AE_LINES_PKG.ValidateCurrentLine;
38512       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38513 
38514       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38515                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38516                ,p_balance_type_code => l_balance_type_code);
38517 
38518    END IF;
38519 
38520    -----------------------------------------------------------------------------------------
38521    -- 4262811 Multiperiod Accounting
38522    -----------------------------------------------------------------------------------------
38523      -- No MPA option is assigned.
38524 
38525 
38526 END IF;
38527 END IF;
38528 --
38529 
38530 --
38531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38532    trace
38533       (p_msg      => 'END of AcctLineType_87'
38534       ,p_level    => C_LEVEL_PROCEDURE
38535       ,p_module   => l_log_module);
38536 END IF;
38537 --
38538 EXCEPTION
38539   WHEN xla_exceptions_pkg.application_exception THEN
38540       RAISE;
38541   WHEN OTHERS THEN
38542        xla_exceptions_pkg.raise_message
38543            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_87');
38544 END AcctLineType_87;
38545 --
38546 
38547 ---------------------------------------
38548 --
38549 -- PRIVATE FUNCTION
38550 --         AcctLineType_88
38551 --
38552 ---------------------------------------
38553 PROCEDURE AcctLineType_88 (
38554   p_application_id        IN NUMBER
38555  ,p_event_id              IN NUMBER
38556  ,p_calculate_acctd_flag  IN VARCHAR2
38557  ,p_calculate_g_l_flag    IN VARCHAR2
38558  ,p_actual_flag           IN OUT VARCHAR2
38559  ,p_balance_type_code     OUT VARCHAR2
38560  ,p_gain_or_loss_ref      OUT VARCHAR2
38561  
38562 --Payment Currency Code
38563  , p_source_13            IN VARCHAR2
38564 --Automatic Offsets Value
38565  , p_source_15            IN VARCHAR2
38566  , p_source_15_meaning    IN VARCHAR2
38570  , p_source_52            IN VARCHAR2
38567 --Bank Cash Account
38568  , p_source_17            IN NUMBER
38569 --Accounting Reversal Indicator
38571 --Distribution Link Type
38572  , p_source_54            IN VARCHAR2
38573 --Override Accounted Amount Indicator
38574  , p_source_79            IN VARCHAR2
38575  , p_source_79_meaning    IN VARCHAR2
38576 --Third Party Type
38577  , p_source_82            IN VARCHAR2
38578 --Business Flow Accounts Payable Application Identifier
38579  , p_source_90            IN NUMBER
38580 --When to Account for Payment Option
38581  , p_source_96            IN VARCHAR2
38582 --Payment Distribution Type
38583  , p_source_97            IN VARCHAR2
38584  , p_source_97_meaning    IN VARCHAR2
38585 --Payment Distribution Amount
38586  , p_source_98            IN NUMBER
38587 --Business Flow Payment Distribution Type
38588  , p_source_99            IN VARCHAR2
38589 --Business Flow Payment Entity Code
38590  , p_source_100            IN VARCHAR2
38591 --Business Flow Payment Distribution Identifier
38592  , p_source_101            IN NUMBER
38593 --Business Flow Payment Identifier
38594  , p_source_102            IN NUMBER
38595 --Payment Distribution Identifier
38596  , p_source_103            IN NUMBER
38597 --Payment Supplier Identifier
38598  , p_source_109            IN NUMBER
38599 --Payment Supplier Site Identifier
38600  , p_source_110            IN NUMBER
38601 --Payment Distribution Reversed Identifier
38602  , p_source_111            IN NUMBER
38603 --Payment Identifier
38604  , p_source_112            IN NUMBER
38605 --Pooled Bank Account Option
38606  , p_source_113            IN VARCHAR2
38607  , p_source_113_meaning    IN VARCHAR2
38608 --Payment Maturity Date
38609  , p_source_114            IN DATE
38610 --Payment Exchange Date
38611  , p_source_117            IN DATE
38612 --Payment Exchange Rate
38613  , p_source_118            IN NUMBER
38614 --Payment Exchange Rate Type
38615  , p_source_119            IN VARCHAR2
38616 --Payment Distribution (Matured Rate) Ledger Amount
38617  , p_source_121            IN NUMBER
38618 )
38619 IS
38620 
38621 l_component_type              VARCHAR2(80);
38622 l_component_code              VARCHAR2(30);
38623 l_component_type_code         VARCHAR2(1);
38624 l_component_appl_id           INTEGER;
38625 l_amb_context_code            VARCHAR2(30);
38626 l_entity_code                 VARCHAR2(30);
38627 l_event_class_code            VARCHAR2(30);
38628 l_ae_header_id                NUMBER;
38629 l_event_type_code             VARCHAR2(30);
38630 l_line_definition_code        VARCHAR2(30);
38631 l_line_definition_owner_code  VARCHAR2(1);
38632 --
38633 -- adr variables
38634 l_segment                     VARCHAR2(30);
38635 l_ccid                        NUMBER;
38636 l_adr_transaction_coa_id      NUMBER;
38637 l_adr_accounting_coa_id       NUMBER;
38638 l_adr_flexfield_segment_code  VARCHAR2(30);
38639 l_adr_flex_value_set_id       NUMBER;
38640 l_adr_value_type_code         VARCHAR2(30);
38641 l_adr_value_combination_id    NUMBER;
38642 l_adr_value_segment_code      VARCHAR2(30);
38643 
38644 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38645 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38646 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38647 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38648 
38649 -- 4262811 Variables ------------------------------------------------------------------------------------------
38650 l_entered_amt_idx             NUMBER;
38651 l_accted_amt_idx              NUMBER;
38652 l_acc_rev_flag                VARCHAR2(1);
38653 l_accrual_line_num            NUMBER;
38654 l_tmp_amt                     NUMBER;
38655 l_acc_rev_natural_side_code   VARCHAR2(1);
38656 
38657 l_num_entries                 NUMBER;
38658 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38659 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38660 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38661 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38662 l_recog_line_1                NUMBER;
38663 l_recog_line_2                NUMBER;
38664 
38665 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38666 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38667 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38668 
38669 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38670 
38671 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38672 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38673 
38674 ---------------------------------------------------------------------------------------------------------------
38675 
38676 
38677 --
38678 -- bulk performance
38679 --
38680 l_balance_type_code           VARCHAR2(1);
38681 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38682 l_log_module                  VARCHAR2(240);
38683 
38684 --
38685 -- Upgrade strategy
38686 --
38687 l_actual_upg_option           VARCHAR2(1);
38688 l_enc_upg_option           VARCHAR2(1);
38689 
38690 --
38691 BEGIN
38692 --
38693 IF g_log_enabled THEN
38694       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
38695 END IF;
38696 --
38700          (p_msg      => 'BEGIN of AcctLineType_88'
38697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38698 
38699       trace
38701          ,p_level    => C_LEVEL_PROCEDURE
38702          ,p_module   => l_log_module);
38703 
38704 END IF;
38705 --
38706 l_component_type             := 'AMB_JLT';
38707 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
38708 l_component_type_code        := 'S';
38709 l_component_appl_id          :=  200;
38710 l_amb_context_code           := 'DEFAULT';
38711 l_entity_code                := 'AP_PAYMENTS';
38712 l_event_class_code           := 'FUTURE DATED PAYMENTS';
38713 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
38714 l_line_definition_owner_code := 'S';
38715 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
38716 --
38717 l_balance_type_code          := 'A';
38718 l_segment                     := NULL;
38719 l_ccid                        := NULL;
38720 l_adr_transaction_coa_id      := NULL;
38721 l_adr_accounting_coa_id       := NULL;
38722 l_adr_flexfield_segment_code  := NULL;
38723 l_adr_flex_value_set_id       := NULL;
38724 l_adr_value_type_code         := NULL;
38725 l_adr_value_combination_id    := NULL;
38726 l_adr_value_segment_code      := NULL;
38727 
38728 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
38729 l_bflow_class_code           := '';    -- 4219869 Business Flow
38730 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38731 l_budgetary_control_flag     := 'N';
38732 
38733 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38734 l_bflow_applied_to_amt       := NULL; -- 5132302
38735 l_entered_amt_idx            := NULL;          -- 4262811
38736 l_accted_amt_idx             := NULL;          -- 4262811
38737 l_acc_rev_flag               := NULL;          -- 4262811
38738 l_accrual_line_num           := NULL;          -- 4262811
38739 l_tmp_amt                    := NULL;          -- 4262811
38740 --
38741  
38742 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38743     l_balance_type_code <> 'B' THEN
38744 IF NVL(p_source_96,'
38745 ') =  'ISSUE_ISSUE' AND 
38746 (NVL(p_source_113,'
38747 ') =  'Y' AND 
38748 NVL(p_source_15,'
38749 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
38750 p_source_114 IS NOT NULL AND 
38751 NVL(p_source_97,'
38752 ') =  'CASH'
38753  THEN 
38754 
38755    --
38756    XLA_AE_LINES_PKG.SetNewLine;
38757 
38758    p_balance_type_code          := l_balance_type_code;
38759    -- set the flag so later we will know whether the gain loss line needs to be created
38760    
38761    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38762      p_actual_flag :='A';
38763    END IF;
38764 
38765    --
38766    -- bulk performance
38767    --
38768    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38769                                       p_header_num   => 0); -- 4262811
38770    --
38771    -- set accounting line options
38772    --
38773    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38774            p_natural_side_code          => 'C'
38775          , p_gain_or_loss_flag          => 'N'
38776          , p_gl_transfer_mode_code      => 'S'
38777          , p_acct_entry_type_code       => 'A'
38778          , p_switch_side_flag           => 'Y'
38779          , p_merge_duplicate_code       => 'A'
38780          );
38781    --
38782    l_acc_rev_natural_side_code := 'D';  -- 4262811
38783    -- 
38784    --
38785    -- set accounting line type info
38786    --
38787    xla_ae_lines_pkg.SetAcctLineType
38788       (p_component_type             => l_component_type
38789       ,p_event_type_code            => l_event_type_code
38790       ,p_line_definition_owner_code => l_line_definition_owner_code
38791       ,p_line_definition_code       => l_line_definition_code
38792       ,p_accounting_line_code       => l_component_code
38793       ,p_accounting_line_type_code  => l_component_type_code
38794       ,p_accounting_line_appl_id    => l_component_appl_id
38795       ,p_amb_context_code           => l_amb_context_code
38796       ,p_entity_code                => l_entity_code
38797       ,p_event_class_code           => l_event_class_code);
38798    --
38799    -- set accounting class
38800    --
38801    xla_ae_lines_pkg.SetAcctClass(
38802            p_accounting_class_code  => 'CASH'
38803          , p_ae_header_id           => l_ae_header_id
38804          );
38805 
38806    --
38807    -- set rounding class
38808    --
38809    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38810                       'CASH';
38811 
38812    --
38813    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38814    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38815    --
38816    -- bulk performance
38817    --
38818    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38819 
38820    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38821       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38822 
38823    -- 4955764
38824    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38825       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38826 
38830    -- set accounting attributes for the line type
38827    -- 4458381 Public Sector Enh
38828    
38829    --
38831    --
38832    l_entered_amt_idx := 9;
38833    l_accted_amt_idx  := 14;
38834    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38835    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38836    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
38837    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
38838    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
38839    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38840    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
38841    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
38842    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
38843    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
38844    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
38845    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38846    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
38847    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
38848    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
38849    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
38850    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
38851    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
38852    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
38853    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
38854    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
38855    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
38856    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
38857    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
38858    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
38859    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
38860    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
38861    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
38862    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
38863    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
38864    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
38865    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
38866    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
38867    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
38868    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
38869    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
38870    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
38871    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
38872    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
38873    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
38874    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
38875 
38876    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38877    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38878 
38879    ---------------------------------------------------------------------------------------------------------------
38880    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38881    ---------------------------------------------------------------------------------------------------------------
38882    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38883 
38884    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38885    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38886 
38887    IF xla_accounting_cache_pkg.GetValueChar
38888          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38889          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38890    AND l_bflow_method_code = 'PRIOR_ENTRY'
38891 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38892    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38893          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38894        )
38895    THEN
38896          xla_ae_lines_pkg.BflowUpgEntry
38897            (p_business_method_code    => l_bflow_method_code
38898            ,p_business_class_code     => l_bflow_class_code
38899            ,p_balance_type            => l_balance_type_code);
38900    ELSE
38901       NULL;
38902 XLA_AE_LINES_PKG.business_flow_validation(
38903                                 p_business_method_code     => l_bflow_method_code
38904                                ,p_business_class_code      => l_bflow_class_code
38905                                ,p_inherit_description_flag => l_inherit_desc_flag);
38906    END IF;
38907 
38908    --
38909    -- call analytical criteria
38910    --
38911    
38912 
38913 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
38914 xla_ae_lines_pkg.SetAnalyticalCriteria(
38915    p_analytical_criterion_name    => 'Check Id'
38916  , p_analytical_criterion_owner   => 'S'
38917  , p_analytical_criterion_code    => 'CHECK_ID'
38918  , p_amb_context_code             => 'DEFAULT'
38919  , p_balancing_flag               => 'N'
38920  
38921  , p_analytical_detail_char_1    =>  NULL
38922  , p_analytical_detail_num_1     =>  p_source_112
38926 )
38923  , p_analytical_detail_date_1    =>  NULL
38924 
38925  , p_ae_header_id                 => l_ae_header_id
38927 ;
38928 --
38929 
38930    --
38931    -- call description
38932    --
38933    -- No description or it is inherited.
38934    --
38935    -- call ADRs
38936    -- Bug 4922099
38937    --
38938    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38939         (NVL(l_actual_upg_option, 'N') = 'O') OR
38940         (NVL(l_enc_upg_option, 'N') = 'O')
38941       )
38942    THEN
38943    NULL;
38944    --
38945    --
38946    
38947    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
38948      p_code_combination_id      => TO_NUMBER(C_NUM)
38949    , p_value_type_code          => NULL
38950    , p_transaction_coa_id       => null
38951    , p_accounting_coa_id        => null
38952    , p_adr_code                 => NULL
38953    , p_adr_type_code            => NULL
38954    , p_component_type           => l_component_type
38955    , p_component_code           => l_component_code
38956    , p_component_type_code      => l_component_type_code
38957    , p_component_appl_id        => l_component_appl_id
38958    , p_amb_context_code         => l_amb_context_code
38959    , p_side                     => NULL
38960    );
38961 
38962    
38963   -- initialise segments
38964   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38965   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38966   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38967   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38968   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38969   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38970   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38971   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38972   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38973   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38974   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38975   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38976   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38977   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38978   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38979   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38980   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38981   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38982   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38983   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38984   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38985   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38986   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38987   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38988   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38989   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38990   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38991   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38992   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38993   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38994   --
38995 
38996    --
38997 
38998 
38999    l_segment := AcctDerRule_6(
39000            p_application_id           => p_application_id
39001          , p_ae_header_id             => l_ae_header_id 
39002 , p_source_17 => p_source_17
39003          , x_transaction_coa_id       => l_adr_transaction_coa_id
39004          , x_accounting_coa_id        => l_adr_accounting_coa_id
39005          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39006          , x_flex_value_set_id        => l_adr_flex_value_set_id
39007          , x_value_type_code          => l_adr_value_type_code
39008          , x_value_combination_id     => l_adr_value_combination_id
39009          , x_value_segment_code       => l_adr_value_segment_code
39010          , p_side                     => 'NA'
39011          , p_override_seg_flag        => 'Y'
39012    );
39013 
39014    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39015 
39016       xla_ae_lines_pkg.set_segment(
39017           p_to_segment_code         => 'GL_ACCOUNT'
39018         , p_segment_value           => l_segment
39019         , p_from_segment_code       => l_adr_value_segment_code
39020         , p_from_combination_id     => l_adr_value_combination_id
39021         , p_value_type_code         => l_adr_value_type_code
39022         , p_transaction_coa_id      => l_adr_transaction_coa_id
39023         , p_accounting_coa_id       => l_adr_accounting_coa_id
39027         , p_adr_type_code           => 'S'
39024         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39025         , p_flex_value_set_id       => l_adr_flex_value_set_id
39026         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
39028         , p_component_type          => l_component_type
39029         , p_component_code          => l_component_code
39030         , p_component_type_code     => l_component_type_code
39031         , p_component_appl_id       => l_component_appl_id
39032         , p_amb_context_code        => l_amb_context_code
39033         , p_entity_code             => 'AP_PAYMENTS'
39034         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39035         , p_side                    => 'NA'
39036         );
39037 
39038   END IF;
39039 
39040    --
39041    --
39042    END IF;
39043    --
39044    -- Bug 4922099
39045    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39046           (NVL(l_enc_upg_option, 'N') = 'O')
39047         ) AND
39048         (l_bflow_method_code = 'PRIOR_ENTRY')
39049       )
39050    THEN
39051       IF
39052       --
39053       1 = 2
39054       --
39055       THEN
39056       xla_accounting_err_pkg.build_message
39057                                     (p_appli_s_name            => 'XLA'
39058                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39059                                     ,p_token_1                 => 'LINE_NUMBER'
39060                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39061                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39062                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39063                                                                              l_component_type
39064                                                                             ,l_component_code
39065                                                                             ,l_component_type_code
39066                                                                             ,l_component_appl_id
39067                                                                             ,l_amb_context_code
39068                                                                             ,l_entity_code
39069                                                                             ,l_event_class_code
39070                                                                            )
39071                                     ,p_token_3                 => 'OWNER'
39072                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39073                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39074                                                                           ,p_lookup_code    => l_component_type_code
39075                                                                          )
39076                                     ,p_token_4                 => 'PRODUCT_NAME'
39077                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39078                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39079                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39080                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39081                                     ,p_ae_header_id            =>  NULL
39082                                        );
39083 
39084         IF (C_LEVEL_ERROR>= g_log_level) THEN
39085                  trace
39086                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39087                       ,p_level    => C_LEVEL_ERROR
39088                       ,p_module   => l_log_module);
39089         END IF;
39090       END IF;
39091    END IF;
39092    --
39093    --
39094    ------------------------------------------------------------------------------------------------
39095    -- 4219869 Business Flow
39096    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39097    -- Prior Entry.  Currently, the following code is always generated.
39098    ------------------------------------------------------------------------------------------------
39099    XLA_AE_LINES_PKG.ValidateCurrentLine;
39100 
39101    ------------------------------------------------------------------------------------
39102    -- 4219869 Business Flow
39103    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39104    ------------------------------------------------------------------------------------
39105    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39106 
39107    ----------------------------------------------------------------------------------
39108    -- 4219869 Business Flow
39109    -- Update journal entry status -- Need to generate this within IF <condition>
39110    ----------------------------------------------------------------------------------
39111    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39112          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39113          ,p_balance_type_code => l_balance_type_code
39114          );
39115 
39116    -------------------------------------------------------------------------------------------
39117    -- 4262811 - Generate the Accrual Reversal lines
39118    -------------------------------------------------------------------------------------------
39119    BEGIN
39123          l_acc_rev_flag := 'N';
39120       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39121                               (g_array_event(p_event_id).array_value_num('header_index'));
39122       IF l_acc_rev_flag IS NULL THEN
39124       END IF;
39125    EXCEPTION
39126       WHEN OTHERS THEN
39127          l_acc_rev_flag := 'N';
39128    END;
39129    --
39130    IF (l_acc_rev_flag = 'Y') THEN
39131 
39132        -- 4645092  ------------------------------------------------------------------------------
39133        -- To allow MPA report to determine if it should generate report process
39134        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39135        ------------------------------------------------------------------------------------------
39136 
39137        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39138        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39139    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39140    -- call ADRs
39141    -- Bug 4922099
39142    --
39143    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39144         (NVL(l_actual_upg_option, 'N') = 'O') OR
39145         (NVL(l_enc_upg_option, 'N') = 'O')
39146       )
39147    THEN
39148    NULL;
39149    --
39150    --
39151    
39152    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
39153      p_code_combination_id      => TO_NUMBER(C_NUM)
39154    , p_value_type_code          => NULL
39155    , p_transaction_coa_id       => null
39156    , p_accounting_coa_id        => null
39157    , p_adr_code                 => NULL
39158    , p_adr_type_code            => NULL
39159    , p_component_type           => l_component_type
39160    , p_component_code           => l_component_code
39161    , p_component_type_code      => l_component_type_code
39162    , p_component_appl_id        => l_component_appl_id
39163    , p_amb_context_code         => l_amb_context_code
39164    , p_side                     => NULL
39165    );
39166 
39167    
39168   -- initialise segments
39169   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39170   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39171   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39172   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39173   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39174   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39175   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39176   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39177   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
39178   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39179   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39180   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39181   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39182   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39183   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39184   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39185   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39186   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39187   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39188   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39189   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39190   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39191   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39192   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39193   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39194   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39195   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39196   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39197   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39198   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
39199   --
39200 
39201    --
39202 
39203 
39204    l_segment := AcctDerRule_6(
39205            p_application_id           => p_application_id
39206          , p_ae_header_id             => l_ae_header_id 
39207 , p_source_17 => p_source_17
39208          , x_transaction_coa_id       => l_adr_transaction_coa_id
39209          , x_accounting_coa_id        => l_adr_accounting_coa_id
39210          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
39211          , x_flex_value_set_id        => l_adr_flex_value_set_id
39212          , x_value_type_code          => l_adr_value_type_code
39213          , x_value_combination_id     => l_adr_value_combination_id
39214          , x_value_segment_code       => l_adr_value_segment_code
39215          , p_side                     => 'NA'
39216          , p_override_seg_flag        => 'Y'
39217    );
39221       xla_ae_lines_pkg.set_segment(
39218 
39219    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
39220 
39222           p_to_segment_code         => 'GL_ACCOUNT'
39223         , p_segment_value           => l_segment
39224         , p_from_segment_code       => l_adr_value_segment_code
39225         , p_from_combination_id     => l_adr_value_combination_id
39226         , p_value_type_code         => l_adr_value_type_code
39227         , p_transaction_coa_id      => l_adr_transaction_coa_id
39228         , p_accounting_coa_id       => l_adr_accounting_coa_id
39229         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
39230         , p_flex_value_set_id       => l_adr_flex_value_set_id
39231         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
39232         , p_adr_type_code           => 'S'
39233         , p_component_type          => l_component_type
39234         , p_component_code          => l_component_code
39235         , p_component_type_code     => l_component_type_code
39236         , p_component_appl_id       => l_component_appl_id
39237         , p_amb_context_code        => l_amb_context_code
39238         , p_entity_code             => 'AP_PAYMENTS'
39239         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39240         , p_side                    => 'NA'
39241         );
39242 
39243   END IF;
39244 
39245    --
39246    --
39247    END IF;
39248 
39249        --
39250        -- Update the line information that should be overwritten
39251        --
39252        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39253                                          p_header_num   => 1);
39254        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39255 
39256        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39257 
39258        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39259           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39260        END IF;
39261 
39262       --
39263       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39264       --
39265       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39266           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39267       ELSE
39268           ---------------------------------------------------------------------------------------------------
39269           -- 4262811a Switch Sign
39270           ---------------------------------------------------------------------------------------------------
39271           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39272           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39273                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39274           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39275                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39276           -- 5132302
39277           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39278                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39279 
39280       END IF;
39281 
39282       -- 4955764
39283       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39284       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39285 
39286 
39287       XLA_AE_LINES_PKG.ValidateCurrentLine;
39288       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39289 
39290       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39291                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39292                ,p_balance_type_code => l_balance_type_code);
39293 
39294    END IF;
39295 
39296    -----------------------------------------------------------------------------------------
39297    -- 4262811 Multiperiod Accounting
39298    -----------------------------------------------------------------------------------------
39299      -- No MPA option is assigned.
39300 
39301 
39302 END IF;
39303 END IF;
39304 --
39305 
39306 --
39307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39308    trace
39309       (p_msg      => 'END of AcctLineType_88'
39310       ,p_level    => C_LEVEL_PROCEDURE
39311       ,p_module   => l_log_module);
39312 END IF;
39313 --
39314 EXCEPTION
39315   WHEN xla_exceptions_pkg.application_exception THEN
39316       RAISE;
39317   WHEN OTHERS THEN
39318        xla_exceptions_pkg.raise_message
39319            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_88');
39320 END AcctLineType_88;
39321 --
39322 
39323 ---------------------------------------
39324 --
39325 -- PRIVATE FUNCTION
39326 --         AcctLineType_89
39327 --
39328 ---------------------------------------
39329 PROCEDURE AcctLineType_89 (
39330   p_application_id        IN NUMBER
39331  ,p_event_id              IN NUMBER
39332  ,p_calculate_acctd_flag  IN VARCHAR2
39333  ,p_calculate_g_l_flag    IN VARCHAR2
39334  ,p_actual_flag           IN OUT VARCHAR2
39335  ,p_balance_type_code     OUT VARCHAR2
39336  ,p_gain_or_loss_ref      OUT VARCHAR2
39337  
39338 --Payment Currency Code
39342  , p_source_15_meaning    IN VARCHAR2
39339  , p_source_13            IN VARCHAR2
39340 --Automatic Offsets Value
39341  , p_source_15            IN VARCHAR2
39343 --Bank Cash Account
39344  , p_source_17            IN NUMBER
39345 --Accounting Reversal Indicator
39346  , p_source_52            IN VARCHAR2
39347 --Distribution Link Type
39348  , p_source_54            IN VARCHAR2
39349 --Override Accounted Amount Indicator
39350  , p_source_79            IN VARCHAR2
39351  , p_source_79_meaning    IN VARCHAR2
39352 --Third Party Type
39353  , p_source_82            IN VARCHAR2
39354 --Business Flow Accounts Payable Application Identifier
39355  , p_source_90            IN NUMBER
39356 --When to Account for Payment Option
39357  , p_source_96            IN VARCHAR2
39358 --Payment Distribution Type
39359  , p_source_97            IN VARCHAR2
39360  , p_source_97_meaning    IN VARCHAR2
39361 --Payment Distribution Amount
39362  , p_source_98            IN NUMBER
39363 --Business Flow Payment Distribution Type
39364  , p_source_99            IN VARCHAR2
39365 --Business Flow Payment Entity Code
39366  , p_source_100            IN VARCHAR2
39367 --Business Flow Payment Distribution Identifier
39368  , p_source_101            IN NUMBER
39369 --Business Flow Payment Identifier
39370  , p_source_102            IN NUMBER
39371 --Payment Distribution Identifier
39372  , p_source_103            IN NUMBER
39373 --Payment Supplier Identifier
39374  , p_source_109            IN NUMBER
39375 --Payment Supplier Site Identifier
39376  , p_source_110            IN NUMBER
39377 --Payment Distribution Reversed Identifier
39378  , p_source_111            IN NUMBER
39379 --Payment Identifier
39380  , p_source_112            IN NUMBER
39381 --Pooled Bank Account Option
39382  , p_source_113            IN VARCHAR2
39383  , p_source_113_meaning    IN VARCHAR2
39384 --Payment Maturity Date
39385  , p_source_114            IN DATE
39386 --Payment Exchange Date
39387  , p_source_117            IN DATE
39388 --Payment Exchange Rate
39389  , p_source_118            IN NUMBER
39390 --Payment Exchange Rate Type
39391  , p_source_119            IN VARCHAR2
39392 --Payment Distribution (Matured Rate) Ledger Amount
39393  , p_source_121            IN NUMBER
39394 )
39395 IS
39396 
39397 l_component_type              VARCHAR2(80);
39398 l_component_code              VARCHAR2(30);
39399 l_component_type_code         VARCHAR2(1);
39400 l_component_appl_id           INTEGER;
39401 l_amb_context_code            VARCHAR2(30);
39402 l_entity_code                 VARCHAR2(30);
39403 l_event_class_code            VARCHAR2(30);
39404 l_ae_header_id                NUMBER;
39405 l_event_type_code             VARCHAR2(30);
39406 l_line_definition_code        VARCHAR2(30);
39407 l_line_definition_owner_code  VARCHAR2(1);
39408 --
39409 -- adr variables
39410 l_segment                     VARCHAR2(30);
39411 l_ccid                        NUMBER;
39412 l_adr_transaction_coa_id      NUMBER;
39413 l_adr_accounting_coa_id       NUMBER;
39414 l_adr_flexfield_segment_code  VARCHAR2(30);
39415 l_adr_flex_value_set_id       NUMBER;
39416 l_adr_value_type_code         VARCHAR2(30);
39417 l_adr_value_combination_id    NUMBER;
39418 l_adr_value_segment_code      VARCHAR2(30);
39419 
39420 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39421 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39422 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39423 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39424 
39425 -- 4262811 Variables ------------------------------------------------------------------------------------------
39426 l_entered_amt_idx             NUMBER;
39427 l_accted_amt_idx              NUMBER;
39428 l_acc_rev_flag                VARCHAR2(1);
39429 l_accrual_line_num            NUMBER;
39430 l_tmp_amt                     NUMBER;
39431 l_acc_rev_natural_side_code   VARCHAR2(1);
39432 
39433 l_num_entries                 NUMBER;
39434 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39435 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39436 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39437 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39438 l_recog_line_1                NUMBER;
39439 l_recog_line_2                NUMBER;
39440 
39441 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39442 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39443 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39444 
39445 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39446 
39447 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39448 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39449 
39450 ---------------------------------------------------------------------------------------------------------------
39451 
39452 
39453 --
39454 -- bulk performance
39455 --
39456 l_balance_type_code           VARCHAR2(1);
39457 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39458 l_log_module                  VARCHAR2(240);
39459 
39460 --
39461 -- Upgrade strategy
39462 --
39463 l_actual_upg_option           VARCHAR2(1);
39467 BEGIN
39464 l_enc_upg_option           VARCHAR2(1);
39465 
39466 --
39468 --
39469 IF g_log_enabled THEN
39470       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
39471 END IF;
39472 --
39473 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39474 
39475       trace
39476          (p_msg      => 'BEGIN of AcctLineType_89'
39477          ,p_level    => C_LEVEL_PROCEDURE
39478          ,p_module   => l_log_module);
39479 
39480 END IF;
39481 --
39482 l_component_type             := 'AMB_JLT';
39483 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
39484 l_component_type_code        := 'S';
39485 l_component_appl_id          :=  200;
39486 l_amb_context_code           := 'DEFAULT';
39487 l_entity_code                := 'AP_PAYMENTS';
39488 l_event_class_code           := 'FUTURE DATED PAYMENTS';
39489 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
39490 l_line_definition_owner_code := 'S';
39491 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
39492 --
39493 l_balance_type_code          := 'A';
39494 l_segment                     := NULL;
39495 l_ccid                        := NULL;
39496 l_adr_transaction_coa_id      := NULL;
39497 l_adr_accounting_coa_id       := NULL;
39498 l_adr_flexfield_segment_code  := NULL;
39499 l_adr_flex_value_set_id       := NULL;
39500 l_adr_value_type_code         := NULL;
39501 l_adr_value_combination_id    := NULL;
39502 l_adr_value_segment_code      := NULL;
39503 
39504 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
39505 l_bflow_class_code           := '';    -- 4219869 Business Flow
39506 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39507 l_budgetary_control_flag     := 'N';
39508 
39509 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39510 l_bflow_applied_to_amt       := NULL; -- 5132302
39511 l_entered_amt_idx            := NULL;          -- 4262811
39512 l_accted_amt_idx             := NULL;          -- 4262811
39513 l_acc_rev_flag               := NULL;          -- 4262811
39514 l_accrual_line_num           := NULL;          -- 4262811
39515 l_tmp_amt                    := NULL;          -- 4262811
39516 --
39517  
39518 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39519     l_balance_type_code <> 'B' THEN
39520 IF NVL(p_source_96,'
39521 ') =  'ISSUE_ISSUE' AND 
39522 (NVL(p_source_113,'
39523 ') =  'Y' AND 
39524 NVL(p_source_15,'
39525 ') =  'BALANCING_SEGMENT') AND 
39526 p_source_114 IS NOT NULL AND 
39527 NVL(p_source_97,'
39528 ') =  'CASH'
39529  THEN 
39530 
39531    --
39532    XLA_AE_LINES_PKG.SetNewLine;
39533 
39534    p_balance_type_code          := l_balance_type_code;
39535    -- set the flag so later we will know whether the gain loss line needs to be created
39536    
39537    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39538      p_actual_flag :='A';
39539    END IF;
39540 
39541    --
39542    -- bulk performance
39543    --
39544    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39545                                       p_header_num   => 0); -- 4262811
39546    --
39547    -- set accounting line options
39548    --
39549    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39550            p_natural_side_code          => 'C'
39551          , p_gain_or_loss_flag          => 'N'
39552          , p_gl_transfer_mode_code      => 'S'
39553          , p_acct_entry_type_code       => 'A'
39554          , p_switch_side_flag           => 'Y'
39555          , p_merge_duplicate_code       => 'A'
39556          );
39557    --
39558    l_acc_rev_natural_side_code := 'D';  -- 4262811
39559    -- 
39560    --
39561    -- set accounting line type info
39562    --
39563    xla_ae_lines_pkg.SetAcctLineType
39564       (p_component_type             => l_component_type
39565       ,p_event_type_code            => l_event_type_code
39566       ,p_line_definition_owner_code => l_line_definition_owner_code
39567       ,p_line_definition_code       => l_line_definition_code
39568       ,p_accounting_line_code       => l_component_code
39569       ,p_accounting_line_type_code  => l_component_type_code
39570       ,p_accounting_line_appl_id    => l_component_appl_id
39571       ,p_amb_context_code           => l_amb_context_code
39572       ,p_entity_code                => l_entity_code
39573       ,p_event_class_code           => l_event_class_code);
39574    --
39575    -- set accounting class
39576    --
39577    xla_ae_lines_pkg.SetAcctClass(
39578            p_accounting_class_code  => 'CASH'
39579          , p_ae_header_id           => l_ae_header_id
39580          );
39581 
39582    --
39583    -- set rounding class
39584    --
39585    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39586                       'CASH';
39587 
39588    --
39589    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39590    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39591    --
39592    -- bulk performance
39593    --
39594    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39595 
39596    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39600    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39597       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39598 
39599    -- 4955764
39601       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39602 
39603    -- 4458381 Public Sector Enh
39604    
39605    --
39606    -- set accounting attributes for the line type
39607    --
39608    l_entered_amt_idx := 9;
39609    l_accted_amt_idx  := 14;
39610    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39611    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39612    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
39613    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
39614    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
39615    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39616    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
39617    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
39618    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
39619    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
39620    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
39621    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39622    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
39623    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
39624    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
39625    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
39626    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
39627    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
39628    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
39629    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
39630    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
39631    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
39632    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
39633    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
39634    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
39635    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
39636    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
39637    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
39638    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
39639    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
39640    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
39641    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
39642    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
39643    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
39644    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
39645    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
39646    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
39647    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
39648    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
39649    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
39650    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
39651 
39652    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39653    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39654 
39655    ---------------------------------------------------------------------------------------------------------------
39656    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39657    ---------------------------------------------------------------------------------------------------------------
39658    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39659 
39660    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39661    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39662 
39663    IF xla_accounting_cache_pkg.GetValueChar
39664          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39665          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39666    AND l_bflow_method_code = 'PRIOR_ENTRY'
39667 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39668    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39669          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39670        )
39671    THEN
39672          xla_ae_lines_pkg.BflowUpgEntry
39673            (p_business_method_code    => l_bflow_method_code
39674            ,p_business_class_code     => l_bflow_class_code
39675            ,p_balance_type            => l_balance_type_code);
39676    ELSE
39677       NULL;
39678 XLA_AE_LINES_PKG.business_flow_validation(
39679                                 p_business_method_code     => l_bflow_method_code
39680                                ,p_business_class_code      => l_bflow_class_code
39681                                ,p_inherit_description_flag => l_inherit_desc_flag);
39682    END IF;
39683 
39684    --
39685    -- call analytical criteria
39686    --
39687    
39688 
39689 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
39690 xla_ae_lines_pkg.SetAnalyticalCriteria(
39691    p_analytical_criterion_name    => 'Check Id'
39692  , p_analytical_criterion_owner   => 'S'
39696  
39693  , p_analytical_criterion_code    => 'CHECK_ID'
39694  , p_amb_context_code             => 'DEFAULT'
39695  , p_balancing_flag               => 'N'
39697  , p_analytical_detail_char_1    =>  NULL
39698  , p_analytical_detail_num_1     =>  p_source_112
39699  , p_analytical_detail_date_1    =>  NULL
39700 
39701  , p_ae_header_id                 => l_ae_header_id
39702 )
39703 ;
39704 --
39705 
39706    --
39707    -- call description
39708    --
39709    -- No description or it is inherited.
39710    --
39711    -- call ADRs
39712    -- Bug 4922099
39713    --
39714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39715         (NVL(l_actual_upg_option, 'N') = 'O') OR
39716         (NVL(l_enc_upg_option, 'N') = 'O')
39717       )
39718    THEN
39719    NULL;
39720    --
39721    --
39722    
39723   l_ccid := AcctDerRule_28(
39724            p_application_id           => p_application_id
39725          , p_ae_header_id             => l_ae_header_id 
39726 , p_source_17 => p_source_17
39727          , x_transaction_coa_id       => l_adr_transaction_coa_id
39728          , x_accounting_coa_id        => l_adr_accounting_coa_id
39729          , x_value_type_code          => l_adr_value_type_code
39730          , p_side                     => 'NA'
39731    );
39732 
39733    xla_ae_lines_pkg.set_ccid(
39734     p_code_combination_id          => l_ccid
39735   , p_value_type_code              => l_adr_value_type_code
39736   , p_transaction_coa_id           => l_adr_transaction_coa_id
39737   , p_accounting_coa_id            => l_adr_accounting_coa_id
39738   , p_adr_code                     => 'AP_CASH'
39739   , p_adr_type_code                => 'S'
39740   , p_component_type               => l_component_type
39741   , p_component_code               => l_component_code
39742   , p_component_type_code          => l_component_type_code
39743   , p_component_appl_id            => l_component_appl_id
39744   , p_amb_context_code             => l_amb_context_code
39745   , p_side                         => 'NA'
39746   );
39747 
39748 
39749    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39750      p_to_segment_code         => 'GL_BALANCING'
39751    , p_segment_value           => C_CHAR
39752    , p_from_segment_code       => NULL
39753    , p_from_combination_id     => NULL
39754    , p_value_type_code         => NULL
39755    , p_transaction_coa_id      => null
39756    , p_accounting_coa_id       => null
39757    , p_flexfield_segment_code  => NULL
39758    , p_flex_value_set_id       => NULL
39759    , p_adr_code                => NULL
39760    , p_adr_type_code           => NULL
39761    , p_component_type          => l_component_type
39762    , p_component_code          => l_component_code
39763    , p_component_type_code     => l_component_type_code
39764    , p_component_appl_id       => l_component_appl_id
39765    , p_amb_context_code        => l_amb_context_code
39766    , p_entity_code             => 'AP_PAYMENTS'
39767    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39768    , p_side                    => 'NA'
39769    );
39770    --
39771 
39772 
39773    --
39774    --
39775    END IF;
39776    --
39777    -- Bug 4922099
39778    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39779           (NVL(l_enc_upg_option, 'N') = 'O')
39780         ) AND
39781         (l_bflow_method_code = 'PRIOR_ENTRY')
39782       )
39783    THEN
39784       IF
39785       --
39786       1 = 2
39787       --
39788       THEN
39789       xla_accounting_err_pkg.build_message
39790                                     (p_appli_s_name            => 'XLA'
39791                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39792                                     ,p_token_1                 => 'LINE_NUMBER'
39793                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39794                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39795                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39796                                                                              l_component_type
39797                                                                             ,l_component_code
39798                                                                             ,l_component_type_code
39799                                                                             ,l_component_appl_id
39800                                                                             ,l_amb_context_code
39801                                                                             ,l_entity_code
39802                                                                             ,l_event_class_code
39803                                                                            )
39804                                     ,p_token_3                 => 'OWNER'
39805                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39806                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39807                                                                           ,p_lookup_code    => l_component_type_code
39808                                                                          )
39809                                     ,p_token_4                 => 'PRODUCT_NAME'
39810                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39814                                     ,p_ae_header_id            =>  NULL
39811                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39812                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39813                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39815                                        );
39816 
39817         IF (C_LEVEL_ERROR>= g_log_level) THEN
39818                  trace
39819                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39820                       ,p_level    => C_LEVEL_ERROR
39821                       ,p_module   => l_log_module);
39822         END IF;
39823       END IF;
39824    END IF;
39825    --
39826    --
39827    ------------------------------------------------------------------------------------------------
39828    -- 4219869 Business Flow
39829    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39830    -- Prior Entry.  Currently, the following code is always generated.
39831    ------------------------------------------------------------------------------------------------
39832    XLA_AE_LINES_PKG.ValidateCurrentLine;
39833 
39834    ------------------------------------------------------------------------------------
39835    -- 4219869 Business Flow
39836    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39837    ------------------------------------------------------------------------------------
39838    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39839 
39840    ----------------------------------------------------------------------------------
39841    -- 4219869 Business Flow
39842    -- Update journal entry status -- Need to generate this within IF <condition>
39843    ----------------------------------------------------------------------------------
39844    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39845          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39846          ,p_balance_type_code => l_balance_type_code
39847          );
39848 
39849    -------------------------------------------------------------------------------------------
39850    -- 4262811 - Generate the Accrual Reversal lines
39851    -------------------------------------------------------------------------------------------
39852    BEGIN
39853       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39854                               (g_array_event(p_event_id).array_value_num('header_index'));
39855       IF l_acc_rev_flag IS NULL THEN
39856          l_acc_rev_flag := 'N';
39857       END IF;
39858    EXCEPTION
39859       WHEN OTHERS THEN
39860          l_acc_rev_flag := 'N';
39861    END;
39862    --
39863    IF (l_acc_rev_flag = 'Y') THEN
39864 
39865        -- 4645092  ------------------------------------------------------------------------------
39866        -- To allow MPA report to determine if it should generate report process
39867        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39868        ------------------------------------------------------------------------------------------
39869 
39870        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39871        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39872    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39873    -- call ADRs
39874    -- Bug 4922099
39875    --
39876    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39877         (NVL(l_actual_upg_option, 'N') = 'O') OR
39878         (NVL(l_enc_upg_option, 'N') = 'O')
39879       )
39880    THEN
39881    NULL;
39882    --
39883    --
39884    
39885   l_ccid := AcctDerRule_28(
39886            p_application_id           => p_application_id
39887          , p_ae_header_id             => l_ae_header_id 
39888 , p_source_17 => p_source_17
39889          , x_transaction_coa_id       => l_adr_transaction_coa_id
39890          , x_accounting_coa_id        => l_adr_accounting_coa_id
39891          , x_value_type_code          => l_adr_value_type_code
39892          , p_side                     => 'NA'
39893    );
39894 
39895    xla_ae_lines_pkg.set_ccid(
39896     p_code_combination_id          => l_ccid
39897   , p_value_type_code              => l_adr_value_type_code
39898   , p_transaction_coa_id           => l_adr_transaction_coa_id
39899   , p_accounting_coa_id            => l_adr_accounting_coa_id
39900   , p_adr_code                     => 'AP_CASH'
39901   , p_adr_type_code                => 'S'
39902   , p_component_type               => l_component_type
39903   , p_component_code               => l_component_code
39904   , p_component_type_code          => l_component_type_code
39905   , p_component_appl_id            => l_component_appl_id
39906   , p_amb_context_code             => l_amb_context_code
39907   , p_side                         => 'NA'
39908   );
39909 
39910 
39911    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39912      p_to_segment_code         => 'GL_BALANCING'
39913    , p_segment_value           => C_CHAR
39914    , p_from_segment_code       => NULL
39915    , p_from_combination_id     => NULL
39916    , p_value_type_code         => NULL
39917    , p_transaction_coa_id      => null
39918    , p_accounting_coa_id       => null
39919    , p_flexfield_segment_code  => NULL
39920    , p_flex_value_set_id       => NULL
39921    , p_adr_code                => NULL
39925    , p_component_type_code     => l_component_type_code
39922    , p_adr_type_code           => NULL
39923    , p_component_type          => l_component_type
39924    , p_component_code          => l_component_code
39926    , p_component_appl_id       => l_component_appl_id
39927    , p_amb_context_code        => l_amb_context_code
39928    , p_entity_code             => 'AP_PAYMENTS'
39929    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39930    , p_side                    => 'NA'
39931    );
39932    --
39933 
39934 
39935    --
39936    --
39937    END IF;
39938 
39939        --
39940        -- Update the line information that should be overwritten
39941        --
39942        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39943                                          p_header_num   => 1);
39944        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39945 
39946        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39947 
39948        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39949           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39950        END IF;
39951 
39952       --
39953       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39954       --
39955       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39956           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39957       ELSE
39958           ---------------------------------------------------------------------------------------------------
39959           -- 4262811a Switch Sign
39960           ---------------------------------------------------------------------------------------------------
39961           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39962           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39963                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39964           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39965                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39966           -- 5132302
39967           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39968                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39969 
39970       END IF;
39971 
39972       -- 4955764
39973       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39974       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39975 
39976 
39977       XLA_AE_LINES_PKG.ValidateCurrentLine;
39978       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39979 
39980       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39981                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39982                ,p_balance_type_code => l_balance_type_code);
39983 
39984    END IF;
39985 
39986    -----------------------------------------------------------------------------------------
39987    -- 4262811 Multiperiod Accounting
39988    -----------------------------------------------------------------------------------------
39989      -- No MPA option is assigned.
39990 
39991 
39992 END IF;
39993 END IF;
39994 --
39995 
39996 --
39997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39998    trace
39999       (p_msg      => 'END of AcctLineType_89'
40000       ,p_level    => C_LEVEL_PROCEDURE
40001       ,p_module   => l_log_module);
40002 END IF;
40003 --
40004 EXCEPTION
40005   WHEN xla_exceptions_pkg.application_exception THEN
40006       RAISE;
40007   WHEN OTHERS THEN
40008        xla_exceptions_pkg.raise_message
40009            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_89');
40010 END AcctLineType_89;
40011 --
40012 
40013 ---------------------------------------
40014 --
40015 -- PRIVATE FUNCTION
40016 --         AcctLineType_90
40017 --
40018 ---------------------------------------
40019 PROCEDURE AcctLineType_90 (
40020   p_application_id        IN NUMBER
40021  ,p_event_id              IN NUMBER
40022  ,p_calculate_acctd_flag  IN VARCHAR2
40023  ,p_calculate_g_l_flag    IN VARCHAR2
40024  ,p_actual_flag           IN OUT VARCHAR2
40025  ,p_balance_type_code     OUT VARCHAR2
40026  ,p_gain_or_loss_ref      OUT VARCHAR2
40027  
40028 --Payment Currency Code
40029  , p_source_13            IN VARCHAR2
40030 --Bank Cash Account
40031  , p_source_17            IN NUMBER
40032 --Automatic Offsets Flag
40033  , p_source_47            IN VARCHAR2
40034  , p_source_47_meaning    IN VARCHAR2
40035 --Accounting Reversal Indicator
40036  , p_source_52            IN VARCHAR2
40037 --Distribution Link Type
40038  , p_source_54            IN VARCHAR2
40039 --Override Accounted Amount Indicator
40040  , p_source_79            IN VARCHAR2
40041  , p_source_79_meaning    IN VARCHAR2
40042 --Third Party Type
40043  , p_source_82            IN VARCHAR2
40044 --Invoice Distribution Tax Line Identifier
40045  , p_source_85            IN NUMBER
40046 --Invoice Distribution Tax Distribution Identifier from Tax
40050 --Business Flow Accounts Payable Application Identifier
40047  , p_source_86            IN NUMBER
40048 --Invoice Distribution Summary Tax Line Identifier
40049  , p_source_87            IN NUMBER
40051  , p_source_90            IN NUMBER
40052 --Business Flow Invoice Distribution Type
40053  , p_source_91            IN VARCHAR2
40054 --Business Flow Invoice Entity Code
40055  , p_source_92            IN VARCHAR2
40056 --Business Flow Invoice Distribution Identifier
40057  , p_source_93            IN NUMBER
40058 --Business Flow Invoice Identifier
40059  , p_source_94            IN NUMBER
40060 --When to Account for Payment Option
40061  , p_source_96            IN VARCHAR2
40062 --Payment Distribution Type
40063  , p_source_97            IN VARCHAR2
40064  , p_source_97_meaning    IN VARCHAR2
40065 --Payment Distribution Amount
40066  , p_source_98            IN NUMBER
40067 --Payment Distribution Identifier
40068  , p_source_103            IN NUMBER
40069 --Payment Supplier Identifier
40070  , p_source_109            IN NUMBER
40071 --Payment Supplier Site Identifier
40072  , p_source_110            IN NUMBER
40073 --Payment Distribution Reversed Identifier
40074  , p_source_111            IN NUMBER
40075 --Payment Identifier
40076  , p_source_112            IN NUMBER
40077 --Pooled Bank Account Option
40078  , p_source_113            IN VARCHAR2
40079  , p_source_113_meaning    IN VARCHAR2
40080 --Payment Maturity Date
40081  , p_source_114            IN DATE
40082 --Payment Distribution (Payment Rate) Ledger Amount
40083  , p_source_115            IN NUMBER
40084 --Payment Exchange Date
40085  , p_source_117            IN DATE
40086 --Payment Exchange Rate
40087  , p_source_118            IN NUMBER
40088 --Payment Exchange Rate Type
40089  , p_source_119            IN VARCHAR2
40090 --Payment Type
40091  , p_source_122            IN VARCHAR2
40092  , p_source_122_meaning    IN VARCHAR2
40093 )
40094 IS
40095 
40096 l_component_type              VARCHAR2(80);
40097 l_component_code              VARCHAR2(30);
40098 l_component_type_code         VARCHAR2(1);
40099 l_component_appl_id           INTEGER;
40100 l_amb_context_code            VARCHAR2(30);
40101 l_entity_code                 VARCHAR2(30);
40102 l_event_class_code            VARCHAR2(30);
40103 l_ae_header_id                NUMBER;
40104 l_event_type_code             VARCHAR2(30);
40105 l_line_definition_code        VARCHAR2(30);
40106 l_line_definition_owner_code  VARCHAR2(1);
40107 --
40108 -- adr variables
40109 l_segment                     VARCHAR2(30);
40110 l_ccid                        NUMBER;
40111 l_adr_transaction_coa_id      NUMBER;
40112 l_adr_accounting_coa_id       NUMBER;
40113 l_adr_flexfield_segment_code  VARCHAR2(30);
40114 l_adr_flex_value_set_id       NUMBER;
40115 l_adr_value_type_code         VARCHAR2(30);
40116 l_adr_value_combination_id    NUMBER;
40117 l_adr_value_segment_code      VARCHAR2(30);
40118 
40119 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40120 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40121 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40122 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40123 
40124 -- 4262811 Variables ------------------------------------------------------------------------------------------
40125 l_entered_amt_idx             NUMBER;
40126 l_accted_amt_idx              NUMBER;
40127 l_acc_rev_flag                VARCHAR2(1);
40128 l_accrual_line_num            NUMBER;
40129 l_tmp_amt                     NUMBER;
40130 l_acc_rev_natural_side_code   VARCHAR2(1);
40131 
40132 l_num_entries                 NUMBER;
40133 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40134 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40135 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40136 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40137 l_recog_line_1                NUMBER;
40138 l_recog_line_2                NUMBER;
40139 
40140 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40141 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40142 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40143 
40144 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40145 
40146 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40147 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40148 
40149 ---------------------------------------------------------------------------------------------------------------
40150 
40151 
40152 --
40153 -- bulk performance
40154 --
40155 l_balance_type_code           VARCHAR2(1);
40156 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40157 l_log_module                  VARCHAR2(240);
40158 
40159 --
40160 -- Upgrade strategy
40161 --
40162 l_actual_upg_option           VARCHAR2(1);
40163 l_enc_upg_option           VARCHAR2(1);
40164 
40165 --
40166 BEGIN
40167 --
40168 IF g_log_enabled THEN
40169       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
40170 END IF;
40171 --
40172 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40173 
40174       trace
40178 
40175          (p_msg      => 'BEGIN of AcctLineType_90'
40176          ,p_level    => C_LEVEL_PROCEDURE
40177          ,p_module   => l_log_module);
40179 END IF;
40180 --
40181 l_component_type             := 'AMB_JLT';
40182 l_component_code             := 'AP_CASH_REF';
40183 l_component_type_code        := 'S';
40184 l_component_appl_id          :=  200;
40185 l_amb_context_code           := 'DEFAULT';
40186 l_entity_code                := 'AP_PAYMENTS';
40187 l_event_class_code           := 'REFUNDS';
40188 l_event_type_code            := 'REFUNDS_ALL';
40189 l_line_definition_owner_code := 'S';
40190 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
40191 --
40192 l_balance_type_code          := 'A';
40193 l_segment                     := NULL;
40194 l_ccid                        := NULL;
40195 l_adr_transaction_coa_id      := NULL;
40196 l_adr_accounting_coa_id       := NULL;
40197 l_adr_flexfield_segment_code  := NULL;
40198 l_adr_flex_value_set_id       := NULL;
40199 l_adr_value_type_code         := NULL;
40200 l_adr_value_combination_id    := NULL;
40201 l_adr_value_segment_code      := NULL;
40202 
40203 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
40204 l_bflow_class_code           := '';    -- 4219869 Business Flow
40205 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40206 l_budgetary_control_flag     := 'N';
40207 
40208 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40209 l_bflow_applied_to_amt       := NULL; -- 5132302
40210 l_entered_amt_idx            := NULL;          -- 4262811
40211 l_accted_amt_idx             := NULL;          -- 4262811
40212 l_acc_rev_flag               := NULL;          -- 4262811
40213 l_accrual_line_num           := NULL;          -- 4262811
40214 l_tmp_amt                    := NULL;          -- 4262811
40215 --
40216  
40217 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40218     l_balance_type_code <> 'B' THEN
40219 IF NVL(p_source_96,'
40220 ') =  'ISSUE_ISSUE' AND 
40221 (NVL(p_source_47,'
40222 ') <>  'Y' OR 
40223 NVL(p_source_47,'
40224 ') =  'Y' AND 
40225 NVL(p_source_113,'
40226 ') <>  'Y') AND 
40227 p_source_114 IS NULL AND 
40228 NVL(p_source_97,'
40229 ') =  'CASH' AND 
40230 NVL(p_source_122,'
40231 ') =  'R'
40232  THEN 
40233 
40234    --
40235    XLA_AE_LINES_PKG.SetNewLine;
40236 
40237    p_balance_type_code          := l_balance_type_code;
40238    -- set the flag so later we will know whether the gain loss line needs to be created
40239    
40240    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40241      p_actual_flag :='A';
40242    END IF;
40243 
40244    --
40245    -- bulk performance
40246    --
40247    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40248                                       p_header_num   => 0); -- 4262811
40249    --
40250    -- set accounting line options
40251    --
40252    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40253            p_natural_side_code          => 'C'
40254          , p_gain_or_loss_flag          => 'N'
40255          , p_gl_transfer_mode_code      => 'S'
40256          , p_acct_entry_type_code       => 'A'
40257          , p_switch_side_flag           => 'Y'
40258          , p_merge_duplicate_code       => 'A'
40259          );
40260    --
40261    l_acc_rev_natural_side_code := 'D';  -- 4262811
40262    -- 
40263    --
40264    -- set accounting line type info
40265    --
40266    xla_ae_lines_pkg.SetAcctLineType
40267       (p_component_type             => l_component_type
40268       ,p_event_type_code            => l_event_type_code
40269       ,p_line_definition_owner_code => l_line_definition_owner_code
40270       ,p_line_definition_code       => l_line_definition_code
40271       ,p_accounting_line_code       => l_component_code
40272       ,p_accounting_line_type_code  => l_component_type_code
40273       ,p_accounting_line_appl_id    => l_component_appl_id
40274       ,p_amb_context_code           => l_amb_context_code
40275       ,p_entity_code                => l_entity_code
40276       ,p_event_class_code           => l_event_class_code);
40277    --
40278    -- set accounting class
40279    --
40280    xla_ae_lines_pkg.SetAcctClass(
40281            p_accounting_class_code  => 'CASH'
40282          , p_ae_header_id           => l_ae_header_id
40283          );
40284 
40285    --
40286    -- set rounding class
40287    --
40288    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40289                       'CASH';
40290 
40291    --
40292    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40293    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40294    --
40295    -- bulk performance
40296    --
40297    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40298 
40299    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40300       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40301 
40302    -- 4955764
40303    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40307    
40304       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40305 
40306    -- 4458381 Public Sector Enh
40308    --
40309    -- set accounting attributes for the line type
40310    --
40311    l_entered_amt_idx := 9;
40312    l_accted_amt_idx  := 14;
40313    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40314    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40315    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
40316    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40317    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
40318    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40319    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
40320    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40321    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
40322    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40323    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
40324    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40325    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
40326    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40327    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
40328    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40329    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
40330    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40331    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
40332    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40333    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
40334    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40335    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
40336    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40337    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
40338    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40339    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
40340    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40341    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
40342    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40343    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
40344    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40345    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
40346    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40347    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
40348    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40349    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
40350    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40351    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
40352    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40353    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
40354    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
40355    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
40356    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
40357    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
40358    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
40359    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
40360 
40361    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40362    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40363 
40364    ---------------------------------------------------------------------------------------------------------------
40365    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40366    ---------------------------------------------------------------------------------------------------------------
40367    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40368 
40369    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40370    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40371 
40372    IF xla_accounting_cache_pkg.GetValueChar
40373          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40374          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40375    AND l_bflow_method_code = 'PRIOR_ENTRY'
40376 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40377    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40378          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40379        )
40380    THEN
40381          xla_ae_lines_pkg.BflowUpgEntry
40382            (p_business_method_code    => l_bflow_method_code
40383            ,p_business_class_code     => l_bflow_class_code
40384            ,p_balance_type            => l_balance_type_code);
40385    ELSE
40386       NULL;
40387 -- No business flow processing for business flow method of NONE.
40388    END IF;
40389 
40390    --
40391    -- call analytical criteria
40392    --
40393    
40394 
40395 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
40396 xla_ae_lines_pkg.SetAnalyticalCriteria(
40397    p_analytical_criterion_name    => 'Check Id'
40398  , p_analytical_criterion_owner   => 'S'
40399  , p_analytical_criterion_code    => 'CHECK_ID'
40400  , p_amb_context_code             => 'DEFAULT'
40404  , p_analytical_detail_num_1     =>  p_source_112
40401  , p_balancing_flag               => 'N'
40402  
40403  , p_analytical_detail_char_1    =>  NULL
40405  , p_analytical_detail_date_1    =>  NULL
40406 
40407  , p_ae_header_id                 => l_ae_header_id
40408 )
40409 ;
40410 --
40411 
40412    --
40413    -- call description
40414    --
40415    -- No description or it is inherited.
40416    --
40417    -- call ADRs
40418    -- Bug 4922099
40419    --
40420    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40421         (NVL(l_actual_upg_option, 'N') = 'O') OR
40422         (NVL(l_enc_upg_option, 'N') = 'O')
40423       )
40424    THEN
40425    NULL;
40426    --
40427    --
40428    
40429   l_ccid := AcctDerRule_28(
40430            p_application_id           => p_application_id
40431          , p_ae_header_id             => l_ae_header_id 
40432 , p_source_17 => p_source_17
40433          , x_transaction_coa_id       => l_adr_transaction_coa_id
40434          , x_accounting_coa_id        => l_adr_accounting_coa_id
40435          , x_value_type_code          => l_adr_value_type_code
40436          , p_side                     => 'NA'
40437    );
40438 
40439    xla_ae_lines_pkg.set_ccid(
40440     p_code_combination_id          => l_ccid
40441   , p_value_type_code              => l_adr_value_type_code
40442   , p_transaction_coa_id           => l_adr_transaction_coa_id
40443   , p_accounting_coa_id            => l_adr_accounting_coa_id
40444   , p_adr_code                     => 'AP_CASH'
40445   , p_adr_type_code                => 'S'
40446   , p_component_type               => l_component_type
40447   , p_component_code               => l_component_code
40448   , p_component_type_code          => l_component_type_code
40449   , p_component_appl_id            => l_component_appl_id
40450   , p_amb_context_code             => l_amb_context_code
40451   , p_side                         => 'NA'
40452   );
40453 
40454 
40455    --
40456    --
40457    END IF;
40458    --
40459    -- Bug 4922099
40460    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40461           (NVL(l_enc_upg_option, 'N') = 'O')
40462         ) AND
40463         (l_bflow_method_code = 'PRIOR_ENTRY')
40464       )
40465    THEN
40466       IF
40467       --
40468       1 = 2
40469       --
40470       THEN
40471       xla_accounting_err_pkg.build_message
40472                                     (p_appli_s_name            => 'XLA'
40473                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40474                                     ,p_token_1                 => 'LINE_NUMBER'
40475                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40476                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40477                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40478                                                                              l_component_type
40479                                                                             ,l_component_code
40480                                                                             ,l_component_type_code
40481                                                                             ,l_component_appl_id
40482                                                                             ,l_amb_context_code
40483                                                                             ,l_entity_code
40484                                                                             ,l_event_class_code
40485                                                                            )
40486                                     ,p_token_3                 => 'OWNER'
40487                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40488                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40489                                                                           ,p_lookup_code    => l_component_type_code
40490                                                                          )
40491                                     ,p_token_4                 => 'PRODUCT_NAME'
40492                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40493                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40494                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40495                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40496                                     ,p_ae_header_id            =>  NULL
40497                                        );
40498 
40499         IF (C_LEVEL_ERROR>= g_log_level) THEN
40500                  trace
40501                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40502                       ,p_level    => C_LEVEL_ERROR
40503                       ,p_module   => l_log_module);
40504         END IF;
40505       END IF;
40506    END IF;
40507    --
40508    --
40509    ------------------------------------------------------------------------------------------------
40510    -- 4219869 Business Flow
40511    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40512    -- Prior Entry.  Currently, the following code is always generated.
40516    ------------------------------------------------------------------------------------
40513    ------------------------------------------------------------------------------------------------
40514    XLA_AE_LINES_PKG.ValidateCurrentLine;
40515 
40517    -- 4219869 Business Flow
40518    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40519    ------------------------------------------------------------------------------------
40520    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40521 
40522    ----------------------------------------------------------------------------------
40523    -- 4219869 Business Flow
40524    -- Update journal entry status -- Need to generate this within IF <condition>
40525    ----------------------------------------------------------------------------------
40526    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40527          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40528          ,p_balance_type_code => l_balance_type_code
40529          );
40530 
40531    -------------------------------------------------------------------------------------------
40532    -- 4262811 - Generate the Accrual Reversal lines
40533    -------------------------------------------------------------------------------------------
40534    BEGIN
40535       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40536                               (g_array_event(p_event_id).array_value_num('header_index'));
40537       IF l_acc_rev_flag IS NULL THEN
40538          l_acc_rev_flag := 'N';
40539       END IF;
40540    EXCEPTION
40541       WHEN OTHERS THEN
40542          l_acc_rev_flag := 'N';
40543    END;
40544    --
40545    IF (l_acc_rev_flag = 'Y') THEN
40546 
40547        -- 4645092  ------------------------------------------------------------------------------
40548        -- To allow MPA report to determine if it should generate report process
40549        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40550        ------------------------------------------------------------------------------------------
40551 
40552        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40553        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40554    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40555    -- call ADRs
40556    -- Bug 4922099
40557    --
40558    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40559         (NVL(l_actual_upg_option, 'N') = 'O') OR
40560         (NVL(l_enc_upg_option, 'N') = 'O')
40561       )
40562    THEN
40563    NULL;
40564    --
40565    --
40566    
40567   l_ccid := AcctDerRule_28(
40568            p_application_id           => p_application_id
40569          , p_ae_header_id             => l_ae_header_id 
40570 , p_source_17 => p_source_17
40571          , x_transaction_coa_id       => l_adr_transaction_coa_id
40572          , x_accounting_coa_id        => l_adr_accounting_coa_id
40573          , x_value_type_code          => l_adr_value_type_code
40574          , p_side                     => 'NA'
40575    );
40576 
40577    xla_ae_lines_pkg.set_ccid(
40578     p_code_combination_id          => l_ccid
40579   , p_value_type_code              => l_adr_value_type_code
40580   , p_transaction_coa_id           => l_adr_transaction_coa_id
40581   , p_accounting_coa_id            => l_adr_accounting_coa_id
40582   , p_adr_code                     => 'AP_CASH'
40583   , p_adr_type_code                => 'S'
40584   , p_component_type               => l_component_type
40585   , p_component_code               => l_component_code
40586   , p_component_type_code          => l_component_type_code
40587   , p_component_appl_id            => l_component_appl_id
40588   , p_amb_context_code             => l_amb_context_code
40589   , p_side                         => 'NA'
40590   );
40591 
40592 
40593    --
40594    --
40595    END IF;
40596 
40597        --
40598        -- Update the line information that should be overwritten
40599        --
40600        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40601                                          p_header_num   => 1);
40602        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40603 
40604        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40605 
40606        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40607           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40608        END IF;
40609 
40610       --
40611       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40612       --
40613       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40614           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40615       ELSE
40616           ---------------------------------------------------------------------------------------------------
40617           -- 4262811a Switch Sign
40618           ---------------------------------------------------------------------------------------------------
40619           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40620           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40621                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40622           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40626                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40623                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40624           -- 5132302
40625           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40627 
40628       END IF;
40629 
40630       -- 4955764
40631       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40632       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40633 
40634 
40635       XLA_AE_LINES_PKG.ValidateCurrentLine;
40636       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40637 
40638       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40639                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40640                ,p_balance_type_code => l_balance_type_code);
40641 
40642    END IF;
40643 
40644    -----------------------------------------------------------------------------------------
40645    -- 4262811 Multiperiod Accounting
40646    -----------------------------------------------------------------------------------------
40647      -- No MPA option is assigned.
40648 
40649 
40650 END IF;
40651 END IF;
40652 --
40653 
40654 --
40655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40656    trace
40657       (p_msg      => 'END of AcctLineType_90'
40658       ,p_level    => C_LEVEL_PROCEDURE
40659       ,p_module   => l_log_module);
40660 END IF;
40661 --
40662 EXCEPTION
40663   WHEN xla_exceptions_pkg.application_exception THEN
40664       RAISE;
40665   WHEN OTHERS THEN
40666        xla_exceptions_pkg.raise_message
40667            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_90');
40668 END AcctLineType_90;
40669 --
40670 
40671 ---------------------------------------
40672 --
40673 -- PRIVATE FUNCTION
40674 --         AcctLineType_91
40675 --
40676 ---------------------------------------
40677 PROCEDURE AcctLineType_91 (
40678   p_application_id        IN NUMBER
40679  ,p_event_id              IN NUMBER
40680  ,p_calculate_acctd_flag  IN VARCHAR2
40681  ,p_calculate_g_l_flag    IN VARCHAR2
40682  ,p_actual_flag           IN OUT VARCHAR2
40683  ,p_balance_type_code     OUT VARCHAR2
40684  ,p_gain_or_loss_ref      OUT VARCHAR2
40685  
40686 --Payment Currency Code
40687  , p_source_13            IN VARCHAR2
40688 --Automatic Offsets Value
40689  , p_source_15            IN VARCHAR2
40690  , p_source_15_meaning    IN VARCHAR2
40691 --Bank Cash Account
40692  , p_source_17            IN NUMBER
40693 --Accounting Reversal Indicator
40694  , p_source_52            IN VARCHAR2
40695 --Distribution Link Type
40696  , p_source_54            IN VARCHAR2
40697 --Override Accounted Amount Indicator
40698  , p_source_79            IN VARCHAR2
40699  , p_source_79_meaning    IN VARCHAR2
40700 --Third Party Type
40701  , p_source_82            IN VARCHAR2
40702 --Invoice Distribution Tax Line Identifier
40703  , p_source_85            IN NUMBER
40704 --Invoice Distribution Tax Distribution Identifier from Tax
40705  , p_source_86            IN NUMBER
40706 --Invoice Distribution Summary Tax Line Identifier
40707  , p_source_87            IN NUMBER
40708 --Business Flow Accounts Payable Application Identifier
40709  , p_source_90            IN NUMBER
40710 --Business Flow Invoice Distribution Type
40711  , p_source_91            IN VARCHAR2
40712 --Business Flow Invoice Entity Code
40713  , p_source_92            IN VARCHAR2
40714 --Business Flow Invoice Distribution Identifier
40715  , p_source_93            IN NUMBER
40716 --Business Flow Invoice Identifier
40717  , p_source_94            IN NUMBER
40718 --When to Account for Payment Option
40719  , p_source_96            IN VARCHAR2
40720 --Payment Distribution Type
40721  , p_source_97            IN VARCHAR2
40722  , p_source_97_meaning    IN VARCHAR2
40723 --Payment Distribution Amount
40724  , p_source_98            IN NUMBER
40725 --Payment Distribution Identifier
40726  , p_source_103            IN NUMBER
40727 --Payment Supplier Identifier
40728  , p_source_109            IN NUMBER
40729 --Payment Supplier Site Identifier
40730  , p_source_110            IN NUMBER
40731 --Payment Distribution Reversed Identifier
40732  , p_source_111            IN NUMBER
40733 --Payment Identifier
40734  , p_source_112            IN NUMBER
40735 --Pooled Bank Account Option
40736  , p_source_113            IN VARCHAR2
40737  , p_source_113_meaning    IN VARCHAR2
40738 --Payment Maturity Date
40739  , p_source_114            IN DATE
40740 --Payment Distribution (Payment Rate) Ledger Amount
40741  , p_source_115            IN NUMBER
40742 --Payment Exchange Date
40743  , p_source_117            IN DATE
40744 --Payment Exchange Rate
40745  , p_source_118            IN NUMBER
40746 --Payment Exchange Rate Type
40747  , p_source_119            IN VARCHAR2
40748 --Payment Type
40749  , p_source_122            IN VARCHAR2
40750  , p_source_122_meaning    IN VARCHAR2
40751 )
40752 IS
40753 
40754 l_component_type              VARCHAR2(80);
40755 l_component_code              VARCHAR2(30);
40756 l_component_type_code         VARCHAR2(1);
40757 l_component_appl_id           INTEGER;
40761 l_ae_header_id                NUMBER;
40758 l_amb_context_code            VARCHAR2(30);
40759 l_entity_code                 VARCHAR2(30);
40760 l_event_class_code            VARCHAR2(30);
40762 l_event_type_code             VARCHAR2(30);
40763 l_line_definition_code        VARCHAR2(30);
40764 l_line_definition_owner_code  VARCHAR2(1);
40765 --
40766 -- adr variables
40767 l_segment                     VARCHAR2(30);
40768 l_ccid                        NUMBER;
40769 l_adr_transaction_coa_id      NUMBER;
40770 l_adr_accounting_coa_id       NUMBER;
40771 l_adr_flexfield_segment_code  VARCHAR2(30);
40772 l_adr_flex_value_set_id       NUMBER;
40773 l_adr_value_type_code         VARCHAR2(30);
40774 l_adr_value_combination_id    NUMBER;
40775 l_adr_value_segment_code      VARCHAR2(30);
40776 
40777 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40778 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40779 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40780 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40781 
40782 -- 4262811 Variables ------------------------------------------------------------------------------------------
40783 l_entered_amt_idx             NUMBER;
40784 l_accted_amt_idx              NUMBER;
40785 l_acc_rev_flag                VARCHAR2(1);
40786 l_accrual_line_num            NUMBER;
40787 l_tmp_amt                     NUMBER;
40788 l_acc_rev_natural_side_code   VARCHAR2(1);
40789 
40790 l_num_entries                 NUMBER;
40791 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40792 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40793 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40794 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40795 l_recog_line_1                NUMBER;
40796 l_recog_line_2                NUMBER;
40797 
40798 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40799 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40800 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40801 
40802 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40803 
40804 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40805 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40806 
40807 ---------------------------------------------------------------------------------------------------------------
40808 
40809 
40810 --
40811 -- bulk performance
40812 --
40813 l_balance_type_code           VARCHAR2(1);
40814 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40815 l_log_module                  VARCHAR2(240);
40816 
40817 --
40818 -- Upgrade strategy
40819 --
40820 l_actual_upg_option           VARCHAR2(1);
40821 l_enc_upg_option           VARCHAR2(1);
40822 
40823 --
40824 BEGIN
40825 --
40826 IF g_log_enabled THEN
40827       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
40828 END IF;
40829 --
40830 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40831 
40832       trace
40833          (p_msg      => 'BEGIN of AcctLineType_91'
40834          ,p_level    => C_LEVEL_PROCEDURE
40835          ,p_module   => l_log_module);
40836 
40837 END IF;
40838 --
40839 l_component_type             := 'AMB_JLT';
40840 l_component_code             := 'AP_CASH_REF_AOS_AS';
40841 l_component_type_code        := 'S';
40842 l_component_appl_id          :=  200;
40843 l_amb_context_code           := 'DEFAULT';
40844 l_entity_code                := 'AP_PAYMENTS';
40845 l_event_class_code           := 'REFUNDS';
40846 l_event_type_code            := 'REFUNDS_ALL';
40847 l_line_definition_owner_code := 'S';
40848 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
40849 --
40850 l_balance_type_code          := 'A';
40851 l_segment                     := NULL;
40852 l_ccid                        := NULL;
40853 l_adr_transaction_coa_id      := NULL;
40854 l_adr_accounting_coa_id       := NULL;
40855 l_adr_flexfield_segment_code  := NULL;
40856 l_adr_flex_value_set_id       := NULL;
40857 l_adr_value_type_code         := NULL;
40858 l_adr_value_combination_id    := NULL;
40859 l_adr_value_segment_code      := NULL;
40860 
40861 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
40862 l_bflow_class_code           := '';    -- 4219869 Business Flow
40863 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40864 l_budgetary_control_flag     := 'N';
40865 
40866 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40867 l_bflow_applied_to_amt       := NULL; -- 5132302
40868 l_entered_amt_idx            := NULL;          -- 4262811
40869 l_accted_amt_idx             := NULL;          -- 4262811
40870 l_acc_rev_flag               := NULL;          -- 4262811
40871 l_accrual_line_num           := NULL;          -- 4262811
40872 l_tmp_amt                    := NULL;          -- 4262811
40873 --
40874  
40875 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40876     l_balance_type_code <> 'B' THEN
40877 IF NVL(p_source_96,'
40878 ') =  'ISSUE_ISSUE' AND 
40879 (NVL(p_source_113,'
40880 ') =  'Y' AND 
40881 NVL(p_source_15,'
40882 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
40883 p_source_114 IS NULL AND 
40887 ') =  'R'
40884 NVL(p_source_97,'
40885 ') =  'CASH' AND 
40886 NVL(p_source_122,'
40888  THEN 
40889 
40890    --
40891    XLA_AE_LINES_PKG.SetNewLine;
40892 
40893    p_balance_type_code          := l_balance_type_code;
40894    -- set the flag so later we will know whether the gain loss line needs to be created
40895    
40896    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40897      p_actual_flag :='A';
40898    END IF;
40899 
40900    --
40901    -- bulk performance
40902    --
40903    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40904                                       p_header_num   => 0); -- 4262811
40905    --
40906    -- set accounting line options
40907    --
40908    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40909            p_natural_side_code          => 'C'
40910          , p_gain_or_loss_flag          => 'N'
40911          , p_gl_transfer_mode_code      => 'S'
40912          , p_acct_entry_type_code       => 'A'
40913          , p_switch_side_flag           => 'Y'
40914          , p_merge_duplicate_code       => 'A'
40915          );
40916    --
40917    l_acc_rev_natural_side_code := 'D';  -- 4262811
40918    -- 
40919    --
40920    -- set accounting line type info
40921    --
40922    xla_ae_lines_pkg.SetAcctLineType
40923       (p_component_type             => l_component_type
40924       ,p_event_type_code            => l_event_type_code
40925       ,p_line_definition_owner_code => l_line_definition_owner_code
40926       ,p_line_definition_code       => l_line_definition_code
40927       ,p_accounting_line_code       => l_component_code
40928       ,p_accounting_line_type_code  => l_component_type_code
40929       ,p_accounting_line_appl_id    => l_component_appl_id
40930       ,p_amb_context_code           => l_amb_context_code
40931       ,p_entity_code                => l_entity_code
40932       ,p_event_class_code           => l_event_class_code);
40933    --
40934    -- set accounting class
40935    --
40936    xla_ae_lines_pkg.SetAcctClass(
40937            p_accounting_class_code  => 'CASH'
40938          , p_ae_header_id           => l_ae_header_id
40939          );
40940 
40941    --
40942    -- set rounding class
40943    --
40944    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40945                       'CASH';
40946 
40947    --
40948    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40949    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40950    --
40951    -- bulk performance
40952    --
40953    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40954 
40955    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40956       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40957 
40958    -- 4955764
40959    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40960       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40961 
40962    -- 4458381 Public Sector Enh
40963    
40964    --
40965    -- set accounting attributes for the line type
40966    --
40967    l_entered_amt_idx := 9;
40968    l_accted_amt_idx  := 14;
40969    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40970    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40971    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
40972    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40973    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
40974    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40975    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
40976    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40977    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
40978    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40979    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
40980    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40981    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
40982    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40983    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
40984    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40985    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
40986    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40987    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
40988    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40989    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
40990    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40991    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
40992    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40993    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
40994    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40995    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
40996    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40997    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
40998    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41002    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40999    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
41000    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41001    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
41003    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
41004    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41005    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
41006    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41007    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
41008    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41009    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
41010    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41011    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
41012    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41013    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
41014    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41015    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
41016 
41017    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41018    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41019 
41020    ---------------------------------------------------------------------------------------------------------------
41021    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41022    ---------------------------------------------------------------------------------------------------------------
41023    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41024 
41025    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41026    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41027 
41028    IF xla_accounting_cache_pkg.GetValueChar
41029          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41030          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41031    AND l_bflow_method_code = 'PRIOR_ENTRY'
41032 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41033    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41034          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41035        )
41036    THEN
41037          xla_ae_lines_pkg.BflowUpgEntry
41038            (p_business_method_code    => l_bflow_method_code
41039            ,p_business_class_code     => l_bflow_class_code
41040            ,p_balance_type            => l_balance_type_code);
41041    ELSE
41042       NULL;
41043 XLA_AE_LINES_PKG.business_flow_validation(
41044                                 p_business_method_code     => l_bflow_method_code
41045                                ,p_business_class_code      => l_bflow_class_code
41046                                ,p_inherit_description_flag => l_inherit_desc_flag);
41047    END IF;
41048 
41049    --
41050    -- call analytical criteria
41051    --
41052    
41053 
41054 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
41055 xla_ae_lines_pkg.SetAnalyticalCriteria(
41056    p_analytical_criterion_name    => 'Check Id'
41057  , p_analytical_criterion_owner   => 'S'
41058  , p_analytical_criterion_code    => 'CHECK_ID'
41059  , p_amb_context_code             => 'DEFAULT'
41060  , p_balancing_flag               => 'N'
41061  
41062  , p_analytical_detail_char_1    =>  NULL
41063  , p_analytical_detail_num_1     =>  p_source_112
41064  , p_analytical_detail_date_1    =>  NULL
41065 
41066  , p_ae_header_id                 => l_ae_header_id
41067 )
41068 ;
41069 --
41070 
41071    --
41072    -- call description
41073    --
41074    -- No description or it is inherited.
41075    --
41076    -- call ADRs
41077    -- Bug 4922099
41078    --
41079    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41080         (NVL(l_actual_upg_option, 'N') = 'O') OR
41081         (NVL(l_enc_upg_option, 'N') = 'O')
41082       )
41083    THEN
41084    NULL;
41085    --
41086    --
41087    
41088    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
41089      p_code_combination_id      => TO_NUMBER(C_NUM)
41090    , p_value_type_code          => NULL
41091    , p_transaction_coa_id       => null
41092    , p_accounting_coa_id        => null
41093    , p_adr_code                 => NULL
41094    , p_adr_type_code            => NULL
41095    , p_component_type           => l_component_type
41096    , p_component_code           => l_component_code
41097    , p_component_type_code      => l_component_type_code
41098    , p_component_appl_id        => l_component_appl_id
41099    , p_amb_context_code         => l_amb_context_code
41100    , p_side                     => NULL
41101    );
41102 
41103    
41104   -- initialise segments
41105   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41106   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41107   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41108   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41109   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41110   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41114   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41111   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41112   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41113   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41115   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41116   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41117   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41118   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41119   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41120   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41121   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41122   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41123   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41124   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41125   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41126   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41127   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41128   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41129   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41130   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41131   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41132   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41133   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41134   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41135   --
41136 
41137    --
41138 
41139 
41140    l_segment := AcctDerRule_6(
41141            p_application_id           => p_application_id
41142          , p_ae_header_id             => l_ae_header_id 
41143 , p_source_17 => p_source_17
41144          , x_transaction_coa_id       => l_adr_transaction_coa_id
41145          , x_accounting_coa_id        => l_adr_accounting_coa_id
41146          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
41147          , x_flex_value_set_id        => l_adr_flex_value_set_id
41148          , x_value_type_code          => l_adr_value_type_code
41149          , x_value_combination_id     => l_adr_value_combination_id
41150          , x_value_segment_code       => l_adr_value_segment_code
41151          , p_side                     => 'NA'
41152          , p_override_seg_flag        => 'Y'
41153    );
41154 
41155    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41156 
41157       xla_ae_lines_pkg.set_segment(
41158           p_to_segment_code         => 'GL_ACCOUNT'
41159         , p_segment_value           => l_segment
41160         , p_from_segment_code       => l_adr_value_segment_code
41161         , p_from_combination_id     => l_adr_value_combination_id
41162         , p_value_type_code         => l_adr_value_type_code
41163         , p_transaction_coa_id      => l_adr_transaction_coa_id
41164         , p_accounting_coa_id       => l_adr_accounting_coa_id
41165         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41166         , p_flex_value_set_id       => l_adr_flex_value_set_id
41167         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
41168         , p_adr_type_code           => 'S'
41169         , p_component_type          => l_component_type
41170         , p_component_code          => l_component_code
41171         , p_component_type_code     => l_component_type_code
41172         , p_component_appl_id       => l_component_appl_id
41173         , p_amb_context_code        => l_amb_context_code
41174         , p_entity_code             => 'AP_PAYMENTS'
41175         , p_event_class_code        => 'REFUNDS'
41176         , p_side                    => 'NA'
41177         );
41178 
41179   END IF;
41180 
41181    --
41182    --
41183    END IF;
41184    --
41185    -- Bug 4922099
41186    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41187           (NVL(l_enc_upg_option, 'N') = 'O')
41188         ) AND
41189         (l_bflow_method_code = 'PRIOR_ENTRY')
41190       )
41191    THEN
41192       IF
41193       --
41194       1 = 2
41195       --
41196       THEN
41197       xla_accounting_err_pkg.build_message
41198                                     (p_appli_s_name            => 'XLA'
41199                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41200                                     ,p_token_1                 => 'LINE_NUMBER'
41201                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41202                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41203                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41204                                                                              l_component_type
41205                                                                             ,l_component_code
41206                                                                             ,l_component_type_code
41210                                                                             ,l_event_class_code
41207                                                                             ,l_component_appl_id
41208                                                                             ,l_amb_context_code
41209                                                                             ,l_entity_code
41211                                                                            )
41212                                     ,p_token_3                 => 'OWNER'
41213                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41214                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41215                                                                           ,p_lookup_code    => l_component_type_code
41216                                                                          )
41217                                     ,p_token_4                 => 'PRODUCT_NAME'
41218                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41219                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41220                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41221                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41222                                     ,p_ae_header_id            =>  NULL
41223                                        );
41224 
41225         IF (C_LEVEL_ERROR>= g_log_level) THEN
41226                  trace
41227                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41228                       ,p_level    => C_LEVEL_ERROR
41229                       ,p_module   => l_log_module);
41230         END IF;
41231       END IF;
41232    END IF;
41233    --
41234    --
41235    ------------------------------------------------------------------------------------------------
41236    -- 4219869 Business Flow
41237    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41238    -- Prior Entry.  Currently, the following code is always generated.
41239    ------------------------------------------------------------------------------------------------
41240    XLA_AE_LINES_PKG.ValidateCurrentLine;
41241 
41242    ------------------------------------------------------------------------------------
41243    -- 4219869 Business Flow
41244    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41245    ------------------------------------------------------------------------------------
41246    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41247 
41248    ----------------------------------------------------------------------------------
41249    -- 4219869 Business Flow
41250    -- Update journal entry status -- Need to generate this within IF <condition>
41251    ----------------------------------------------------------------------------------
41252    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41253          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41254          ,p_balance_type_code => l_balance_type_code
41255          );
41256 
41257    -------------------------------------------------------------------------------------------
41258    -- 4262811 - Generate the Accrual Reversal lines
41259    -------------------------------------------------------------------------------------------
41260    BEGIN
41261       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41262                               (g_array_event(p_event_id).array_value_num('header_index'));
41263       IF l_acc_rev_flag IS NULL THEN
41264          l_acc_rev_flag := 'N';
41265       END IF;
41266    EXCEPTION
41267       WHEN OTHERS THEN
41268          l_acc_rev_flag := 'N';
41269    END;
41270    --
41271    IF (l_acc_rev_flag = 'Y') THEN
41272 
41273        -- 4645092  ------------------------------------------------------------------------------
41274        -- To allow MPA report to determine if it should generate report process
41275        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41276        ------------------------------------------------------------------------------------------
41277 
41278        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41279        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41280    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41281    -- call ADRs
41282    -- Bug 4922099
41283    --
41284    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41285         (NVL(l_actual_upg_option, 'N') = 'O') OR
41286         (NVL(l_enc_upg_option, 'N') = 'O')
41287       )
41288    THEN
41289    NULL;
41290    --
41291    --
41292    
41293    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
41294      p_code_combination_id      => TO_NUMBER(C_NUM)
41295    , p_value_type_code          => NULL
41296    , p_transaction_coa_id       => null
41297    , p_accounting_coa_id        => null
41298    , p_adr_code                 => NULL
41299    , p_adr_type_code            => NULL
41300    , p_component_type           => l_component_type
41301    , p_component_code           => l_component_code
41302    , p_component_type_code      => l_component_type_code
41303    , p_component_appl_id        => l_component_appl_id
41304    , p_amb_context_code         => l_amb_context_code
41305    , p_side                     => NULL
41306    );
41310   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41307 
41308    
41309   -- initialise segments
41311   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41312   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41313   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41314   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41315   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41316   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41317   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41318   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
41319   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41320   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41321   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41322   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41323   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41324   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41325   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41326   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41327   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41328   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41329   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41330   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41331   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41332   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41333   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41334   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41335   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41336   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41337   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41338   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41339   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
41340   --
41341 
41342    --
41343 
41344 
41345    l_segment := AcctDerRule_6(
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_flexfield_segment_code   => l_adr_flexfield_segment_code
41352          , x_flex_value_set_id        => l_adr_flex_value_set_id
41353          , x_value_type_code          => l_adr_value_type_code
41354          , x_value_combination_id     => l_adr_value_combination_id
41355          , x_value_segment_code       => l_adr_value_segment_code
41356          , p_side                     => 'NA'
41357          , p_override_seg_flag        => 'Y'
41358    );
41359 
41360    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
41361 
41362       xla_ae_lines_pkg.set_segment(
41363           p_to_segment_code         => 'GL_ACCOUNT'
41364         , p_segment_value           => l_segment
41365         , p_from_segment_code       => l_adr_value_segment_code
41366         , p_from_combination_id     => l_adr_value_combination_id
41367         , p_value_type_code         => l_adr_value_type_code
41368         , p_transaction_coa_id      => l_adr_transaction_coa_id
41369         , p_accounting_coa_id       => l_adr_accounting_coa_id
41370         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
41371         , p_flex_value_set_id       => l_adr_flex_value_set_id
41372         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
41373         , p_adr_type_code           => 'S'
41374         , p_component_type          => l_component_type
41375         , p_component_code          => l_component_code
41376         , p_component_type_code     => l_component_type_code
41377         , p_component_appl_id       => l_component_appl_id
41378         , p_amb_context_code        => l_amb_context_code
41379         , p_entity_code             => 'AP_PAYMENTS'
41380         , p_event_class_code        => 'REFUNDS'
41381         , p_side                    => 'NA'
41382         );
41383 
41384   END IF;
41385 
41386    --
41387    --
41388    END IF;
41389 
41390        --
41391        -- Update the line information that should be overwritten
41392        --
41393        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41394                                          p_header_num   => 1);
41395        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41396 
41397        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41398 
41399        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41403       --
41400           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41401        END IF;
41402 
41404       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41405       --
41406       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41407           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41408       ELSE
41409           ---------------------------------------------------------------------------------------------------
41410           -- 4262811a Switch Sign
41411           ---------------------------------------------------------------------------------------------------
41412           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41413           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41414                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41415           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41416                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41417           -- 5132302
41418           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41419                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41420 
41421       END IF;
41422 
41423       -- 4955764
41424       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41425       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41426 
41427 
41428       XLA_AE_LINES_PKG.ValidateCurrentLine;
41429       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41430 
41431       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41432                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41433                ,p_balance_type_code => l_balance_type_code);
41434 
41435    END IF;
41436 
41437    -----------------------------------------------------------------------------------------
41438    -- 4262811 Multiperiod Accounting
41439    -----------------------------------------------------------------------------------------
41440      -- No MPA option is assigned.
41441 
41442 
41443 END IF;
41444 END IF;
41445 --
41446 
41447 --
41448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41449    trace
41450       (p_msg      => 'END of AcctLineType_91'
41451       ,p_level    => C_LEVEL_PROCEDURE
41452       ,p_module   => l_log_module);
41453 END IF;
41454 --
41455 EXCEPTION
41456   WHEN xla_exceptions_pkg.application_exception THEN
41457       RAISE;
41458   WHEN OTHERS THEN
41459        xla_exceptions_pkg.raise_message
41460            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_91');
41461 END AcctLineType_91;
41462 --
41463 
41464 ---------------------------------------
41465 --
41466 -- PRIVATE FUNCTION
41467 --         AcctLineType_92
41468 --
41469 ---------------------------------------
41470 PROCEDURE AcctLineType_92 (
41471   p_application_id        IN NUMBER
41472  ,p_event_id              IN NUMBER
41473  ,p_calculate_acctd_flag  IN VARCHAR2
41474  ,p_calculate_g_l_flag    IN VARCHAR2
41475  ,p_actual_flag           IN OUT VARCHAR2
41476  ,p_balance_type_code     OUT VARCHAR2
41477  ,p_gain_or_loss_ref      OUT VARCHAR2
41478  
41479 --Payment Currency Code
41480  , p_source_13            IN VARCHAR2
41481 --Automatic Offsets Value
41482  , p_source_15            IN VARCHAR2
41483  , p_source_15_meaning    IN VARCHAR2
41484 --Bank Cash Account
41485  , p_source_17            IN NUMBER
41486 --Accounting Reversal Indicator
41487  , p_source_52            IN VARCHAR2
41488 --Distribution Link Type
41489  , p_source_54            IN VARCHAR2
41490 --Override Accounted Amount Indicator
41491  , p_source_79            IN VARCHAR2
41492  , p_source_79_meaning    IN VARCHAR2
41493 --Third Party Type
41494  , p_source_82            IN VARCHAR2
41495 --Invoice Distribution Tax Line Identifier
41496  , p_source_85            IN NUMBER
41497 --Invoice Distribution Tax Distribution Identifier from Tax
41498  , p_source_86            IN NUMBER
41499 --Invoice Distribution Summary Tax Line Identifier
41500  , p_source_87            IN NUMBER
41501 --Business Flow Accounts Payable Application Identifier
41502  , p_source_90            IN NUMBER
41503 --Business Flow Invoice Distribution Type
41504  , p_source_91            IN VARCHAR2
41505 --Business Flow Invoice Entity Code
41506  , p_source_92            IN VARCHAR2
41507 --Business Flow Invoice Distribution Identifier
41508  , p_source_93            IN NUMBER
41509 --Business Flow Invoice Identifier
41510  , p_source_94            IN NUMBER
41511 --When to Account for Payment Option
41512  , p_source_96            IN VARCHAR2
41513 --Payment Distribution Type
41514  , p_source_97            IN VARCHAR2
41515  , p_source_97_meaning    IN VARCHAR2
41516 --Payment Distribution Amount
41517  , p_source_98            IN NUMBER
41518 --Payment Distribution Identifier
41519  , p_source_103            IN NUMBER
41520 --Payment Supplier Identifier
41521  , p_source_109            IN NUMBER
41525  , p_source_111            IN NUMBER
41522 --Payment Supplier Site Identifier
41523  , p_source_110            IN NUMBER
41524 --Payment Distribution Reversed Identifier
41526 --Payment Identifier
41527  , p_source_112            IN NUMBER
41528 --Pooled Bank Account Option
41529  , p_source_113            IN VARCHAR2
41530  , p_source_113_meaning    IN VARCHAR2
41531 --Payment Maturity Date
41532  , p_source_114            IN DATE
41533 --Payment Distribution (Payment Rate) Ledger Amount
41534  , p_source_115            IN NUMBER
41535 --Payment Exchange Date
41536  , p_source_117            IN DATE
41537 --Payment Exchange Rate
41538  , p_source_118            IN NUMBER
41539 --Payment Exchange Rate Type
41540  , p_source_119            IN VARCHAR2
41541 --Payment Type
41542  , p_source_122            IN VARCHAR2
41543  , p_source_122_meaning    IN VARCHAR2
41544 )
41545 IS
41546 
41547 l_component_type              VARCHAR2(80);
41548 l_component_code              VARCHAR2(30);
41549 l_component_type_code         VARCHAR2(1);
41550 l_component_appl_id           INTEGER;
41551 l_amb_context_code            VARCHAR2(30);
41552 l_entity_code                 VARCHAR2(30);
41553 l_event_class_code            VARCHAR2(30);
41554 l_ae_header_id                NUMBER;
41555 l_event_type_code             VARCHAR2(30);
41556 l_line_definition_code        VARCHAR2(30);
41557 l_line_definition_owner_code  VARCHAR2(1);
41558 --
41559 -- adr variables
41560 l_segment                     VARCHAR2(30);
41561 l_ccid                        NUMBER;
41562 l_adr_transaction_coa_id      NUMBER;
41563 l_adr_accounting_coa_id       NUMBER;
41564 l_adr_flexfield_segment_code  VARCHAR2(30);
41565 l_adr_flex_value_set_id       NUMBER;
41566 l_adr_value_type_code         VARCHAR2(30);
41567 l_adr_value_combination_id    NUMBER;
41568 l_adr_value_segment_code      VARCHAR2(30);
41569 
41570 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41571 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41572 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41573 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41574 
41575 -- 4262811 Variables ------------------------------------------------------------------------------------------
41576 l_entered_amt_idx             NUMBER;
41577 l_accted_amt_idx              NUMBER;
41578 l_acc_rev_flag                VARCHAR2(1);
41579 l_accrual_line_num            NUMBER;
41580 l_tmp_amt                     NUMBER;
41581 l_acc_rev_natural_side_code   VARCHAR2(1);
41582 
41583 l_num_entries                 NUMBER;
41584 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41585 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41586 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41587 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41588 l_recog_line_1                NUMBER;
41589 l_recog_line_2                NUMBER;
41590 
41591 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41592 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41593 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41594 
41595 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41596 
41597 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41598 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41599 
41600 ---------------------------------------------------------------------------------------------------------------
41601 
41602 
41603 --
41604 -- bulk performance
41605 --
41606 l_balance_type_code           VARCHAR2(1);
41607 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41608 l_log_module                  VARCHAR2(240);
41609 
41610 --
41611 -- Upgrade strategy
41612 --
41613 l_actual_upg_option           VARCHAR2(1);
41614 l_enc_upg_option           VARCHAR2(1);
41615 
41616 --
41617 BEGIN
41618 --
41619 IF g_log_enabled THEN
41620       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
41621 END IF;
41622 --
41623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41624 
41625       trace
41626          (p_msg      => 'BEGIN of AcctLineType_92'
41627          ,p_level    => C_LEVEL_PROCEDURE
41628          ,p_module   => l_log_module);
41629 
41630 END IF;
41631 --
41632 l_component_type             := 'AMB_JLT';
41633 l_component_code             := 'AP_CASH_REF_AOS_BS';
41634 l_component_type_code        := 'S';
41635 l_component_appl_id          :=  200;
41636 l_amb_context_code           := 'DEFAULT';
41637 l_entity_code                := 'AP_PAYMENTS';
41638 l_event_class_code           := 'REFUNDS';
41639 l_event_type_code            := 'REFUNDS_ALL';
41640 l_line_definition_owner_code := 'S';
41641 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
41642 --
41643 l_balance_type_code          := 'A';
41644 l_segment                     := NULL;
41645 l_ccid                        := NULL;
41646 l_adr_transaction_coa_id      := NULL;
41647 l_adr_accounting_coa_id       := NULL;
41648 l_adr_flexfield_segment_code  := NULL;
41649 l_adr_flex_value_set_id       := NULL;
41650 l_adr_value_type_code         := NULL;
41651 l_adr_value_combination_id    := NULL;
41652 l_adr_value_segment_code      := NULL;
41653 
41657 l_budgetary_control_flag     := 'N';
41654 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
41655 l_bflow_class_code           := '';    -- 4219869 Business Flow
41656 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41658 
41659 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41660 l_bflow_applied_to_amt       := NULL; -- 5132302
41661 l_entered_amt_idx            := NULL;          -- 4262811
41662 l_accted_amt_idx             := NULL;          -- 4262811
41663 l_acc_rev_flag               := NULL;          -- 4262811
41664 l_accrual_line_num           := NULL;          -- 4262811
41665 l_tmp_amt                    := NULL;          -- 4262811
41666 --
41667  
41668 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41669     l_balance_type_code <> 'B' THEN
41670 IF NVL(p_source_96,'
41671 ') =  'ISSUE_ISSUE' AND 
41672 (NVL(p_source_113,'
41673 ') =  'Y' AND 
41674 NVL(p_source_15,'
41675 ') =  'BALANCING_SEGMENT') AND 
41676 p_source_114 IS NULL AND 
41677 NVL(p_source_97,'
41678 ') =  'CASH' AND 
41679 NVL(p_source_122,'
41680 ') =  'R'
41681  THEN 
41682 
41683    --
41684    XLA_AE_LINES_PKG.SetNewLine;
41685 
41686    p_balance_type_code          := l_balance_type_code;
41687    -- set the flag so later we will know whether the gain loss line needs to be created
41688    
41689    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41690      p_actual_flag :='A';
41691    END IF;
41692 
41693    --
41694    -- bulk performance
41695    --
41696    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41697                                       p_header_num   => 0); -- 4262811
41698    --
41699    -- set accounting line options
41700    --
41701    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41702            p_natural_side_code          => 'C'
41703          , p_gain_or_loss_flag          => 'N'
41704          , p_gl_transfer_mode_code      => 'S'
41705          , p_acct_entry_type_code       => 'A'
41706          , p_switch_side_flag           => 'Y'
41707          , p_merge_duplicate_code       => 'A'
41708          );
41709    --
41710    l_acc_rev_natural_side_code := 'D';  -- 4262811
41711    -- 
41712    --
41713    -- set accounting line type info
41714    --
41715    xla_ae_lines_pkg.SetAcctLineType
41716       (p_component_type             => l_component_type
41717       ,p_event_type_code            => l_event_type_code
41718       ,p_line_definition_owner_code => l_line_definition_owner_code
41719       ,p_line_definition_code       => l_line_definition_code
41720       ,p_accounting_line_code       => l_component_code
41721       ,p_accounting_line_type_code  => l_component_type_code
41722       ,p_accounting_line_appl_id    => l_component_appl_id
41723       ,p_amb_context_code           => l_amb_context_code
41724       ,p_entity_code                => l_entity_code
41725       ,p_event_class_code           => l_event_class_code);
41726    --
41727    -- set accounting class
41728    --
41729    xla_ae_lines_pkg.SetAcctClass(
41730            p_accounting_class_code  => 'CASH'
41731          , p_ae_header_id           => l_ae_header_id
41732          );
41733 
41734    --
41735    -- set rounding class
41736    --
41737    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41738                       'CASH';
41739 
41740    --
41741    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41742    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41743    --
41744    -- bulk performance
41745    --
41746    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41747 
41748    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41749       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41750 
41751    -- 4955764
41752    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41753       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41754 
41755    -- 4458381 Public Sector Enh
41756    
41757    --
41758    -- set accounting attributes for the line type
41759    --
41760    l_entered_amt_idx := 9;
41761    l_accted_amt_idx  := 14;
41762    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41763    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41764    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
41765    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41766    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
41767    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41768    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
41769    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41770    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
41771    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41772    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
41773    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41774    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
41775    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41779    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41776    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
41777    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41778    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
41780    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
41781    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41782    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
41783    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41784    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
41785    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41786    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
41787    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41788    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
41789    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41790    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
41791    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41792    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
41793    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41794    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
41795    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41796    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
41797    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41798    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
41799    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41800    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
41801    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41802    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
41803    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41804    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
41805    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41806    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
41807    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41808    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
41809 
41810    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41811    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41812 
41813    ---------------------------------------------------------------------------------------------------------------
41814    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41815    ---------------------------------------------------------------------------------------------------------------
41816    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41817 
41818    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41819    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41820 
41821    IF xla_accounting_cache_pkg.GetValueChar
41822          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41823          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41824    AND l_bflow_method_code = 'PRIOR_ENTRY'
41825 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41826    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41827          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41828        )
41829    THEN
41830          xla_ae_lines_pkg.BflowUpgEntry
41831            (p_business_method_code    => l_bflow_method_code
41832            ,p_business_class_code     => l_bflow_class_code
41833            ,p_balance_type            => l_balance_type_code);
41834    ELSE
41835       NULL;
41836 XLA_AE_LINES_PKG.business_flow_validation(
41837                                 p_business_method_code     => l_bflow_method_code
41838                                ,p_business_class_code      => l_bflow_class_code
41839                                ,p_inherit_description_flag => l_inherit_desc_flag);
41840    END IF;
41841 
41842    --
41843    -- call analytical criteria
41844    --
41845    
41846 
41847 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
41848 xla_ae_lines_pkg.SetAnalyticalCriteria(
41849    p_analytical_criterion_name    => 'Check Id'
41850  , p_analytical_criterion_owner   => 'S'
41851  , p_analytical_criterion_code    => 'CHECK_ID'
41852  , p_amb_context_code             => 'DEFAULT'
41853  , p_balancing_flag               => 'N'
41854  
41855  , p_analytical_detail_char_1    =>  NULL
41856  , p_analytical_detail_num_1     =>  p_source_112
41857  , p_analytical_detail_date_1    =>  NULL
41858 
41859  , p_ae_header_id                 => l_ae_header_id
41860 )
41861 ;
41862 --
41863 
41864    --
41865    -- call description
41866    --
41867    -- No description or it is inherited.
41868    --
41869    -- call ADRs
41870    -- Bug 4922099
41871    --
41872    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41873         (NVL(l_actual_upg_option, 'N') = 'O') OR
41874         (NVL(l_enc_upg_option, 'N') = 'O')
41875       )
41876    THEN
41877    NULL;
41878    --
41879    --
41880    
41881   l_ccid := AcctDerRule_28(
41882            p_application_id           => p_application_id
41883          , p_ae_header_id             => l_ae_header_id 
41884 , p_source_17 => p_source_17
41885          , x_transaction_coa_id       => l_adr_transaction_coa_id
41889    );
41886          , x_accounting_coa_id        => l_adr_accounting_coa_id
41887          , x_value_type_code          => l_adr_value_type_code
41888          , p_side                     => 'NA'
41890 
41891    xla_ae_lines_pkg.set_ccid(
41892     p_code_combination_id          => l_ccid
41893   , p_value_type_code              => l_adr_value_type_code
41894   , p_transaction_coa_id           => l_adr_transaction_coa_id
41895   , p_accounting_coa_id            => l_adr_accounting_coa_id
41896   , p_adr_code                     => 'AP_CASH'
41897   , p_adr_type_code                => 'S'
41898   , p_component_type               => l_component_type
41899   , p_component_code               => l_component_code
41900   , p_component_type_code          => l_component_type_code
41901   , p_component_appl_id            => l_component_appl_id
41902   , p_amb_context_code             => l_amb_context_code
41903   , p_side                         => 'NA'
41904   );
41905 
41906 
41907    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
41908      p_to_segment_code         => 'GL_BALANCING'
41909    , p_segment_value           => C_CHAR
41910    , p_from_segment_code       => NULL
41911    , p_from_combination_id     => NULL
41912    , p_value_type_code         => NULL
41913    , p_transaction_coa_id      => null
41914    , p_accounting_coa_id       => null
41915    , p_flexfield_segment_code  => NULL
41916    , p_flex_value_set_id       => NULL
41917    , p_adr_code                => NULL
41918    , p_adr_type_code           => NULL
41919    , p_component_type          => l_component_type
41920    , p_component_code          => l_component_code
41921    , p_component_type_code     => l_component_type_code
41922    , p_component_appl_id       => l_component_appl_id
41923    , p_amb_context_code        => l_amb_context_code
41924    , p_entity_code             => 'AP_PAYMENTS'
41925    , p_event_class_code        => 'REFUNDS'
41926    , p_side                    => 'NA'
41927    );
41928    --
41929 
41930 
41931    --
41932    --
41933    END IF;
41934    --
41935    -- Bug 4922099
41936    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41937           (NVL(l_enc_upg_option, 'N') = 'O')
41938         ) AND
41939         (l_bflow_method_code = 'PRIOR_ENTRY')
41940       )
41941    THEN
41942       IF
41943       --
41944       1 = 2
41945       --
41946       THEN
41947       xla_accounting_err_pkg.build_message
41948                                     (p_appli_s_name            => 'XLA'
41949                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41950                                     ,p_token_1                 => 'LINE_NUMBER'
41951                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41952                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41953                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41954                                                                              l_component_type
41955                                                                             ,l_component_code
41956                                                                             ,l_component_type_code
41957                                                                             ,l_component_appl_id
41958                                                                             ,l_amb_context_code
41959                                                                             ,l_entity_code
41960                                                                             ,l_event_class_code
41961                                                                            )
41962                                     ,p_token_3                 => 'OWNER'
41963                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41964                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41965                                                                           ,p_lookup_code    => l_component_type_code
41966                                                                          )
41967                                     ,p_token_4                 => 'PRODUCT_NAME'
41968                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41969                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41970                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41971                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41972                                     ,p_ae_header_id            =>  NULL
41973                                        );
41974 
41975         IF (C_LEVEL_ERROR>= g_log_level) THEN
41976                  trace
41977                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41978                       ,p_level    => C_LEVEL_ERROR
41979                       ,p_module   => l_log_module);
41980         END IF;
41981       END IF;
41982    END IF;
41983    --
41984    --
41985    ------------------------------------------------------------------------------------------------
41986    -- 4219869 Business Flow
41987    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41991 
41988    -- Prior Entry.  Currently, the following code is always generated.
41989    ------------------------------------------------------------------------------------------------
41990    XLA_AE_LINES_PKG.ValidateCurrentLine;
41992    ------------------------------------------------------------------------------------
41993    -- 4219869 Business Flow
41994    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41995    ------------------------------------------------------------------------------------
41996    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41997 
41998    ----------------------------------------------------------------------------------
41999    -- 4219869 Business Flow
42000    -- Update journal entry status -- Need to generate this within IF <condition>
42001    ----------------------------------------------------------------------------------
42002    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42003          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42004          ,p_balance_type_code => l_balance_type_code
42005          );
42006 
42007    -------------------------------------------------------------------------------------------
42008    -- 4262811 - Generate the Accrual Reversal lines
42009    -------------------------------------------------------------------------------------------
42010    BEGIN
42011       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42012                               (g_array_event(p_event_id).array_value_num('header_index'));
42013       IF l_acc_rev_flag IS NULL THEN
42014          l_acc_rev_flag := 'N';
42015       END IF;
42016    EXCEPTION
42017       WHEN OTHERS THEN
42018          l_acc_rev_flag := 'N';
42019    END;
42020    --
42021    IF (l_acc_rev_flag = 'Y') THEN
42022 
42023        -- 4645092  ------------------------------------------------------------------------------
42024        -- To allow MPA report to determine if it should generate report process
42025        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42026        ------------------------------------------------------------------------------------------
42027 
42028        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42029        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42030    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42031    -- call ADRs
42032    -- Bug 4922099
42033    --
42034    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42035         (NVL(l_actual_upg_option, 'N') = 'O') OR
42036         (NVL(l_enc_upg_option, 'N') = 'O')
42037       )
42038    THEN
42039    NULL;
42040    --
42041    --
42042    
42043   l_ccid := AcctDerRule_28(
42044            p_application_id           => p_application_id
42045          , p_ae_header_id             => l_ae_header_id 
42046 , p_source_17 => p_source_17
42047          , x_transaction_coa_id       => l_adr_transaction_coa_id
42048          , x_accounting_coa_id        => l_adr_accounting_coa_id
42049          , x_value_type_code          => l_adr_value_type_code
42050          , p_side                     => 'NA'
42051    );
42052 
42053    xla_ae_lines_pkg.set_ccid(
42054     p_code_combination_id          => l_ccid
42055   , p_value_type_code              => l_adr_value_type_code
42056   , p_transaction_coa_id           => l_adr_transaction_coa_id
42057   , p_accounting_coa_id            => l_adr_accounting_coa_id
42058   , p_adr_code                     => 'AP_CASH'
42059   , p_adr_type_code                => 'S'
42060   , p_component_type               => l_component_type
42061   , p_component_code               => l_component_code
42062   , p_component_type_code          => l_component_type_code
42063   , p_component_appl_id            => l_component_appl_id
42064   , p_amb_context_code             => l_amb_context_code
42065   , p_side                         => 'NA'
42066   );
42067 
42068 
42069    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
42070      p_to_segment_code         => 'GL_BALANCING'
42071    , p_segment_value           => C_CHAR
42072    , p_from_segment_code       => NULL
42073    , p_from_combination_id     => NULL
42074    , p_value_type_code         => NULL
42075    , p_transaction_coa_id      => null
42076    , p_accounting_coa_id       => null
42077    , p_flexfield_segment_code  => NULL
42078    , p_flex_value_set_id       => NULL
42079    , p_adr_code                => NULL
42080    , p_adr_type_code           => NULL
42081    , p_component_type          => l_component_type
42082    , p_component_code          => l_component_code
42083    , p_component_type_code     => l_component_type_code
42084    , p_component_appl_id       => l_component_appl_id
42085    , p_amb_context_code        => l_amb_context_code
42086    , p_entity_code             => 'AP_PAYMENTS'
42087    , p_event_class_code        => 'REFUNDS'
42088    , p_side                    => 'NA'
42089    );
42090    --
42091 
42092 
42093    --
42094    --
42095    END IF;
42096 
42097        --
42098        -- Update the line information that should be overwritten
42099        --
42100        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42101                                          p_header_num   => 1);
42102        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42103 
42107           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42104        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42105 
42106        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42108        END IF;
42109 
42110       --
42111       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42112       --
42113       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42114           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42115       ELSE
42116           ---------------------------------------------------------------------------------------------------
42117           -- 4262811a Switch Sign
42118           ---------------------------------------------------------------------------------------------------
42119           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42120           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42121                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42122           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42123                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42124           -- 5132302
42125           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42126                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42127 
42128       END IF;
42129 
42130       -- 4955764
42131       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42132       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42133 
42134 
42135       XLA_AE_LINES_PKG.ValidateCurrentLine;
42136       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42137 
42138       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42139                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42140                ,p_balance_type_code => l_balance_type_code);
42141 
42142    END IF;
42143 
42144    -----------------------------------------------------------------------------------------
42145    -- 4262811 Multiperiod Accounting
42146    -----------------------------------------------------------------------------------------
42147      -- No MPA option is assigned.
42148 
42149 
42150 END IF;
42151 END IF;
42152 --
42153 
42154 --
42155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42156    trace
42157       (p_msg      => 'END of AcctLineType_92'
42158       ,p_level    => C_LEVEL_PROCEDURE
42159       ,p_module   => l_log_module);
42160 END IF;
42161 --
42162 EXCEPTION
42163   WHEN xla_exceptions_pkg.application_exception THEN
42164       RAISE;
42165   WHEN OTHERS THEN
42166        xla_exceptions_pkg.raise_message
42167            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_92');
42168 END AcctLineType_92;
42169 --
42170 
42171 ---------------------------------------
42172 --
42173 -- PRIVATE FUNCTION
42174 --         AcctLineType_93
42175 --
42176 ---------------------------------------
42177 PROCEDURE AcctLineType_93 (
42178   p_application_id        IN NUMBER
42179  ,p_event_id              IN NUMBER
42180  ,p_calculate_acctd_flag  IN VARCHAR2
42181  ,p_calculate_g_l_flag    IN VARCHAR2
42182  ,p_actual_flag           IN OUT VARCHAR2
42183  ,p_balance_type_code     OUT VARCHAR2
42184  ,p_gain_or_loss_ref      OUT VARCHAR2
42185  
42186 --Payment Currency Code
42187  , p_source_13            IN VARCHAR2
42188 --Invoice Distribution Type
42189  , p_source_33            IN VARCHAR2
42190  , p_source_33_meaning    IN VARCHAR2
42191 --Recoverable Tax Account
42192  , p_source_51            IN NUMBER
42193 --Accounting Reversal Indicator
42194  , p_source_52            IN VARCHAR2
42195 --Distribution Link Type
42196  , p_source_54            IN VARCHAR2
42197 --Override Accounted Amount Indicator
42198  , p_source_79            IN VARCHAR2
42199  , p_source_79_meaning    IN VARCHAR2
42200 --Third Party Type
42201  , p_source_82            IN VARCHAR2
42202 --Invoice Distribution Tax Line Identifier
42203  , p_source_85            IN NUMBER
42204 --Invoice Distribution Summary Tax Line Identifier
42205  , p_source_87            IN NUMBER
42206 --Business Flow Accounts Payable Application Identifier
42207  , p_source_90            IN NUMBER
42208 --When to Account for Payment Option
42209  , p_source_96            IN VARCHAR2
42210 --Payment Distribution Type
42211  , p_source_97            IN VARCHAR2
42212  , p_source_97_meaning    IN VARCHAR2
42213 --Payment Distribution Amount
42214  , p_source_98            IN NUMBER
42215 --Business Flow Payment Distribution Type
42216  , p_source_99            IN VARCHAR2
42217 --Business Flow Payment Entity Code
42218  , p_source_100            IN VARCHAR2
42219 --Business Flow Payment Distribution Identifier
42220  , p_source_101            IN NUMBER
42221 --Business Flow Payment Identifier
42222  , p_source_102            IN NUMBER
42223 --Payment Distribution Identifier
42224  , p_source_103            IN NUMBER
42225 --Cleared Exchange Date
42229 --Cleared Exchange Rate Type
42226  , p_source_105            IN DATE
42227 --Cleared Exchange Rate
42228  , p_source_106            IN NUMBER
42230  , p_source_107            IN VARCHAR2
42231 --Payment Distribution (Cleared Rate) Ledger Amount
42232  , p_source_108            IN NUMBER
42233 --Payment Supplier Identifier
42234  , p_source_109            IN NUMBER
42235 --Payment Supplier Site Identifier
42236  , p_source_110            IN NUMBER
42237 --Payment Distribution Reversed Identifier
42238  , p_source_111            IN NUMBER
42239 --Payment Identifier
42240  , p_source_112            IN NUMBER
42241 --Payment Type
42242  , p_source_122            IN VARCHAR2
42243  , p_source_122_meaning    IN VARCHAR2
42244 --Deferred Recoverable Tax Option
42245  , p_source_125            IN VARCHAR2
42246  , p_source_125_meaning    IN VARCHAR2
42247 )
42248 IS
42249 
42250 l_component_type              VARCHAR2(80);
42251 l_component_code              VARCHAR2(30);
42252 l_component_type_code         VARCHAR2(1);
42253 l_component_appl_id           INTEGER;
42254 l_amb_context_code            VARCHAR2(30);
42255 l_entity_code                 VARCHAR2(30);
42256 l_event_class_code            VARCHAR2(30);
42257 l_ae_header_id                NUMBER;
42258 l_event_type_code             VARCHAR2(30);
42259 l_line_definition_code        VARCHAR2(30);
42260 l_line_definition_owner_code  VARCHAR2(1);
42261 --
42262 -- adr variables
42263 l_segment                     VARCHAR2(30);
42264 l_ccid                        NUMBER;
42265 l_adr_transaction_coa_id      NUMBER;
42266 l_adr_accounting_coa_id       NUMBER;
42267 l_adr_flexfield_segment_code  VARCHAR2(30);
42268 l_adr_flex_value_set_id       NUMBER;
42269 l_adr_value_type_code         VARCHAR2(30);
42270 l_adr_value_combination_id    NUMBER;
42271 l_adr_value_segment_code      VARCHAR2(30);
42272 
42273 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42274 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42275 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42276 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42277 
42278 -- 4262811 Variables ------------------------------------------------------------------------------------------
42279 l_entered_amt_idx             NUMBER;
42280 l_accted_amt_idx              NUMBER;
42281 l_acc_rev_flag                VARCHAR2(1);
42282 l_accrual_line_num            NUMBER;
42283 l_tmp_amt                     NUMBER;
42284 l_acc_rev_natural_side_code   VARCHAR2(1);
42285 
42286 l_num_entries                 NUMBER;
42287 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42288 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42289 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42290 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42291 l_recog_line_1                NUMBER;
42292 l_recog_line_2                NUMBER;
42293 
42294 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42295 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42296 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42297 
42298 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42299 
42300 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42301 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42302 
42303 ---------------------------------------------------------------------------------------------------------------
42304 
42305 
42306 --
42307 -- bulk performance
42308 --
42309 l_balance_type_code           VARCHAR2(1);
42310 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42311 l_log_module                  VARCHAR2(240);
42312 
42313 --
42314 -- Upgrade strategy
42315 --
42316 l_actual_upg_option           VARCHAR2(1);
42317 l_enc_upg_option           VARCHAR2(1);
42318 
42319 --
42320 BEGIN
42321 --
42322 IF g_log_enabled THEN
42323       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
42324 END IF;
42325 --
42326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42327 
42328       trace
42329          (p_msg      => 'BEGIN of AcctLineType_93'
42330          ,p_level    => C_LEVEL_PROCEDURE
42331          ,p_module   => l_log_module);
42332 
42333 END IF;
42334 --
42335 l_component_type             := 'AMB_JLT';
42336 l_component_code             := 'AP_DEF_RTAX_CLR';
42337 l_component_type_code        := 'S';
42338 l_component_appl_id          :=  200;
42339 l_amb_context_code           := 'DEFAULT';
42340 l_entity_code                := 'AP_PAYMENTS';
42341 l_event_class_code           := 'RECONCILED PAYMENTS';
42342 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
42343 l_line_definition_owner_code := 'S';
42344 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
42345 --
42346 l_balance_type_code          := 'A';
42347 l_segment                     := NULL;
42348 l_ccid                        := NULL;
42349 l_adr_transaction_coa_id      := NULL;
42350 l_adr_accounting_coa_id       := NULL;
42351 l_adr_flexfield_segment_code  := NULL;
42352 l_adr_flex_value_set_id       := NULL;
42353 l_adr_value_type_code         := NULL;
42354 l_adr_value_combination_id    := NULL;
42355 l_adr_value_segment_code      := NULL;
42356 
42360 l_budgetary_control_flag     := 'N';
42357 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
42358 l_bflow_class_code           := '';    -- 4219869 Business Flow
42359 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42361 
42362 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42363 l_bflow_applied_to_amt       := NULL; -- 5132302
42364 l_entered_amt_idx            := NULL;          -- 4262811
42365 l_accted_amt_idx             := NULL;          -- 4262811
42366 l_acc_rev_flag               := NULL;          -- 4262811
42367 l_accrual_line_num           := NULL;          -- 4262811
42368 l_tmp_amt                    := NULL;          -- 4262811
42369 --
42370  
42371 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42372     l_balance_type_code <> 'B' THEN
42373 IF NVL(p_source_96,'
42374 ') =  'CLEAR_CLEAR' AND 
42375 NVL(p_source_33,'
42376 ') =  'REC_TAX' AND 
42377 NVL(p_source_125,'
42378 ') =  'DEFERRED' AND 
42379 (NVL(p_source_97,'
42380 ') =  'CASH' OR 
42381 NVL(p_source_97,'
42382 ') =  'DISCOUNT') AND 
42383 NVL(p_source_122,'
42384 ') <>  'R'
42385  THEN 
42386 
42387    --
42388    XLA_AE_LINES_PKG.SetNewLine;
42389 
42390    p_balance_type_code          := l_balance_type_code;
42391    -- set the flag so later we will know whether the gain loss line needs to be created
42392    
42393    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42394      p_actual_flag :='A';
42395    END IF;
42396 
42397    --
42398    -- bulk performance
42399    --
42400    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42401                                       p_header_num   => 0); -- 4262811
42402    --
42403    -- set accounting line options
42404    --
42405    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42406            p_natural_side_code          => 'D'
42407          , p_gain_or_loss_flag          => 'N'
42408          , p_gl_transfer_mode_code      => 'S'
42409          , p_acct_entry_type_code       => 'A'
42410          , p_switch_side_flag           => 'Y'
42411          , p_merge_duplicate_code       => 'A'
42412          );
42413    --
42414    l_acc_rev_natural_side_code := 'C';  -- 4262811
42415    -- 
42416    --
42417    -- set accounting line type info
42418    --
42419    xla_ae_lines_pkg.SetAcctLineType
42420       (p_component_type             => l_component_type
42421       ,p_event_type_code            => l_event_type_code
42422       ,p_line_definition_owner_code => l_line_definition_owner_code
42423       ,p_line_definition_code       => l_line_definition_code
42424       ,p_accounting_line_code       => l_component_code
42425       ,p_accounting_line_type_code  => l_component_type_code
42426       ,p_accounting_line_appl_id    => l_component_appl_id
42427       ,p_amb_context_code           => l_amb_context_code
42428       ,p_entity_code                => l_entity_code
42429       ,p_event_class_code           => l_event_class_code);
42430    --
42431    -- set accounting class
42432    --
42433    xla_ae_lines_pkg.SetAcctClass(
42434            p_accounting_class_code  => 'DEF_REC_TAX'
42435          , p_ae_header_id           => l_ae_header_id
42436          );
42437 
42438    --
42439    -- set rounding class
42440    --
42441    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42442                       'DEF_REC_TAX';
42443 
42444    --
42445    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42446    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42447    --
42448    -- bulk performance
42449    --
42450    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42451 
42452    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42453       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42454 
42455    -- 4955764
42456    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42457       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42458 
42459    -- 4458381 Public Sector Enh
42460    
42461    --
42462    -- set accounting attributes for the line type
42463    --
42464    l_entered_amt_idx := 10;
42465    l_accted_amt_idx  := 15;
42466    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
42467    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42468    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
42469    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42470    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
42471    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42472    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
42473    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42474    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
42475    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42476    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
42477    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42478    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
42479    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42480    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
42484    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
42481    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42482    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
42483    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42485    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42486    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
42487    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42488    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
42489    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42490    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
42491    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42492    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
42493    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42494    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
42495    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42496    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
42497    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42498    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
42499    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42500    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
42501    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42502    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
42503    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42504    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
42505    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42506    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
42507    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42508    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
42509    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42510    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
42511    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42512    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
42513    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42514    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
42515 
42516    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42517    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42518 
42519    ---------------------------------------------------------------------------------------------------------------
42520    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42521    ---------------------------------------------------------------------------------------------------------------
42522    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42523 
42524    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42525    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42526 
42527    IF xla_accounting_cache_pkg.GetValueChar
42528          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42529          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42530    AND l_bflow_method_code = 'PRIOR_ENTRY'
42531 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42532    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42533          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42534        )
42535    THEN
42536          xla_ae_lines_pkg.BflowUpgEntry
42537            (p_business_method_code    => l_bflow_method_code
42538            ,p_business_class_code     => l_bflow_class_code
42539            ,p_balance_type            => l_balance_type_code);
42540    ELSE
42541       NULL;
42542 -- No business flow processing for business flow method of NONE.
42543    END IF;
42544 
42545    --
42546    -- call analytical criteria
42547    --
42548    
42549 
42550 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
42551 xla_ae_lines_pkg.SetAnalyticalCriteria(
42552    p_analytical_criterion_name    => 'Check Id'
42553  , p_analytical_criterion_owner   => 'S'
42554  , p_analytical_criterion_code    => 'CHECK_ID'
42555  , p_amb_context_code             => 'DEFAULT'
42556  , p_balancing_flag               => 'N'
42557  
42558  , p_analytical_detail_char_1    =>  NULL
42559  , p_analytical_detail_num_1     =>  p_source_112
42560  , p_analytical_detail_date_1    =>  NULL
42561 
42562  , p_ae_header_id                 => l_ae_header_id
42563 )
42564 ;
42565 --
42566 
42567    --
42568    -- call description
42569    --
42570    -- No description or it is inherited.
42571    --
42572    -- call ADRs
42573    -- Bug 4922099
42574    --
42575    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42576         (NVL(l_actual_upg_option, 'N') = 'O') OR
42577         (NVL(l_enc_upg_option, 'N') = 'O')
42578       )
42579    THEN
42580    NULL;
42581    --
42582    --
42583    
42584   l_ccid := AcctDerRule_43(
42585            p_application_id           => p_application_id
42586          , p_ae_header_id             => l_ae_header_id 
42587 , p_source_51 => p_source_51
42588          , x_transaction_coa_id       => l_adr_transaction_coa_id
42589          , x_accounting_coa_id        => l_adr_accounting_coa_id
42593 
42590          , x_value_type_code          => l_adr_value_type_code
42591          , p_side                     => 'NA'
42592    );
42594    xla_ae_lines_pkg.set_ccid(
42595     p_code_combination_id          => l_ccid
42596   , p_value_type_code              => l_adr_value_type_code
42597   , p_transaction_coa_id           => l_adr_transaction_coa_id
42598   , p_accounting_coa_id            => l_adr_accounting_coa_id
42599   , p_adr_code                     => 'AP_TAX_ACCOUNT'
42600   , p_adr_type_code                => 'S'
42601   , p_component_type               => l_component_type
42602   , p_component_code               => l_component_code
42603   , p_component_type_code          => l_component_type_code
42604   , p_component_appl_id            => l_component_appl_id
42605   , p_amb_context_code             => l_amb_context_code
42606   , p_side                         => 'NA'
42607   );
42608 
42609 
42610    --
42611    --
42612    END IF;
42613    --
42614    -- Bug 4922099
42615    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42616           (NVL(l_enc_upg_option, 'N') = 'O')
42617         ) AND
42618         (l_bflow_method_code = 'PRIOR_ENTRY')
42619       )
42620    THEN
42621       IF
42622       --
42623       1 = 2
42624       --
42625       THEN
42626       xla_accounting_err_pkg.build_message
42627                                     (p_appli_s_name            => 'XLA'
42628                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42629                                     ,p_token_1                 => 'LINE_NUMBER'
42630                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42631                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42632                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42633                                                                              l_component_type
42634                                                                             ,l_component_code
42635                                                                             ,l_component_type_code
42636                                                                             ,l_component_appl_id
42637                                                                             ,l_amb_context_code
42638                                                                             ,l_entity_code
42639                                                                             ,l_event_class_code
42640                                                                            )
42641                                     ,p_token_3                 => 'OWNER'
42642                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42643                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42644                                                                           ,p_lookup_code    => l_component_type_code
42645                                                                          )
42646                                     ,p_token_4                 => 'PRODUCT_NAME'
42647                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42648                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42649                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42650                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42651                                     ,p_ae_header_id            =>  NULL
42652                                        );
42653 
42654         IF (C_LEVEL_ERROR>= g_log_level) THEN
42655                  trace
42656                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42657                       ,p_level    => C_LEVEL_ERROR
42658                       ,p_module   => l_log_module);
42659         END IF;
42660       END IF;
42661    END IF;
42662    --
42663    --
42664    ------------------------------------------------------------------------------------------------
42665    -- 4219869 Business Flow
42666    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42667    -- Prior Entry.  Currently, the following code is always generated.
42668    ------------------------------------------------------------------------------------------------
42669    XLA_AE_LINES_PKG.ValidateCurrentLine;
42670 
42671    ------------------------------------------------------------------------------------
42672    -- 4219869 Business Flow
42673    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42674    ------------------------------------------------------------------------------------
42675    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42676 
42677    ----------------------------------------------------------------------------------
42678    -- 4219869 Business Flow
42679    -- Update journal entry status -- Need to generate this within IF <condition>
42680    ----------------------------------------------------------------------------------
42681    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42682          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42683          ,p_balance_type_code => l_balance_type_code
42684          );
42685 
42689    BEGIN
42686    -------------------------------------------------------------------------------------------
42687    -- 4262811 - Generate the Accrual Reversal lines
42688    -------------------------------------------------------------------------------------------
42690       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42691                               (g_array_event(p_event_id).array_value_num('header_index'));
42692       IF l_acc_rev_flag IS NULL THEN
42693          l_acc_rev_flag := 'N';
42694       END IF;
42695    EXCEPTION
42696       WHEN OTHERS THEN
42697          l_acc_rev_flag := 'N';
42698    END;
42699    --
42700    IF (l_acc_rev_flag = 'Y') THEN
42701 
42702        -- 4645092  ------------------------------------------------------------------------------
42703        -- To allow MPA report to determine if it should generate report process
42704        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42705        ------------------------------------------------------------------------------------------
42706 
42707        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42708        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42709    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42710    -- call ADRs
42711    -- Bug 4922099
42712    --
42713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42714         (NVL(l_actual_upg_option, 'N') = 'O') OR
42715         (NVL(l_enc_upg_option, 'N') = 'O')
42716       )
42717    THEN
42718    NULL;
42719    --
42720    --
42721    
42722   l_ccid := AcctDerRule_43(
42723            p_application_id           => p_application_id
42724          , p_ae_header_id             => l_ae_header_id 
42725 , p_source_51 => p_source_51
42726          , x_transaction_coa_id       => l_adr_transaction_coa_id
42727          , x_accounting_coa_id        => l_adr_accounting_coa_id
42728          , x_value_type_code          => l_adr_value_type_code
42729          , p_side                     => 'NA'
42730    );
42731 
42732    xla_ae_lines_pkg.set_ccid(
42733     p_code_combination_id          => l_ccid
42734   , p_value_type_code              => l_adr_value_type_code
42735   , p_transaction_coa_id           => l_adr_transaction_coa_id
42736   , p_accounting_coa_id            => l_adr_accounting_coa_id
42737   , p_adr_code                     => 'AP_TAX_ACCOUNT'
42738   , p_adr_type_code                => 'S'
42739   , p_component_type               => l_component_type
42740   , p_component_code               => l_component_code
42741   , p_component_type_code          => l_component_type_code
42742   , p_component_appl_id            => l_component_appl_id
42743   , p_amb_context_code             => l_amb_context_code
42744   , p_side                         => 'NA'
42745   );
42746 
42747 
42748    --
42749    --
42750    END IF;
42751 
42752        --
42753        -- Update the line information that should be overwritten
42754        --
42755        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42756                                          p_header_num   => 1);
42757        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42758 
42759        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42760 
42761        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42762           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42763        END IF;
42764 
42765       --
42766       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42767       --
42768       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42769           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42770       ELSE
42771           ---------------------------------------------------------------------------------------------------
42772           -- 4262811a Switch Sign
42773           ---------------------------------------------------------------------------------------------------
42774           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42775           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42776                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42777           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42778                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42779           -- 5132302
42780           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42781                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42782 
42783       END IF;
42784 
42785       -- 4955764
42786       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42787       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42788 
42789 
42790       XLA_AE_LINES_PKG.ValidateCurrentLine;
42791       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42792 
42793       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42794                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42798 
42795                ,p_balance_type_code => l_balance_type_code);
42796 
42797    END IF;
42799    -----------------------------------------------------------------------------------------
42800    -- 4262811 Multiperiod Accounting
42801    -----------------------------------------------------------------------------------------
42802      -- No MPA option is assigned.
42803 
42804 
42805 END IF;
42806 END IF;
42807 --
42808 
42809 --
42810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42811    trace
42812       (p_msg      => 'END of AcctLineType_93'
42813       ,p_level    => C_LEVEL_PROCEDURE
42814       ,p_module   => l_log_module);
42815 END IF;
42816 --
42817 EXCEPTION
42818   WHEN xla_exceptions_pkg.application_exception THEN
42819       RAISE;
42820   WHEN OTHERS THEN
42821        xla_exceptions_pkg.raise_message
42822            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_93');
42823 END AcctLineType_93;
42824 --
42825 
42826 ---------------------------------------
42827 --
42828 -- PRIVATE FUNCTION
42829 --         AcctLineType_94
42830 --
42831 ---------------------------------------
42832 PROCEDURE AcctLineType_94 (
42833   p_application_id        IN NUMBER
42834  ,p_event_id              IN NUMBER
42835  ,p_calculate_acctd_flag  IN VARCHAR2
42836  ,p_calculate_g_l_flag    IN VARCHAR2
42837  ,p_actual_flag           IN OUT VARCHAR2
42838  ,p_balance_type_code     OUT VARCHAR2
42839  ,p_gain_or_loss_ref      OUT VARCHAR2
42840  
42841 --Payment Currency Code
42842  , p_source_13            IN VARCHAR2
42843 --Invoice Distribution Type
42844  , p_source_33            IN VARCHAR2
42845  , p_source_33_meaning    IN VARCHAR2
42846 --Accounting Reversal Indicator
42847  , p_source_52            IN VARCHAR2
42848 --Distribution Link Type
42849  , p_source_54            IN VARCHAR2
42850 --Override Accounted Amount Indicator
42851  , p_source_79            IN VARCHAR2
42852  , p_source_79_meaning    IN VARCHAR2
42853 --Third Party Type
42854  , p_source_82            IN VARCHAR2
42855 --Invoice Distribution Tax Line Identifier
42856  , p_source_85            IN NUMBER
42857 --Invoice Distribution Summary Tax Line Identifier
42858  , p_source_87            IN NUMBER
42859 --Business Flow Accounts Payable Application Identifier
42860  , p_source_90            IN NUMBER
42861 --Business Flow Invoice Distribution Identifier
42862  , p_source_93            IN NUMBER
42863 --Business Flow Invoice Identifier
42864  , p_source_94            IN NUMBER
42865 --When to Account for Payment Option
42866  , p_source_96            IN VARCHAR2
42867 --Payment Distribution Type
42868  , p_source_97            IN VARCHAR2
42869  , p_source_97_meaning    IN VARCHAR2
42870 --Payment Distribution Amount
42871  , p_source_98            IN NUMBER
42872 --Business Flow Payment Distribution Type
42873  , p_source_99            IN VARCHAR2
42874 --Business Flow Payment Entity Code
42875  , p_source_100            IN VARCHAR2
42876 --Payment Distribution Identifier
42877  , p_source_103            IN NUMBER
42878 --Payment Distribution Reversed Identifier
42879  , p_source_111            IN NUMBER
42880 --Payment Distribution (Invoice Rate) Ledger Amount
42881  , p_source_116            IN NUMBER
42882 --Payment Type
42883  , p_source_122            IN VARCHAR2
42884  , p_source_122_meaning    IN VARCHAR2
42885 --Deferred Recoverable Tax Option
42886  , p_source_125            IN VARCHAR2
42887  , p_source_125_meaning    IN VARCHAR2
42888 )
42889 IS
42890 
42891 l_component_type              VARCHAR2(80);
42892 l_component_code              VARCHAR2(30);
42893 l_component_type_code         VARCHAR2(1);
42894 l_component_appl_id           INTEGER;
42895 l_amb_context_code            VARCHAR2(30);
42896 l_entity_code                 VARCHAR2(30);
42897 l_event_class_code            VARCHAR2(30);
42898 l_ae_header_id                NUMBER;
42899 l_event_type_code             VARCHAR2(30);
42900 l_line_definition_code        VARCHAR2(30);
42901 l_line_definition_owner_code  VARCHAR2(1);
42902 --
42903 -- adr variables
42904 l_segment                     VARCHAR2(30);
42905 l_ccid                        NUMBER;
42906 l_adr_transaction_coa_id      NUMBER;
42907 l_adr_accounting_coa_id       NUMBER;
42908 l_adr_flexfield_segment_code  VARCHAR2(30);
42909 l_adr_flex_value_set_id       NUMBER;
42910 l_adr_value_type_code         VARCHAR2(30);
42911 l_adr_value_combination_id    NUMBER;
42912 l_adr_value_segment_code      VARCHAR2(30);
42913 
42914 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42915 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42916 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42917 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42918 
42919 -- 4262811 Variables ------------------------------------------------------------------------------------------
42920 l_entered_amt_idx             NUMBER;
42921 l_accted_amt_idx              NUMBER;
42922 l_acc_rev_flag                VARCHAR2(1);
42923 l_accrual_line_num            NUMBER;
42924 l_tmp_amt                     NUMBER;
42925 l_acc_rev_natural_side_code   VARCHAR2(1);
42926 
42927 l_num_entries                 NUMBER;
42928 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42929 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42930 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42934 
42931 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42932 l_recog_line_1                NUMBER;
42933 l_recog_line_2                NUMBER;
42935 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42936 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42937 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42938 
42939 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42940 
42941 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42942 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42943 
42944 ---------------------------------------------------------------------------------------------------------------
42945 
42946 
42947 --
42948 -- bulk performance
42949 --
42950 l_balance_type_code           VARCHAR2(1);
42951 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42952 l_log_module                  VARCHAR2(240);
42953 
42954 --
42955 -- Upgrade strategy
42956 --
42957 l_actual_upg_option           VARCHAR2(1);
42958 l_enc_upg_option           VARCHAR2(1);
42959 
42960 --
42961 BEGIN
42962 --
42963 IF g_log_enabled THEN
42964       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
42965 END IF;
42966 --
42967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42968 
42969       trace
42970          (p_msg      => 'BEGIN of AcctLineType_94'
42971          ,p_level    => C_LEVEL_PROCEDURE
42972          ,p_module   => l_log_module);
42973 
42974 END IF;
42975 --
42976 l_component_type             := 'AMB_JLT';
42977 l_component_code             := 'AP_DEF_RTAX_INTERIM_CLR';
42978 l_component_type_code        := 'S';
42979 l_component_appl_id          :=  200;
42980 l_amb_context_code           := 'DEFAULT';
42981 l_entity_code                := 'AP_PAYMENTS';
42982 l_event_class_code           := 'RECONCILED PAYMENTS';
42983 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
42984 l_line_definition_owner_code := 'S';
42985 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
42986 --
42987 l_balance_type_code          := 'A';
42988 l_segment                     := NULL;
42989 l_ccid                        := NULL;
42990 l_adr_transaction_coa_id      := NULL;
42991 l_adr_accounting_coa_id       := NULL;
42992 l_adr_flexfield_segment_code  := NULL;
42993 l_adr_flex_value_set_id       := NULL;
42994 l_adr_value_type_code         := NULL;
42995 l_adr_value_combination_id    := NULL;
42996 l_adr_value_segment_code      := NULL;
42997 
42998 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
42999 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
43000 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43001 l_budgetary_control_flag     := 'N';
43002 
43003 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43004 l_bflow_applied_to_amt       := NULL; -- 5132302
43005 l_entered_amt_idx            := NULL;          -- 4262811
43006 l_accted_amt_idx             := NULL;          -- 4262811
43007 l_acc_rev_flag               := NULL;          -- 4262811
43008 l_accrual_line_num           := NULL;          -- 4262811
43009 l_tmp_amt                    := NULL;          -- 4262811
43010 --
43011  
43012 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43013     l_balance_type_code <> 'B' THEN
43014 IF NVL(p_source_96,'
43015 ') =  'CLEAR_CLEAR' AND 
43016 NVL(p_source_33,'
43017 ') =  'REC_TAX' AND 
43018 NVL(p_source_125,'
43019 ') =  'DEFERRED' AND 
43020 (NVL(p_source_97,'
43021 ') =  'CASH' OR 
43022 NVL(p_source_97,'
43023 ') =  'DISCOUNT') AND 
43024 NVL(p_source_122,'
43025 ') <>  'R'
43026  THEN 
43027 
43028    --
43029    XLA_AE_LINES_PKG.SetNewLine;
43030 
43031    p_balance_type_code          := l_balance_type_code;
43032    -- set the flag so later we will know whether the gain loss line needs to be created
43033    
43034    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43035      p_actual_flag :='A';
43036    END IF;
43037 
43038    --
43039    -- bulk performance
43040    --
43041    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43042                                       p_header_num   => 0); -- 4262811
43043    --
43044    -- set accounting line options
43045    --
43046    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43047            p_natural_side_code          => 'C'
43048          , p_gain_or_loss_flag          => 'N'
43049          , p_gl_transfer_mode_code      => 'S'
43050          , p_acct_entry_type_code       => 'A'
43051          , p_switch_side_flag           => 'Y'
43052          , p_merge_duplicate_code       => 'A'
43053          );
43054    --
43055    l_acc_rev_natural_side_code := 'D';  -- 4262811
43056    -- 
43057    --
43058    -- set accounting line type info
43059    --
43060    xla_ae_lines_pkg.SetAcctLineType
43061       (p_component_type             => l_component_type
43062       ,p_event_type_code            => l_event_type_code
43063       ,p_line_definition_owner_code => l_line_definition_owner_code
43064       ,p_line_definition_code       => l_line_definition_code
43065       ,p_accounting_line_code       => l_component_code
43069       ,p_entity_code                => l_entity_code
43066       ,p_accounting_line_type_code  => l_component_type_code
43067       ,p_accounting_line_appl_id    => l_component_appl_id
43068       ,p_amb_context_code           => l_amb_context_code
43070       ,p_event_class_code           => l_event_class_code);
43071    --
43072    -- set accounting class
43073    --
43074    xla_ae_lines_pkg.SetAcctClass(
43075            p_accounting_class_code  => 'DEF_REC_TAX'
43076          , p_ae_header_id           => l_ae_header_id
43077          );
43078 
43079    --
43080    -- set rounding class
43081    --
43082    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43083                       'DEF_REC_TAX';
43084 
43085    --
43086    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43087    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43088    --
43089    -- bulk performance
43090    --
43091    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43092 
43093    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43094       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43095 
43096    -- 4955764
43097    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43098       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43099 
43100    -- 4458381 Public Sector Enh
43101    
43102    --
43103    -- set accounting attributes for the line type
43104    --
43105    l_entered_amt_idx := 10;
43106    l_accted_amt_idx  := 12;
43107    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
43108    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43109    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
43110    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
43111    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
43112    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
43113    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
43114    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43115    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
43116    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
43117    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
43118    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
43119    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
43120    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43121    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
43122    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
43123    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
43124    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
43125    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
43126    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
43127    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
43128    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
43129    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
43130    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
43131    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
43132    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
43133    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
43134    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
43135    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
43136    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
43137    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
43138    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
43139    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
43140    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
43141    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
43142    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
43143    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
43144    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
43145    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
43146 
43147    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43148    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43149 
43150    ---------------------------------------------------------------------------------------------------------------
43151    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43152    ---------------------------------------------------------------------------------------------------------------
43153    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43154 
43155    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43156    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43157 
43158    IF xla_accounting_cache_pkg.GetValueChar
43159          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43160          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43161    AND l_bflow_method_code = 'PRIOR_ENTRY'
43162 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43166    THEN
43163    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43164          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43165        )
43167          xla_ae_lines_pkg.BflowUpgEntry
43168            (p_business_method_code    => l_bflow_method_code
43169            ,p_business_class_code     => l_bflow_class_code
43170            ,p_balance_type            => l_balance_type_code);
43171    ELSE
43172       NULL;
43173 XLA_AE_LINES_PKG.business_flow_validation(
43174                                 p_business_method_code     => l_bflow_method_code
43175                                ,p_business_class_code      => l_bflow_class_code
43176                                ,p_inherit_description_flag => l_inherit_desc_flag);
43177    END IF;
43178 
43179    --
43180    -- call analytical criteria
43181    --
43182    -- Inherited Analytical Criteria for business flow method of Prior Entry.
43183    --
43184    -- call description
43185    --
43186    -- No description or it is inherited.
43187    --
43188    -- call ADRs
43189    -- Bug 4922099
43190    --
43191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43192         (NVL(l_actual_upg_option, 'N') = 'O') OR
43193         (NVL(l_enc_upg_option, 'N') = 'O')
43194       )
43195    THEN
43196    NULL;
43197    --
43198    --
43199    
43200    --
43201    --
43202    END IF;
43203    --
43204    -- Bug 4922099
43205    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43206           (NVL(l_enc_upg_option, 'N') = 'O')
43207         ) AND
43208         (l_bflow_method_code = 'PRIOR_ENTRY')
43209       )
43210    THEN
43211       IF
43212       --
43213       1 = 1
43214       --
43215       THEN
43216       xla_accounting_err_pkg.build_message
43217                                     (p_appli_s_name            => 'XLA'
43218                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43219                                     ,p_token_1                 => 'LINE_NUMBER'
43220                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43221                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43222                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43223                                                                              l_component_type
43224                                                                             ,l_component_code
43225                                                                             ,l_component_type_code
43226                                                                             ,l_component_appl_id
43227                                                                             ,l_amb_context_code
43228                                                                             ,l_entity_code
43229                                                                             ,l_event_class_code
43230                                                                            )
43231                                     ,p_token_3                 => 'OWNER'
43232                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43233                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43234                                                                           ,p_lookup_code    => l_component_type_code
43235                                                                          )
43236                                     ,p_token_4                 => 'PRODUCT_NAME'
43237                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43238                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43239                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43240                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43241                                     ,p_ae_header_id            =>  NULL
43242                                        );
43243 
43244         IF (C_LEVEL_ERROR>= g_log_level) THEN
43245                  trace
43246                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43247                       ,p_level    => C_LEVEL_ERROR
43248                       ,p_module   => l_log_module);
43249         END IF;
43250       END IF;
43251    END IF;
43252    --
43253    --
43254    ------------------------------------------------------------------------------------------------
43255    -- 4219869 Business Flow
43256    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43257    -- Prior Entry.  Currently, the following code is always generated.
43258    ------------------------------------------------------------------------------------------------
43259    -- No ValidateCurrentLine for business flow method of Prior Entry
43260 
43261    ------------------------------------------------------------------------------------
43262    -- 4219869 Business Flow
43263    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43264    ------------------------------------------------------------------------------------
43265    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43266 
43267    ----------------------------------------------------------------------------------
43271    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43268    -- 4219869 Business Flow
43269    -- Update journal entry status -- Need to generate this within IF <condition>
43270    ----------------------------------------------------------------------------------
43272          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43273          ,p_balance_type_code => l_balance_type_code
43274          );
43275 
43276    -------------------------------------------------------------------------------------------
43277    -- 4262811 - Generate the Accrual Reversal lines
43278    -------------------------------------------------------------------------------------------
43279    BEGIN
43280       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43281                               (g_array_event(p_event_id).array_value_num('header_index'));
43282       IF l_acc_rev_flag IS NULL THEN
43283          l_acc_rev_flag := 'N';
43284       END IF;
43285    EXCEPTION
43286       WHEN OTHERS THEN
43287          l_acc_rev_flag := 'N';
43288    END;
43289    --
43290    IF (l_acc_rev_flag = 'Y') THEN
43291 
43292        -- 4645092  ------------------------------------------------------------------------------
43293        -- To allow MPA report to determine if it should generate report process
43294        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43295        ------------------------------------------------------------------------------------------
43296 
43297        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43298        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43299    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43300    -- call ADRs
43301    -- Bug 4922099
43302    --
43303    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43304         (NVL(l_actual_upg_option, 'N') = 'O') OR
43305         (NVL(l_enc_upg_option, 'N') = 'O')
43306       )
43307    THEN
43308    NULL;
43309    --
43310    --
43311    
43312    --
43313    --
43314    END IF;
43315 
43316        --
43317        -- Update the line information that should be overwritten
43318        --
43319        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43320                                          p_header_num   => 1);
43321        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43322 
43323        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43324 
43325        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43326           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43327        END IF;
43328 
43329       --
43330       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43331       --
43332       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43333           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43334       ELSE
43335           ---------------------------------------------------------------------------------------------------
43336           -- 4262811a Switch Sign
43337           ---------------------------------------------------------------------------------------------------
43338           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43339           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43340                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43341           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43342                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43343           -- 5132302
43344           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43345                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43346 
43347       END IF;
43348 
43349       -- 4955764
43350       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43351       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43352 
43353 
43354       XLA_AE_LINES_PKG.ValidateCurrentLine;
43355       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43356 
43357       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43358                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43359                ,p_balance_type_code => l_balance_type_code);
43360 
43361    END IF;
43362 
43363    -----------------------------------------------------------------------------------------
43364    -- 4262811 Multiperiod Accounting
43365    -----------------------------------------------------------------------------------------
43366      -- No MPA option is assigned.
43367 
43368 
43369 END IF;
43370 END IF;
43371 --
43372 
43373 --
43374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43375    trace
43376       (p_msg      => 'END of AcctLineType_94'
43377       ,p_level    => C_LEVEL_PROCEDURE
43378       ,p_module   => l_log_module);
43379 END IF;
43380 --
43381 EXCEPTION
43382   WHEN xla_exceptions_pkg.application_exception THEN
43386            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_94');
43383       RAISE;
43384   WHEN OTHERS THEN
43385        xla_exceptions_pkg.raise_message
43387 END AcctLineType_94;
43388 --
43389 
43390 ---------------------------------------
43391 --
43392 -- PRIVATE FUNCTION
43393 --         AcctLineType_95
43394 --
43395 ---------------------------------------
43396 PROCEDURE AcctLineType_95 (
43397   p_application_id        IN NUMBER
43398  ,p_event_id              IN NUMBER
43399  ,p_calculate_acctd_flag  IN VARCHAR2
43400  ,p_calculate_g_l_flag    IN VARCHAR2
43401  ,p_actual_flag           IN OUT VARCHAR2
43402  ,p_balance_type_code     OUT VARCHAR2
43403  ,p_gain_or_loss_ref      OUT VARCHAR2
43404  
43405 --Payment Currency Code
43406  , p_source_13            IN VARCHAR2
43407 --Invoice Distribution Type
43408  , p_source_33            IN VARCHAR2
43409  , p_source_33_meaning    IN VARCHAR2
43410 --Accounting Reversal Indicator
43411  , p_source_52            IN VARCHAR2
43412 --Distribution Link Type
43413  , p_source_54            IN VARCHAR2
43414 --Override Accounted Amount Indicator
43415  , p_source_79            IN VARCHAR2
43416  , p_source_79_meaning    IN VARCHAR2
43417 --Third Party Type
43418  , p_source_82            IN VARCHAR2
43419 --Business Flow Accounts Payable Application Identifier
43420  , p_source_90            IN NUMBER
43421 --Business Flow Invoice Distribution Type
43422  , p_source_91            IN VARCHAR2
43423 --Business Flow Invoice Entity Code
43424  , p_source_92            IN VARCHAR2
43425 --Business Flow Invoice Distribution Identifier
43426  , p_source_93            IN NUMBER
43427 --Business Flow Invoice Identifier
43428  , p_source_94            IN NUMBER
43429 --When to Account for Payment Option
43430  , p_source_96            IN VARCHAR2
43431 --Payment Distribution Type
43432  , p_source_97            IN VARCHAR2
43433  , p_source_97_meaning    IN VARCHAR2
43434 --Payment Distribution Amount
43435  , p_source_98            IN NUMBER
43436 --Payment Distribution Identifier
43437  , p_source_103            IN NUMBER
43438 --Payment Distribution Reversed Identifier
43439  , p_source_111            IN NUMBER
43440 --Payment Maturity Date
43441  , p_source_114            IN DATE
43442 --Payment Distribution (Matured Rate) Ledger Amount
43443  , p_source_121            IN NUMBER
43444 --Deferred Recoverable Tax Option
43445  , p_source_125            IN VARCHAR2
43446  , p_source_125_meaning    IN VARCHAR2
43447 )
43448 IS
43449 
43450 l_component_type              VARCHAR2(80);
43451 l_component_code              VARCHAR2(30);
43452 l_component_type_code         VARCHAR2(1);
43453 l_component_appl_id           INTEGER;
43454 l_amb_context_code            VARCHAR2(30);
43455 l_entity_code                 VARCHAR2(30);
43456 l_event_class_code            VARCHAR2(30);
43457 l_ae_header_id                NUMBER;
43458 l_event_type_code             VARCHAR2(30);
43459 l_line_definition_code        VARCHAR2(30);
43460 l_line_definition_owner_code  VARCHAR2(1);
43461 --
43462 -- adr variables
43463 l_segment                     VARCHAR2(30);
43464 l_ccid                        NUMBER;
43465 l_adr_transaction_coa_id      NUMBER;
43466 l_adr_accounting_coa_id       NUMBER;
43467 l_adr_flexfield_segment_code  VARCHAR2(30);
43468 l_adr_flex_value_set_id       NUMBER;
43469 l_adr_value_type_code         VARCHAR2(30);
43470 l_adr_value_combination_id    NUMBER;
43471 l_adr_value_segment_code      VARCHAR2(30);
43472 
43473 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43474 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43475 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43476 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43477 
43478 -- 4262811 Variables ------------------------------------------------------------------------------------------
43479 l_entered_amt_idx             NUMBER;
43480 l_accted_amt_idx              NUMBER;
43481 l_acc_rev_flag                VARCHAR2(1);
43482 l_accrual_line_num            NUMBER;
43483 l_tmp_amt                     NUMBER;
43484 l_acc_rev_natural_side_code   VARCHAR2(1);
43485 
43486 l_num_entries                 NUMBER;
43487 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43488 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43489 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43490 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43491 l_recog_line_1                NUMBER;
43492 l_recog_line_2                NUMBER;
43493 
43494 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43495 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43496 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43497 
43498 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43499 
43500 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43501 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43502 
43503 ---------------------------------------------------------------------------------------------------------------
43504 
43505 
43506 --
43507 -- bulk performance
43508 --
43509 l_balance_type_code           VARCHAR2(1);
43513 --
43510 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43511 l_log_module                  VARCHAR2(240);
43512 
43514 -- Upgrade strategy
43515 --
43516 l_actual_upg_option           VARCHAR2(1);
43517 l_enc_upg_option           VARCHAR2(1);
43518 
43519 --
43520 BEGIN
43521 --
43522 IF g_log_enabled THEN
43523       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
43524 END IF;
43525 --
43526 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43527 
43528       trace
43529          (p_msg      => 'BEGIN of AcctLineType_95'
43530          ,p_level    => C_LEVEL_PROCEDURE
43531          ,p_module   => l_log_module);
43532 
43533 END IF;
43534 --
43535 l_component_type             := 'AMB_JLT';
43536 l_component_code             := 'AP_DEF_RTAX_INTERIM_MAT';
43537 l_component_type_code        := 'S';
43538 l_component_appl_id          :=  200;
43539 l_amb_context_code           := 'DEFAULT';
43540 l_entity_code                := 'AP_PAYMENTS';
43541 l_event_class_code           := 'FUTURE DATED PAYMENTS';
43542 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
43543 l_line_definition_owner_code := 'S';
43544 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
43545 --
43546 l_balance_type_code          := 'A';
43547 l_segment                     := NULL;
43548 l_ccid                        := NULL;
43549 l_adr_transaction_coa_id      := NULL;
43550 l_adr_accounting_coa_id       := NULL;
43551 l_adr_flexfield_segment_code  := NULL;
43552 l_adr_flex_value_set_id       := NULL;
43553 l_adr_value_type_code         := NULL;
43554 l_adr_value_combination_id    := NULL;
43555 l_adr_value_segment_code      := NULL;
43556 
43557 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
43558 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
43559 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43560 l_budgetary_control_flag     := 'N';
43561 
43562 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43563 l_bflow_applied_to_amt       := NULL; -- 5132302
43564 l_entered_amt_idx            := NULL;          -- 4262811
43565 l_accted_amt_idx             := NULL;          -- 4262811
43566 l_acc_rev_flag               := NULL;          -- 4262811
43567 l_accrual_line_num           := NULL;          -- 4262811
43568 l_tmp_amt                    := NULL;          -- 4262811
43569 --
43570  
43571 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43572     l_balance_type_code <> 'B' THEN
43573 IF NVL(p_source_96,'
43574 ') <>  'CLEAR_CLEAR' AND 
43575 NVL(p_source_33,'
43576 ') =  'REC_TAX' AND 
43577 p_source_114 IS NOT NULL AND 
43578 NVL(p_source_125,'
43579 ') =  'DEFERRED' AND 
43580 (NVL(p_source_97,'
43581 ') =  'DISCOUNT' OR 
43582 NVL(p_source_97,'
43583 ') =  'CASH')
43584  THEN 
43585 
43586    --
43587    XLA_AE_LINES_PKG.SetNewLine;
43588 
43589    p_balance_type_code          := l_balance_type_code;
43590    -- set the flag so later we will know whether the gain loss line needs to be created
43591    
43592    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43593      p_actual_flag :='A';
43594    END IF;
43595 
43596    --
43597    -- bulk performance
43598    --
43599    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43600                                       p_header_num   => 0); -- 4262811
43601    --
43602    -- set accounting line options
43603    --
43604    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43605            p_natural_side_code          => 'C'
43606          , p_gain_or_loss_flag          => 'N'
43607          , p_gl_transfer_mode_code      => 'S'
43608          , p_acct_entry_type_code       => 'A'
43609          , p_switch_side_flag           => 'Y'
43610          , p_merge_duplicate_code       => 'A'
43611          );
43612    --
43613    l_acc_rev_natural_side_code := 'D';  -- 4262811
43614    -- 
43615    --
43616    -- set accounting line type info
43617    --
43618    xla_ae_lines_pkg.SetAcctLineType
43619       (p_component_type             => l_component_type
43620       ,p_event_type_code            => l_event_type_code
43621       ,p_line_definition_owner_code => l_line_definition_owner_code
43622       ,p_line_definition_code       => l_line_definition_code
43623       ,p_accounting_line_code       => l_component_code
43624       ,p_accounting_line_type_code  => l_component_type_code
43625       ,p_accounting_line_appl_id    => l_component_appl_id
43626       ,p_amb_context_code           => l_amb_context_code
43627       ,p_entity_code                => l_entity_code
43628       ,p_event_class_code           => l_event_class_code);
43629    --
43630    -- set accounting class
43631    --
43632    xla_ae_lines_pkg.SetAcctClass(
43633            p_accounting_class_code  => 'DEF_REC_TAX'
43634          , p_ae_header_id           => l_ae_header_id
43635          );
43636 
43637    --
43638    -- set rounding class
43639    --
43640    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43641                       'DEF_REC_TAX';
43642 
43643    --
43644    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43648    --
43645    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43646    --
43647    -- bulk performance
43649    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43650 
43651    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43652       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43653 
43654    -- 4955764
43655    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43656       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43657 
43658    -- 4458381 Public Sector Enh
43659    
43660    --
43661    -- set accounting attributes for the line type
43662    --
43663    l_entered_amt_idx := 9;
43664    l_accted_amt_idx  := 11;
43665    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43666    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43667    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
43668    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
43669    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
43670    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43671    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
43672    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
43673    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
43674    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
43675    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
43676    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43677    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
43678    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
43679    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
43680    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
43681    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
43682    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
43683    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
43684    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
43685    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
43686    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
43687    l_rec_acct_attrs.array_num_value(11)  := p_source_121;
43688    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
43689    l_rec_acct_attrs.array_char_value(12)  := p_source_79;
43690    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
43691    l_rec_acct_attrs.array_char_value(13)  := p_source_82;
43692    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
43693    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_111);
43694    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
43695    l_rec_acct_attrs.array_char_value(15)  := p_source_54;
43696 
43697    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43698    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43699 
43700    ---------------------------------------------------------------------------------------------------------------
43701    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43702    ---------------------------------------------------------------------------------------------------------------
43703    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43704 
43705    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43706    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43707 
43708    IF xla_accounting_cache_pkg.GetValueChar
43709          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43710          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43711    AND l_bflow_method_code = 'PRIOR_ENTRY'
43712 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43713    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43714          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43715        )
43716    THEN
43717          xla_ae_lines_pkg.BflowUpgEntry
43718            (p_business_method_code    => l_bflow_method_code
43719            ,p_business_class_code     => l_bflow_class_code
43720            ,p_balance_type            => l_balance_type_code);
43721    ELSE
43722       NULL;
43723 XLA_AE_LINES_PKG.business_flow_validation(
43724                                 p_business_method_code     => l_bflow_method_code
43725                                ,p_business_class_code      => l_bflow_class_code
43726                                ,p_inherit_description_flag => l_inherit_desc_flag);
43727    END IF;
43728 
43729    --
43730    -- call analytical criteria
43731    --
43732    -- Inherited Analytical Criteria for business flow method of Prior Entry.
43733    --
43734    -- call description
43735    --
43736    -- No description or it is inherited.
43737    --
43738    -- call ADRs
43739    -- Bug 4922099
43740    --
43741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43742         (NVL(l_actual_upg_option, 'N') = 'O') OR
43743         (NVL(l_enc_upg_option, 'N') = 'O')
43744       )
43745    THEN
43746    NULL;
43747    --
43748    --
43749    
43750    --
43751    --
43752    END IF;
43753    --
43754    -- Bug 4922099
43758         (l_bflow_method_code = 'PRIOR_ENTRY')
43755    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43756           (NVL(l_enc_upg_option, 'N') = 'O')
43757         ) AND
43759       )
43760    THEN
43761       IF
43762       --
43763       1 = 1
43764       --
43765       THEN
43766       xla_accounting_err_pkg.build_message
43767                                     (p_appli_s_name            => 'XLA'
43768                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43769                                     ,p_token_1                 => 'LINE_NUMBER'
43770                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43771                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43772                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43773                                                                              l_component_type
43774                                                                             ,l_component_code
43775                                                                             ,l_component_type_code
43776                                                                             ,l_component_appl_id
43777                                                                             ,l_amb_context_code
43778                                                                             ,l_entity_code
43779                                                                             ,l_event_class_code
43780                                                                            )
43781                                     ,p_token_3                 => 'OWNER'
43782                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43783                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43784                                                                           ,p_lookup_code    => l_component_type_code
43785                                                                          )
43786                                     ,p_token_4                 => 'PRODUCT_NAME'
43787                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43788                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43789                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43790                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43791                                     ,p_ae_header_id            =>  NULL
43792                                        );
43793 
43794         IF (C_LEVEL_ERROR>= g_log_level) THEN
43795                  trace
43796                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43797                       ,p_level    => C_LEVEL_ERROR
43798                       ,p_module   => l_log_module);
43799         END IF;
43800       END IF;
43801    END IF;
43802    --
43803    --
43804    ------------------------------------------------------------------------------------------------
43805    -- 4219869 Business Flow
43806    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43807    -- Prior Entry.  Currently, the following code is always generated.
43808    ------------------------------------------------------------------------------------------------
43809    -- No ValidateCurrentLine for business flow method of Prior Entry
43810 
43811    ------------------------------------------------------------------------------------
43812    -- 4219869 Business Flow
43813    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43814    ------------------------------------------------------------------------------------
43815    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43816 
43817    ----------------------------------------------------------------------------------
43818    -- 4219869 Business Flow
43819    -- Update journal entry status -- Need to generate this within IF <condition>
43820    ----------------------------------------------------------------------------------
43821    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43822          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43823          ,p_balance_type_code => l_balance_type_code
43824          );
43825 
43826    -------------------------------------------------------------------------------------------
43827    -- 4262811 - Generate the Accrual Reversal lines
43828    -------------------------------------------------------------------------------------------
43829    BEGIN
43830       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43831                               (g_array_event(p_event_id).array_value_num('header_index'));
43832       IF l_acc_rev_flag IS NULL THEN
43833          l_acc_rev_flag := 'N';
43834       END IF;
43835    EXCEPTION
43836       WHEN OTHERS THEN
43837          l_acc_rev_flag := 'N';
43838    END;
43839    --
43840    IF (l_acc_rev_flag = 'Y') THEN
43841 
43842        -- 4645092  ------------------------------------------------------------------------------
43843        -- To allow MPA report to determine if it should generate report process
43844        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43845        ------------------------------------------------------------------------------------------
43846 
43850    -- call ADRs
43847        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43848        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43849    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43851    -- Bug 4922099
43852    --
43853    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43854         (NVL(l_actual_upg_option, 'N') = 'O') OR
43855         (NVL(l_enc_upg_option, 'N') = 'O')
43856       )
43857    THEN
43858    NULL;
43859    --
43860    --
43861    
43862    --
43863    --
43864    END IF;
43865 
43866        --
43867        -- Update the line information that should be overwritten
43868        --
43869        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43870                                          p_header_num   => 1);
43871        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43872 
43873        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43874 
43875        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43876           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43877        END IF;
43878 
43879       --
43880       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43881       --
43882       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43883           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43884       ELSE
43885           ---------------------------------------------------------------------------------------------------
43886           -- 4262811a Switch Sign
43887           ---------------------------------------------------------------------------------------------------
43888           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43889           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43890                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43891           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43892                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43893           -- 5132302
43894           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43895                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43896 
43897       END IF;
43898 
43899       -- 4955764
43900       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43901       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43902 
43903 
43904       XLA_AE_LINES_PKG.ValidateCurrentLine;
43905       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43906 
43907       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43908                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43909                ,p_balance_type_code => l_balance_type_code);
43910 
43911    END IF;
43912 
43913    -----------------------------------------------------------------------------------------
43914    -- 4262811 Multiperiod Accounting
43915    -----------------------------------------------------------------------------------------
43916      -- No MPA option is assigned.
43917 
43918 
43919 END IF;
43920 END IF;
43921 --
43922 
43923 --
43924 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43925    trace
43926       (p_msg      => 'END of AcctLineType_95'
43927       ,p_level    => C_LEVEL_PROCEDURE
43928       ,p_module   => l_log_module);
43929 END IF;
43930 --
43931 EXCEPTION
43932   WHEN xla_exceptions_pkg.application_exception THEN
43933       RAISE;
43934   WHEN OTHERS THEN
43935        xla_exceptions_pkg.raise_message
43936            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_95');
43937 END AcctLineType_95;
43938 --
43939 
43940 ---------------------------------------
43941 --
43942 -- PRIVATE FUNCTION
43943 --         AcctLineType_96
43944 --
43945 ---------------------------------------
43946 PROCEDURE AcctLineType_96 (
43947   p_application_id        IN NUMBER
43948  ,p_event_id              IN NUMBER
43949  ,p_calculate_acctd_flag  IN VARCHAR2
43950  ,p_calculate_g_l_flag    IN VARCHAR2
43951  ,p_actual_flag           IN OUT VARCHAR2
43952  ,p_balance_type_code     OUT VARCHAR2
43953  ,p_gain_or_loss_ref      OUT VARCHAR2
43954  
43955 --Payment Currency Code
43956  , p_source_13            IN VARCHAR2
43957 --Invoice Distribution Type
43958  , p_source_33            IN VARCHAR2
43959  , p_source_33_meaning    IN VARCHAR2
43960 --Accounting Reversal Indicator
43961  , p_source_52            IN VARCHAR2
43962 --Distribution Link Type
43963  , p_source_54            IN VARCHAR2
43964 --Override Accounted Amount Indicator
43965  , p_source_79            IN VARCHAR2
43966  , p_source_79_meaning    IN VARCHAR2
43967 --Third Party Type
43968  , p_source_82            IN VARCHAR2
43969 --Invoice Distribution Tax Line Identifier
43970  , p_source_85            IN NUMBER
43974  , p_source_87            IN NUMBER
43971 --Invoice Distribution Tax Distribution Identifier from Tax
43972  , p_source_86            IN NUMBER
43973 --Invoice Distribution Summary Tax Line Identifier
43975 --Business Flow Accounts Payable Application Identifier
43976  , p_source_90            IN NUMBER
43977 --Business Flow Invoice Distribution Type
43978  , p_source_91            IN VARCHAR2
43979 --Business Flow Invoice Entity Code
43980  , p_source_92            IN VARCHAR2
43981 --Business Flow Invoice Distribution Identifier
43982  , p_source_93            IN NUMBER
43983 --Business Flow Invoice Identifier
43984  , p_source_94            IN NUMBER
43985 --When to Account for Payment Option
43986  , p_source_96            IN VARCHAR2
43987 --Payment Distribution Type
43988  , p_source_97            IN VARCHAR2
43989  , p_source_97_meaning    IN VARCHAR2
43990 --Payment Distribution Amount
43991  , p_source_98            IN NUMBER
43992 --Payment Distribution Identifier
43993  , p_source_103            IN NUMBER
43994 --Payment Distribution Reversed Identifier
43995  , p_source_111            IN NUMBER
43996 --Payment Maturity Date
43997  , p_source_114            IN DATE
43998 --Payment Distribution (Invoice Rate) Ledger Amount
43999  , p_source_116            IN NUMBER
44000 --Payment Type
44001  , p_source_122            IN VARCHAR2
44002  , p_source_122_meaning    IN VARCHAR2
44003 --Payment Processing Type
44004  , p_source_123            IN VARCHAR2
44005 --Invoice Distribution Amount of the Payment Distribution
44006  , p_source_124            IN NUMBER
44007 --Deferred Recoverable Tax Option
44008  , p_source_125            IN VARCHAR2
44009  , p_source_125_meaning    IN VARCHAR2
44010 --AWT Related Distribution Type Lookup code
44011  , p_source_126            IN VARCHAR2
44012 )
44013 IS
44014 
44015 l_component_type              VARCHAR2(80);
44016 l_component_code              VARCHAR2(30);
44017 l_component_type_code         VARCHAR2(1);
44018 l_component_appl_id           INTEGER;
44019 l_amb_context_code            VARCHAR2(30);
44020 l_entity_code                 VARCHAR2(30);
44021 l_event_class_code            VARCHAR2(30);
44022 l_ae_header_id                NUMBER;
44023 l_event_type_code             VARCHAR2(30);
44024 l_line_definition_code        VARCHAR2(30);
44025 l_line_definition_owner_code  VARCHAR2(1);
44026 --
44027 -- adr variables
44028 l_segment                     VARCHAR2(30);
44029 l_ccid                        NUMBER;
44030 l_adr_transaction_coa_id      NUMBER;
44031 l_adr_accounting_coa_id       NUMBER;
44032 l_adr_flexfield_segment_code  VARCHAR2(30);
44033 l_adr_flex_value_set_id       NUMBER;
44034 l_adr_value_type_code         VARCHAR2(30);
44035 l_adr_value_combination_id    NUMBER;
44036 l_adr_value_segment_code      VARCHAR2(30);
44037 
44038 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44039 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44040 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44041 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44042 
44043 -- 4262811 Variables ------------------------------------------------------------------------------------------
44044 l_entered_amt_idx             NUMBER;
44045 l_accted_amt_idx              NUMBER;
44046 l_acc_rev_flag                VARCHAR2(1);
44047 l_accrual_line_num            NUMBER;
44048 l_tmp_amt                     NUMBER;
44049 l_acc_rev_natural_side_code   VARCHAR2(1);
44050 
44051 l_num_entries                 NUMBER;
44052 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44053 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44054 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44055 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44056 l_recog_line_1                NUMBER;
44057 l_recog_line_2                NUMBER;
44058 
44059 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44060 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44061 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44062 
44063 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44064 
44065 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44066 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44067 
44068 ---------------------------------------------------------------------------------------------------------------
44069 
44070 
44071 --
44072 -- bulk performance
44073 --
44074 l_balance_type_code           VARCHAR2(1);
44075 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44076 l_log_module                  VARCHAR2(240);
44077 
44078 --
44079 -- Upgrade strategy
44080 --
44081 l_actual_upg_option           VARCHAR2(1);
44082 l_enc_upg_option           VARCHAR2(1);
44083 
44084 --
44085 BEGIN
44086 --
44087 IF g_log_enabled THEN
44088       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
44089 END IF;
44090 --
44091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44092 
44093       trace
44094          (p_msg      => 'BEGIN of AcctLineType_96'
44095          ,p_level    => C_LEVEL_PROCEDURE
44096          ,p_module   => l_log_module);
44097 
44098 END IF;
44099 --
44103 l_component_appl_id          :=  200;
44100 l_component_type             := 'AMB_JLT';
44101 l_component_code             := 'AP_DEF_RTAX_INTERIM_PMT';
44102 l_component_type_code        := 'S';
44104 l_amb_context_code           := 'DEFAULT';
44105 l_entity_code                := 'AP_PAYMENTS';
44106 l_event_class_code           := 'PAYMENTS';
44107 l_event_type_code            := 'PAYMENTS_ALL';
44108 l_line_definition_owner_code := 'S';
44109 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
44110 --
44111 l_balance_type_code          := 'A';
44112 l_segment                     := NULL;
44113 l_ccid                        := NULL;
44114 l_adr_transaction_coa_id      := NULL;
44115 l_adr_accounting_coa_id       := NULL;
44116 l_adr_flexfield_segment_code  := NULL;
44117 l_adr_flex_value_set_id       := NULL;
44118 l_adr_value_type_code         := NULL;
44119 l_adr_value_combination_id    := NULL;
44120 l_adr_value_segment_code      := NULL;
44121 
44122 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44123 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44124 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44125 l_budgetary_control_flag     := 'N';
44126 
44127 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44128 l_bflow_applied_to_amt       := NULL; -- 5132302
44129 l_entered_amt_idx            := NULL;          -- 4262811
44130 l_accted_amt_idx             := NULL;          -- 4262811
44131 l_acc_rev_flag               := NULL;          -- 4262811
44132 l_accrual_line_num           := NULL;          -- 4262811
44133 l_tmp_amt                    := NULL;          -- 4262811
44134 --
44135  
44136 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44137     l_balance_type_code <> 'B' THEN
44138 IF NVL(p_source_96,'
44139 ') <>  'CLEAR_CLEAR' AND 
44140 ((NVL(p_source_33,'
44141 ') =  'REC_TAX' AND 
44142 NVL(p_source_125,'
44143 ') =  'DEFERRED') OR 
44144 (NVL(p_source_33,'
44145 ') =  'AWT' AND 
44146 NVL(p_source_126,'
44147 ') =  'AWT_DEFERRED')
44148 ) AND (NVL(p_source_97,'
44149 ') =  'CASH' OR 
44150 NVL(p_source_97,'
44151 ') =  'AWT' OR 
44152 NVL(p_source_97,'
44153 ') =  'DISCOUNT') AND 
44154 p_source_114 IS NULL AND 
44155 NVL(p_source_122,'
44156 ') <>  'R' AND 
44157 NVL(p_source_123,'
44158 ') <>  'PAYMENTCARD'
44159  THEN 
44160 
44161    --
44162    XLA_AE_LINES_PKG.SetNewLine;
44163 
44164    p_balance_type_code          := l_balance_type_code;
44165    -- set the flag so later we will know whether the gain loss line needs to be created
44166    
44167    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44168      p_actual_flag :='A';
44169    END IF;
44170 
44171    --
44172    -- bulk performance
44173    --
44174    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44175                                       p_header_num   => 0); -- 4262811
44176    --
44177    -- set accounting line options
44178    --
44179    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44180            p_natural_side_code          => 'C'
44181          , p_gain_or_loss_flag          => 'N'
44182          , p_gl_transfer_mode_code      => 'S'
44183          , p_acct_entry_type_code       => 'A'
44184          , p_switch_side_flag           => 'Y'
44185          , p_merge_duplicate_code       => 'A'
44186          );
44187    --
44188    l_acc_rev_natural_side_code := 'D';  -- 4262811
44189    -- 
44190    --
44191    -- set accounting line type info
44192    --
44193    xla_ae_lines_pkg.SetAcctLineType
44194       (p_component_type             => l_component_type
44195       ,p_event_type_code            => l_event_type_code
44196       ,p_line_definition_owner_code => l_line_definition_owner_code
44197       ,p_line_definition_code       => l_line_definition_code
44198       ,p_accounting_line_code       => l_component_code
44199       ,p_accounting_line_type_code  => l_component_type_code
44200       ,p_accounting_line_appl_id    => l_component_appl_id
44201       ,p_amb_context_code           => l_amb_context_code
44202       ,p_entity_code                => l_entity_code
44203       ,p_event_class_code           => l_event_class_code);
44204    --
44205    -- set accounting class
44206    --
44207    xla_ae_lines_pkg.SetAcctClass(
44208            p_accounting_class_code  => 'DEF_REC_TAX'
44209          , p_ae_header_id           => l_ae_header_id
44210          );
44211 
44212    --
44213    -- set rounding class
44214    --
44215    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44216                       'DEF_REC_TAX';
44217 
44218    --
44219    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44220    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44221    --
44222    -- bulk performance
44223    --
44224    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44225 
44226    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44227       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44228 
44229    -- 4955764
44230    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44234    
44231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44232 
44233    -- 4458381 Public Sector Enh
44235    --
44236    -- set accounting attributes for the line type
44237    --
44238    l_entered_amt_idx := 10;
44239    l_accted_amt_idx  := 12;
44240    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
44241    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44242    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
44243    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44244    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
44245    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44246    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
44247    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44248    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
44249    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44250    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
44251    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44252    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
44253    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44254    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
44255    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44256    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
44257    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44258    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
44259    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44260    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
44261    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44262    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
44263    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
44264    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
44265    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
44266    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
44267    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
44268    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
44269    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
44270    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
44271    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
44272    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
44273    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
44274    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
44275    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
44276    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
44277    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
44278    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
44279 
44280    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44281    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44282 
44283    ---------------------------------------------------------------------------------------------------------------
44284    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44285    ---------------------------------------------------------------------------------------------------------------
44286    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44287 
44288    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44289    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44290 
44291    IF xla_accounting_cache_pkg.GetValueChar
44292          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44293          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44294    AND l_bflow_method_code = 'PRIOR_ENTRY'
44295 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44296    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44297          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44298        )
44299    THEN
44300          xla_ae_lines_pkg.BflowUpgEntry
44301            (p_business_method_code    => l_bflow_method_code
44302            ,p_business_class_code     => l_bflow_class_code
44303            ,p_balance_type            => l_balance_type_code);
44304    ELSE
44305       NULL;
44306 XLA_AE_LINES_PKG.business_flow_validation(
44307                                 p_business_method_code     => l_bflow_method_code
44308                                ,p_business_class_code      => l_bflow_class_code
44309                                ,p_inherit_description_flag => l_inherit_desc_flag);
44310    END IF;
44311 
44312    --
44313    -- call analytical criteria
44314    --
44315    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44316    --
44317    -- call description
44318    --
44319    -- No description or it is inherited.
44320    --
44321    -- call ADRs
44322    -- Bug 4922099
44323    --
44324    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44325         (NVL(l_actual_upg_option, 'N') = 'O') OR
44326         (NVL(l_enc_upg_option, 'N') = 'O')
44327       )
44328    THEN
44329    NULL;
44330    --
44331    --
44332    
44333    --
44334    --
44335    END IF;
44339           (NVL(l_enc_upg_option, 'N') = 'O')
44336    --
44337    -- Bug 4922099
44338    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44340         ) AND
44341         (l_bflow_method_code = 'PRIOR_ENTRY')
44342       )
44343    THEN
44344       IF
44345       --
44346       1 = 1
44347       --
44348       THEN
44349       xla_accounting_err_pkg.build_message
44350                                     (p_appli_s_name            => 'XLA'
44351                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44352                                     ,p_token_1                 => 'LINE_NUMBER'
44353                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44354                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44355                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44356                                                                              l_component_type
44357                                                                             ,l_component_code
44358                                                                             ,l_component_type_code
44359                                                                             ,l_component_appl_id
44360                                                                             ,l_amb_context_code
44361                                                                             ,l_entity_code
44362                                                                             ,l_event_class_code
44363                                                                            )
44364                                     ,p_token_3                 => 'OWNER'
44365                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44366                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44367                                                                           ,p_lookup_code    => l_component_type_code
44368                                                                          )
44369                                     ,p_token_4                 => 'PRODUCT_NAME'
44370                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44371                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44372                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44373                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44374                                     ,p_ae_header_id            =>  NULL
44375                                        );
44376 
44377         IF (C_LEVEL_ERROR>= g_log_level) THEN
44378                  trace
44379                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44380                       ,p_level    => C_LEVEL_ERROR
44381                       ,p_module   => l_log_module);
44382         END IF;
44383       END IF;
44384    END IF;
44385    --
44386    --
44387    ------------------------------------------------------------------------------------------------
44388    -- 4219869 Business Flow
44389    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44390    -- Prior Entry.  Currently, the following code is always generated.
44391    ------------------------------------------------------------------------------------------------
44392    -- No ValidateCurrentLine for business flow method of Prior Entry
44393 
44394    ------------------------------------------------------------------------------------
44395    -- 4219869 Business Flow
44396    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44397    ------------------------------------------------------------------------------------
44398    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44399 
44400    ----------------------------------------------------------------------------------
44401    -- 4219869 Business Flow
44402    -- Update journal entry status -- Need to generate this within IF <condition>
44403    ----------------------------------------------------------------------------------
44404    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44405          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44406          ,p_balance_type_code => l_balance_type_code
44407          );
44408 
44409    -------------------------------------------------------------------------------------------
44410    -- 4262811 - Generate the Accrual Reversal lines
44411    -------------------------------------------------------------------------------------------
44412    BEGIN
44413       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44414                               (g_array_event(p_event_id).array_value_num('header_index'));
44415       IF l_acc_rev_flag IS NULL THEN
44416          l_acc_rev_flag := 'N';
44417       END IF;
44418    EXCEPTION
44419       WHEN OTHERS THEN
44420          l_acc_rev_flag := 'N';
44421    END;
44422    --
44423    IF (l_acc_rev_flag = 'Y') THEN
44424 
44425        -- 4645092  ------------------------------------------------------------------------------
44426        -- To allow MPA report to determine if it should generate report process
44427        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44428        ------------------------------------------------------------------------------------------
44429 
44430        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44434    -- Bug 4922099
44431        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44432    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44433    -- call ADRs
44435    --
44436    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44437         (NVL(l_actual_upg_option, 'N') = 'O') OR
44438         (NVL(l_enc_upg_option, 'N') = 'O')
44439       )
44440    THEN
44441    NULL;
44442    --
44443    --
44444    
44445    --
44446    --
44447    END IF;
44448 
44449        --
44450        -- Update the line information that should be overwritten
44451        --
44452        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44453                                          p_header_num   => 1);
44454        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44455 
44456        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44457 
44458        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44459           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44460        END IF;
44461 
44462       --
44463       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44464       --
44465       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44466           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44467       ELSE
44468           ---------------------------------------------------------------------------------------------------
44469           -- 4262811a Switch Sign
44470           ---------------------------------------------------------------------------------------------------
44471           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44472           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44473                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44474           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44475                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44476           -- 5132302
44477           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44478                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44479 
44480       END IF;
44481 
44482       -- 4955764
44483       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44484       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44485 
44486 
44487       XLA_AE_LINES_PKG.ValidateCurrentLine;
44488       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44489 
44490       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44491                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44492                ,p_balance_type_code => l_balance_type_code);
44493 
44494    END IF;
44495 
44496    -----------------------------------------------------------------------------------------
44497    -- 4262811 Multiperiod Accounting
44498    -----------------------------------------------------------------------------------------
44499      -- No MPA option is assigned.
44500 
44501 
44502 END IF;
44503 END IF;
44504 --
44505 
44506 --
44507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44508    trace
44509       (p_msg      => 'END of AcctLineType_96'
44510       ,p_level    => C_LEVEL_PROCEDURE
44511       ,p_module   => l_log_module);
44512 END IF;
44513 --
44514 EXCEPTION
44515   WHEN xla_exceptions_pkg.application_exception THEN
44516       RAISE;
44517   WHEN OTHERS THEN
44518        xla_exceptions_pkg.raise_message
44519            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_96');
44520 END AcctLineType_96;
44521 --
44522 
44523 ---------------------------------------
44524 --
44525 -- PRIVATE FUNCTION
44526 --         AcctLineType_97
44527 --
44528 ---------------------------------------
44529 PROCEDURE AcctLineType_97 (
44530   p_application_id        IN NUMBER
44531  ,p_event_id              IN NUMBER
44532  ,p_calculate_acctd_flag  IN VARCHAR2
44533  ,p_calculate_g_l_flag    IN VARCHAR2
44534  ,p_actual_flag           IN OUT VARCHAR2
44535  ,p_balance_type_code     OUT VARCHAR2
44536  ,p_gain_or_loss_ref      OUT VARCHAR2
44537  
44538 --Accounting Reversal Indicator
44539  , p_source_52            IN VARCHAR2
44540 --Distribution Link Type
44541  , p_source_54            IN VARCHAR2
44542 --Invoice Identifier
44543  , p_source_57            IN NUMBER
44544 --Payables Encumbrance Upgrade Credit Account
44545  , p_source_64            IN NUMBER
44546 --Payables Encumbrance Upgrade Credit Amount
44547  , p_source_65            IN NUMBER
44548 --Invoice Currency Code
44549  , p_source_66            IN VARCHAR2
44550 --Payables Encumbrance Upgrade Credit Base Amount
44551  , p_source_67            IN NUMBER
44552 --Payables Encumbrance Upgrade Debit Account
44553  , p_source_68            IN NUMBER
44554 --Payables Encumbrance Upgrade Debit Amount
44558 --Payables Encumbrance Upgrade Option
44555  , p_source_69            IN NUMBER
44556 --Payables Encumbrance Upgrade Debit Base Amount
44557  , p_source_70            IN NUMBER
44559  , p_source_71            IN VARCHAR2
44560 --Deferred Accounting End Date
44561  , p_source_76            IN DATE
44562 --Deferred Accounting Option
44563  , p_source_77            IN VARCHAR2
44564 --Deferred Accounting Start Date
44565  , p_source_78            IN DATE
44566 --Override Accounted Amount Indicator
44567  , p_source_79            IN VARCHAR2
44568  , p_source_79_meaning    IN VARCHAR2
44569 --Third Party Type
44570  , p_source_82            IN VARCHAR2
44571 --Invoice Distribution Tax Line Identifier
44572  , p_source_85            IN NUMBER
44573 --Invoice Distribution Tax Distribution Identifier from Tax
44574  , p_source_86            IN NUMBER
44575 --Invoice Distribution Summary Tax Line Identifier
44576  , p_source_87            IN NUMBER
44577 --Payables Upgrade Credit Encumbrance Type Identifier
44578  , p_source_88            IN NUMBER
44579 --Payables Upgrade Debit Encumbrance Type Identifier
44580  , p_source_89            IN NUMBER
44581 --Business Flow Accounts Payable Application Identifier
44582  , p_source_90            IN NUMBER
44583 --Business Flow Invoice Distribution Type
44584  , p_source_91            IN VARCHAR2
44585 --Business Flow Invoice Entity Code
44586  , p_source_92            IN VARCHAR2
44587 --Deferred Recoverable Tax Option
44588  , p_source_125            IN VARCHAR2
44589  , p_source_125_meaning    IN VARCHAR2
44590 --Prepayment Application Distribution Identifier
44591  , p_source_127            IN NUMBER
44592 --Business Flow Recipient Invoice Distribution Identifier
44593  , p_source_128            IN NUMBER
44594 --Business Flow Recipient Invoice Identifier
44595  , p_source_129            IN NUMBER
44596 --Upgrade Encumbrance Credit Account Class
44597  , p_source_130            IN VARCHAR2
44598 --Upgrade Encumbrance Debit Account Class
44599  , p_source_131            IN VARCHAR2
44600 --Prepayment Distribution Amount
44601  , p_source_132            IN NUMBER
44602 --Prepayment Distribution (Invoice Rate) Ledger Amount
44603  , p_source_133            IN NUMBER
44604 --Identifier of the Prepayment Application Reversed
44605  , p_source_134            IN NUMBER
44606 )
44607 IS
44608 
44609 l_component_type              VARCHAR2(80);
44610 l_component_code              VARCHAR2(30);
44611 l_component_type_code         VARCHAR2(1);
44612 l_component_appl_id           INTEGER;
44613 l_amb_context_code            VARCHAR2(30);
44614 l_entity_code                 VARCHAR2(30);
44615 l_event_class_code            VARCHAR2(30);
44616 l_ae_header_id                NUMBER;
44617 l_event_type_code             VARCHAR2(30);
44618 l_line_definition_code        VARCHAR2(30);
44619 l_line_definition_owner_code  VARCHAR2(1);
44620 --
44621 -- adr variables
44622 l_segment                     VARCHAR2(30);
44623 l_ccid                        NUMBER;
44624 l_adr_transaction_coa_id      NUMBER;
44625 l_adr_accounting_coa_id       NUMBER;
44626 l_adr_flexfield_segment_code  VARCHAR2(30);
44627 l_adr_flex_value_set_id       NUMBER;
44628 l_adr_value_type_code         VARCHAR2(30);
44629 l_adr_value_combination_id    NUMBER;
44630 l_adr_value_segment_code      VARCHAR2(30);
44631 
44632 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44633 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44634 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44635 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44636 
44637 -- 4262811 Variables ------------------------------------------------------------------------------------------
44638 l_entered_amt_idx             NUMBER;
44639 l_accted_amt_idx              NUMBER;
44640 l_acc_rev_flag                VARCHAR2(1);
44641 l_accrual_line_num            NUMBER;
44642 l_tmp_amt                     NUMBER;
44643 l_acc_rev_natural_side_code   VARCHAR2(1);
44644 
44645 l_num_entries                 NUMBER;
44646 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44647 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44648 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44649 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44650 l_recog_line_1                NUMBER;
44651 l_recog_line_2                NUMBER;
44652 
44653 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44654 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44655 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44656 
44657 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44658 
44659 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44660 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44661 
44662 ---------------------------------------------------------------------------------------------------------------
44663 
44664 
44665 --
44666 -- bulk performance
44667 --
44668 l_balance_type_code           VARCHAR2(1);
44669 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44670 l_log_module                  VARCHAR2(240);
44671 
44672 --
44673 -- Upgrade strategy
44674 --
44678 --
44675 l_actual_upg_option           VARCHAR2(1);
44676 l_enc_upg_option           VARCHAR2(1);
44677 
44679 BEGIN
44680 --
44681 IF g_log_enabled THEN
44682       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
44683 END IF;
44684 --
44685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44686 
44687       trace
44688          (p_msg      => 'BEGIN of AcctLineType_97'
44689          ,p_level    => C_LEVEL_PROCEDURE
44690          ,p_module   => l_log_module);
44691 
44692 END IF;
44693 --
44694 l_component_type             := 'AMB_JLT';
44695 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAY';
44696 l_component_type_code        := 'S';
44697 l_component_appl_id          :=  200;
44698 l_amb_context_code           := 'DEFAULT';
44699 l_entity_code                := 'AP_INVOICES';
44700 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
44701 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
44702 l_line_definition_owner_code := 'S';
44703 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
44704 --
44705 l_balance_type_code          := 'A';
44706 l_segment                     := NULL;
44707 l_ccid                        := NULL;
44708 l_adr_transaction_coa_id      := NULL;
44709 l_adr_accounting_coa_id       := NULL;
44710 l_adr_flexfield_segment_code  := NULL;
44711 l_adr_flex_value_set_id       := NULL;
44712 l_adr_value_type_code         := NULL;
44713 l_adr_value_combination_id    := NULL;
44714 l_adr_value_segment_code      := NULL;
44715 
44716 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44717 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44718 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44719 l_budgetary_control_flag     := 'N';
44720 
44721 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44722 l_bflow_applied_to_amt       := NULL; -- 5132302
44723 l_entered_amt_idx            := NULL;          -- 4262811
44724 l_accted_amt_idx             := NULL;          -- 4262811
44725 l_acc_rev_flag               := NULL;          -- 4262811
44726 l_accrual_line_num           := NULL;          -- 4262811
44727 l_tmp_amt                    := NULL;          -- 4262811
44728 --
44729  
44730 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44731     l_balance_type_code <> 'B' THEN
44732 IF NVL(p_source_125,'
44733 ') =  'DEFERRED'
44734  THEN 
44735 
44736    --
44737    XLA_AE_LINES_PKG.SetNewLine;
44738 
44739    p_balance_type_code          := l_balance_type_code;
44740    -- set the flag so later we will know whether the gain loss line needs to be created
44741    
44742    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44743      p_actual_flag :='A';
44744    END IF;
44745 
44746    --
44747    -- bulk performance
44748    --
44749    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44750                                       p_header_num   => 0); -- 4262811
44751    --
44752    -- set accounting line options
44753    --
44754    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44755            p_natural_side_code          => 'D'
44756          , p_gain_or_loss_flag          => 'N'
44757          , p_gl_transfer_mode_code      => 'S'
44758          , p_acct_entry_type_code       => 'A'
44759          , p_switch_side_flag           => 'Y'
44760          , p_merge_duplicate_code       => 'A'
44761          );
44762    --
44763    l_acc_rev_natural_side_code := 'C';  -- 4262811
44764    -- 
44765    --
44766    -- set accounting line type info
44767    --
44768    xla_ae_lines_pkg.SetAcctLineType
44769       (p_component_type             => l_component_type
44770       ,p_event_type_code            => l_event_type_code
44771       ,p_line_definition_owner_code => l_line_definition_owner_code
44772       ,p_line_definition_code       => l_line_definition_code
44773       ,p_accounting_line_code       => l_component_code
44774       ,p_accounting_line_type_code  => l_component_type_code
44775       ,p_accounting_line_appl_id    => l_component_appl_id
44776       ,p_amb_context_code           => l_amb_context_code
44777       ,p_entity_code                => l_entity_code
44778       ,p_event_class_code           => l_event_class_code);
44779    --
44780    -- set accounting class
44781    --
44782    xla_ae_lines_pkg.SetAcctClass(
44783            p_accounting_class_code  => 'DEF_REC_TAX'
44784          , p_ae_header_id           => l_ae_header_id
44785          );
44786 
44787    --
44788    -- set rounding class
44789    --
44790    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44791                       'DEF_REC_TAX';
44792 
44793    --
44794    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44795    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44796    --
44797    -- bulk performance
44798    --
44799    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44800 
44801    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44802       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44803 
44804    -- 4955764
44805    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44809    
44806       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44807 
44808    -- 4458381 Public Sector Enh
44810    --
44811    -- set accounting attributes for the line type
44812    --
44813    l_entered_amt_idx := 25;
44814    l_accted_amt_idx  := 27;
44815    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44816    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44817    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
44818    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44819    l_rec_acct_attrs.array_num_value(2)  := 
44820 xla_ae_sources_pkg.GetSystemSourceNum(
44821    p_source_code           => 'XLA_EVENT_APPL_ID'
44822  , p_source_type_code      => 'Y'
44823  , p_source_application_id =>  602
44824 );
44825    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44826    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
44827    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44828    l_rec_acct_attrs.array_char_value(4)  := 
44829 xla_ae_sources_pkg.GetSystemSourceChar(
44830    p_source_code           => 'XLA_ENTITY_CODE'
44831  , p_source_type_code      => 'Y'
44832  , p_source_application_id =>  602
44833 );
44834    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44835    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
44836    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44837    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
44838    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44839    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
44840    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44841    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
44842    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44843    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
44844    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44845    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_128);
44846    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44847    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_129);
44848    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44849    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
44850    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44851    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
44852    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44853    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
44854    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44855    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
44856    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44857    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
44858    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44859    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
44860    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44861    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
44862    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44863    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
44864    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44865    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
44866    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44867    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
44868    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44869    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
44870    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44871    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
44872    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44873    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
44874    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44875    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
44876    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44877    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
44878    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
44879    l_rec_acct_attrs.array_num_value(27)  := p_source_133;
44880    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
44881    l_rec_acct_attrs.array_date_value(28)  := p_source_76;
44882    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
44883    l_rec_acct_attrs.array_char_value(29)  := p_source_77;
44884    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
44885    l_rec_acct_attrs.array_date_value(30)  := p_source_78;
44886    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
44887    l_rec_acct_attrs.array_char_value(31)  := p_source_79;
44888    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
44889    l_rec_acct_attrs.array_char_value(32)  := p_source_82;
44890    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
44891    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_134);
44892    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
44893    l_rec_acct_attrs.array_char_value(34)  := p_source_54;
44894    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
44895    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
44896    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
44900    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
44897    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
44898    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
44899    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
44901    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
44902    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
44903    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
44904 
44905    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44906    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44907 
44908    ---------------------------------------------------------------------------------------------------------------
44909    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44910    ---------------------------------------------------------------------------------------------------------------
44911    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44912 
44913    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44914    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44915 
44916    IF xla_accounting_cache_pkg.GetValueChar
44917          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44918          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44919    AND l_bflow_method_code = 'PRIOR_ENTRY'
44920 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44921    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44922          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44923        )
44924    THEN
44925          xla_ae_lines_pkg.BflowUpgEntry
44926            (p_business_method_code    => l_bflow_method_code
44927            ,p_business_class_code     => l_bflow_class_code
44928            ,p_balance_type            => l_balance_type_code);
44929    ELSE
44930       NULL;
44931 XLA_AE_LINES_PKG.business_flow_validation(
44932                                 p_business_method_code     => l_bflow_method_code
44933                                ,p_business_class_code      => l_bflow_class_code
44934                                ,p_inherit_description_flag => l_inherit_desc_flag);
44935    END IF;
44936 
44937    --
44938    -- call analytical criteria
44939    --
44940    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44941    --
44942    -- call description
44943    --
44944    -- No description or it is inherited.
44945    --
44946    -- call ADRs
44947    -- Bug 4922099
44948    --
44949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44950         (NVL(l_actual_upg_option, 'N') = 'O') OR
44951         (NVL(l_enc_upg_option, 'N') = 'O')
44952       )
44953    THEN
44954    NULL;
44955    --
44956    --
44957    
44958    --
44959    --
44960    END IF;
44961    --
44962    -- Bug 4922099
44963    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44964           (NVL(l_enc_upg_option, 'N') = 'O')
44965         ) AND
44966         (l_bflow_method_code = 'PRIOR_ENTRY')
44967       )
44968    THEN
44969       IF
44970       --
44971       1 = 1
44972       --
44973       THEN
44974       xla_accounting_err_pkg.build_message
44975                                     (p_appli_s_name            => 'XLA'
44976                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44977                                     ,p_token_1                 => 'LINE_NUMBER'
44978                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44979                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44980                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44981                                                                              l_component_type
44982                                                                             ,l_component_code
44983                                                                             ,l_component_type_code
44984                                                                             ,l_component_appl_id
44985                                                                             ,l_amb_context_code
44986                                                                             ,l_entity_code
44987                                                                             ,l_event_class_code
44988                                                                            )
44989                                     ,p_token_3                 => 'OWNER'
44990                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44991                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44992                                                                           ,p_lookup_code    => l_component_type_code
44993                                                                          )
44994                                     ,p_token_4                 => 'PRODUCT_NAME'
44995                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44996                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44997                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45001 
44998                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44999                                     ,p_ae_header_id            =>  NULL
45000                                        );
45002         IF (C_LEVEL_ERROR>= g_log_level) THEN
45003                  trace
45004                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45005                       ,p_level    => C_LEVEL_ERROR
45006                       ,p_module   => l_log_module);
45007         END IF;
45008       END IF;
45009    END IF;
45010    --
45011    --
45012    ------------------------------------------------------------------------------------------------
45013    -- 4219869 Business Flow
45014    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45015    -- Prior Entry.  Currently, the following code is always generated.
45016    ------------------------------------------------------------------------------------------------
45017    -- No ValidateCurrentLine for business flow method of Prior Entry
45018 
45019    ------------------------------------------------------------------------------------
45020    -- 4219869 Business Flow
45021    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45022    ------------------------------------------------------------------------------------
45023    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45024 
45025    ----------------------------------------------------------------------------------
45026    -- 4219869 Business Flow
45027    -- Update journal entry status -- Need to generate this within IF <condition>
45028    ----------------------------------------------------------------------------------
45029    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45030          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45031          ,p_balance_type_code => l_balance_type_code
45032          );
45033 
45034    -------------------------------------------------------------------------------------------
45035    -- 4262811 - Generate the Accrual Reversal lines
45036    -------------------------------------------------------------------------------------------
45037    BEGIN
45038       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45039                               (g_array_event(p_event_id).array_value_num('header_index'));
45040       IF l_acc_rev_flag IS NULL THEN
45041          l_acc_rev_flag := 'N';
45042       END IF;
45043    EXCEPTION
45044       WHEN OTHERS THEN
45045          l_acc_rev_flag := 'N';
45046    END;
45047    --
45048    IF (l_acc_rev_flag = 'Y') THEN
45049 
45050        -- 4645092  ------------------------------------------------------------------------------
45051        -- To allow MPA report to determine if it should generate report process
45052        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45053        ------------------------------------------------------------------------------------------
45054 
45055        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45056        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45057    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45058    -- call ADRs
45059    -- Bug 4922099
45060    --
45061    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45062         (NVL(l_actual_upg_option, 'N') = 'O') OR
45063         (NVL(l_enc_upg_option, 'N') = 'O')
45064       )
45065    THEN
45066    NULL;
45067    --
45068    --
45069    
45070    --
45071    --
45072    END IF;
45073 
45074        --
45075        -- Update the line information that should be overwritten
45076        --
45077        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45078                                          p_header_num   => 1);
45079        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45080 
45081        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45082 
45083        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45084           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45085        END IF;
45086 
45087       --
45088       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45089       --
45090       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45091           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45092       ELSE
45093           ---------------------------------------------------------------------------------------------------
45094           -- 4262811a Switch Sign
45095           ---------------------------------------------------------------------------------------------------
45096           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45097           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45098                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45099           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45100                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45101           -- 5132302
45105       END IF;
45102           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45103                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45104 
45106 
45107       -- 4955764
45108       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45109       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45110 
45111 
45112       XLA_AE_LINES_PKG.ValidateCurrentLine;
45113       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45114 
45115       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45116                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45117                ,p_balance_type_code => l_balance_type_code);
45118 
45119    END IF;
45120 
45121    -----------------------------------------------------------------------------------------
45122    -- 4262811 Multiperiod Accounting
45123    -----------------------------------------------------------------------------------------
45124      -- No MPA option is assigned.
45125 
45126 
45127 END IF;
45128 END IF;
45129 --
45130 
45131 --
45132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45133    trace
45134       (p_msg      => 'END of AcctLineType_97'
45135       ,p_level    => C_LEVEL_PROCEDURE
45136       ,p_module   => l_log_module);
45137 END IF;
45138 --
45139 EXCEPTION
45140   WHEN xla_exceptions_pkg.application_exception THEN
45141       RAISE;
45142   WHEN OTHERS THEN
45143        xla_exceptions_pkg.raise_message
45144            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_97');
45145 END AcctLineType_97;
45146 --
45147 
45148 ---------------------------------------
45149 --
45150 -- PRIVATE FUNCTION
45151 --         AcctLineType_98
45152 --
45153 ---------------------------------------
45154 PROCEDURE AcctLineType_98 (
45155   p_application_id        IN NUMBER
45156  ,p_event_id              IN NUMBER
45157  ,p_calculate_acctd_flag  IN VARCHAR2
45158  ,p_calculate_g_l_flag    IN VARCHAR2
45159  ,p_actual_flag           IN OUT VARCHAR2
45160  ,p_balance_type_code     OUT VARCHAR2
45161  ,p_gain_or_loss_ref      OUT VARCHAR2
45162  
45163 --Invoice Distribution Description
45164  , p_source_1            IN VARCHAR2
45165 --Invoice Distribution Ledger Amount
45166  , p_source_21            IN NUMBER
45167 --Invoice Distribution Account
45168  , p_source_30            IN NUMBER
45169 --Invoice Distribution Type
45170  , p_source_33            IN VARCHAR2
45171  , p_source_33_meaning    IN VARCHAR2
45172 --Accounting Reversal Indicator
45173  , p_source_52            IN VARCHAR2
45174 --Distribution Link Type
45175  , p_source_54            IN VARCHAR2
45176 --Allocation to Main Distribution Identifier
45177  , p_source_56            IN NUMBER
45178 --Invoice Identifier
45179  , p_source_57            IN NUMBER
45180 --Invoice Distribution Identifier
45181  , p_source_63            IN NUMBER
45182 --Payables Encumbrance Upgrade Credit Account
45183  , p_source_64            IN NUMBER
45184 --Payables Encumbrance Upgrade Credit Amount
45185  , p_source_65            IN NUMBER
45186 --Invoice Currency Code
45187  , p_source_66            IN VARCHAR2
45188 --Payables Encumbrance Upgrade Credit Base Amount
45189  , p_source_67            IN NUMBER
45190 --Payables Encumbrance Upgrade Debit Account
45191  , p_source_68            IN NUMBER
45192 --Payables Encumbrance Upgrade Debit Amount
45193  , p_source_69            IN NUMBER
45194 --Payables Encumbrance Upgrade Debit Base Amount
45195  , p_source_70            IN NUMBER
45196 --Payables Encumbrance Upgrade Option
45197  , p_source_71            IN VARCHAR2
45198 --Invoice Distribution Amount
45199  , p_source_72            IN NUMBER
45200 --Deferred Accounting End Date
45201  , p_source_76            IN DATE
45202 --Deferred Accounting Option
45203  , p_source_77            IN VARCHAR2
45204 --Deferred Accounting Start Date
45205  , p_source_78            IN DATE
45206 --Override Accounted Amount Indicator
45207  , p_source_79            IN VARCHAR2
45208  , p_source_79_meaning    IN VARCHAR2
45209 --Invoice Supplier Identifier
45210  , p_source_80            IN NUMBER
45211 --Invoice Supplier Site Identifier
45212  , p_source_81            IN NUMBER
45213 --Third Party Type
45214  , p_source_82            IN VARCHAR2
45215 --Parent Reversal Identifier
45216  , p_source_83            IN NUMBER
45217 --Invoice Distribution Statistical Amount
45218  , p_source_84            IN NUMBER
45219 --Invoice Distribution Tax Line Identifier
45220  , p_source_85            IN NUMBER
45221 --Invoice Distribution Tax Distribution Identifier from Tax
45222  , p_source_86            IN NUMBER
45223 --Invoice Distribution Summary Tax Line Identifier
45224  , p_source_87            IN NUMBER
45225 --Payables Upgrade Credit Encumbrance Type Identifier
45226  , p_source_88            IN NUMBER
45227 --Payables Upgrade Debit Encumbrance Type Identifier
45228  , p_source_89            IN NUMBER
45229 --Business Flow Accounts Payable Application Identifier
45230  , p_source_90            IN NUMBER
45231 --Business Flow Invoice Distribution Type
45232  , p_source_91            IN VARCHAR2
45233 --Business Flow Invoice Entity Code
45234  , p_source_92            IN VARCHAR2
45238  , p_source_94            IN NUMBER
45235 --Business Flow Invoice Distribution Identifier
45236  , p_source_93            IN NUMBER
45237 --Business Flow Invoice Identifier
45239 --Deferred Recoverable Tax Option
45240  , p_source_125            IN VARCHAR2
45241  , p_source_125_meaning    IN VARCHAR2
45242 --Self-Assessed Tax Flag
45243  , p_source_135            IN VARCHAR2
45244  , p_source_135_meaning    IN VARCHAR2
45245 --Invoice Exchange Date
45246  , p_source_136            IN DATE
45247 --Invoice Exchange Rate
45248  , p_source_137            IN NUMBER
45249 --Invoice Exchange Rate Type
45250  , p_source_138            IN VARCHAR2
45251 )
45252 IS
45253 
45254 l_component_type              VARCHAR2(80);
45255 l_component_code              VARCHAR2(30);
45256 l_component_type_code         VARCHAR2(1);
45257 l_component_appl_id           INTEGER;
45258 l_amb_context_code            VARCHAR2(30);
45259 l_entity_code                 VARCHAR2(30);
45260 l_event_class_code            VARCHAR2(30);
45261 l_ae_header_id                NUMBER;
45262 l_event_type_code             VARCHAR2(30);
45263 l_line_definition_code        VARCHAR2(30);
45264 l_line_definition_owner_code  VARCHAR2(1);
45265 --
45266 -- adr variables
45267 l_segment                     VARCHAR2(30);
45268 l_ccid                        NUMBER;
45269 l_adr_transaction_coa_id      NUMBER;
45270 l_adr_accounting_coa_id       NUMBER;
45271 l_adr_flexfield_segment_code  VARCHAR2(30);
45272 l_adr_flex_value_set_id       NUMBER;
45273 l_adr_value_type_code         VARCHAR2(30);
45274 l_adr_value_combination_id    NUMBER;
45275 l_adr_value_segment_code      VARCHAR2(30);
45276 
45277 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45278 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45279 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45280 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45281 
45282 -- 4262811 Variables ------------------------------------------------------------------------------------------
45283 l_entered_amt_idx             NUMBER;
45284 l_accted_amt_idx              NUMBER;
45285 l_acc_rev_flag                VARCHAR2(1);
45286 l_accrual_line_num            NUMBER;
45287 l_tmp_amt                     NUMBER;
45288 l_acc_rev_natural_side_code   VARCHAR2(1);
45289 
45290 l_num_entries                 NUMBER;
45291 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45292 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45293 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45294 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45295 l_recog_line_1                NUMBER;
45296 l_recog_line_2                NUMBER;
45297 
45298 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45299 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45300 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45301 
45302 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45303 
45304 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45305 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45306 
45307 ---------------------------------------------------------------------------------------------------------------
45308 
45309 
45310 --
45311 -- bulk performance
45312 --
45313 l_balance_type_code           VARCHAR2(1);
45314 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45315 l_log_module                  VARCHAR2(240);
45316 
45317 --
45318 -- Upgrade strategy
45319 --
45320 l_actual_upg_option           VARCHAR2(1);
45321 l_enc_upg_option           VARCHAR2(1);
45322 
45323 --
45324 BEGIN
45325 --
45326 IF g_log_enabled THEN
45327       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
45328 END IF;
45329 --
45330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45331 
45332       trace
45333          (p_msg      => 'BEGIN of AcctLineType_98'
45334          ,p_level    => C_LEVEL_PROCEDURE
45335          ,p_module   => l_log_module);
45336 
45337 END IF;
45338 --
45339 l_component_type             := 'AMB_JLT';
45340 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAYMENT';
45341 l_component_type_code        := 'S';
45342 l_component_appl_id          :=  200;
45343 l_amb_context_code           := 'DEFAULT';
45344 l_entity_code                := 'AP_INVOICES';
45345 l_event_class_code           := 'PREPAYMENTS';
45346 l_event_type_code            := 'PREPAYMENTS_ALL';
45347 l_line_definition_owner_code := 'S';
45348 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
45349 --
45350 l_balance_type_code          := 'A';
45351 l_segment                     := NULL;
45352 l_ccid                        := NULL;
45353 l_adr_transaction_coa_id      := NULL;
45354 l_adr_accounting_coa_id       := NULL;
45355 l_adr_flexfield_segment_code  := NULL;
45356 l_adr_flex_value_set_id       := NULL;
45357 l_adr_value_type_code         := NULL;
45358 l_adr_value_combination_id    := NULL;
45359 l_adr_value_segment_code      := NULL;
45360 
45361 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45362 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45366 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45363 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45364 l_budgetary_control_flag     := 'N';
45365 
45367 l_bflow_applied_to_amt       := NULL; -- 5132302
45368 l_entered_amt_idx            := NULL;          -- 4262811
45369 l_accted_amt_idx             := NULL;          -- 4262811
45370 l_acc_rev_flag               := NULL;          -- 4262811
45371 l_accrual_line_num           := NULL;          -- 4262811
45372 l_tmp_amt                    := NULL;          -- 4262811
45373 --
45374  
45375 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45376     l_balance_type_code <> 'B' THEN
45377 IF NVL(p_source_33,'
45378 ') =  'REC_TAX' AND 
45379 NVL(p_source_125,'
45380 ') =  'DEFERRED' AND 
45381 NVL(p_source_135,'
45382 ') <>  'Y'
45383  THEN 
45384 
45385    --
45386    XLA_AE_LINES_PKG.SetNewLine;
45387 
45388    p_balance_type_code          := l_balance_type_code;
45389    -- set the flag so later we will know whether the gain loss line needs to be created
45390    
45391    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45392      p_actual_flag :='A';
45393    END IF;
45394 
45395    --
45396    -- bulk performance
45397    --
45398    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45399                                       p_header_num   => 0); -- 4262811
45400    --
45401    -- set accounting line options
45402    --
45403    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45404            p_natural_side_code          => 'D'
45405          , p_gain_or_loss_flag          => 'N'
45406          , p_gl_transfer_mode_code      => 'S'
45407          , p_acct_entry_type_code       => 'A'
45408          , p_switch_side_flag           => 'Y'
45409          , p_merge_duplicate_code       => 'A'
45410          );
45411    --
45412    l_acc_rev_natural_side_code := 'C';  -- 4262811
45413    -- 
45414    --
45415    -- set accounting line type info
45416    --
45417    xla_ae_lines_pkg.SetAcctLineType
45418       (p_component_type             => l_component_type
45419       ,p_event_type_code            => l_event_type_code
45420       ,p_line_definition_owner_code => l_line_definition_owner_code
45421       ,p_line_definition_code       => l_line_definition_code
45422       ,p_accounting_line_code       => l_component_code
45423       ,p_accounting_line_type_code  => l_component_type_code
45424       ,p_accounting_line_appl_id    => l_component_appl_id
45425       ,p_amb_context_code           => l_amb_context_code
45426       ,p_entity_code                => l_entity_code
45427       ,p_event_class_code           => l_event_class_code);
45428    --
45429    -- set accounting class
45430    --
45431    xla_ae_lines_pkg.SetAcctClass(
45432            p_accounting_class_code  => 'DEF_REC_TAX'
45433          , p_ae_header_id           => l_ae_header_id
45434          );
45435 
45436    --
45437    -- set rounding class
45438    --
45439    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45440                       'DEF_REC_TAX';
45441 
45442    --
45443    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45444    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45445    --
45446    -- bulk performance
45447    --
45448    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45449 
45450    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45451       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45452 
45453    -- 4955764
45454    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45455       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45456 
45457    -- 4458381 Public Sector Enh
45458    
45459    --
45460    -- set accounting attributes for the line type
45461    --
45462    l_entered_amt_idx := 23;
45463    l_accted_amt_idx  := 28;
45464    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
45465    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45466    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
45467    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
45468    l_rec_acct_attrs.array_num_value(2)  := 
45469 xla_ae_sources_pkg.GetSystemSourceNum(
45470    p_source_code           => 'XLA_EVENT_APPL_ID'
45471  , p_source_type_code      => 'Y'
45472  , p_source_application_id =>  602
45473 );
45474    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
45475    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
45476    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
45477    l_rec_acct_attrs.array_char_value(4)  := 
45478 xla_ae_sources_pkg.GetSystemSourceChar(
45479    p_source_code           => 'XLA_ENTITY_CODE'
45480  , p_source_type_code      => 'Y'
45481  , p_source_application_id =>  602
45482 );
45483    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
45484    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
45485    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
45486    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
45487    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
45491    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
45488    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
45489    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45490    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
45492    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
45493    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
45494    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
45495    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45496    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
45497    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
45498    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
45499    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
45500    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
45501    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
45502    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
45503    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
45504    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
45505    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
45506    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
45507    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
45508    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
45509    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
45510    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
45511    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
45512    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
45513    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
45514    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
45515    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
45516    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
45517    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
45518    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
45519    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
45520    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
45521    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
45522    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
45523    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
45524    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
45525    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
45526    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
45527    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
45528    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
45529    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
45530    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
45531    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
45532    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
45533    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
45534    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
45535    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
45536    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
45537    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
45538    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
45539    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
45540    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
45541    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
45542    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
45543    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
45544    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
45545    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
45546    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
45547    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
45548    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
45549    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
45550    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
45551    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
45552    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
45553    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
45554    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
45555    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
45556    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
45557    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
45558    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
45559    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
45560    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
45561 
45562    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45563    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45564 
45565    ---------------------------------------------------------------------------------------------------------------
45566    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45567    ---------------------------------------------------------------------------------------------------------------
45568    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45569 
45570    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45574          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45571    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45572 
45573    IF xla_accounting_cache_pkg.GetValueChar
45575          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45576    AND l_bflow_method_code = 'PRIOR_ENTRY'
45577 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45578    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45579          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45580        )
45581    THEN
45582          xla_ae_lines_pkg.BflowUpgEntry
45583            (p_business_method_code    => l_bflow_method_code
45584            ,p_business_class_code     => l_bflow_class_code
45585            ,p_balance_type            => l_balance_type_code);
45586    ELSE
45587       NULL;
45588 -- No business flow processing for business flow method of NONE.
45589    END IF;
45590 
45591    --
45592    -- call analytical criteria
45593    --
45594    
45595    --
45596    -- call description
45597    --
45598    
45599 xla_ae_lines_pkg.SetLineDescription(
45600    p_ae_header_id => l_ae_header_id
45601   ,p_description  => Description_1 (
45602      p_application_id         => p_application_id
45603    , p_ae_header_id           => l_ae_header_id 
45604 , p_source_1 => p_source_1
45605    )
45606 );
45607 
45608 
45609    --
45610    -- call ADRs
45611    -- Bug 4922099
45612    --
45613    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45614         (NVL(l_actual_upg_option, 'N') = 'O') OR
45615         (NVL(l_enc_upg_option, 'N') = 'O')
45616       )
45617    THEN
45618    NULL;
45619    --
45620    --
45621    
45622   l_ccid := AcctDerRule_33(
45623            p_application_id           => p_application_id
45624          , p_ae_header_id             => l_ae_header_id 
45625 , p_source_30 => p_source_30
45626          , x_transaction_coa_id       => l_adr_transaction_coa_id
45627          , x_accounting_coa_id        => l_adr_accounting_coa_id
45628          , x_value_type_code          => l_adr_value_type_code
45629          , p_side                     => 'NA'
45630    );
45631 
45632    xla_ae_lines_pkg.set_ccid(
45633     p_code_combination_id          => l_ccid
45634   , p_value_type_code              => l_adr_value_type_code
45635   , p_transaction_coa_id           => l_adr_transaction_coa_id
45636   , p_accounting_coa_id            => l_adr_accounting_coa_id
45637   , p_adr_code                     => 'AP_INVOICE_DIST'
45638   , p_adr_type_code                => 'S'
45639   , p_component_type               => l_component_type
45640   , p_component_code               => l_component_code
45641   , p_component_type_code          => l_component_type_code
45642   , p_component_appl_id            => l_component_appl_id
45643   , p_amb_context_code             => l_amb_context_code
45644   , p_side                         => 'NA'
45645   );
45646 
45647 
45648    --
45649    --
45650    END IF;
45651    --
45652    -- Bug 4922099
45653    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45654           (NVL(l_enc_upg_option, 'N') = 'O')
45655         ) AND
45656         (l_bflow_method_code = 'PRIOR_ENTRY')
45657       )
45658    THEN
45659       IF
45660       --
45661       1 = 2
45662       --
45663       THEN
45664       xla_accounting_err_pkg.build_message
45665                                     (p_appli_s_name            => 'XLA'
45666                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45667                                     ,p_token_1                 => 'LINE_NUMBER'
45668                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45669                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45670                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45671                                                                              l_component_type
45672                                                                             ,l_component_code
45673                                                                             ,l_component_type_code
45674                                                                             ,l_component_appl_id
45675                                                                             ,l_amb_context_code
45676                                                                             ,l_entity_code
45677                                                                             ,l_event_class_code
45678                                                                            )
45679                                     ,p_token_3                 => 'OWNER'
45680                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45681                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45682                                                                           ,p_lookup_code    => l_component_type_code
45683                                                                          )
45684                                     ,p_token_4                 => 'PRODUCT_NAME'
45685                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45686                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45690                                        );
45687                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45688                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45689                                     ,p_ae_header_id            =>  NULL
45691 
45692         IF (C_LEVEL_ERROR>= g_log_level) THEN
45693                  trace
45694                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45695                       ,p_level    => C_LEVEL_ERROR
45696                       ,p_module   => l_log_module);
45697         END IF;
45698       END IF;
45699    END IF;
45700    --
45701    --
45702    ------------------------------------------------------------------------------------------------
45703    -- 4219869 Business Flow
45704    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45705    -- Prior Entry.  Currently, the following code is always generated.
45706    ------------------------------------------------------------------------------------------------
45707    XLA_AE_LINES_PKG.ValidateCurrentLine;
45708 
45709    ------------------------------------------------------------------------------------
45710    -- 4219869 Business Flow
45711    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45712    ------------------------------------------------------------------------------------
45713    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45714 
45715    ----------------------------------------------------------------------------------
45716    -- 4219869 Business Flow
45717    -- Update journal entry status -- Need to generate this within IF <condition>
45718    ----------------------------------------------------------------------------------
45719    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45720          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45721          ,p_balance_type_code => l_balance_type_code
45722          );
45723 
45724    -------------------------------------------------------------------------------------------
45725    -- 4262811 - Generate the Accrual Reversal lines
45726    -------------------------------------------------------------------------------------------
45727    BEGIN
45728       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45729                               (g_array_event(p_event_id).array_value_num('header_index'));
45730       IF l_acc_rev_flag IS NULL THEN
45731          l_acc_rev_flag := 'N';
45732       END IF;
45733    EXCEPTION
45734       WHEN OTHERS THEN
45735          l_acc_rev_flag := 'N';
45736    END;
45737    --
45738    IF (l_acc_rev_flag = 'Y') THEN
45739 
45740        -- 4645092  ------------------------------------------------------------------------------
45741        -- To allow MPA report to determine if it should generate report process
45742        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45743        ------------------------------------------------------------------------------------------
45744 
45745        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45746        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45747    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45748    -- call ADRs
45749    -- Bug 4922099
45750    --
45751    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45752         (NVL(l_actual_upg_option, 'N') = 'O') OR
45753         (NVL(l_enc_upg_option, 'N') = 'O')
45754       )
45755    THEN
45756    NULL;
45757    --
45758    --
45759    
45760   l_ccid := AcctDerRule_33(
45761            p_application_id           => p_application_id
45762          , p_ae_header_id             => l_ae_header_id 
45763 , p_source_30 => p_source_30
45764          , x_transaction_coa_id       => l_adr_transaction_coa_id
45765          , x_accounting_coa_id        => l_adr_accounting_coa_id
45766          , x_value_type_code          => l_adr_value_type_code
45767          , p_side                     => 'NA'
45768    );
45769 
45770    xla_ae_lines_pkg.set_ccid(
45771     p_code_combination_id          => l_ccid
45772   , p_value_type_code              => l_adr_value_type_code
45773   , p_transaction_coa_id           => l_adr_transaction_coa_id
45774   , p_accounting_coa_id            => l_adr_accounting_coa_id
45775   , p_adr_code                     => 'AP_INVOICE_DIST'
45776   , p_adr_type_code                => 'S'
45777   , p_component_type               => l_component_type
45778   , p_component_code               => l_component_code
45779   , p_component_type_code          => l_component_type_code
45780   , p_component_appl_id            => l_component_appl_id
45781   , p_amb_context_code             => l_amb_context_code
45782   , p_side                         => 'NA'
45783   );
45784 
45785 
45786    --
45787    --
45788    END IF;
45789 
45790        --
45791        -- Update the line information that should be overwritten
45792        --
45793        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45794                                          p_header_num   => 1);
45795        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45796 
45797        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45798 
45802 
45799        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45800           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45801        END IF;
45803       --
45804       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45805       --
45806       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45807           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45808       ELSE
45809           ---------------------------------------------------------------------------------------------------
45810           -- 4262811a Switch Sign
45811           ---------------------------------------------------------------------------------------------------
45812           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45813           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45814                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45815           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45816                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45817           -- 5132302
45818           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45819                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45820 
45821       END IF;
45822 
45823       -- 4955764
45824       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45825       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45826 
45827 
45828       XLA_AE_LINES_PKG.ValidateCurrentLine;
45829       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45830 
45831       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45832                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45833                ,p_balance_type_code => l_balance_type_code);
45834 
45835    END IF;
45836 
45837    -----------------------------------------------------------------------------------------
45838    -- 4262811 Multiperiod Accounting
45839    -----------------------------------------------------------------------------------------
45840      -- No MPA option is assigned.
45841 
45842 
45843 END IF;
45844 END IF;
45845 --
45846 
45847 --
45848 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45849    trace
45850       (p_msg      => 'END of AcctLineType_98'
45851       ,p_level    => C_LEVEL_PROCEDURE
45852       ,p_module   => l_log_module);
45853 END IF;
45854 --
45855 EXCEPTION
45856   WHEN xla_exceptions_pkg.application_exception THEN
45857       RAISE;
45858   WHEN OTHERS THEN
45859        xla_exceptions_pkg.raise_message
45860            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_98');
45861 END AcctLineType_98;
45862 --
45863 
45864 ---------------------------------------
45865 --
45866 -- PRIVATE FUNCTION
45867 --         AcctLineType_99
45868 --
45869 ---------------------------------------
45870 PROCEDURE AcctLineType_99 (
45871   p_application_id        IN NUMBER
45872  ,p_event_id              IN NUMBER
45873  ,p_calculate_acctd_flag  IN VARCHAR2
45874  ,p_calculate_g_l_flag    IN VARCHAR2
45875  ,p_actual_flag           IN OUT VARCHAR2
45876  ,p_balance_type_code     OUT VARCHAR2
45877  ,p_gain_or_loss_ref      OUT VARCHAR2
45878  
45879 --Payment Currency Code
45880  , p_source_13            IN VARCHAR2
45881 --Invoice Distribution Type
45882  , p_source_33            IN VARCHAR2
45883  , p_source_33_meaning    IN VARCHAR2
45884 --Recoverable Tax Account
45885  , p_source_51            IN NUMBER
45886 --Accounting Reversal Indicator
45887  , p_source_52            IN VARCHAR2
45888 --Distribution Link Type
45889  , p_source_54            IN VARCHAR2
45890 --Override Accounted Amount Indicator
45891  , p_source_79            IN VARCHAR2
45892  , p_source_79_meaning    IN VARCHAR2
45893 --Third Party Type
45894  , p_source_82            IN VARCHAR2
45895 --Business Flow Accounts Payable Application Identifier
45896  , p_source_90            IN NUMBER
45897 --When to Account for Payment Option
45898  , p_source_96            IN VARCHAR2
45899 --Payment Distribution Type
45900  , p_source_97            IN VARCHAR2
45901  , p_source_97_meaning    IN VARCHAR2
45902 --Payment Distribution Amount
45903  , p_source_98            IN NUMBER
45904 --Business Flow Payment Distribution Type
45905  , p_source_99            IN VARCHAR2
45906 --Business Flow Payment Entity Code
45907  , p_source_100            IN VARCHAR2
45908 --Business Flow Payment Distribution Identifier
45909  , p_source_101            IN NUMBER
45910 --Business Flow Payment Identifier
45911  , p_source_102            IN NUMBER
45912 --Payment Distribution Identifier
45913  , p_source_103            IN NUMBER
45914 --Payment Supplier Identifier
45915  , p_source_109            IN NUMBER
45916 --Payment Supplier Site Identifier
45917  , p_source_110            IN NUMBER
45918 --Payment Distribution Reversed Identifier
45919  , p_source_111            IN NUMBER
45920 --Payment Identifier
45924 --Payment Exchange Date
45921  , p_source_112            IN NUMBER
45922 --Payment Maturity Date
45923  , p_source_114            IN DATE
45925  , p_source_117            IN DATE
45926 --Payment Exchange Rate
45927  , p_source_118            IN NUMBER
45928 --Payment Exchange Rate Type
45929  , p_source_119            IN VARCHAR2
45930 --Payment Distribution (Matured Rate) Ledger Amount
45931  , p_source_121            IN NUMBER
45932 --Deferred Recoverable Tax Option
45933  , p_source_125            IN VARCHAR2
45934  , p_source_125_meaning    IN VARCHAR2
45935 )
45936 IS
45937 
45938 l_component_type              VARCHAR2(80);
45939 l_component_code              VARCHAR2(30);
45940 l_component_type_code         VARCHAR2(1);
45941 l_component_appl_id           INTEGER;
45942 l_amb_context_code            VARCHAR2(30);
45943 l_entity_code                 VARCHAR2(30);
45944 l_event_class_code            VARCHAR2(30);
45945 l_ae_header_id                NUMBER;
45946 l_event_type_code             VARCHAR2(30);
45947 l_line_definition_code        VARCHAR2(30);
45948 l_line_definition_owner_code  VARCHAR2(1);
45949 --
45950 -- adr variables
45951 l_segment                     VARCHAR2(30);
45952 l_ccid                        NUMBER;
45953 l_adr_transaction_coa_id      NUMBER;
45954 l_adr_accounting_coa_id       NUMBER;
45955 l_adr_flexfield_segment_code  VARCHAR2(30);
45956 l_adr_flex_value_set_id       NUMBER;
45957 l_adr_value_type_code         VARCHAR2(30);
45958 l_adr_value_combination_id    NUMBER;
45959 l_adr_value_segment_code      VARCHAR2(30);
45960 
45961 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45962 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45963 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45964 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45965 
45966 -- 4262811 Variables ------------------------------------------------------------------------------------------
45967 l_entered_amt_idx             NUMBER;
45968 l_accted_amt_idx              NUMBER;
45969 l_acc_rev_flag                VARCHAR2(1);
45970 l_accrual_line_num            NUMBER;
45971 l_tmp_amt                     NUMBER;
45972 l_acc_rev_natural_side_code   VARCHAR2(1);
45973 
45974 l_num_entries                 NUMBER;
45975 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45976 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45977 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45978 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45979 l_recog_line_1                NUMBER;
45980 l_recog_line_2                NUMBER;
45981 
45982 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45983 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45984 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45985 
45986 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45987 
45988 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45989 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45990 
45991 ---------------------------------------------------------------------------------------------------------------
45992 
45993 
45994 --
45995 -- bulk performance
45996 --
45997 l_balance_type_code           VARCHAR2(1);
45998 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45999 l_log_module                  VARCHAR2(240);
46000 
46001 --
46002 -- Upgrade strategy
46003 --
46004 l_actual_upg_option           VARCHAR2(1);
46005 l_enc_upg_option           VARCHAR2(1);
46006 
46007 --
46008 BEGIN
46009 --
46010 IF g_log_enabled THEN
46011       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
46012 END IF;
46013 --
46014 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46015 
46016       trace
46017          (p_msg      => 'BEGIN of AcctLineType_99'
46018          ,p_level    => C_LEVEL_PROCEDURE
46019          ,p_module   => l_log_module);
46020 
46021 END IF;
46022 --
46023 l_component_type             := 'AMB_JLT';
46024 l_component_code             := 'AP_DEF_RTAX_MAT';
46025 l_component_type_code        := 'S';
46026 l_component_appl_id          :=  200;
46027 l_amb_context_code           := 'DEFAULT';
46028 l_entity_code                := 'AP_PAYMENTS';
46029 l_event_class_code           := 'FUTURE DATED PAYMENTS';
46030 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
46031 l_line_definition_owner_code := 'S';
46032 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
46033 --
46034 l_balance_type_code          := 'A';
46035 l_segment                     := NULL;
46036 l_ccid                        := NULL;
46037 l_adr_transaction_coa_id      := NULL;
46038 l_adr_accounting_coa_id       := NULL;
46039 l_adr_flexfield_segment_code  := NULL;
46040 l_adr_flex_value_set_id       := NULL;
46041 l_adr_value_type_code         := NULL;
46042 l_adr_value_combination_id    := NULL;
46043 l_adr_value_segment_code      := NULL;
46044 
46045 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46046 l_bflow_class_code           := '';    -- 4219869 Business Flow
46047 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46048 l_budgetary_control_flag     := 'N';
46049 
46050 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46054 l_acc_rev_flag               := NULL;          -- 4262811
46051 l_bflow_applied_to_amt       := NULL; -- 5132302
46052 l_entered_amt_idx            := NULL;          -- 4262811
46053 l_accted_amt_idx             := NULL;          -- 4262811
46055 l_accrual_line_num           := NULL;          -- 4262811
46056 l_tmp_amt                    := NULL;          -- 4262811
46057 --
46058  
46059 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46060     l_balance_type_code <> 'B' THEN
46061 IF NVL(p_source_96,'
46062 ') <>  'CLEAR_CLEAR' AND 
46063 NVL(p_source_33,'
46064 ') =  'REC_TAX' AND 
46065 p_source_114 IS NOT NULL AND 
46066 NVL(p_source_125,'
46067 ') =  'DEFERRED' AND 
46068 (NVL(p_source_97,'
46069 ') =  'DISCOUNT' OR 
46070 NVL(p_source_97,'
46071 ') =  'CASH')
46072  THEN 
46073 
46074    --
46075    XLA_AE_LINES_PKG.SetNewLine;
46076 
46077    p_balance_type_code          := l_balance_type_code;
46078    -- set the flag so later we will know whether the gain loss line needs to be created
46079    
46080    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46081      p_actual_flag :='A';
46082    END IF;
46083 
46084    --
46085    -- bulk performance
46086    --
46087    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46088                                       p_header_num   => 0); -- 4262811
46089    --
46090    -- set accounting line options
46091    --
46092    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46093            p_natural_side_code          => 'D'
46094          , p_gain_or_loss_flag          => 'N'
46095          , p_gl_transfer_mode_code      => 'S'
46096          , p_acct_entry_type_code       => 'A'
46097          , p_switch_side_flag           => 'Y'
46098          , p_merge_duplicate_code       => 'A'
46099          );
46100    --
46101    l_acc_rev_natural_side_code := 'C';  -- 4262811
46102    -- 
46103    --
46104    -- set accounting line type info
46105    --
46106    xla_ae_lines_pkg.SetAcctLineType
46107       (p_component_type             => l_component_type
46108       ,p_event_type_code            => l_event_type_code
46109       ,p_line_definition_owner_code => l_line_definition_owner_code
46110       ,p_line_definition_code       => l_line_definition_code
46111       ,p_accounting_line_code       => l_component_code
46112       ,p_accounting_line_type_code  => l_component_type_code
46113       ,p_accounting_line_appl_id    => l_component_appl_id
46114       ,p_amb_context_code           => l_amb_context_code
46115       ,p_entity_code                => l_entity_code
46116       ,p_event_class_code           => l_event_class_code);
46117    --
46118    -- set accounting class
46119    --
46120    xla_ae_lines_pkg.SetAcctClass(
46121            p_accounting_class_code  => 'DEF_REC_TAX'
46122          , p_ae_header_id           => l_ae_header_id
46123          );
46124 
46125    --
46126    -- set rounding class
46127    --
46128    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46129                       'DEF_REC_TAX';
46130 
46131    --
46132    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46133    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46134    --
46135    -- bulk performance
46136    --
46137    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46138 
46139    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46140       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46141 
46142    -- 4955764
46143    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46144       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46145 
46146    -- 4458381 Public Sector Enh
46147    
46148    --
46149    -- set accounting attributes for the line type
46150    --
46151    l_entered_amt_idx := 9;
46152    l_accted_amt_idx  := 14;
46153    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46154    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46155    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
46156    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46157    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
46158    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46159    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
46160    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46161    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
46162    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46163    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
46164    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46165    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
46166    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46167    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
46168    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46169    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
46170    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46171    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
46175    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
46172    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46173    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
46174    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
46176    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
46177    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
46178    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
46179    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
46180    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
46181    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
46182    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
46183    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
46184    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
46185    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
46186    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
46187    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
46188    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
46189    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
46190    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
46191    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
46192    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
46193    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
46194 
46195    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46196    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46197 
46198    ---------------------------------------------------------------------------------------------------------------
46199    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46200    ---------------------------------------------------------------------------------------------------------------
46201    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46202 
46203    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46204    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46205 
46206    IF xla_accounting_cache_pkg.GetValueChar
46207          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46208          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46209    AND l_bflow_method_code = 'PRIOR_ENTRY'
46210 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46211    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46212          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46213        )
46214    THEN
46215          xla_ae_lines_pkg.BflowUpgEntry
46216            (p_business_method_code    => l_bflow_method_code
46217            ,p_business_class_code     => l_bflow_class_code
46218            ,p_balance_type            => l_balance_type_code);
46219    ELSE
46220       NULL;
46221 -- No business flow processing for business flow method of NONE.
46222    END IF;
46223 
46224    --
46225    -- call analytical criteria
46226    --
46227    
46228 
46229 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
46230 xla_ae_lines_pkg.SetAnalyticalCriteria(
46231    p_analytical_criterion_name    => 'Check Id'
46232  , p_analytical_criterion_owner   => 'S'
46233  , p_analytical_criterion_code    => 'CHECK_ID'
46234  , p_amb_context_code             => 'DEFAULT'
46235  , p_balancing_flag               => 'N'
46236  
46237  , p_analytical_detail_char_1    =>  NULL
46238  , p_analytical_detail_num_1     =>  p_source_112
46239  , p_analytical_detail_date_1    =>  NULL
46240 
46241  , p_ae_header_id                 => l_ae_header_id
46242 )
46243 ;
46244 --
46245 
46246    --
46247    -- call description
46248    --
46249    -- No description or it is inherited.
46250    --
46251    -- call ADRs
46252    -- Bug 4922099
46253    --
46254    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46255         (NVL(l_actual_upg_option, 'N') = 'O') OR
46256         (NVL(l_enc_upg_option, 'N') = 'O')
46257       )
46258    THEN
46259    NULL;
46260    --
46261    --
46262    
46263   l_ccid := AcctDerRule_43(
46264            p_application_id           => p_application_id
46265          , p_ae_header_id             => l_ae_header_id 
46266 , p_source_51 => p_source_51
46267          , x_transaction_coa_id       => l_adr_transaction_coa_id
46268          , x_accounting_coa_id        => l_adr_accounting_coa_id
46269          , x_value_type_code          => l_adr_value_type_code
46270          , p_side                     => 'NA'
46271    );
46272 
46273    xla_ae_lines_pkg.set_ccid(
46274     p_code_combination_id          => l_ccid
46275   , p_value_type_code              => l_adr_value_type_code
46276   , p_transaction_coa_id           => l_adr_transaction_coa_id
46277   , p_accounting_coa_id            => l_adr_accounting_coa_id
46278   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46279   , p_adr_type_code                => 'S'
46280   , p_component_type               => l_component_type
46281   , p_component_code               => l_component_code
46282   , p_component_type_code          => l_component_type_code
46283   , p_component_appl_id            => l_component_appl_id
46284   , p_amb_context_code             => l_amb_context_code
46285   , p_side                         => 'NA'
46286   );
46287 
46288 
46292    --
46289    --
46290    --
46291    END IF;
46293    -- Bug 4922099
46294    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46295           (NVL(l_enc_upg_option, 'N') = 'O')
46296         ) AND
46297         (l_bflow_method_code = 'PRIOR_ENTRY')
46298       )
46299    THEN
46300       IF
46301       --
46302       1 = 2
46303       --
46304       THEN
46305       xla_accounting_err_pkg.build_message
46306                                     (p_appli_s_name            => 'XLA'
46307                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46308                                     ,p_token_1                 => 'LINE_NUMBER'
46309                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46310                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46311                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46312                                                                              l_component_type
46313                                                                             ,l_component_code
46314                                                                             ,l_component_type_code
46315                                                                             ,l_component_appl_id
46316                                                                             ,l_amb_context_code
46317                                                                             ,l_entity_code
46318                                                                             ,l_event_class_code
46319                                                                            )
46320                                     ,p_token_3                 => 'OWNER'
46321                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46322                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46323                                                                           ,p_lookup_code    => l_component_type_code
46324                                                                          )
46325                                     ,p_token_4                 => 'PRODUCT_NAME'
46326                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46327                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46328                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46329                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46330                                     ,p_ae_header_id            =>  NULL
46331                                        );
46332 
46333         IF (C_LEVEL_ERROR>= g_log_level) THEN
46334                  trace
46335                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46336                       ,p_level    => C_LEVEL_ERROR
46337                       ,p_module   => l_log_module);
46338         END IF;
46339       END IF;
46340    END IF;
46341    --
46342    --
46343    ------------------------------------------------------------------------------------------------
46344    -- 4219869 Business Flow
46345    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46346    -- Prior Entry.  Currently, the following code is always generated.
46347    ------------------------------------------------------------------------------------------------
46348    XLA_AE_LINES_PKG.ValidateCurrentLine;
46349 
46350    ------------------------------------------------------------------------------------
46351    -- 4219869 Business Flow
46352    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46353    ------------------------------------------------------------------------------------
46354    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46355 
46356    ----------------------------------------------------------------------------------
46357    -- 4219869 Business Flow
46358    -- Update journal entry status -- Need to generate this within IF <condition>
46359    ----------------------------------------------------------------------------------
46360    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46361          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46362          ,p_balance_type_code => l_balance_type_code
46363          );
46364 
46365    -------------------------------------------------------------------------------------------
46366    -- 4262811 - Generate the Accrual Reversal lines
46367    -------------------------------------------------------------------------------------------
46368    BEGIN
46369       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46370                               (g_array_event(p_event_id).array_value_num('header_index'));
46371       IF l_acc_rev_flag IS NULL THEN
46372          l_acc_rev_flag := 'N';
46373       END IF;
46374    EXCEPTION
46375       WHEN OTHERS THEN
46376          l_acc_rev_flag := 'N';
46377    END;
46378    --
46379    IF (l_acc_rev_flag = 'Y') THEN
46380 
46381        -- 4645092  ------------------------------------------------------------------------------
46382        -- To allow MPA report to determine if it should generate report process
46383        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46387        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46384        ------------------------------------------------------------------------------------------
46385 
46386        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46388    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46389    -- call ADRs
46390    -- Bug 4922099
46391    --
46392    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46393         (NVL(l_actual_upg_option, 'N') = 'O') OR
46394         (NVL(l_enc_upg_option, 'N') = 'O')
46395       )
46396    THEN
46397    NULL;
46398    --
46399    --
46400    
46401   l_ccid := AcctDerRule_43(
46402            p_application_id           => p_application_id
46403          , p_ae_header_id             => l_ae_header_id 
46404 , p_source_51 => p_source_51
46405          , x_transaction_coa_id       => l_adr_transaction_coa_id
46406          , x_accounting_coa_id        => l_adr_accounting_coa_id
46407          , x_value_type_code          => l_adr_value_type_code
46408          , p_side                     => 'NA'
46409    );
46410 
46411    xla_ae_lines_pkg.set_ccid(
46412     p_code_combination_id          => l_ccid
46413   , p_value_type_code              => l_adr_value_type_code
46414   , p_transaction_coa_id           => l_adr_transaction_coa_id
46415   , p_accounting_coa_id            => l_adr_accounting_coa_id
46416   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46417   , p_adr_type_code                => 'S'
46418   , p_component_type               => l_component_type
46419   , p_component_code               => l_component_code
46420   , p_component_type_code          => l_component_type_code
46421   , p_component_appl_id            => l_component_appl_id
46422   , p_amb_context_code             => l_amb_context_code
46423   , p_side                         => 'NA'
46424   );
46425 
46426 
46427    --
46428    --
46429    END IF;
46430 
46431        --
46432        -- Update the line information that should be overwritten
46433        --
46434        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46435                                          p_header_num   => 1);
46436        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46437 
46438        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46439 
46440        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46441           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46442        END IF;
46443 
46444       --
46445       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46446       --
46447       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46448           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46449       ELSE
46450           ---------------------------------------------------------------------------------------------------
46451           -- 4262811a Switch Sign
46452           ---------------------------------------------------------------------------------------------------
46453           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46454           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46455                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46456           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46457                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46458           -- 5132302
46459           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46460                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46461 
46462       END IF;
46463 
46464       -- 4955764
46465       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46466       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46467 
46468 
46469       XLA_AE_LINES_PKG.ValidateCurrentLine;
46470       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46471 
46472       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46473                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46474                ,p_balance_type_code => l_balance_type_code);
46475 
46476    END IF;
46477 
46478    -----------------------------------------------------------------------------------------
46479    -- 4262811 Multiperiod Accounting
46480    -----------------------------------------------------------------------------------------
46481      -- No MPA option is assigned.
46482 
46483 
46484 END IF;
46485 END IF;
46486 --
46487 
46488 --
46489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46490    trace
46491       (p_msg      => 'END of AcctLineType_99'
46492       ,p_level    => C_LEVEL_PROCEDURE
46493       ,p_module   => l_log_module);
46494 END IF;
46495 --
46496 EXCEPTION
46497   WHEN xla_exceptions_pkg.application_exception THEN
46498       RAISE;
46499   WHEN OTHERS THEN
46500        xla_exceptions_pkg.raise_message
46504 
46501            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_99');
46502 END AcctLineType_99;
46503 --
46505 ---------------------------------------
46506 --
46507 -- PRIVATE FUNCTION
46508 --         AcctLineType_100
46509 --
46510 ---------------------------------------
46511 PROCEDURE AcctLineType_100 (
46512   p_application_id        IN NUMBER
46513  ,p_event_id              IN NUMBER
46514  ,p_calculate_acctd_flag  IN VARCHAR2
46515  ,p_calculate_g_l_flag    IN VARCHAR2
46516  ,p_actual_flag           IN OUT VARCHAR2
46517  ,p_balance_type_code     OUT VARCHAR2
46518  ,p_gain_or_loss_ref      OUT VARCHAR2
46519  
46520 --Payment Currency Code
46521  , p_source_13            IN VARCHAR2
46522 --Invoice Distribution Type
46523  , p_source_33            IN VARCHAR2
46524  , p_source_33_meaning    IN VARCHAR2
46525 --Recoverable Tax Account
46526  , p_source_51            IN NUMBER
46527 --Accounting Reversal Indicator
46528  , p_source_52            IN VARCHAR2
46529 --Distribution Link Type
46530  , p_source_54            IN VARCHAR2
46531 --Override Accounted Amount Indicator
46532  , p_source_79            IN VARCHAR2
46533  , p_source_79_meaning    IN VARCHAR2
46534 --Third Party Type
46535  , p_source_82            IN VARCHAR2
46536 --Invoice Distribution Tax Line Identifier
46537  , p_source_85            IN NUMBER
46538 --Invoice Distribution Tax Distribution Identifier from Tax
46539  , p_source_86            IN NUMBER
46540 --Invoice Distribution Summary Tax Line Identifier
46541  , p_source_87            IN NUMBER
46542 --Business Flow Accounts Payable Application Identifier
46543  , p_source_90            IN NUMBER
46544 --Business Flow Invoice Distribution Type
46545  , p_source_91            IN VARCHAR2
46546 --Business Flow Invoice Entity Code
46547  , p_source_92            IN VARCHAR2
46548 --Business Flow Invoice Distribution Identifier
46549  , p_source_93            IN NUMBER
46550 --Business Flow Invoice Identifier
46551  , p_source_94            IN NUMBER
46552 --When to Account for Payment Option
46553  , p_source_96            IN VARCHAR2
46554 --Payment Distribution Type
46555  , p_source_97            IN VARCHAR2
46556  , p_source_97_meaning    IN VARCHAR2
46557 --Payment Distribution Amount
46558  , p_source_98            IN NUMBER
46559 --Payment Distribution Identifier
46560  , p_source_103            IN NUMBER
46561 --Payment Supplier Identifier
46562  , p_source_109            IN NUMBER
46563 --Payment Supplier Site Identifier
46564  , p_source_110            IN NUMBER
46565 --Payment Distribution Reversed Identifier
46566  , p_source_111            IN NUMBER
46567 --Payment Identifier
46568  , p_source_112            IN NUMBER
46569 --Payment Maturity Date
46570  , p_source_114            IN DATE
46571 --Payment Distribution (Invoice Rate) Ledger Amount
46572  , p_source_116            IN NUMBER
46573 --Payment Type
46574  , p_source_122            IN VARCHAR2
46575  , p_source_122_meaning    IN VARCHAR2
46576 --Payment Processing Type
46577  , p_source_123            IN VARCHAR2
46578 --Invoice Distribution Amount of the Payment Distribution
46579  , p_source_124            IN NUMBER
46580 --Deferred Recoverable Tax Option
46581  , p_source_125            IN VARCHAR2
46582  , p_source_125_meaning    IN VARCHAR2
46583 --AWT Related Distribution Type Lookup code
46584  , p_source_126            IN VARCHAR2
46585 --Invoice Exchange Date
46586  , p_source_136            IN DATE
46587 --Invoice Exchange Rate
46588  , p_source_137            IN NUMBER
46589 --Invoice Exchange Rate Type
46590  , p_source_138            IN VARCHAR2
46591 )
46592 IS
46593 
46594 l_component_type              VARCHAR2(80);
46595 l_component_code              VARCHAR2(30);
46596 l_component_type_code         VARCHAR2(1);
46597 l_component_appl_id           INTEGER;
46598 l_amb_context_code            VARCHAR2(30);
46599 l_entity_code                 VARCHAR2(30);
46600 l_event_class_code            VARCHAR2(30);
46601 l_ae_header_id                NUMBER;
46602 l_event_type_code             VARCHAR2(30);
46603 l_line_definition_code        VARCHAR2(30);
46604 l_line_definition_owner_code  VARCHAR2(1);
46605 --
46606 -- adr variables
46607 l_segment                     VARCHAR2(30);
46608 l_ccid                        NUMBER;
46609 l_adr_transaction_coa_id      NUMBER;
46610 l_adr_accounting_coa_id       NUMBER;
46611 l_adr_flexfield_segment_code  VARCHAR2(30);
46612 l_adr_flex_value_set_id       NUMBER;
46613 l_adr_value_type_code         VARCHAR2(30);
46614 l_adr_value_combination_id    NUMBER;
46615 l_adr_value_segment_code      VARCHAR2(30);
46616 
46617 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46618 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46619 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46620 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46621 
46622 -- 4262811 Variables ------------------------------------------------------------------------------------------
46623 l_entered_amt_idx             NUMBER;
46624 l_accted_amt_idx              NUMBER;
46625 l_acc_rev_flag                VARCHAR2(1);
46626 l_accrual_line_num            NUMBER;
46627 l_tmp_amt                     NUMBER;
46628 l_acc_rev_natural_side_code   VARCHAR2(1);
46629 
46630 l_num_entries                 NUMBER;
46634 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46631 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46632 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46633 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46635 l_recog_line_1                NUMBER;
46636 l_recog_line_2                NUMBER;
46637 
46638 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46639 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46640 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46641 
46642 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46643 
46644 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46645 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46646 
46647 ---------------------------------------------------------------------------------------------------------------
46648 
46649 
46650 --
46651 -- bulk performance
46652 --
46653 l_balance_type_code           VARCHAR2(1);
46654 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46655 l_log_module                  VARCHAR2(240);
46656 
46657 --
46658 -- Upgrade strategy
46659 --
46660 l_actual_upg_option           VARCHAR2(1);
46661 l_enc_upg_option           VARCHAR2(1);
46662 
46663 --
46664 BEGIN
46665 --
46666 IF g_log_enabled THEN
46667       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
46668 END IF;
46669 --
46670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46671 
46672       trace
46673          (p_msg      => 'BEGIN of AcctLineType_100'
46674          ,p_level    => C_LEVEL_PROCEDURE
46675          ,p_module   => l_log_module);
46676 
46677 END IF;
46678 --
46679 l_component_type             := 'AMB_JLT';
46680 l_component_code             := 'AP_DEF_RTAX_PMT';
46681 l_component_type_code        := 'S';
46682 l_component_appl_id          :=  200;
46683 l_amb_context_code           := 'DEFAULT';
46684 l_entity_code                := 'AP_PAYMENTS';
46685 l_event_class_code           := 'PAYMENTS';
46686 l_event_type_code            := 'PAYMENTS_ALL';
46687 l_line_definition_owner_code := 'S';
46688 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
46689 --
46690 l_balance_type_code          := 'A';
46691 l_segment                     := NULL;
46692 l_ccid                        := NULL;
46693 l_adr_transaction_coa_id      := NULL;
46694 l_adr_accounting_coa_id       := NULL;
46695 l_adr_flexfield_segment_code  := NULL;
46696 l_adr_flex_value_set_id       := NULL;
46697 l_adr_value_type_code         := NULL;
46698 l_adr_value_combination_id    := NULL;
46699 l_adr_value_segment_code      := NULL;
46700 
46701 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46702 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
46703 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46704 l_budgetary_control_flag     := 'N';
46705 
46706 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46707 l_bflow_applied_to_amt       := NULL; -- 5132302
46708 l_entered_amt_idx            := NULL;          -- 4262811
46709 l_accted_amt_idx             := NULL;          -- 4262811
46710 l_acc_rev_flag               := NULL;          -- 4262811
46711 l_accrual_line_num           := NULL;          -- 4262811
46712 l_tmp_amt                    := NULL;          -- 4262811
46713 --
46714  
46715 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46716     l_balance_type_code <> 'B' THEN
46717 IF NVL(p_source_96,'
46718 ') <>  'CLEAR_CLEAR' AND 
46719 ((NVL(p_source_33,'
46720 ') =  'REC_TAX' AND 
46721 NVL(p_source_125,'
46722 ') =  'DEFERRED') OR 
46723 (NVL(p_source_33,'
46724 ') =  'AWT' AND 
46725 NVL(p_source_126,'
46726 ') =  'AWT_DEFERRED')
46727 ) AND (NVL(p_source_97,'
46728 ') =  'CASH' OR 
46729 NVL(p_source_97,'
46730 ') =  'AWT' OR 
46731 NVL(p_source_97,'
46732 ') =  'DISCOUNT') AND 
46733 p_source_114 IS NULL AND 
46734 NVL(p_source_122,'
46735 ') <>  'R' AND 
46736 NVL(p_source_123,'
46737 ') <>  'PAYMENTCARD'
46738  THEN 
46739 
46740    --
46741    XLA_AE_LINES_PKG.SetNewLine;
46742 
46743    p_balance_type_code          := l_balance_type_code;
46744    -- set the flag so later we will know whether the gain loss line needs to be created
46745    
46746    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46747      p_actual_flag :='A';
46748    END IF;
46749 
46750    --
46751    -- bulk performance
46752    --
46753    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46754                                       p_header_num   => 0); -- 4262811
46755    --
46756    -- set accounting line options
46757    --
46758    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46759            p_natural_side_code          => 'D'
46760          , p_gain_or_loss_flag          => 'N'
46761          , p_gl_transfer_mode_code      => 'S'
46762          , p_acct_entry_type_code       => 'A'
46763          , p_switch_side_flag           => 'Y'
46764          , p_merge_duplicate_code       => 'A'
46765          );
46766    --
46767    l_acc_rev_natural_side_code := 'C';  -- 4262811
46768    -- 
46769    --
46770    -- set accounting line type info
46771    --
46775       ,p_line_definition_owner_code => l_line_definition_owner_code
46772    xla_ae_lines_pkg.SetAcctLineType
46773       (p_component_type             => l_component_type
46774       ,p_event_type_code            => l_event_type_code
46776       ,p_line_definition_code       => l_line_definition_code
46777       ,p_accounting_line_code       => l_component_code
46778       ,p_accounting_line_type_code  => l_component_type_code
46779       ,p_accounting_line_appl_id    => l_component_appl_id
46780       ,p_amb_context_code           => l_amb_context_code
46781       ,p_entity_code                => l_entity_code
46782       ,p_event_class_code           => l_event_class_code);
46783    --
46784    -- set accounting class
46785    --
46786    xla_ae_lines_pkg.SetAcctClass(
46787            p_accounting_class_code  => 'DEF_REC_TAX'
46788          , p_ae_header_id           => l_ae_header_id
46789          );
46790 
46791    --
46792    -- set rounding class
46793    --
46794    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46795                       'DEF_REC_TAX';
46796 
46797    --
46798    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46799    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46800    --
46801    -- bulk performance
46802    --
46803    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46804 
46805    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46806       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46807 
46808    -- 4955764
46809    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46810       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46811 
46812    -- 4458381 Public Sector Enh
46813    
46814    --
46815    -- set accounting attributes for the line type
46816    --
46817    l_entered_amt_idx := 10;
46818    l_accted_amt_idx  := 15;
46819    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
46820    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46821    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
46822    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
46823    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
46824    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
46825    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
46826    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46827    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
46828    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
46829    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
46830    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
46831    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
46832    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46833    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
46834    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
46835    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
46836    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
46837    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
46838    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
46839    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
46840    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
46841    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
46842    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
46843    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
46844    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
46845    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
46846    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
46847    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
46848    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
46849    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
46850    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
46851    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
46852    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
46853    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
46854    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
46855    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
46856    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
46857    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
46858    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
46859    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
46860    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
46861    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
46862    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
46863    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
46864    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
46865    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
46866    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
46867    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
46868 
46869    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46870    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46871 
46875    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46872    ---------------------------------------------------------------------------------------------------------------
46873    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46874    ---------------------------------------------------------------------------------------------------------------
46876 
46877    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46878    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46879 
46880    IF xla_accounting_cache_pkg.GetValueChar
46881          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46882          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46883    AND l_bflow_method_code = 'PRIOR_ENTRY'
46884 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46885    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46886          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46887        )
46888    THEN
46889          xla_ae_lines_pkg.BflowUpgEntry
46890            (p_business_method_code    => l_bflow_method_code
46891            ,p_business_class_code     => l_bflow_class_code
46892            ,p_balance_type            => l_balance_type_code);
46893    ELSE
46894       NULL;
46895 -- No business flow processing for business flow method of NONE.
46896    END IF;
46897 
46898    --
46899    -- call analytical criteria
46900    --
46901    
46902 
46903 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
46904 xla_ae_lines_pkg.SetAnalyticalCriteria(
46905    p_analytical_criterion_name    => 'Check Id'
46906  , p_analytical_criterion_owner   => 'S'
46907  , p_analytical_criterion_code    => 'CHECK_ID'
46908  , p_amb_context_code             => 'DEFAULT'
46909  , p_balancing_flag               => 'N'
46910  
46911  , p_analytical_detail_char_1    =>  NULL
46912  , p_analytical_detail_num_1     =>  p_source_112
46913  , p_analytical_detail_date_1    =>  NULL
46914 
46915  , p_ae_header_id                 => l_ae_header_id
46916 )
46917 ;
46918 --
46919 
46920    --
46921    -- call description
46922    --
46923    -- No description or it is inherited.
46924    --
46925    -- call ADRs
46926    -- Bug 4922099
46927    --
46928    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46929         (NVL(l_actual_upg_option, 'N') = 'O') OR
46930         (NVL(l_enc_upg_option, 'N') = 'O')
46931       )
46932    THEN
46933    NULL;
46934    --
46935    --
46936    
46937   l_ccid := AcctDerRule_43(
46938            p_application_id           => p_application_id
46939          , p_ae_header_id             => l_ae_header_id 
46940 , p_source_51 => p_source_51
46941          , x_transaction_coa_id       => l_adr_transaction_coa_id
46942          , x_accounting_coa_id        => l_adr_accounting_coa_id
46943          , x_value_type_code          => l_adr_value_type_code
46944          , p_side                     => 'NA'
46945    );
46946 
46947    xla_ae_lines_pkg.set_ccid(
46948     p_code_combination_id          => l_ccid
46949   , p_value_type_code              => l_adr_value_type_code
46950   , p_transaction_coa_id           => l_adr_transaction_coa_id
46951   , p_accounting_coa_id            => l_adr_accounting_coa_id
46952   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46953   , p_adr_type_code                => 'S'
46954   , p_component_type               => l_component_type
46955   , p_component_code               => l_component_code
46956   , p_component_type_code          => l_component_type_code
46957   , p_component_appl_id            => l_component_appl_id
46958   , p_amb_context_code             => l_amb_context_code
46959   , p_side                         => 'NA'
46960   );
46961 
46962 
46963    --
46964    --
46965    END IF;
46966    --
46967    -- Bug 4922099
46968    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46969           (NVL(l_enc_upg_option, 'N') = 'O')
46970         ) AND
46971         (l_bflow_method_code = 'PRIOR_ENTRY')
46972       )
46973    THEN
46974       IF
46975       --
46976       1 = 2
46977       --
46978       THEN
46979       xla_accounting_err_pkg.build_message
46980                                     (p_appli_s_name            => 'XLA'
46981                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46982                                     ,p_token_1                 => 'LINE_NUMBER'
46983                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46984                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46985                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46986                                                                              l_component_type
46987                                                                             ,l_component_code
46988                                                                             ,l_component_type_code
46989                                                                             ,l_component_appl_id
46990                                                                             ,l_amb_context_code
46991                                                                             ,l_entity_code
46995                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46992                                                                             ,l_event_class_code
46993                                                                            )
46994                                     ,p_token_3                 => 'OWNER'
46996                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46997                                                                           ,p_lookup_code    => l_component_type_code
46998                                                                          )
46999                                     ,p_token_4                 => 'PRODUCT_NAME'
47000                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47001                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47002                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47003                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47004                                     ,p_ae_header_id            =>  NULL
47005                                        );
47006 
47007         IF (C_LEVEL_ERROR>= g_log_level) THEN
47008                  trace
47009                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47010                       ,p_level    => C_LEVEL_ERROR
47011                       ,p_module   => l_log_module);
47012         END IF;
47013       END IF;
47014    END IF;
47015    --
47016    --
47017    ------------------------------------------------------------------------------------------------
47018    -- 4219869 Business Flow
47019    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47020    -- Prior Entry.  Currently, the following code is always generated.
47021    ------------------------------------------------------------------------------------------------
47022    XLA_AE_LINES_PKG.ValidateCurrentLine;
47023 
47024    ------------------------------------------------------------------------------------
47025    -- 4219869 Business Flow
47026    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47027    ------------------------------------------------------------------------------------
47028    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47029 
47030    ----------------------------------------------------------------------------------
47031    -- 4219869 Business Flow
47032    -- Update journal entry status -- Need to generate this within IF <condition>
47033    ----------------------------------------------------------------------------------
47034    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47035          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47036          ,p_balance_type_code => l_balance_type_code
47037          );
47038 
47039    -------------------------------------------------------------------------------------------
47040    -- 4262811 - Generate the Accrual Reversal lines
47041    -------------------------------------------------------------------------------------------
47042    BEGIN
47043       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47044                               (g_array_event(p_event_id).array_value_num('header_index'));
47045       IF l_acc_rev_flag IS NULL THEN
47046          l_acc_rev_flag := 'N';
47047       END IF;
47048    EXCEPTION
47049       WHEN OTHERS THEN
47050          l_acc_rev_flag := 'N';
47051    END;
47052    --
47053    IF (l_acc_rev_flag = 'Y') THEN
47054 
47055        -- 4645092  ------------------------------------------------------------------------------
47056        -- To allow MPA report to determine if it should generate report process
47057        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47058        ------------------------------------------------------------------------------------------
47059 
47060        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47061        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47062    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47063    -- call ADRs
47064    -- Bug 4922099
47065    --
47066    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47067         (NVL(l_actual_upg_option, 'N') = 'O') OR
47068         (NVL(l_enc_upg_option, 'N') = 'O')
47069       )
47070    THEN
47071    NULL;
47072    --
47073    --
47074    
47075   l_ccid := AcctDerRule_43(
47076            p_application_id           => p_application_id
47077          , p_ae_header_id             => l_ae_header_id 
47078 , p_source_51 => p_source_51
47079          , x_transaction_coa_id       => l_adr_transaction_coa_id
47080          , x_accounting_coa_id        => l_adr_accounting_coa_id
47081          , x_value_type_code          => l_adr_value_type_code
47082          , p_side                     => 'NA'
47083    );
47084 
47085    xla_ae_lines_pkg.set_ccid(
47086     p_code_combination_id          => l_ccid
47087   , p_value_type_code              => l_adr_value_type_code
47088   , p_transaction_coa_id           => l_adr_transaction_coa_id
47089   , p_accounting_coa_id            => l_adr_accounting_coa_id
47090   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47091   , p_adr_type_code                => 'S'
47092   , p_component_type               => l_component_type
47096   , p_amb_context_code             => l_amb_context_code
47093   , p_component_code               => l_component_code
47094   , p_component_type_code          => l_component_type_code
47095   , p_component_appl_id            => l_component_appl_id
47097   , p_side                         => 'NA'
47098   );
47099 
47100 
47101    --
47102    --
47103    END IF;
47104 
47105        --
47106        -- Update the line information that should be overwritten
47107        --
47108        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47109                                          p_header_num   => 1);
47110        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47111 
47112        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47113 
47114        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47115           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47116        END IF;
47117 
47118       --
47119       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47120       --
47121       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47122           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47123       ELSE
47124           ---------------------------------------------------------------------------------------------------
47125           -- 4262811a Switch Sign
47126           ---------------------------------------------------------------------------------------------------
47127           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47128           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47129                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47130           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47131                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47132           -- 5132302
47133           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47134                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47135 
47136       END IF;
47137 
47138       -- 4955764
47139       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47140       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47141 
47142 
47143       XLA_AE_LINES_PKG.ValidateCurrentLine;
47144       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47145 
47146       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47147                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47148                ,p_balance_type_code => l_balance_type_code);
47149 
47150    END IF;
47151 
47152    -----------------------------------------------------------------------------------------
47153    -- 4262811 Multiperiod Accounting
47154    -----------------------------------------------------------------------------------------
47155      -- No MPA option is assigned.
47156 
47157 
47158 END IF;
47159 END IF;
47160 --
47161 
47162 --
47163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47164    trace
47165       (p_msg      => 'END of AcctLineType_100'
47166       ,p_level    => C_LEVEL_PROCEDURE
47167       ,p_module   => l_log_module);
47168 END IF;
47169 --
47170 EXCEPTION
47171   WHEN xla_exceptions_pkg.application_exception THEN
47172       RAISE;
47173   WHEN OTHERS THEN
47174        xla_exceptions_pkg.raise_message
47175            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_100');
47176 END AcctLineType_100;
47177 --
47178 
47179 ---------------------------------------
47180 --
47181 -- PRIVATE FUNCTION
47182 --         AcctLineType_101
47183 --
47184 ---------------------------------------
47185 PROCEDURE AcctLineType_101 (
47186   p_application_id        IN NUMBER
47187  ,p_event_id              IN NUMBER
47188  ,p_calculate_acctd_flag  IN VARCHAR2
47189  ,p_calculate_g_l_flag    IN VARCHAR2
47190  ,p_actual_flag           IN OUT VARCHAR2
47191  ,p_balance_type_code     OUT VARCHAR2
47192  ,p_gain_or_loss_ref      OUT VARCHAR2
47193  
47194 --Recoverable Tax Account
47195  , p_source_51            IN NUMBER
47196 --Accounting Reversal Indicator
47197  , p_source_52            IN VARCHAR2
47198 --Distribution Link Type
47199  , p_source_54            IN VARCHAR2
47200 --Invoice Identifier
47201  , p_source_57            IN NUMBER
47202 --Payables Encumbrance Upgrade Credit Account
47203  , p_source_64            IN NUMBER
47204 --Payables Encumbrance Upgrade Credit Amount
47205  , p_source_65            IN NUMBER
47206 --Invoice Currency Code
47207  , p_source_66            IN VARCHAR2
47208 --Payables Encumbrance Upgrade Credit Base Amount
47209  , p_source_67            IN NUMBER
47210 --Payables Encumbrance Upgrade Debit Account
47211  , p_source_68            IN NUMBER
47212 --Payables Encumbrance Upgrade Debit Amount
47213  , p_source_69            IN NUMBER
47217  , p_source_71            IN VARCHAR2
47214 --Payables Encumbrance Upgrade Debit Base Amount
47215  , p_source_70            IN NUMBER
47216 --Payables Encumbrance Upgrade Option
47218 --Deferred Accounting End Date
47219  , p_source_76            IN DATE
47220 --Deferred Accounting Option
47221  , p_source_77            IN VARCHAR2
47222 --Deferred Accounting Start Date
47223  , p_source_78            IN DATE
47224 --Override Accounted Amount Indicator
47225  , p_source_79            IN VARCHAR2
47226  , p_source_79_meaning    IN VARCHAR2
47227 --Invoice Supplier Identifier
47228  , p_source_80            IN NUMBER
47229 --Invoice Supplier Site Identifier
47230  , p_source_81            IN NUMBER
47231 --Third Party Type
47232  , p_source_82            IN VARCHAR2
47233 --Invoice Distribution Tax Line Identifier
47234  , p_source_85            IN NUMBER
47235 --Invoice Distribution Tax Distribution Identifier from Tax
47236  , p_source_86            IN NUMBER
47237 --Invoice Distribution Summary Tax Line Identifier
47238  , p_source_87            IN NUMBER
47239 --Payables Upgrade Credit Encumbrance Type Identifier
47240  , p_source_88            IN NUMBER
47241 --Payables Upgrade Debit Encumbrance Type Identifier
47242  , p_source_89            IN NUMBER
47243 --Business Flow Accounts Payable Application Identifier
47244  , p_source_90            IN NUMBER
47245 --Deferred Recoverable Tax Option
47246  , p_source_125            IN VARCHAR2
47247  , p_source_125_meaning    IN VARCHAR2
47248 --Prepayment Application Distribution Identifier
47249  , p_source_127            IN NUMBER
47250 --Upgrade Encumbrance Credit Account Class
47251  , p_source_130            IN VARCHAR2
47252 --Upgrade Encumbrance Debit Account Class
47253  , p_source_131            IN VARCHAR2
47254 --Prepayment Distribution Amount
47255  , p_source_132            IN NUMBER
47256 --Prepayment Distribution (Invoice Rate) Ledger Amount
47257  , p_source_133            IN NUMBER
47258 --Identifier of the Prepayment Application Reversed
47259  , p_source_134            IN NUMBER
47260 --Invoice Exchange Date
47261  , p_source_136            IN DATE
47262 --Invoice Exchange Rate
47263  , p_source_137            IN NUMBER
47264 --Invoice Exchange Rate Type
47265  , p_source_138            IN VARCHAR2
47266 --Business Flow Prepayment Invoice Distribution Type
47267  , p_source_139            IN VARCHAR2
47268 --Business Flow Prepayment Invoice Entity Code
47269  , p_source_140            IN VARCHAR2
47270 --Business Flow Prepayment Invoice Distribution Identifier
47271  , p_source_141            IN NUMBER
47272 --Business Flow Prepayment Invoice Identifier
47273  , p_source_142            IN NUMBER
47274 )
47275 IS
47276 
47277 l_component_type              VARCHAR2(80);
47278 l_component_code              VARCHAR2(30);
47279 l_component_type_code         VARCHAR2(1);
47280 l_component_appl_id           INTEGER;
47281 l_amb_context_code            VARCHAR2(30);
47282 l_entity_code                 VARCHAR2(30);
47283 l_event_class_code            VARCHAR2(30);
47284 l_ae_header_id                NUMBER;
47285 l_event_type_code             VARCHAR2(30);
47286 l_line_definition_code        VARCHAR2(30);
47287 l_line_definition_owner_code  VARCHAR2(1);
47288 --
47289 -- adr variables
47290 l_segment                     VARCHAR2(30);
47291 l_ccid                        NUMBER;
47292 l_adr_transaction_coa_id      NUMBER;
47293 l_adr_accounting_coa_id       NUMBER;
47294 l_adr_flexfield_segment_code  VARCHAR2(30);
47295 l_adr_flex_value_set_id       NUMBER;
47296 l_adr_value_type_code         VARCHAR2(30);
47297 l_adr_value_combination_id    NUMBER;
47298 l_adr_value_segment_code      VARCHAR2(30);
47299 
47300 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47301 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47302 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47303 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47304 
47305 -- 4262811 Variables ------------------------------------------------------------------------------------------
47306 l_entered_amt_idx             NUMBER;
47307 l_accted_amt_idx              NUMBER;
47308 l_acc_rev_flag                VARCHAR2(1);
47309 l_accrual_line_num            NUMBER;
47310 l_tmp_amt                     NUMBER;
47311 l_acc_rev_natural_side_code   VARCHAR2(1);
47312 
47313 l_num_entries                 NUMBER;
47314 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47315 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47316 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47317 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47318 l_recog_line_1                NUMBER;
47319 l_recog_line_2                NUMBER;
47320 
47321 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47322 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47323 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47324 
47325 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47326 
47327 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47328 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47329 
47330 ---------------------------------------------------------------------------------------------------------------
47331 
47332 
47333 --
47334 -- bulk performance
47335 --
47339 
47336 l_balance_type_code           VARCHAR2(1);
47337 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47338 l_log_module                  VARCHAR2(240);
47340 --
47341 -- Upgrade strategy
47342 --
47343 l_actual_upg_option           VARCHAR2(1);
47344 l_enc_upg_option           VARCHAR2(1);
47345 
47346 --
47347 BEGIN
47348 --
47349 IF g_log_enabled THEN
47350       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
47351 END IF;
47352 --
47353 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47354 
47355       trace
47356          (p_msg      => 'BEGIN of AcctLineType_101'
47357          ,p_level    => C_LEVEL_PROCEDURE
47358          ,p_module   => l_log_module);
47359 
47360 END IF;
47361 --
47362 l_component_type             := 'AMB_JLT';
47363 l_component_code             := 'AP_DEF_RTAX_PREPAY';
47364 l_component_type_code        := 'S';
47365 l_component_appl_id          :=  200;
47366 l_amb_context_code           := 'DEFAULT';
47367 l_entity_code                := 'AP_INVOICES';
47368 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
47369 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
47370 l_line_definition_owner_code := 'S';
47371 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
47372 --
47373 l_balance_type_code          := 'A';
47374 l_segment                     := NULL;
47375 l_ccid                        := NULL;
47376 l_adr_transaction_coa_id      := NULL;
47377 l_adr_accounting_coa_id       := NULL;
47378 l_adr_flexfield_segment_code  := NULL;
47379 l_adr_flex_value_set_id       := NULL;
47380 l_adr_value_type_code         := NULL;
47381 l_adr_value_combination_id    := NULL;
47382 l_adr_value_segment_code      := NULL;
47383 
47384 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47385 l_bflow_class_code           := '';    -- 4219869 Business Flow
47386 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47387 l_budgetary_control_flag     := 'N';
47388 
47389 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47390 l_bflow_applied_to_amt       := NULL; -- 5132302
47391 l_entered_amt_idx            := NULL;          -- 4262811
47392 l_accted_amt_idx             := NULL;          -- 4262811
47393 l_acc_rev_flag               := NULL;          -- 4262811
47394 l_accrual_line_num           := NULL;          -- 4262811
47395 l_tmp_amt                    := NULL;          -- 4262811
47396 --
47397  
47398 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47399     l_balance_type_code <> 'B' THEN
47400 IF NVL(p_source_125,'
47401 ') =  'DEFERRED'
47402  THEN 
47403 
47404    --
47405    XLA_AE_LINES_PKG.SetNewLine;
47406 
47407    p_balance_type_code          := l_balance_type_code;
47408    -- set the flag so later we will know whether the gain loss line needs to be created
47409    
47410    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47411      p_actual_flag :='A';
47412    END IF;
47413 
47414    --
47415    -- bulk performance
47416    --
47417    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47418                                       p_header_num   => 0); -- 4262811
47419    --
47420    -- set accounting line options
47421    --
47422    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47423            p_natural_side_code          => 'C'
47424          , p_gain_or_loss_flag          => 'N'
47425          , p_gl_transfer_mode_code      => 'S'
47426          , p_acct_entry_type_code       => 'A'
47427          , p_switch_side_flag           => 'Y'
47428          , p_merge_duplicate_code       => 'A'
47429          );
47430    --
47431    l_acc_rev_natural_side_code := 'D';  -- 4262811
47432    -- 
47433    --
47434    -- set accounting line type info
47435    --
47436    xla_ae_lines_pkg.SetAcctLineType
47437       (p_component_type             => l_component_type
47438       ,p_event_type_code            => l_event_type_code
47439       ,p_line_definition_owner_code => l_line_definition_owner_code
47440       ,p_line_definition_code       => l_line_definition_code
47441       ,p_accounting_line_code       => l_component_code
47442       ,p_accounting_line_type_code  => l_component_type_code
47443       ,p_accounting_line_appl_id    => l_component_appl_id
47444       ,p_amb_context_code           => l_amb_context_code
47445       ,p_entity_code                => l_entity_code
47446       ,p_event_class_code           => l_event_class_code);
47447    --
47448    -- set accounting class
47449    --
47450    xla_ae_lines_pkg.SetAcctClass(
47451            p_accounting_class_code  => 'DEF_REC_TAX'
47452          , p_ae_header_id           => l_ae_header_id
47453          );
47454 
47455    --
47456    -- set rounding class
47457    --
47458    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47459                       'DEF_REC_TAX';
47460 
47461    --
47462    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47463    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47464    --
47465    -- bulk performance
47466    --
47467    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47468 
47472    -- 4955764
47469    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47470       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47471 
47473    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47474       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47475 
47476    -- 4458381 Public Sector Enh
47477    
47478    --
47479    -- set accounting attributes for the line type
47480    --
47481    l_entered_amt_idx := 25;
47482    l_accted_amt_idx  := 30;
47483    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47484    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47485    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
47486    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47487    l_rec_acct_attrs.array_num_value(2)  := 
47488 xla_ae_sources_pkg.GetSystemSourceNum(
47489    p_source_code           => 'XLA_EVENT_APPL_ID'
47490  , p_source_type_code      => 'Y'
47491  , p_source_application_id =>  602
47492 );
47493    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47494    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
47495    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47496    l_rec_acct_attrs.array_char_value(4)  := 
47497 xla_ae_sources_pkg.GetSystemSourceChar(
47498    p_source_code           => 'XLA_ENTITY_CODE'
47499  , p_source_type_code      => 'Y'
47500  , p_source_application_id =>  602
47501 );
47502    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47503    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
47504    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47505    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
47506    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
47507    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
47508    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47509    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
47510    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
47511    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
47512    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
47513    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
47514    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47515    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
47516    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
47517    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
47518    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
47519    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
47520    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
47521    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
47522    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
47523    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
47524    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
47525    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
47526    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
47527    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
47528    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
47529    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
47530    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
47531    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
47532    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
47533    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
47534    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
47535    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
47536    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
47537    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
47538    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
47539    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
47540    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
47541    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
47542    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
47543    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
47544    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
47545    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
47546    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
47547    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
47548    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
47549    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
47550    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
47551    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
47552    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
47553    l_rec_acct_attrs.array_num_value(30)  := p_source_133;
47554    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
47555    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
47556    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
47557    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
47558    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
47559    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
47560    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
47561    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
47562    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
47566    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
47563    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
47564    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
47565    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
47567    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
47568    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
47569    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
47570    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
47571    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
47572    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
47573    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
47574    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
47575    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
47576    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
47577    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
47578    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
47579    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
47580    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
47581    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
47582 
47583    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47584    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47585 
47586    ---------------------------------------------------------------------------------------------------------------
47587    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47588    ---------------------------------------------------------------------------------------------------------------
47589    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47590 
47591    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47592    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47593 
47594    IF xla_accounting_cache_pkg.GetValueChar
47595          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47596          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47597    AND l_bflow_method_code = 'PRIOR_ENTRY'
47598 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47599    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47600          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47601        )
47602    THEN
47603          xla_ae_lines_pkg.BflowUpgEntry
47604            (p_business_method_code    => l_bflow_method_code
47605            ,p_business_class_code     => l_bflow_class_code
47606            ,p_balance_type            => l_balance_type_code);
47607    ELSE
47608       NULL;
47609 -- No business flow processing for business flow method of NONE.
47610    END IF;
47611 
47612    --
47613    -- call analytical criteria
47614    --
47615    
47616    --
47617    -- call description
47618    --
47619    -- No description or it is inherited.
47620    --
47621    -- call ADRs
47622    -- Bug 4922099
47623    --
47624    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47625         (NVL(l_actual_upg_option, 'N') = 'O') OR
47626         (NVL(l_enc_upg_option, 'N') = 'O')
47627       )
47628    THEN
47629    NULL;
47630    --
47631    --
47632    
47633   l_ccid := AcctDerRule_43(
47634            p_application_id           => p_application_id
47635          , p_ae_header_id             => l_ae_header_id 
47636 , p_source_51 => p_source_51
47637          , x_transaction_coa_id       => l_adr_transaction_coa_id
47638          , x_accounting_coa_id        => l_adr_accounting_coa_id
47639          , x_value_type_code          => l_adr_value_type_code
47640          , p_side                     => 'NA'
47641    );
47642 
47643    xla_ae_lines_pkg.set_ccid(
47644     p_code_combination_id          => l_ccid
47645   , p_value_type_code              => l_adr_value_type_code
47646   , p_transaction_coa_id           => l_adr_transaction_coa_id
47647   , p_accounting_coa_id            => l_adr_accounting_coa_id
47648   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47649   , p_adr_type_code                => 'S'
47650   , p_component_type               => l_component_type
47651   , p_component_code               => l_component_code
47652   , p_component_type_code          => l_component_type_code
47653   , p_component_appl_id            => l_component_appl_id
47654   , p_amb_context_code             => l_amb_context_code
47655   , p_side                         => 'NA'
47656   );
47657 
47658 
47659    --
47660    --
47661    END IF;
47662    --
47663    -- Bug 4922099
47664    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47665           (NVL(l_enc_upg_option, 'N') = 'O')
47666         ) AND
47667         (l_bflow_method_code = 'PRIOR_ENTRY')
47668       )
47669    THEN
47670       IF
47671       --
47672       1 = 2
47673       --
47674       THEN
47675       xla_accounting_err_pkg.build_message
47676                                     (p_appli_s_name            => 'XLA'
47677                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47681                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47678                                     ,p_token_1                 => 'LINE_NUMBER'
47679                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47680                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47682                                                                              l_component_type
47683                                                                             ,l_component_code
47684                                                                             ,l_component_type_code
47685                                                                             ,l_component_appl_id
47686                                                                             ,l_amb_context_code
47687                                                                             ,l_entity_code
47688                                                                             ,l_event_class_code
47689                                                                            )
47690                                     ,p_token_3                 => 'OWNER'
47691                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47692                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47693                                                                           ,p_lookup_code    => l_component_type_code
47694                                                                          )
47695                                     ,p_token_4                 => 'PRODUCT_NAME'
47696                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47697                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47698                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47699                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47700                                     ,p_ae_header_id            =>  NULL
47701                                        );
47702 
47703         IF (C_LEVEL_ERROR>= g_log_level) THEN
47704                  trace
47705                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47706                       ,p_level    => C_LEVEL_ERROR
47707                       ,p_module   => l_log_module);
47708         END IF;
47709       END IF;
47710    END IF;
47711    --
47712    --
47713    ------------------------------------------------------------------------------------------------
47714    -- 4219869 Business Flow
47715    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47716    -- Prior Entry.  Currently, the following code is always generated.
47717    ------------------------------------------------------------------------------------------------
47718    XLA_AE_LINES_PKG.ValidateCurrentLine;
47719 
47720    ------------------------------------------------------------------------------------
47721    -- 4219869 Business Flow
47722    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47723    ------------------------------------------------------------------------------------
47724    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47725 
47726    ----------------------------------------------------------------------------------
47727    -- 4219869 Business Flow
47728    -- Update journal entry status -- Need to generate this within IF <condition>
47729    ----------------------------------------------------------------------------------
47730    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47731          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47732          ,p_balance_type_code => l_balance_type_code
47733          );
47734 
47735    -------------------------------------------------------------------------------------------
47736    -- 4262811 - Generate the Accrual Reversal lines
47737    -------------------------------------------------------------------------------------------
47738    BEGIN
47739       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47740                               (g_array_event(p_event_id).array_value_num('header_index'));
47741       IF l_acc_rev_flag IS NULL THEN
47742          l_acc_rev_flag := 'N';
47743       END IF;
47744    EXCEPTION
47745       WHEN OTHERS THEN
47746          l_acc_rev_flag := 'N';
47747    END;
47748    --
47749    IF (l_acc_rev_flag = 'Y') THEN
47750 
47751        -- 4645092  ------------------------------------------------------------------------------
47752        -- To allow MPA report to determine if it should generate report process
47753        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47754        ------------------------------------------------------------------------------------------
47755 
47756        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47757        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47758    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47759    -- call ADRs
47760    -- Bug 4922099
47761    --
47762    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47763         (NVL(l_actual_upg_option, 'N') = 'O') OR
47764         (NVL(l_enc_upg_option, 'N') = 'O')
47765       )
47766    THEN
47767    NULL;
47768    --
47769    --
47770    
47771   l_ccid := AcctDerRule_43(
47775          , x_transaction_coa_id       => l_adr_transaction_coa_id
47772            p_application_id           => p_application_id
47773          , p_ae_header_id             => l_ae_header_id 
47774 , p_source_51 => p_source_51
47776          , x_accounting_coa_id        => l_adr_accounting_coa_id
47777          , x_value_type_code          => l_adr_value_type_code
47778          , p_side                     => 'NA'
47779    );
47780 
47781    xla_ae_lines_pkg.set_ccid(
47782     p_code_combination_id          => l_ccid
47783   , p_value_type_code              => l_adr_value_type_code
47784   , p_transaction_coa_id           => l_adr_transaction_coa_id
47785   , p_accounting_coa_id            => l_adr_accounting_coa_id
47786   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47787   , p_adr_type_code                => 'S'
47788   , p_component_type               => l_component_type
47789   , p_component_code               => l_component_code
47790   , p_component_type_code          => l_component_type_code
47791   , p_component_appl_id            => l_component_appl_id
47792   , p_amb_context_code             => l_amb_context_code
47793   , p_side                         => 'NA'
47794   );
47795 
47796 
47797    --
47798    --
47799    END IF;
47800 
47801        --
47802        -- Update the line information that should be overwritten
47803        --
47804        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47805                                          p_header_num   => 1);
47806        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47807 
47808        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47809 
47810        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47811           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47812        END IF;
47813 
47814       --
47815       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47816       --
47817       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47818           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47819       ELSE
47820           ---------------------------------------------------------------------------------------------------
47821           -- 4262811a Switch Sign
47822           ---------------------------------------------------------------------------------------------------
47823           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47824           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47825                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47826           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47827                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47828           -- 5132302
47829           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47830                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47831 
47832       END IF;
47833 
47834       -- 4955764
47835       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47836       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47837 
47838 
47839       XLA_AE_LINES_PKG.ValidateCurrentLine;
47840       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47841 
47842       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47843                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47844                ,p_balance_type_code => l_balance_type_code);
47845 
47846    END IF;
47847 
47848    -----------------------------------------------------------------------------------------
47849    -- 4262811 Multiperiod Accounting
47850    -----------------------------------------------------------------------------------------
47851      -- No MPA option is assigned.
47852 
47853 
47854 END IF;
47855 END IF;
47856 --
47857 
47858 --
47859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47860    trace
47861       (p_msg      => 'END of AcctLineType_101'
47862       ,p_level    => C_LEVEL_PROCEDURE
47863       ,p_module   => l_log_module);
47864 END IF;
47865 --
47866 EXCEPTION
47867   WHEN xla_exceptions_pkg.application_exception THEN
47868       RAISE;
47869   WHEN OTHERS THEN
47870        xla_exceptions_pkg.raise_message
47871            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_101');
47872 END AcctLineType_101;
47873 --
47874 
47875 ---------------------------------------
47876 --
47877 -- PRIVATE FUNCTION
47878 --         AcctLineType_102
47879 --
47880 ---------------------------------------
47881 PROCEDURE AcctLineType_102 (
47882   p_application_id        IN NUMBER
47883  ,p_event_id              IN NUMBER
47884  ,p_calculate_acctd_flag  IN VARCHAR2
47885  ,p_calculate_g_l_flag    IN VARCHAR2
47886  ,p_actual_flag           IN OUT VARCHAR2
47887  ,p_balance_type_code     OUT VARCHAR2
47888  ,p_gain_or_loss_ref      OUT VARCHAR2
47889  
47890 --Automatic Offsets Value
47894  , p_source_18            IN NUMBER
47891  , p_source_15            IN VARCHAR2
47892  , p_source_15_meaning    IN VARCHAR2
47893 --System Discount Account
47895 --Discount Distribution Method
47896  , p_source_19            IN VARCHAR2
47897  , p_source_19_meaning    IN VARCHAR2
47898 --Invoice Distribution Account
47899  , p_source_30            IN NUMBER
47900 --Invoice Distribution Type
47901  , p_source_33            IN VARCHAR2
47902  , p_source_33_meaning    IN VARCHAR2
47903 --Discount Account
47904  , p_source_44            IN NUMBER
47905 --Purchase Order Charge Account
47906  , p_source_45            IN NUMBER
47907 --Purchase Order Variance Account
47908  , p_source_46            IN NUMBER
47909 --Accounting Reversal Indicator
47910  , p_source_52            IN VARCHAR2
47911 --Distribution Link Type
47912  , p_source_54            IN VARCHAR2
47913 --Invoice Currency Code
47914  , p_source_66            IN VARCHAR2
47915 --Override Accounted Amount Indicator
47916  , p_source_79            IN VARCHAR2
47917  , p_source_79_meaning    IN VARCHAR2
47918 --Third Party Type
47919  , p_source_82            IN VARCHAR2
47920 --Invoice Distribution Tax Line Identifier
47921  , p_source_85            IN NUMBER
47922 --Invoice Distribution Summary Tax Line Identifier
47923  , p_source_87            IN NUMBER
47924 --Business Flow Accounts Payable Application Identifier
47925  , p_source_90            IN NUMBER
47926 --When to Account for Payment Option
47927  , p_source_96            IN VARCHAR2
47928 --Payment Distribution Type
47929  , p_source_97            IN VARCHAR2
47930  , p_source_97_meaning    IN VARCHAR2
47931 --Payment Distribution Amount
47932  , p_source_98            IN NUMBER
47933 --Business Flow Payment Distribution Type
47934  , p_source_99            IN VARCHAR2
47935 --Business Flow Payment Entity Code
47936  , p_source_100            IN VARCHAR2
47937 --Business Flow Payment Distribution Identifier
47938  , p_source_101            IN NUMBER
47939 --Business Flow Payment Identifier
47940  , p_source_102            IN NUMBER
47941 --Payment Distribution Identifier
47942  , p_source_103            IN NUMBER
47943 --Payment Distribution (Cleared Rate) Ledger Amount
47944  , p_source_108            IN NUMBER
47945 --Payment Supplier Identifier
47946  , p_source_109            IN NUMBER
47947 --Payment Supplier Site Identifier
47948  , p_source_110            IN NUMBER
47949 --Payment Distribution Reversed Identifier
47950  , p_source_111            IN NUMBER
47951 --Payment Identifier
47952  , p_source_112            IN NUMBER
47953 --Invoice Exchange Date
47954  , p_source_136            IN DATE
47955 --Invoice Exchange Rate
47956  , p_source_137            IN NUMBER
47957 --Invoice Exchange Rate Type
47958  , p_source_138            IN VARCHAR2
47959 )
47960 IS
47961 
47962 l_component_type              VARCHAR2(80);
47963 l_component_code              VARCHAR2(30);
47964 l_component_type_code         VARCHAR2(1);
47965 l_component_appl_id           INTEGER;
47966 l_amb_context_code            VARCHAR2(30);
47967 l_entity_code                 VARCHAR2(30);
47968 l_event_class_code            VARCHAR2(30);
47969 l_ae_header_id                NUMBER;
47970 l_event_type_code             VARCHAR2(30);
47971 l_line_definition_code        VARCHAR2(30);
47972 l_line_definition_owner_code  VARCHAR2(1);
47973 --
47974 -- adr variables
47975 l_segment                     VARCHAR2(30);
47976 l_ccid                        NUMBER;
47977 l_adr_transaction_coa_id      NUMBER;
47978 l_adr_accounting_coa_id       NUMBER;
47979 l_adr_flexfield_segment_code  VARCHAR2(30);
47980 l_adr_flex_value_set_id       NUMBER;
47981 l_adr_value_type_code         VARCHAR2(30);
47982 l_adr_value_combination_id    NUMBER;
47983 l_adr_value_segment_code      VARCHAR2(30);
47984 
47985 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47986 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47987 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47988 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47989 
47990 -- 4262811 Variables ------------------------------------------------------------------------------------------
47991 l_entered_amt_idx             NUMBER;
47992 l_accted_amt_idx              NUMBER;
47993 l_acc_rev_flag                VARCHAR2(1);
47994 l_accrual_line_num            NUMBER;
47995 l_tmp_amt                     NUMBER;
47996 l_acc_rev_natural_side_code   VARCHAR2(1);
47997 
47998 l_num_entries                 NUMBER;
47999 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48000 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48001 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48002 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48003 l_recog_line_1                NUMBER;
48004 l_recog_line_2                NUMBER;
48005 
48006 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48007 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48008 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48009 
48010 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48011 
48012 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48013 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48014 
48018 --
48015 ---------------------------------------------------------------------------------------------------------------
48016 
48017 
48019 -- bulk performance
48020 --
48021 l_balance_type_code           VARCHAR2(1);
48022 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48023 l_log_module                  VARCHAR2(240);
48024 
48025 --
48026 -- Upgrade strategy
48027 --
48028 l_actual_upg_option           VARCHAR2(1);
48029 l_enc_upg_option           VARCHAR2(1);
48030 
48031 --
48032 BEGIN
48033 --
48034 IF g_log_enabled THEN
48035       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
48036 END IF;
48037 --
48038 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48039 
48040       trace
48041          (p_msg      => 'BEGIN of AcctLineType_102'
48042          ,p_level    => C_LEVEL_PROCEDURE
48043          ,p_module   => l_log_module);
48044 
48045 END IF;
48046 --
48047 l_component_type             := 'AMB_JLT';
48048 l_component_code             := 'AP_DISCOUNT_ACCR_CLEAR';
48049 l_component_type_code        := 'S';
48050 l_component_appl_id          :=  200;
48051 l_amb_context_code           := 'DEFAULT';
48052 l_entity_code                := 'AP_PAYMENTS';
48053 l_event_class_code           := 'RECONCILED PAYMENTS';
48054 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
48055 l_line_definition_owner_code := 'S';
48056 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
48057 --
48058 l_balance_type_code          := 'A';
48059 l_segment                     := NULL;
48060 l_ccid                        := NULL;
48061 l_adr_transaction_coa_id      := NULL;
48062 l_adr_accounting_coa_id       := NULL;
48063 l_adr_flexfield_segment_code  := NULL;
48064 l_adr_flex_value_set_id       := NULL;
48065 l_adr_value_type_code         := NULL;
48066 l_adr_value_combination_id    := NULL;
48067 l_adr_value_segment_code      := NULL;
48068 
48069 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48070 l_bflow_class_code           := '';    -- 4219869 Business Flow
48071 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48072 l_budgetary_control_flag     := 'N';
48073 
48074 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48075 l_bflow_applied_to_amt       := NULL; -- 5132302
48076 l_entered_amt_idx            := NULL;          -- 4262811
48077 l_accted_amt_idx             := NULL;          -- 4262811
48078 l_acc_rev_flag               := NULL;          -- 4262811
48079 l_accrual_line_num           := NULL;          -- 4262811
48080 l_tmp_amt                    := NULL;          -- 4262811
48081 --
48082  
48083 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48084     l_balance_type_code <> 'B' THEN
48085 IF NVL(p_source_96,'
48086 ') =  'CLEAR_CLEAR' AND 
48087 NVL(p_source_97,'
48088 ') =  'DISCOUNT' AND 
48089 (NVL(p_source_33,'
48090 ') =  'ITEM' OR 
48091 NVL(p_source_33,'
48092 ') =  'MISCELLANEOUS' OR 
48093 NVL(p_source_33,'
48094 ') =  'FREIGHT' OR 
48095 NVL(p_source_33,'
48096 ') =  'REC_TAX' OR 
48097 NVL(p_source_33,'
48098 ') =  'NONREC_TAX' OR 
48099 NVL(p_source_33,'
48100 ') =  'TIPV' OR 
48101 NVL(p_source_33,'
48102 ') =  'TRV' OR 
48103 NVL(p_source_33,'
48104 ') =  'IPV' OR 
48105 NVL(p_source_33,'
48106 ') =  'ACCRUAL')
48107  THEN 
48108 
48109    --
48110    XLA_AE_LINES_PKG.SetNewLine;
48111 
48112    p_balance_type_code          := l_balance_type_code;
48113    -- set the flag so later we will know whether the gain loss line needs to be created
48114    
48115    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48116      p_actual_flag :='A';
48117    END IF;
48118 
48119    --
48120    -- bulk performance
48121    --
48122    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48123                                       p_header_num   => 0); -- 4262811
48124    --
48125    -- set accounting line options
48126    --
48127    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48128            p_natural_side_code          => 'C'
48129          , p_gain_or_loss_flag          => 'N'
48130          , p_gl_transfer_mode_code      => 'S'
48131          , p_acct_entry_type_code       => 'A'
48132          , p_switch_side_flag           => 'Y'
48133          , p_merge_duplicate_code       => 'A'
48134          );
48135    --
48136    l_acc_rev_natural_side_code := 'D';  -- 4262811
48137    -- 
48138    --
48139    -- set accounting line type info
48140    --
48141    xla_ae_lines_pkg.SetAcctLineType
48142       (p_component_type             => l_component_type
48143       ,p_event_type_code            => l_event_type_code
48144       ,p_line_definition_owner_code => l_line_definition_owner_code
48145       ,p_line_definition_code       => l_line_definition_code
48146       ,p_accounting_line_code       => l_component_code
48147       ,p_accounting_line_type_code  => l_component_type_code
48148       ,p_accounting_line_appl_id    => l_component_appl_id
48149       ,p_amb_context_code           => l_amb_context_code
48150       ,p_entity_code                => l_entity_code
48151       ,p_event_class_code           => l_event_class_code);
48152    --
48153    -- set accounting class
48154    --
48155    xla_ae_lines_pkg.SetAcctClass(
48156            p_accounting_class_code  => 'DISCOUNT'
48157          , p_ae_header_id           => l_ae_header_id
48158          );
48159 
48160    --
48164                       'DISCOUNT';
48161    -- set rounding class
48162    --
48163    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48165 
48166    --
48167    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48168    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48169    --
48170    -- bulk performance
48171    --
48172    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48173 
48174    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48175       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48176 
48177    -- 4955764
48178    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48179       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48180 
48181    -- 4458381 Public Sector Enh
48182    
48183    --
48184    -- set accounting attributes for the line type
48185    --
48186    l_entered_amt_idx := 10;
48187    l_accted_amt_idx  := 15;
48188    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
48189    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48190    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
48191    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
48192    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
48193    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
48194    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
48195    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48196    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
48197    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
48198    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
48199    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
48200    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
48201    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48202    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
48203    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
48204    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
48205    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
48206    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
48207    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
48208    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
48209    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
48210    l_rec_acct_attrs.array_char_value(11)  := p_source_66;
48211    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
48212    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
48213    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
48214    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
48215    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
48216    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
48217    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
48218    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
48219    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
48220    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
48221    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
48222    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
48223    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
48224    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
48225    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
48226    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
48227    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
48228    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
48229    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
48230    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
48231    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
48232    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
48233    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
48234    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
48235    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
48236    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
48237 
48238    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48239    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48240 
48241    ---------------------------------------------------------------------------------------------------------------
48242    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48243    ---------------------------------------------------------------------------------------------------------------
48244    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48245 
48246    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48247    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48248 
48249    IF xla_accounting_cache_pkg.GetValueChar
48250          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48251          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48255          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48252    AND l_bflow_method_code = 'PRIOR_ENTRY'
48253 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48254    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48256        )
48257    THEN
48258          xla_ae_lines_pkg.BflowUpgEntry
48259            (p_business_method_code    => l_bflow_method_code
48260            ,p_business_class_code     => l_bflow_class_code
48261            ,p_balance_type            => l_balance_type_code);
48262    ELSE
48263       NULL;
48264 -- No business flow processing for business flow method of NONE.
48265    END IF;
48266 
48267    --
48268    -- call analytical criteria
48269    --
48270    
48271 
48272 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
48273 xla_ae_lines_pkg.SetAnalyticalCriteria(
48274    p_analytical_criterion_name    => 'Check Id'
48275  , p_analytical_criterion_owner   => 'S'
48276  , p_analytical_criterion_code    => 'CHECK_ID'
48277  , p_amb_context_code             => 'DEFAULT'
48278  , p_balancing_flag               => 'N'
48279  
48280  , p_analytical_detail_char_1    =>  NULL
48281  , p_analytical_detail_num_1     =>  p_source_112
48282  , p_analytical_detail_date_1    =>  NULL
48283 
48284  , p_ae_header_id                 => l_ae_header_id
48285 )
48286 ;
48287 --
48288 
48289    --
48290    -- call description
48291    --
48292    -- No description or it is inherited.
48293    --
48294    -- call ADRs
48295    -- Bug 4922099
48296    --
48297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48298         (NVL(l_actual_upg_option, 'N') = 'O') OR
48299         (NVL(l_enc_upg_option, 'N') = 'O')
48300       )
48301    THEN
48302    NULL;
48303    --
48304    --
48305    
48306   l_ccid := AcctDerRule_29(
48307            p_application_id           => p_application_id
48308          , p_ae_header_id             => l_ae_header_id 
48309 , p_source_15 => p_source_15
48310 , p_source_15_meaning => p_source_15_meaning
48311 , p_source_18 => p_source_18
48312 , p_source_19 => p_source_19
48313 , p_source_19_meaning => p_source_19_meaning
48314 , p_source_30 => p_source_30
48315 , p_source_33 => p_source_33
48316 , p_source_33_meaning => p_source_33_meaning
48317 , p_source_44 => p_source_44
48318 , p_source_45 => p_source_45
48319 , p_source_46 => p_source_46
48320          , x_transaction_coa_id       => l_adr_transaction_coa_id
48321          , x_accounting_coa_id        => l_adr_accounting_coa_id
48322          , x_value_type_code          => l_adr_value_type_code
48323          , p_side                     => 'NA'
48324    );
48325 
48326    xla_ae_lines_pkg.set_ccid(
48327     p_code_combination_id          => l_ccid
48328   , p_value_type_code              => l_adr_value_type_code
48329   , p_transaction_coa_id           => l_adr_transaction_coa_id
48330   , p_accounting_coa_id            => l_adr_accounting_coa_id
48331   , p_adr_code                     => 'AP_DISCOUNT'
48332   , p_adr_type_code                => 'S'
48333   , p_component_type               => l_component_type
48334   , p_component_code               => l_component_code
48335   , p_component_type_code          => l_component_type_code
48336   , p_component_appl_id            => l_component_appl_id
48337   , p_amb_context_code             => l_amb_context_code
48338   , p_side                         => 'NA'
48339   );
48340 
48341 
48342    l_segment := AcctDerRule_21(
48343            p_application_id           => p_application_id
48344          , p_ae_header_id             => l_ae_header_id 
48345 , p_source_15 => p_source_15
48346 , p_source_15_meaning => p_source_15_meaning
48347 , p_source_19 => p_source_19
48348 , p_source_19_meaning => p_source_19_meaning
48349 , p_source_30 => p_source_30
48350          , x_transaction_coa_id       => l_adr_transaction_coa_id
48351          , x_accounting_coa_id        => l_adr_accounting_coa_id
48352          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48353          , x_flex_value_set_id        => l_adr_flex_value_set_id
48354          , x_value_type_code          => l_adr_value_type_code
48355          , x_value_combination_id     => l_adr_value_combination_id
48356          , x_value_segment_code       => l_adr_value_segment_code
48357          , p_side                     => 'NA'
48358          , p_override_seg_flag        => 'Y'
48359    );
48360 
48361    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48362 
48363       xla_ae_lines_pkg.set_segment(
48364           p_to_segment_code         => 'GL_BALANCING'
48365         , p_segment_value           => l_segment
48366         , p_from_segment_code       => l_adr_value_segment_code
48367         , p_from_combination_id     => l_adr_value_combination_id
48368         , p_value_type_code         => l_adr_value_type_code
48369         , p_transaction_coa_id      => l_adr_transaction_coa_id
48370         , p_accounting_coa_id       => l_adr_accounting_coa_id
48371         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48372         , p_flex_value_set_id       => l_adr_flex_value_set_id
48373         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
48374         , p_adr_type_code           => 'S'
48375         , p_component_type          => l_component_type
48376         , p_component_code          => l_component_code
48380         , p_entity_code             => 'AP_PAYMENTS'
48377         , p_component_type_code     => l_component_type_code
48378         , p_component_appl_id       => l_component_appl_id
48379         , p_amb_context_code        => l_amb_context_code
48381         , p_event_class_code        => 'RECONCILED PAYMENTS'
48382         , p_side                    => 'NA'
48383         );
48384 
48385   END IF;
48386 
48387    l_segment := AcctDerRule_7(
48388            p_application_id           => p_application_id
48389          , p_ae_header_id             => l_ae_header_id 
48390 , p_source_15 => p_source_15
48391 , p_source_15_meaning => p_source_15_meaning
48392 , p_source_18 => p_source_18
48393 , p_source_19 => p_source_19
48394 , p_source_19_meaning => p_source_19_meaning
48395          , x_transaction_coa_id       => l_adr_transaction_coa_id
48396          , x_accounting_coa_id        => l_adr_accounting_coa_id
48397          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48398          , x_flex_value_set_id        => l_adr_flex_value_set_id
48399          , x_value_type_code          => l_adr_value_type_code
48400          , x_value_combination_id     => l_adr_value_combination_id
48401          , x_value_segment_code       => l_adr_value_segment_code
48402          , p_side                     => 'NA'
48403          , p_override_seg_flag        => 'Y'
48404    );
48405 
48406    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48407 
48408       xla_ae_lines_pkg.set_segment(
48409           p_to_segment_code         => 'GL_ACCOUNT'
48410         , p_segment_value           => l_segment
48411         , p_from_segment_code       => l_adr_value_segment_code
48412         , p_from_combination_id     => l_adr_value_combination_id
48413         , p_value_type_code         => l_adr_value_type_code
48414         , p_transaction_coa_id      => l_adr_transaction_coa_id
48415         , p_accounting_coa_id       => l_adr_accounting_coa_id
48416         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48417         , p_flex_value_set_id       => l_adr_flex_value_set_id
48418         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
48419         , p_adr_type_code           => 'S'
48420         , p_component_type          => l_component_type
48421         , p_component_code          => l_component_code
48422         , p_component_type_code     => l_component_type_code
48423         , p_component_appl_id       => l_component_appl_id
48424         , p_amb_context_code        => l_amb_context_code
48425         , p_entity_code             => 'AP_PAYMENTS'
48426         , p_event_class_code        => 'RECONCILED PAYMENTS'
48427         , p_side                    => 'NA'
48428         );
48429 
48430   END IF;
48431 
48432    --
48433    --
48434    END IF;
48435    --
48436    -- Bug 4922099
48437    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48438           (NVL(l_enc_upg_option, 'N') = 'O')
48439         ) AND
48440         (l_bflow_method_code = 'PRIOR_ENTRY')
48441       )
48442    THEN
48443       IF
48444       --
48445       1 = 2
48446       --
48447       THEN
48448       xla_accounting_err_pkg.build_message
48449                                     (p_appli_s_name            => 'XLA'
48450                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48451                                     ,p_token_1                 => 'LINE_NUMBER'
48452                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48453                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48454                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48455                                                                              l_component_type
48456                                                                             ,l_component_code
48457                                                                             ,l_component_type_code
48458                                                                             ,l_component_appl_id
48459                                                                             ,l_amb_context_code
48460                                                                             ,l_entity_code
48461                                                                             ,l_event_class_code
48462                                                                            )
48463                                     ,p_token_3                 => 'OWNER'
48464                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48465                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48466                                                                           ,p_lookup_code    => l_component_type_code
48467                                                                          )
48468                                     ,p_token_4                 => 'PRODUCT_NAME'
48469                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48470                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48471                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48472                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48473                                     ,p_ae_header_id            =>  NULL
48474                                        );
48478                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48475 
48476         IF (C_LEVEL_ERROR>= g_log_level) THEN
48477                  trace
48479                       ,p_level    => C_LEVEL_ERROR
48480                       ,p_module   => l_log_module);
48481         END IF;
48482       END IF;
48483    END IF;
48484    --
48485    --
48486    ------------------------------------------------------------------------------------------------
48487    -- 4219869 Business Flow
48488    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48489    -- Prior Entry.  Currently, the following code is always generated.
48490    ------------------------------------------------------------------------------------------------
48491    XLA_AE_LINES_PKG.ValidateCurrentLine;
48492 
48493    ------------------------------------------------------------------------------------
48494    -- 4219869 Business Flow
48495    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48496    ------------------------------------------------------------------------------------
48497    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48498 
48499    ----------------------------------------------------------------------------------
48500    -- 4219869 Business Flow
48501    -- Update journal entry status -- Need to generate this within IF <condition>
48502    ----------------------------------------------------------------------------------
48503    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48504          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48505          ,p_balance_type_code => l_balance_type_code
48506          );
48507 
48508    -------------------------------------------------------------------------------------------
48509    -- 4262811 - Generate the Accrual Reversal lines
48510    -------------------------------------------------------------------------------------------
48511    BEGIN
48512       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48513                               (g_array_event(p_event_id).array_value_num('header_index'));
48514       IF l_acc_rev_flag IS NULL THEN
48515          l_acc_rev_flag := 'N';
48516       END IF;
48517    EXCEPTION
48518       WHEN OTHERS THEN
48519          l_acc_rev_flag := 'N';
48520    END;
48521    --
48522    IF (l_acc_rev_flag = 'Y') THEN
48523 
48524        -- 4645092  ------------------------------------------------------------------------------
48525        -- To allow MPA report to determine if it should generate report process
48526        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48527        ------------------------------------------------------------------------------------------
48528 
48529        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48530        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48531    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48532    -- call ADRs
48533    -- Bug 4922099
48534    --
48535    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48536         (NVL(l_actual_upg_option, 'N') = 'O') OR
48537         (NVL(l_enc_upg_option, 'N') = 'O')
48538       )
48539    THEN
48540    NULL;
48541    --
48542    --
48543    
48544   l_ccid := AcctDerRule_29(
48545            p_application_id           => p_application_id
48546          , p_ae_header_id             => l_ae_header_id 
48547 , p_source_15 => p_source_15
48548 , p_source_15_meaning => p_source_15_meaning
48549 , p_source_18 => p_source_18
48550 , p_source_19 => p_source_19
48551 , p_source_19_meaning => p_source_19_meaning
48552 , p_source_30 => p_source_30
48553 , p_source_33 => p_source_33
48554 , p_source_33_meaning => p_source_33_meaning
48555 , p_source_44 => p_source_44
48556 , p_source_45 => p_source_45
48557 , p_source_46 => p_source_46
48558          , x_transaction_coa_id       => l_adr_transaction_coa_id
48559          , x_accounting_coa_id        => l_adr_accounting_coa_id
48560          , x_value_type_code          => l_adr_value_type_code
48561          , p_side                     => 'NA'
48562    );
48563 
48564    xla_ae_lines_pkg.set_ccid(
48565     p_code_combination_id          => l_ccid
48566   , p_value_type_code              => l_adr_value_type_code
48567   , p_transaction_coa_id           => l_adr_transaction_coa_id
48568   , p_accounting_coa_id            => l_adr_accounting_coa_id
48569   , p_adr_code                     => 'AP_DISCOUNT'
48570   , p_adr_type_code                => 'S'
48571   , p_component_type               => l_component_type
48572   , p_component_code               => l_component_code
48573   , p_component_type_code          => l_component_type_code
48574   , p_component_appl_id            => l_component_appl_id
48575   , p_amb_context_code             => l_amb_context_code
48576   , p_side                         => 'NA'
48577   );
48578 
48579 
48580    l_segment := AcctDerRule_21(
48581            p_application_id           => p_application_id
48582          , p_ae_header_id             => l_ae_header_id 
48583 , p_source_15 => p_source_15
48584 , p_source_15_meaning => p_source_15_meaning
48585 , p_source_19 => p_source_19
48586 , p_source_19_meaning => p_source_19_meaning
48587 , p_source_30 => p_source_30
48588          , x_transaction_coa_id       => l_adr_transaction_coa_id
48589          , x_accounting_coa_id        => l_adr_accounting_coa_id
48590          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48591          , x_flex_value_set_id        => l_adr_flex_value_set_id
48595          , p_side                     => 'NA'
48592          , x_value_type_code          => l_adr_value_type_code
48593          , x_value_combination_id     => l_adr_value_combination_id
48594          , x_value_segment_code       => l_adr_value_segment_code
48596          , p_override_seg_flag        => 'Y'
48597    );
48598 
48599    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48600 
48601       xla_ae_lines_pkg.set_segment(
48602           p_to_segment_code         => 'GL_BALANCING'
48603         , p_segment_value           => l_segment
48604         , p_from_segment_code       => l_adr_value_segment_code
48605         , p_from_combination_id     => l_adr_value_combination_id
48606         , p_value_type_code         => l_adr_value_type_code
48607         , p_transaction_coa_id      => l_adr_transaction_coa_id
48608         , p_accounting_coa_id       => l_adr_accounting_coa_id
48609         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48610         , p_flex_value_set_id       => l_adr_flex_value_set_id
48611         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
48612         , p_adr_type_code           => 'S'
48613         , p_component_type          => l_component_type
48614         , p_component_code          => l_component_code
48615         , p_component_type_code     => l_component_type_code
48616         , p_component_appl_id       => l_component_appl_id
48617         , p_amb_context_code        => l_amb_context_code
48618         , p_entity_code             => 'AP_PAYMENTS'
48619         , p_event_class_code        => 'RECONCILED PAYMENTS'
48620         , p_side                    => 'NA'
48621         );
48622 
48623   END IF;
48624 
48625    l_segment := AcctDerRule_7(
48626            p_application_id           => p_application_id
48627          , p_ae_header_id             => l_ae_header_id 
48628 , p_source_15 => p_source_15
48629 , p_source_15_meaning => p_source_15_meaning
48630 , p_source_18 => p_source_18
48631 , p_source_19 => p_source_19
48632 , p_source_19_meaning => p_source_19_meaning
48633          , x_transaction_coa_id       => l_adr_transaction_coa_id
48634          , x_accounting_coa_id        => l_adr_accounting_coa_id
48635          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48636          , x_flex_value_set_id        => l_adr_flex_value_set_id
48637          , x_value_type_code          => l_adr_value_type_code
48638          , x_value_combination_id     => l_adr_value_combination_id
48639          , x_value_segment_code       => l_adr_value_segment_code
48640          , p_side                     => 'NA'
48641          , p_override_seg_flag        => 'Y'
48642    );
48643 
48644    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48645 
48646       xla_ae_lines_pkg.set_segment(
48647           p_to_segment_code         => 'GL_ACCOUNT'
48648         , p_segment_value           => l_segment
48649         , p_from_segment_code       => l_adr_value_segment_code
48650         , p_from_combination_id     => l_adr_value_combination_id
48651         , p_value_type_code         => l_adr_value_type_code
48652         , p_transaction_coa_id      => l_adr_transaction_coa_id
48653         , p_accounting_coa_id       => l_adr_accounting_coa_id
48654         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48655         , p_flex_value_set_id       => l_adr_flex_value_set_id
48656         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
48657         , p_adr_type_code           => 'S'
48658         , p_component_type          => l_component_type
48659         , p_component_code          => l_component_code
48660         , p_component_type_code     => l_component_type_code
48661         , p_component_appl_id       => l_component_appl_id
48662         , p_amb_context_code        => l_amb_context_code
48663         , p_entity_code             => 'AP_PAYMENTS'
48664         , p_event_class_code        => 'RECONCILED PAYMENTS'
48665         , p_side                    => 'NA'
48666         );
48667 
48668   END IF;
48669 
48670    --
48671    --
48672    END IF;
48673 
48674        --
48675        -- Update the line information that should be overwritten
48676        --
48677        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48678                                          p_header_num   => 1);
48679        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48680 
48681        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48682 
48683        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48684           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48685        END IF;
48686 
48687       --
48688       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48689       --
48690       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48691           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48692       ELSE
48693           ---------------------------------------------------------------------------------------------------
48694           -- 4262811a Switch Sign
48695           ---------------------------------------------------------------------------------------------------
48696           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48700                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48697           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48698                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48699           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48701           -- 5132302
48702           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48703                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48704 
48705       END IF;
48706 
48707       -- 4955764
48708       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48709       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48710 
48711 
48712       XLA_AE_LINES_PKG.ValidateCurrentLine;
48713       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48714 
48715       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48716                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48717                ,p_balance_type_code => l_balance_type_code);
48718 
48719    END IF;
48720 
48721    -----------------------------------------------------------------------------------------
48722    -- 4262811 Multiperiod Accounting
48723    -----------------------------------------------------------------------------------------
48724      -- No MPA option is assigned.
48725 
48726 
48727 END IF;
48728 END IF;
48729 --
48730 
48731 --
48732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48733    trace
48734       (p_msg      => 'END of AcctLineType_102'
48735       ,p_level    => C_LEVEL_PROCEDURE
48736       ,p_module   => l_log_module);
48737 END IF;
48738 --
48739 EXCEPTION
48740   WHEN xla_exceptions_pkg.application_exception THEN
48741       RAISE;
48742   WHEN OTHERS THEN
48743        xla_exceptions_pkg.raise_message
48744            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_102');
48745 END AcctLineType_102;
48746 --
48747 
48748 ---------------------------------------
48749 --
48750 -- PRIVATE FUNCTION
48751 --         AcctLineType_103
48752 --
48753 ---------------------------------------
48754 PROCEDURE AcctLineType_103 (
48755   p_application_id        IN NUMBER
48756  ,p_event_id              IN NUMBER
48757  ,p_calculate_acctd_flag  IN VARCHAR2
48758  ,p_calculate_g_l_flag    IN VARCHAR2
48759  ,p_actual_flag           IN OUT VARCHAR2
48760  ,p_balance_type_code     OUT VARCHAR2
48761  ,p_gain_or_loss_ref      OUT VARCHAR2
48762  
48763 --Payment Currency Code
48764  , p_source_13            IN VARCHAR2
48765 --Automatic Offsets Value
48766  , p_source_15            IN VARCHAR2
48767  , p_source_15_meaning    IN VARCHAR2
48768 --System Discount Account
48769  , p_source_18            IN NUMBER
48770 --Discount Distribution Method
48771  , p_source_19            IN VARCHAR2
48772  , p_source_19_meaning    IN VARCHAR2
48773 --Invoice Distribution Account
48774  , p_source_30            IN NUMBER
48775 --Invoice Distribution Type
48776  , p_source_33            IN VARCHAR2
48777  , p_source_33_meaning    IN VARCHAR2
48778 --Discount Account
48779  , p_source_44            IN NUMBER
48780 --Purchase Order Charge Account
48781  , p_source_45            IN NUMBER
48782 --Purchase Order Variance Account
48783  , p_source_46            IN NUMBER
48784 --Accounting Reversal Indicator
48785  , p_source_52            IN VARCHAR2
48786 --Distribution Link Type
48787  , p_source_54            IN VARCHAR2
48788 --Override Accounted Amount Indicator
48789  , p_source_79            IN VARCHAR2
48790  , p_source_79_meaning    IN VARCHAR2
48791 --Third Party Type
48792  , p_source_82            IN VARCHAR2
48793 --Invoice Distribution Tax Line Identifier
48794  , p_source_85            IN NUMBER
48795 --Invoice Distribution Tax Distribution Identifier from Tax
48796  , p_source_86            IN NUMBER
48797 --Invoice Distribution Summary Tax Line Identifier
48798  , p_source_87            IN NUMBER
48799 --Business Flow Accounts Payable Application Identifier
48800  , p_source_90            IN NUMBER
48801 --Business Flow Invoice Distribution Type
48802  , p_source_91            IN VARCHAR2
48803 --Business Flow Invoice Entity Code
48804  , p_source_92            IN VARCHAR2
48805 --Business Flow Invoice Distribution Identifier
48806  , p_source_93            IN NUMBER
48807 --Business Flow Invoice Identifier
48808  , p_source_94            IN NUMBER
48809 --When to Account for Payment Option
48810  , p_source_96            IN VARCHAR2
48811 --Payment Distribution Type
48812  , p_source_97            IN VARCHAR2
48813  , p_source_97_meaning    IN VARCHAR2
48814 --Payment Distribution Amount
48815  , p_source_98            IN NUMBER
48816 --Payment Distribution Identifier
48817  , p_source_103            IN NUMBER
48818 --Payment Supplier Identifier
48819  , p_source_109            IN NUMBER
48820 --Payment Supplier Site Identifier
48821  , p_source_110            IN NUMBER
48822 --Payment Distribution Reversed Identifier
48823  , p_source_111            IN NUMBER
48824 --Payment Identifier
48825  , p_source_112            IN NUMBER
48826 --Payment Distribution (Payment Rate) Ledger Amount
48827  , p_source_115            IN NUMBER
48828 --Payment Type
48829  , p_source_122            IN VARCHAR2
48833 --Invoice Distribution Amount of the Payment Distribution
48830  , p_source_122_meaning    IN VARCHAR2
48831 --Payment Processing Type
48832  , p_source_123            IN VARCHAR2
48834  , p_source_124            IN NUMBER
48835 --Invoice Exchange Date
48836  , p_source_136            IN DATE
48837 --Invoice Exchange Rate
48838  , p_source_137            IN NUMBER
48839 --Invoice Exchange Rate Type
48840  , p_source_138            IN VARCHAR2
48841 )
48842 IS
48843 
48844 l_component_type              VARCHAR2(80);
48845 l_component_code              VARCHAR2(30);
48846 l_component_type_code         VARCHAR2(1);
48847 l_component_appl_id           INTEGER;
48848 l_amb_context_code            VARCHAR2(30);
48849 l_entity_code                 VARCHAR2(30);
48850 l_event_class_code            VARCHAR2(30);
48851 l_ae_header_id                NUMBER;
48852 l_event_type_code             VARCHAR2(30);
48853 l_line_definition_code        VARCHAR2(30);
48854 l_line_definition_owner_code  VARCHAR2(1);
48855 --
48856 -- adr variables
48857 l_segment                     VARCHAR2(30);
48858 l_ccid                        NUMBER;
48859 l_adr_transaction_coa_id      NUMBER;
48860 l_adr_accounting_coa_id       NUMBER;
48861 l_adr_flexfield_segment_code  VARCHAR2(30);
48862 l_adr_flex_value_set_id       NUMBER;
48863 l_adr_value_type_code         VARCHAR2(30);
48864 l_adr_value_combination_id    NUMBER;
48865 l_adr_value_segment_code      VARCHAR2(30);
48866 
48867 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48868 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48869 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48870 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48871 
48872 -- 4262811 Variables ------------------------------------------------------------------------------------------
48873 l_entered_amt_idx             NUMBER;
48874 l_accted_amt_idx              NUMBER;
48875 l_acc_rev_flag                VARCHAR2(1);
48876 l_accrual_line_num            NUMBER;
48877 l_tmp_amt                     NUMBER;
48878 l_acc_rev_natural_side_code   VARCHAR2(1);
48879 
48880 l_num_entries                 NUMBER;
48881 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48882 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48883 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48884 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48885 l_recog_line_1                NUMBER;
48886 l_recog_line_2                NUMBER;
48887 
48888 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48889 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48890 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48891 
48892 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48893 
48894 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48895 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48896 
48897 ---------------------------------------------------------------------------------------------------------------
48898 
48899 
48900 --
48901 -- bulk performance
48902 --
48903 l_balance_type_code           VARCHAR2(1);
48904 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48905 l_log_module                  VARCHAR2(240);
48906 
48907 --
48908 -- Upgrade strategy
48909 --
48910 l_actual_upg_option           VARCHAR2(1);
48911 l_enc_upg_option           VARCHAR2(1);
48912 
48913 --
48914 BEGIN
48915 --
48916 IF g_log_enabled THEN
48917       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
48918 END IF;
48919 --
48920 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48921 
48922       trace
48923          (p_msg      => 'BEGIN of AcctLineType_103'
48924          ,p_level    => C_LEVEL_PROCEDURE
48925          ,p_module   => l_log_module);
48926 
48927 END IF;
48928 --
48929 l_component_type             := 'AMB_JLT';
48930 l_component_code             := 'AP_DISCOUNT_ACCR_PMT';
48931 l_component_type_code        := 'S';
48932 l_component_appl_id          :=  200;
48933 l_amb_context_code           := 'DEFAULT';
48934 l_entity_code                := 'AP_PAYMENTS';
48935 l_event_class_code           := 'PAYMENTS';
48936 l_event_type_code            := 'PAYMENTS_ALL';
48937 l_line_definition_owner_code := 'S';
48938 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
48939 --
48940 l_balance_type_code          := 'A';
48941 l_segment                     := NULL;
48942 l_ccid                        := NULL;
48943 l_adr_transaction_coa_id      := NULL;
48944 l_adr_accounting_coa_id       := NULL;
48945 l_adr_flexfield_segment_code  := NULL;
48946 l_adr_flex_value_set_id       := NULL;
48947 l_adr_value_type_code         := NULL;
48948 l_adr_value_combination_id    := NULL;
48949 l_adr_value_segment_code      := NULL;
48950 
48951 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48952 l_bflow_class_code           := '';    -- 4219869 Business Flow
48953 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48954 l_budgetary_control_flag     := 'N';
48955 
48956 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48957 l_bflow_applied_to_amt       := NULL; -- 5132302
48961 l_accrual_line_num           := NULL;          -- 4262811
48958 l_entered_amt_idx            := NULL;          -- 4262811
48959 l_accted_amt_idx             := NULL;          -- 4262811
48960 l_acc_rev_flag               := NULL;          -- 4262811
48962 l_tmp_amt                    := NULL;          -- 4262811
48963 --
48964  
48965 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48966     l_balance_type_code <> 'B' THEN
48967 IF NVL(p_source_96,'
48968 ') <>  'CLEAR_CLEAR' AND 
48969 NVL(p_source_97,'
48970 ') =  'DISCOUNT' AND 
48971 NVL(p_source_122,'
48972 ') <>  'R' AND 
48973 NVL(p_source_123,'
48974 ') <>  'PAYMENTCARD'
48975  THEN 
48976 
48977    --
48978    XLA_AE_LINES_PKG.SetNewLine;
48979 
48980    p_balance_type_code          := l_balance_type_code;
48981    -- set the flag so later we will know whether the gain loss line needs to be created
48982    
48983    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48984      p_actual_flag :='A';
48985    END IF;
48986 
48987    --
48988    -- bulk performance
48989    --
48990    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48991                                       p_header_num   => 0); -- 4262811
48992    --
48993    -- set accounting line options
48994    --
48995    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48996            p_natural_side_code          => 'C'
48997          , p_gain_or_loss_flag          => 'N'
48998          , p_gl_transfer_mode_code      => 'S'
48999          , p_acct_entry_type_code       => 'A'
49000          , p_switch_side_flag           => 'Y'
49001          , p_merge_duplicate_code       => 'A'
49002          );
49003    --
49004    l_acc_rev_natural_side_code := 'D';  -- 4262811
49005    -- 
49006    --
49007    -- set accounting line type info
49008    --
49009    xla_ae_lines_pkg.SetAcctLineType
49010       (p_component_type             => l_component_type
49011       ,p_event_type_code            => l_event_type_code
49012       ,p_line_definition_owner_code => l_line_definition_owner_code
49013       ,p_line_definition_code       => l_line_definition_code
49014       ,p_accounting_line_code       => l_component_code
49015       ,p_accounting_line_type_code  => l_component_type_code
49016       ,p_accounting_line_appl_id    => l_component_appl_id
49017       ,p_amb_context_code           => l_amb_context_code
49018       ,p_entity_code                => l_entity_code
49019       ,p_event_class_code           => l_event_class_code);
49020    --
49021    -- set accounting class
49022    --
49023    xla_ae_lines_pkg.SetAcctClass(
49024            p_accounting_class_code  => 'DISCOUNT'
49025          , p_ae_header_id           => l_ae_header_id
49026          );
49027 
49028    --
49029    -- set rounding class
49030    --
49031    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49032                       'DISCOUNT';
49033 
49034    --
49035    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49036    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49037    --
49038    -- bulk performance
49039    --
49040    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49041 
49042    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49043       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49044 
49045    -- 4955764
49046    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49047       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49048 
49049    -- 4458381 Public Sector Enh
49050    
49051    --
49052    -- set accounting attributes for the line type
49053    --
49054    l_entered_amt_idx := 10;
49055    l_accted_amt_idx  := 15;
49056    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49057    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49058    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
49059    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49060    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
49061    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49062    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
49063    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49064    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
49065    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49066    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
49067    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49068    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
49069    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49070    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
49071    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49072    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
49073    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49074    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
49075    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49079    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49076    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
49077    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49078    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
49080    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
49081    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49082    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
49083    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49084    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
49085    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49086    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
49087    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49088    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
49089    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49090    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
49091    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49092    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
49093    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49094    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
49095    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49096    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
49097    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49098    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
49099    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49100    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
49101    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49102    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
49103    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49104    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
49105 
49106    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49107    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49108 
49109    ---------------------------------------------------------------------------------------------------------------
49110    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49111    ---------------------------------------------------------------------------------------------------------------
49112    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49113 
49114    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49115    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49116 
49117    IF xla_accounting_cache_pkg.GetValueChar
49118          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49119          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49120    AND l_bflow_method_code = 'PRIOR_ENTRY'
49121 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49122    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49123          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49124        )
49125    THEN
49126          xla_ae_lines_pkg.BflowUpgEntry
49127            (p_business_method_code    => l_bflow_method_code
49128            ,p_business_class_code     => l_bflow_class_code
49129            ,p_balance_type            => l_balance_type_code);
49130    ELSE
49131       NULL;
49132 -- No business flow processing for business flow method of NONE.
49133    END IF;
49134 
49135    --
49136    -- call analytical criteria
49137    --
49138    
49139 
49140 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
49141 xla_ae_lines_pkg.SetAnalyticalCriteria(
49142    p_analytical_criterion_name    => 'Check Id'
49143  , p_analytical_criterion_owner   => 'S'
49144  , p_analytical_criterion_code    => 'CHECK_ID'
49145  , p_amb_context_code             => 'DEFAULT'
49146  , p_balancing_flag               => 'N'
49147  
49148  , p_analytical_detail_char_1    =>  NULL
49149  , p_analytical_detail_num_1     =>  p_source_112
49150  , p_analytical_detail_date_1    =>  NULL
49151 
49152  , p_ae_header_id                 => l_ae_header_id
49153 )
49154 ;
49155 --
49156 
49157    --
49158    -- call description
49159    --
49160    -- No description or it is inherited.
49161    --
49162    -- call ADRs
49163    -- Bug 4922099
49164    --
49165    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49166         (NVL(l_actual_upg_option, 'N') = 'O') OR
49167         (NVL(l_enc_upg_option, 'N') = 'O')
49168       )
49169    THEN
49170    NULL;
49171    --
49172    --
49173    
49174   l_ccid := AcctDerRule_29(
49175            p_application_id           => p_application_id
49176          , p_ae_header_id             => l_ae_header_id 
49177 , p_source_15 => p_source_15
49178 , p_source_15_meaning => p_source_15_meaning
49179 , p_source_18 => p_source_18
49180 , p_source_19 => p_source_19
49181 , p_source_19_meaning => p_source_19_meaning
49182 , p_source_30 => p_source_30
49183 , p_source_33 => p_source_33
49184 , p_source_33_meaning => p_source_33_meaning
49185 , p_source_44 => p_source_44
49186 , p_source_45 => p_source_45
49187 , p_source_46 => p_source_46
49188          , x_transaction_coa_id       => l_adr_transaction_coa_id
49192    );
49189          , x_accounting_coa_id        => l_adr_accounting_coa_id
49190          , x_value_type_code          => l_adr_value_type_code
49191          , p_side                     => 'NA'
49193 
49194    xla_ae_lines_pkg.set_ccid(
49195     p_code_combination_id          => l_ccid
49196   , p_value_type_code              => l_adr_value_type_code
49197   , p_transaction_coa_id           => l_adr_transaction_coa_id
49198   , p_accounting_coa_id            => l_adr_accounting_coa_id
49199   , p_adr_code                     => 'AP_DISCOUNT'
49200   , p_adr_type_code                => 'S'
49201   , p_component_type               => l_component_type
49202   , p_component_code               => l_component_code
49203   , p_component_type_code          => l_component_type_code
49204   , p_component_appl_id            => l_component_appl_id
49205   , p_amb_context_code             => l_amb_context_code
49206   , p_side                         => 'NA'
49207   );
49208 
49209 
49210    l_segment := AcctDerRule_21(
49211            p_application_id           => p_application_id
49212          , p_ae_header_id             => l_ae_header_id 
49213 , p_source_15 => p_source_15
49214 , p_source_15_meaning => p_source_15_meaning
49215 , p_source_19 => p_source_19
49216 , p_source_19_meaning => p_source_19_meaning
49217 , p_source_30 => p_source_30
49218          , x_transaction_coa_id       => l_adr_transaction_coa_id
49219          , x_accounting_coa_id        => l_adr_accounting_coa_id
49220          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49221          , x_flex_value_set_id        => l_adr_flex_value_set_id
49222          , x_value_type_code          => l_adr_value_type_code
49223          , x_value_combination_id     => l_adr_value_combination_id
49224          , x_value_segment_code       => l_adr_value_segment_code
49225          , p_side                     => 'NA'
49226          , p_override_seg_flag        => 'Y'
49227    );
49228 
49229    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49230 
49231       xla_ae_lines_pkg.set_segment(
49232           p_to_segment_code         => 'GL_BALANCING'
49233         , p_segment_value           => l_segment
49234         , p_from_segment_code       => l_adr_value_segment_code
49235         , p_from_combination_id     => l_adr_value_combination_id
49236         , p_value_type_code         => l_adr_value_type_code
49237         , p_transaction_coa_id      => l_adr_transaction_coa_id
49238         , p_accounting_coa_id       => l_adr_accounting_coa_id
49239         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49240         , p_flex_value_set_id       => l_adr_flex_value_set_id
49241         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49242         , p_adr_type_code           => 'S'
49243         , p_component_type          => l_component_type
49244         , p_component_code          => l_component_code
49245         , p_component_type_code     => l_component_type_code
49246         , p_component_appl_id       => l_component_appl_id
49247         , p_amb_context_code        => l_amb_context_code
49248         , p_entity_code             => 'AP_PAYMENTS'
49249         , p_event_class_code        => 'PAYMENTS'
49250         , p_side                    => 'NA'
49251         );
49252 
49253   END IF;
49254 
49255    l_segment := AcctDerRule_7(
49256            p_application_id           => p_application_id
49257          , p_ae_header_id             => l_ae_header_id 
49258 , p_source_15 => p_source_15
49259 , p_source_15_meaning => p_source_15_meaning
49260 , p_source_18 => p_source_18
49261 , p_source_19 => p_source_19
49262 , p_source_19_meaning => p_source_19_meaning
49263          , x_transaction_coa_id       => l_adr_transaction_coa_id
49264          , x_accounting_coa_id        => l_adr_accounting_coa_id
49265          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49266          , x_flex_value_set_id        => l_adr_flex_value_set_id
49267          , x_value_type_code          => l_adr_value_type_code
49268          , x_value_combination_id     => l_adr_value_combination_id
49269          , x_value_segment_code       => l_adr_value_segment_code
49270          , p_side                     => 'NA'
49271          , p_override_seg_flag        => 'Y'
49272    );
49273 
49274    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49275 
49276       xla_ae_lines_pkg.set_segment(
49277           p_to_segment_code         => 'GL_ACCOUNT'
49278         , p_segment_value           => l_segment
49279         , p_from_segment_code       => l_adr_value_segment_code
49280         , p_from_combination_id     => l_adr_value_combination_id
49281         , p_value_type_code         => l_adr_value_type_code
49282         , p_transaction_coa_id      => l_adr_transaction_coa_id
49283         , p_accounting_coa_id       => l_adr_accounting_coa_id
49284         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49285         , p_flex_value_set_id       => l_adr_flex_value_set_id
49286         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49287         , p_adr_type_code           => 'S'
49288         , p_component_type          => l_component_type
49289         , p_component_code          => l_component_code
49290         , p_component_type_code     => l_component_type_code
49291         , p_component_appl_id       => l_component_appl_id
49292         , p_amb_context_code        => l_amb_context_code
49293         , p_entity_code             => 'AP_PAYMENTS'
49294         , p_event_class_code        => 'PAYMENTS'
49295         , p_side                    => 'NA'
49296         );
49297 
49298   END IF;
49299 
49300    --
49301    --
49305    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49302    END IF;
49303    --
49304    -- Bug 4922099
49306           (NVL(l_enc_upg_option, 'N') = 'O')
49307         ) AND
49308         (l_bflow_method_code = 'PRIOR_ENTRY')
49309       )
49310    THEN
49311       IF
49312       --
49313       1 = 2
49314       --
49315       THEN
49316       xla_accounting_err_pkg.build_message
49317                                     (p_appli_s_name            => 'XLA'
49318                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49319                                     ,p_token_1                 => 'LINE_NUMBER'
49320                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49321                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49322                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49323                                                                              l_component_type
49324                                                                             ,l_component_code
49325                                                                             ,l_component_type_code
49326                                                                             ,l_component_appl_id
49327                                                                             ,l_amb_context_code
49328                                                                             ,l_entity_code
49329                                                                             ,l_event_class_code
49330                                                                            )
49331                                     ,p_token_3                 => 'OWNER'
49332                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49333                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49334                                                                           ,p_lookup_code    => l_component_type_code
49335                                                                          )
49336                                     ,p_token_4                 => 'PRODUCT_NAME'
49337                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49338                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49339                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49340                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49341                                     ,p_ae_header_id            =>  NULL
49342                                        );
49343 
49344         IF (C_LEVEL_ERROR>= g_log_level) THEN
49345                  trace
49346                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49347                       ,p_level    => C_LEVEL_ERROR
49348                       ,p_module   => l_log_module);
49349         END IF;
49350       END IF;
49351    END IF;
49352    --
49353    --
49354    ------------------------------------------------------------------------------------------------
49355    -- 4219869 Business Flow
49356    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49357    -- Prior Entry.  Currently, the following code is always generated.
49358    ------------------------------------------------------------------------------------------------
49359    XLA_AE_LINES_PKG.ValidateCurrentLine;
49360 
49361    ------------------------------------------------------------------------------------
49362    -- 4219869 Business Flow
49363    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49364    ------------------------------------------------------------------------------------
49365    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49366 
49367    ----------------------------------------------------------------------------------
49368    -- 4219869 Business Flow
49369    -- Update journal entry status -- Need to generate this within IF <condition>
49370    ----------------------------------------------------------------------------------
49371    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49372          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49373          ,p_balance_type_code => l_balance_type_code
49374          );
49375 
49376    -------------------------------------------------------------------------------------------
49377    -- 4262811 - Generate the Accrual Reversal lines
49378    -------------------------------------------------------------------------------------------
49379    BEGIN
49380       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49381                               (g_array_event(p_event_id).array_value_num('header_index'));
49382       IF l_acc_rev_flag IS NULL THEN
49383          l_acc_rev_flag := 'N';
49384       END IF;
49385    EXCEPTION
49386       WHEN OTHERS THEN
49387          l_acc_rev_flag := 'N';
49388    END;
49389    --
49390    IF (l_acc_rev_flag = 'Y') THEN
49391 
49392        -- 4645092  ------------------------------------------------------------------------------
49393        -- To allow MPA report to determine if it should generate report process
49394        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49395        ------------------------------------------------------------------------------------------
49396 
49400    -- call ADRs
49397        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49398        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49399    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49401    -- Bug 4922099
49402    --
49403    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49404         (NVL(l_actual_upg_option, 'N') = 'O') OR
49405         (NVL(l_enc_upg_option, 'N') = 'O')
49406       )
49407    THEN
49408    NULL;
49409    --
49410    --
49411    
49412   l_ccid := AcctDerRule_29(
49413            p_application_id           => p_application_id
49414          , p_ae_header_id             => l_ae_header_id 
49415 , p_source_15 => p_source_15
49416 , p_source_15_meaning => p_source_15_meaning
49417 , p_source_18 => p_source_18
49418 , p_source_19 => p_source_19
49419 , p_source_19_meaning => p_source_19_meaning
49420 , p_source_30 => p_source_30
49421 , p_source_33 => p_source_33
49422 , p_source_33_meaning => p_source_33_meaning
49423 , p_source_44 => p_source_44
49424 , p_source_45 => p_source_45
49425 , p_source_46 => p_source_46
49426          , x_transaction_coa_id       => l_adr_transaction_coa_id
49427          , x_accounting_coa_id        => l_adr_accounting_coa_id
49428          , x_value_type_code          => l_adr_value_type_code
49429          , p_side                     => 'NA'
49430    );
49431 
49432    xla_ae_lines_pkg.set_ccid(
49433     p_code_combination_id          => l_ccid
49434   , p_value_type_code              => l_adr_value_type_code
49435   , p_transaction_coa_id           => l_adr_transaction_coa_id
49436   , p_accounting_coa_id            => l_adr_accounting_coa_id
49437   , p_adr_code                     => 'AP_DISCOUNT'
49438   , p_adr_type_code                => 'S'
49439   , p_component_type               => l_component_type
49440   , p_component_code               => l_component_code
49441   , p_component_type_code          => l_component_type_code
49442   , p_component_appl_id            => l_component_appl_id
49443   , p_amb_context_code             => l_amb_context_code
49444   , p_side                         => 'NA'
49445   );
49446 
49447 
49448    l_segment := AcctDerRule_21(
49449            p_application_id           => p_application_id
49450          , p_ae_header_id             => l_ae_header_id 
49451 , p_source_15 => p_source_15
49452 , p_source_15_meaning => p_source_15_meaning
49453 , p_source_19 => p_source_19
49454 , p_source_19_meaning => p_source_19_meaning
49455 , p_source_30 => p_source_30
49456          , x_transaction_coa_id       => l_adr_transaction_coa_id
49457          , x_accounting_coa_id        => l_adr_accounting_coa_id
49458          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49459          , x_flex_value_set_id        => l_adr_flex_value_set_id
49460          , x_value_type_code          => l_adr_value_type_code
49461          , x_value_combination_id     => l_adr_value_combination_id
49462          , x_value_segment_code       => l_adr_value_segment_code
49463          , p_side                     => 'NA'
49464          , p_override_seg_flag        => 'Y'
49465    );
49466 
49467    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49468 
49469       xla_ae_lines_pkg.set_segment(
49470           p_to_segment_code         => 'GL_BALANCING'
49471         , p_segment_value           => l_segment
49472         , p_from_segment_code       => l_adr_value_segment_code
49473         , p_from_combination_id     => l_adr_value_combination_id
49474         , p_value_type_code         => l_adr_value_type_code
49475         , p_transaction_coa_id      => l_adr_transaction_coa_id
49476         , p_accounting_coa_id       => l_adr_accounting_coa_id
49477         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49478         , p_flex_value_set_id       => l_adr_flex_value_set_id
49479         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49480         , p_adr_type_code           => 'S'
49481         , p_component_type          => l_component_type
49482         , p_component_code          => l_component_code
49483         , p_component_type_code     => l_component_type_code
49484         , p_component_appl_id       => l_component_appl_id
49485         , p_amb_context_code        => l_amb_context_code
49486         , p_entity_code             => 'AP_PAYMENTS'
49487         , p_event_class_code        => 'PAYMENTS'
49488         , p_side                    => 'NA'
49489         );
49490 
49491   END IF;
49492 
49493    l_segment := AcctDerRule_7(
49494            p_application_id           => p_application_id
49495          , p_ae_header_id             => l_ae_header_id 
49496 , p_source_15 => p_source_15
49497 , p_source_15_meaning => p_source_15_meaning
49498 , p_source_18 => p_source_18
49499 , p_source_19 => p_source_19
49500 , p_source_19_meaning => p_source_19_meaning
49501          , x_transaction_coa_id       => l_adr_transaction_coa_id
49502          , x_accounting_coa_id        => l_adr_accounting_coa_id
49503          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49504          , x_flex_value_set_id        => l_adr_flex_value_set_id
49505          , x_value_type_code          => l_adr_value_type_code
49506          , x_value_combination_id     => l_adr_value_combination_id
49507          , x_value_segment_code       => l_adr_value_segment_code
49508          , p_side                     => 'NA'
49509          , p_override_seg_flag        => 'Y'
49510    );
49511 
49512    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49513 
49517         , p_from_segment_code       => l_adr_value_segment_code
49514       xla_ae_lines_pkg.set_segment(
49515           p_to_segment_code         => 'GL_ACCOUNT'
49516         , p_segment_value           => l_segment
49518         , p_from_combination_id     => l_adr_value_combination_id
49519         , p_value_type_code         => l_adr_value_type_code
49520         , p_transaction_coa_id      => l_adr_transaction_coa_id
49521         , p_accounting_coa_id       => l_adr_accounting_coa_id
49522         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49523         , p_flex_value_set_id       => l_adr_flex_value_set_id
49524         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49525         , p_adr_type_code           => 'S'
49526         , p_component_type          => l_component_type
49527         , p_component_code          => l_component_code
49528         , p_component_type_code     => l_component_type_code
49529         , p_component_appl_id       => l_component_appl_id
49530         , p_amb_context_code        => l_amb_context_code
49531         , p_entity_code             => 'AP_PAYMENTS'
49532         , p_event_class_code        => 'PAYMENTS'
49533         , p_side                    => 'NA'
49534         );
49535 
49536   END IF;
49537 
49538    --
49539    --
49540    END IF;
49541 
49542        --
49543        -- Update the line information that should be overwritten
49544        --
49545        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49546                                          p_header_num   => 1);
49547        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49548 
49549        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49550 
49551        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49552           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49553        END IF;
49554 
49555       --
49556       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49557       --
49558       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49559           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49560       ELSE
49561           ---------------------------------------------------------------------------------------------------
49562           -- 4262811a Switch Sign
49563           ---------------------------------------------------------------------------------------------------
49564           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49565           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49566                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49567           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49568                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49569           -- 5132302
49570           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49571                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49572 
49573       END IF;
49574 
49575       -- 4955764
49576       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49577       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49578 
49579 
49580       XLA_AE_LINES_PKG.ValidateCurrentLine;
49581       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49582 
49583       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49584                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49585                ,p_balance_type_code => l_balance_type_code);
49586 
49587    END IF;
49588 
49589    -----------------------------------------------------------------------------------------
49590    -- 4262811 Multiperiod Accounting
49591    -----------------------------------------------------------------------------------------
49592      -- No MPA option is assigned.
49593 
49594 
49595 END IF;
49596 END IF;
49597 --
49598 
49599 --
49600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49601    trace
49602       (p_msg      => 'END of AcctLineType_103'
49603       ,p_level    => C_LEVEL_PROCEDURE
49604       ,p_module   => l_log_module);
49605 END IF;
49606 --
49607 EXCEPTION
49608   WHEN xla_exceptions_pkg.application_exception THEN
49609       RAISE;
49610   WHEN OTHERS THEN
49611        xla_exceptions_pkg.raise_message
49612            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_103');
49613 END AcctLineType_103;
49614 --
49615 
49616 ---------------------------------------
49617 --
49618 -- PRIVATE FUNCTION
49619 --         AcctLineType_104
49620 --
49621 ---------------------------------------
49622 PROCEDURE AcctLineType_104 (
49623   p_application_id        IN NUMBER
49624  ,p_event_id              IN NUMBER
49625  ,p_calculate_acctd_flag  IN VARCHAR2
49626  ,p_calculate_g_l_flag    IN VARCHAR2
49627  ,p_actual_flag           IN OUT VARCHAR2
49628  ,p_balance_type_code     OUT VARCHAR2
49629  ,p_gain_or_loss_ref      OUT VARCHAR2
49630  
49631 --Payment Currency Code
49632  , p_source_13            IN VARCHAR2
49636 --System Discount Account
49633 --Automatic Offsets Value
49634  , p_source_15            IN VARCHAR2
49635  , p_source_15_meaning    IN VARCHAR2
49637  , p_source_18            IN NUMBER
49638 --Discount Distribution Method
49639  , p_source_19            IN VARCHAR2
49640  , p_source_19_meaning    IN VARCHAR2
49641 --Invoice Distribution Account
49642  , p_source_30            IN NUMBER
49643 --Invoice Distribution Type
49644  , p_source_33            IN VARCHAR2
49645  , p_source_33_meaning    IN VARCHAR2
49646 --Discount Account
49647  , p_source_44            IN NUMBER
49648 --Purchase Order Charge Account
49649  , p_source_45            IN NUMBER
49650 --Purchase Order Variance Account
49651  , p_source_46            IN NUMBER
49652 --Accounting Reversal Indicator
49653  , p_source_52            IN VARCHAR2
49654 --Distribution Link Type
49655  , p_source_54            IN VARCHAR2
49656 --Override Accounted Amount Indicator
49657  , p_source_79            IN VARCHAR2
49658  , p_source_79_meaning    IN VARCHAR2
49659 --Third Party Type
49660  , p_source_82            IN VARCHAR2
49661 --Invoice Distribution Tax Line Identifier
49662  , p_source_85            IN NUMBER
49663 --Invoice Distribution Tax Distribution Identifier from Tax
49664  , p_source_86            IN NUMBER
49665 --Invoice Distribution Summary Tax Line Identifier
49666  , p_source_87            IN NUMBER
49667 --Business Flow Accounts Payable Application Identifier
49668  , p_source_90            IN NUMBER
49669 --Business Flow Invoice Distribution Type
49670  , p_source_91            IN VARCHAR2
49671 --Business Flow Invoice Entity Code
49672  , p_source_92            IN VARCHAR2
49673 --Business Flow Invoice Distribution Identifier
49674  , p_source_93            IN NUMBER
49675 --Business Flow Invoice Identifier
49676  , p_source_94            IN NUMBER
49677 --When to Account for Payment Option
49678  , p_source_96            IN VARCHAR2
49679 --Payment Distribution Type
49680  , p_source_97            IN VARCHAR2
49681  , p_source_97_meaning    IN VARCHAR2
49682 --Payment Distribution Amount
49683  , p_source_98            IN NUMBER
49684 --Payment Distribution Identifier
49685  , p_source_103            IN NUMBER
49686 --Payment Supplier Identifier
49687  , p_source_109            IN NUMBER
49688 --Payment Supplier Site Identifier
49689  , p_source_110            IN NUMBER
49690 --Payment Distribution Reversed Identifier
49691  , p_source_111            IN NUMBER
49692 --Payment Identifier
49693  , p_source_112            IN NUMBER
49694 --Payment Distribution (Invoice Rate) Ledger Amount
49695  , p_source_116            IN NUMBER
49696 --Payment Type
49697  , p_source_122            IN VARCHAR2
49698  , p_source_122_meaning    IN VARCHAR2
49699 --Invoice Exchange Date
49700  , p_source_136            IN DATE
49701 --Invoice Exchange Rate
49702  , p_source_137            IN NUMBER
49703 --Invoice Exchange Rate Type
49704  , p_source_138            IN VARCHAR2
49705 )
49706 IS
49707 
49708 l_component_type              VARCHAR2(80);
49709 l_component_code              VARCHAR2(30);
49710 l_component_type_code         VARCHAR2(1);
49711 l_component_appl_id           INTEGER;
49712 l_amb_context_code            VARCHAR2(30);
49713 l_entity_code                 VARCHAR2(30);
49714 l_event_class_code            VARCHAR2(30);
49715 l_ae_header_id                NUMBER;
49716 l_event_type_code             VARCHAR2(30);
49717 l_line_definition_code        VARCHAR2(30);
49718 l_line_definition_owner_code  VARCHAR2(1);
49719 --
49720 -- adr variables
49721 l_segment                     VARCHAR2(30);
49722 l_ccid                        NUMBER;
49723 l_adr_transaction_coa_id      NUMBER;
49724 l_adr_accounting_coa_id       NUMBER;
49725 l_adr_flexfield_segment_code  VARCHAR2(30);
49726 l_adr_flex_value_set_id       NUMBER;
49727 l_adr_value_type_code         VARCHAR2(30);
49728 l_adr_value_combination_id    NUMBER;
49729 l_adr_value_segment_code      VARCHAR2(30);
49730 
49731 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49732 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49733 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49734 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49735 
49736 -- 4262811 Variables ------------------------------------------------------------------------------------------
49737 l_entered_amt_idx             NUMBER;
49738 l_accted_amt_idx              NUMBER;
49739 l_acc_rev_flag                VARCHAR2(1);
49740 l_accrual_line_num            NUMBER;
49741 l_tmp_amt                     NUMBER;
49742 l_acc_rev_natural_side_code   VARCHAR2(1);
49743 
49744 l_num_entries                 NUMBER;
49745 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49746 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49747 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49748 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49749 l_recog_line_1                NUMBER;
49750 l_recog_line_2                NUMBER;
49751 
49752 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49753 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49754 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49755 
49759 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49756 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49757 
49758 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49760 
49761 ---------------------------------------------------------------------------------------------------------------
49762 
49763 
49764 --
49765 -- bulk performance
49766 --
49767 l_balance_type_code           VARCHAR2(1);
49768 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49769 l_log_module                  VARCHAR2(240);
49770 
49771 --
49772 -- Upgrade strategy
49773 --
49774 l_actual_upg_option           VARCHAR2(1);
49775 l_enc_upg_option           VARCHAR2(1);
49776 
49777 --
49778 BEGIN
49779 --
49780 IF g_log_enabled THEN
49781       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
49782 END IF;
49783 --
49784 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49785 
49786       trace
49787          (p_msg      => 'BEGIN of AcctLineType_104'
49788          ,p_level    => C_LEVEL_PROCEDURE
49789          ,p_module   => l_log_module);
49790 
49791 END IF;
49792 --
49793 l_component_type             := 'AMB_JLT';
49794 l_component_code             := 'AP_DISCOUNT_ACCR_REF';
49795 l_component_type_code        := 'S';
49796 l_component_appl_id          :=  200;
49797 l_amb_context_code           := 'DEFAULT';
49798 l_entity_code                := 'AP_PAYMENTS';
49799 l_event_class_code           := 'REFUNDS';
49800 l_event_type_code            := 'REFUNDS_ALL';
49801 l_line_definition_owner_code := 'S';
49802 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
49803 --
49804 l_balance_type_code          := 'A';
49805 l_segment                     := NULL;
49806 l_ccid                        := NULL;
49807 l_adr_transaction_coa_id      := NULL;
49808 l_adr_accounting_coa_id       := NULL;
49809 l_adr_flexfield_segment_code  := NULL;
49810 l_adr_flex_value_set_id       := NULL;
49811 l_adr_value_type_code         := NULL;
49812 l_adr_value_combination_id    := NULL;
49813 l_adr_value_segment_code      := NULL;
49814 
49815 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49816 l_bflow_class_code           := '';    -- 4219869 Business Flow
49817 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49818 l_budgetary_control_flag     := 'N';
49819 
49820 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49821 l_bflow_applied_to_amt       := NULL; -- 5132302
49822 l_entered_amt_idx            := NULL;          -- 4262811
49823 l_accted_amt_idx             := NULL;          -- 4262811
49824 l_acc_rev_flag               := NULL;          -- 4262811
49825 l_accrual_line_num           := NULL;          -- 4262811
49826 l_tmp_amt                    := NULL;          -- 4262811
49827 --
49828  
49829 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49830     l_balance_type_code <> 'B' THEN
49831 IF NVL(p_source_96,'
49832 ') <>  'CLEAR_CLEAR' AND 
49833 NVL(p_source_97,'
49834 ') =  'DISCOUNT' AND 
49835 NVL(p_source_122,'
49836 ') =  'R'
49837  THEN 
49838 
49839    --
49840    XLA_AE_LINES_PKG.SetNewLine;
49841 
49842    p_balance_type_code          := l_balance_type_code;
49843    -- set the flag so later we will know whether the gain loss line needs to be created
49844    
49845    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49846      p_actual_flag :='A';
49847    END IF;
49848 
49849    --
49850    -- bulk performance
49851    --
49852    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49853                                       p_header_num   => 0); -- 4262811
49854    --
49855    -- set accounting line options
49856    --
49857    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49858            p_natural_side_code          => 'C'
49859          , p_gain_or_loss_flag          => 'N'
49860          , p_gl_transfer_mode_code      => 'S'
49861          , p_acct_entry_type_code       => 'A'
49862          , p_switch_side_flag           => 'Y'
49863          , p_merge_duplicate_code       => 'A'
49864          );
49865    --
49866    l_acc_rev_natural_side_code := 'D';  -- 4262811
49867    -- 
49868    --
49869    -- set accounting line type info
49870    --
49871    xla_ae_lines_pkg.SetAcctLineType
49872       (p_component_type             => l_component_type
49873       ,p_event_type_code            => l_event_type_code
49874       ,p_line_definition_owner_code => l_line_definition_owner_code
49875       ,p_line_definition_code       => l_line_definition_code
49876       ,p_accounting_line_code       => l_component_code
49877       ,p_accounting_line_type_code  => l_component_type_code
49878       ,p_accounting_line_appl_id    => l_component_appl_id
49879       ,p_amb_context_code           => l_amb_context_code
49880       ,p_entity_code                => l_entity_code
49881       ,p_event_class_code           => l_event_class_code);
49882    --
49883    -- set accounting class
49884    --
49885    xla_ae_lines_pkg.SetAcctClass(
49886            p_accounting_class_code  => 'DISCOUNT'
49887          , p_ae_header_id           => l_ae_header_id
49888          );
49889 
49890    --
49894                       'DISCOUNT';
49891    -- set rounding class
49892    --
49893    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49895 
49896    --
49897    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49898    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49899    --
49900    -- bulk performance
49901    --
49902    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49903 
49904    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49905       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49906 
49907    -- 4955764
49908    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49909       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49910 
49911    -- 4458381 Public Sector Enh
49912    
49913    --
49914    -- set accounting attributes for the line type
49915    --
49916    l_entered_amt_idx := 9;
49917    l_accted_amt_idx  := 14;
49918    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
49919    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49920    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
49921    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
49922    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
49923    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49924    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
49925    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
49926    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
49927    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
49928    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
49929    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49930    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
49931    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
49932    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
49933    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
49934    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
49935    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
49936    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
49937    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
49938    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
49939    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
49940    l_rec_acct_attrs.array_date_value(11)  := p_source_136;
49941    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
49942    l_rec_acct_attrs.array_num_value(12)  := p_source_137;
49943    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
49944    l_rec_acct_attrs.array_char_value(13)  := p_source_138;
49945    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
49946    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
49947    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
49948    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
49949    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
49950    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
49951    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
49952    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
49953    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
49954    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
49955    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
49956    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
49957    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
49958    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
49959    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
49960    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
49961    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
49962    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
49963    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
49964    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
49965 
49966    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49967    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49968 
49969    ---------------------------------------------------------------------------------------------------------------
49970    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49971    ---------------------------------------------------------------------------------------------------------------
49972    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49973 
49974    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49975    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49976 
49977    IF xla_accounting_cache_pkg.GetValueChar
49978          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49979          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49980    AND l_bflow_method_code = 'PRIOR_ENTRY'
49981 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49982    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49986          xla_ae_lines_pkg.BflowUpgEntry
49983          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49984        )
49985    THEN
49987            (p_business_method_code    => l_bflow_method_code
49988            ,p_business_class_code     => l_bflow_class_code
49989            ,p_balance_type            => l_balance_type_code);
49990    ELSE
49991       NULL;
49992 -- No business flow processing for business flow method of NONE.
49993    END IF;
49994 
49995    --
49996    -- call analytical criteria
49997    --
49998    
49999 
50000 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
50001 xla_ae_lines_pkg.SetAnalyticalCriteria(
50002    p_analytical_criterion_name    => 'Check Id'
50003  , p_analytical_criterion_owner   => 'S'
50004  , p_analytical_criterion_code    => 'CHECK_ID'
50005  , p_amb_context_code             => 'DEFAULT'
50006  , p_balancing_flag               => 'N'
50007  
50008  , p_analytical_detail_char_1    =>  NULL
50009  , p_analytical_detail_num_1     =>  p_source_112
50010  , p_analytical_detail_date_1    =>  NULL
50011 
50012  , p_ae_header_id                 => l_ae_header_id
50013 )
50014 ;
50015 --
50016 
50017    --
50018    -- call description
50019    --
50020    -- No description or it is inherited.
50021    --
50022    -- call ADRs
50023    -- Bug 4922099
50024    --
50025    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50026         (NVL(l_actual_upg_option, 'N') = 'O') OR
50027         (NVL(l_enc_upg_option, 'N') = 'O')
50028       )
50029    THEN
50030    NULL;
50031    --
50032    --
50033    
50034   l_ccid := AcctDerRule_29(
50035            p_application_id           => p_application_id
50036          , p_ae_header_id             => l_ae_header_id 
50037 , p_source_15 => p_source_15
50038 , p_source_15_meaning => p_source_15_meaning
50039 , p_source_18 => p_source_18
50040 , p_source_19 => p_source_19
50041 , p_source_19_meaning => p_source_19_meaning
50042 , p_source_30 => p_source_30
50043 , p_source_33 => p_source_33
50044 , p_source_33_meaning => p_source_33_meaning
50045 , p_source_44 => p_source_44
50046 , p_source_45 => p_source_45
50047 , p_source_46 => p_source_46
50048          , x_transaction_coa_id       => l_adr_transaction_coa_id
50049          , x_accounting_coa_id        => l_adr_accounting_coa_id
50050          , x_value_type_code          => l_adr_value_type_code
50051          , p_side                     => 'NA'
50052    );
50053 
50054    xla_ae_lines_pkg.set_ccid(
50055     p_code_combination_id          => l_ccid
50056   , p_value_type_code              => l_adr_value_type_code
50057   , p_transaction_coa_id           => l_adr_transaction_coa_id
50058   , p_accounting_coa_id            => l_adr_accounting_coa_id
50059   , p_adr_code                     => 'AP_DISCOUNT'
50060   , p_adr_type_code                => 'S'
50061   , p_component_type               => l_component_type
50062   , p_component_code               => l_component_code
50063   , p_component_type_code          => l_component_type_code
50064   , p_component_appl_id            => l_component_appl_id
50065   , p_amb_context_code             => l_amb_context_code
50066   , p_side                         => 'NA'
50067   );
50068 
50069 
50070    l_segment := AcctDerRule_21(
50071            p_application_id           => p_application_id
50072          , p_ae_header_id             => l_ae_header_id 
50073 , p_source_15 => p_source_15
50074 , p_source_15_meaning => p_source_15_meaning
50075 , p_source_19 => p_source_19
50076 , p_source_19_meaning => p_source_19_meaning
50077 , p_source_30 => p_source_30
50078          , x_transaction_coa_id       => l_adr_transaction_coa_id
50079          , x_accounting_coa_id        => l_adr_accounting_coa_id
50080          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50081          , x_flex_value_set_id        => l_adr_flex_value_set_id
50082          , x_value_type_code          => l_adr_value_type_code
50083          , x_value_combination_id     => l_adr_value_combination_id
50084          , x_value_segment_code       => l_adr_value_segment_code
50085          , p_side                     => 'NA'
50086          , p_override_seg_flag        => 'Y'
50087    );
50088 
50089    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50090 
50091       xla_ae_lines_pkg.set_segment(
50092           p_to_segment_code         => 'GL_BALANCING'
50093         , p_segment_value           => l_segment
50094         , p_from_segment_code       => l_adr_value_segment_code
50095         , p_from_combination_id     => l_adr_value_combination_id
50096         , p_value_type_code         => l_adr_value_type_code
50097         , p_transaction_coa_id      => l_adr_transaction_coa_id
50098         , p_accounting_coa_id       => l_adr_accounting_coa_id
50099         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50100         , p_flex_value_set_id       => l_adr_flex_value_set_id
50101         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50102         , p_adr_type_code           => 'S'
50103         , p_component_type          => l_component_type
50104         , p_component_code          => l_component_code
50105         , p_component_type_code     => l_component_type_code
50106         , p_component_appl_id       => l_component_appl_id
50107         , p_amb_context_code        => l_amb_context_code
50108         , p_entity_code             => 'AP_PAYMENTS'
50109         , p_event_class_code        => 'REFUNDS'
50113   END IF;
50110         , p_side                    => 'NA'
50111         );
50112 
50114 
50115    l_segment := AcctDerRule_7(
50116            p_application_id           => p_application_id
50117          , p_ae_header_id             => l_ae_header_id 
50118 , p_source_15 => p_source_15
50119 , p_source_15_meaning => p_source_15_meaning
50120 , p_source_18 => p_source_18
50121 , p_source_19 => p_source_19
50122 , p_source_19_meaning => p_source_19_meaning
50123          , x_transaction_coa_id       => l_adr_transaction_coa_id
50124          , x_accounting_coa_id        => l_adr_accounting_coa_id
50125          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50126          , x_flex_value_set_id        => l_adr_flex_value_set_id
50127          , x_value_type_code          => l_adr_value_type_code
50128          , x_value_combination_id     => l_adr_value_combination_id
50129          , x_value_segment_code       => l_adr_value_segment_code
50130          , p_side                     => 'NA'
50131          , p_override_seg_flag        => 'Y'
50132    );
50133 
50134    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50135 
50136       xla_ae_lines_pkg.set_segment(
50137           p_to_segment_code         => 'GL_ACCOUNT'
50138         , p_segment_value           => l_segment
50139         , p_from_segment_code       => l_adr_value_segment_code
50140         , p_from_combination_id     => l_adr_value_combination_id
50141         , p_value_type_code         => l_adr_value_type_code
50142         , p_transaction_coa_id      => l_adr_transaction_coa_id
50143         , p_accounting_coa_id       => l_adr_accounting_coa_id
50144         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50145         , p_flex_value_set_id       => l_adr_flex_value_set_id
50146         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50147         , p_adr_type_code           => 'S'
50148         , p_component_type          => l_component_type
50149         , p_component_code          => l_component_code
50150         , p_component_type_code     => l_component_type_code
50151         , p_component_appl_id       => l_component_appl_id
50152         , p_amb_context_code        => l_amb_context_code
50153         , p_entity_code             => 'AP_PAYMENTS'
50154         , p_event_class_code        => 'REFUNDS'
50155         , p_side                    => 'NA'
50156         );
50157 
50158   END IF;
50159 
50160    --
50161    --
50162    END IF;
50163    --
50164    -- Bug 4922099
50165    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50166           (NVL(l_enc_upg_option, 'N') = 'O')
50167         ) AND
50168         (l_bflow_method_code = 'PRIOR_ENTRY')
50169       )
50170    THEN
50171       IF
50172       --
50173       1 = 2
50174       --
50175       THEN
50176       xla_accounting_err_pkg.build_message
50177                                     (p_appli_s_name            => 'XLA'
50178                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50179                                     ,p_token_1                 => 'LINE_NUMBER'
50180                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50181                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50182                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50183                                                                              l_component_type
50184                                                                             ,l_component_code
50185                                                                             ,l_component_type_code
50186                                                                             ,l_component_appl_id
50187                                                                             ,l_amb_context_code
50188                                                                             ,l_entity_code
50189                                                                             ,l_event_class_code
50190                                                                            )
50191                                     ,p_token_3                 => 'OWNER'
50192                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50193                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50194                                                                           ,p_lookup_code    => l_component_type_code
50195                                                                          )
50196                                     ,p_token_4                 => 'PRODUCT_NAME'
50197                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50198                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50199                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50200                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50201                                     ,p_ae_header_id            =>  NULL
50202                                        );
50203 
50204         IF (C_LEVEL_ERROR>= g_log_level) THEN
50205                  trace
50206                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50207                       ,p_level    => C_LEVEL_ERROR
50208                       ,p_module   => l_log_module);
50209         END IF;
50210       END IF;
50214    ------------------------------------------------------------------------------------------------
50211    END IF;
50212    --
50213    --
50215    -- 4219869 Business Flow
50216    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50217    -- Prior Entry.  Currently, the following code is always generated.
50218    ------------------------------------------------------------------------------------------------
50219    XLA_AE_LINES_PKG.ValidateCurrentLine;
50220 
50221    ------------------------------------------------------------------------------------
50222    -- 4219869 Business Flow
50223    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50224    ------------------------------------------------------------------------------------
50225    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50226 
50227    ----------------------------------------------------------------------------------
50228    -- 4219869 Business Flow
50229    -- Update journal entry status -- Need to generate this within IF <condition>
50230    ----------------------------------------------------------------------------------
50231    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50232          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50233          ,p_balance_type_code => l_balance_type_code
50234          );
50235 
50236    -------------------------------------------------------------------------------------------
50237    -- 4262811 - Generate the Accrual Reversal lines
50238    -------------------------------------------------------------------------------------------
50239    BEGIN
50240       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50241                               (g_array_event(p_event_id).array_value_num('header_index'));
50242       IF l_acc_rev_flag IS NULL THEN
50243          l_acc_rev_flag := 'N';
50244       END IF;
50245    EXCEPTION
50246       WHEN OTHERS THEN
50247          l_acc_rev_flag := 'N';
50248    END;
50249    --
50250    IF (l_acc_rev_flag = 'Y') THEN
50251 
50252        -- 4645092  ------------------------------------------------------------------------------
50253        -- To allow MPA report to determine if it should generate report process
50254        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50255        ------------------------------------------------------------------------------------------
50256 
50257        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50258        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50259    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50260    -- call ADRs
50261    -- Bug 4922099
50262    --
50263    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50264         (NVL(l_actual_upg_option, 'N') = 'O') OR
50265         (NVL(l_enc_upg_option, 'N') = 'O')
50266       )
50267    THEN
50268    NULL;
50269    --
50270    --
50271    
50272   l_ccid := AcctDerRule_29(
50273            p_application_id           => p_application_id
50274          , p_ae_header_id             => l_ae_header_id 
50275 , p_source_15 => p_source_15
50276 , p_source_15_meaning => p_source_15_meaning
50277 , p_source_18 => p_source_18
50278 , p_source_19 => p_source_19
50279 , p_source_19_meaning => p_source_19_meaning
50280 , p_source_30 => p_source_30
50281 , p_source_33 => p_source_33
50282 , p_source_33_meaning => p_source_33_meaning
50283 , p_source_44 => p_source_44
50284 , p_source_45 => p_source_45
50285 , p_source_46 => p_source_46
50286          , x_transaction_coa_id       => l_adr_transaction_coa_id
50287          , x_accounting_coa_id        => l_adr_accounting_coa_id
50288          , x_value_type_code          => l_adr_value_type_code
50289          , p_side                     => 'NA'
50290    );
50291 
50292    xla_ae_lines_pkg.set_ccid(
50293     p_code_combination_id          => l_ccid
50294   , p_value_type_code              => l_adr_value_type_code
50295   , p_transaction_coa_id           => l_adr_transaction_coa_id
50296   , p_accounting_coa_id            => l_adr_accounting_coa_id
50297   , p_adr_code                     => 'AP_DISCOUNT'
50298   , p_adr_type_code                => 'S'
50299   , p_component_type               => l_component_type
50300   , p_component_code               => l_component_code
50301   , p_component_type_code          => l_component_type_code
50302   , p_component_appl_id            => l_component_appl_id
50303   , p_amb_context_code             => l_amb_context_code
50304   , p_side                         => 'NA'
50305   );
50306 
50307 
50308    l_segment := AcctDerRule_21(
50309            p_application_id           => p_application_id
50310          , p_ae_header_id             => l_ae_header_id 
50311 , p_source_15 => p_source_15
50312 , p_source_15_meaning => p_source_15_meaning
50313 , p_source_19 => p_source_19
50314 , p_source_19_meaning => p_source_19_meaning
50315 , p_source_30 => p_source_30
50316          , x_transaction_coa_id       => l_adr_transaction_coa_id
50317          , x_accounting_coa_id        => l_adr_accounting_coa_id
50318          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50319          , x_flex_value_set_id        => l_adr_flex_value_set_id
50320          , x_value_type_code          => l_adr_value_type_code
50321          , x_value_combination_id     => l_adr_value_combination_id
50322          , x_value_segment_code       => l_adr_value_segment_code
50323          , p_side                     => 'NA'
50324          , p_override_seg_flag        => 'Y'
50325    );
50326 
50330           p_to_segment_code         => 'GL_BALANCING'
50327    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50328 
50329       xla_ae_lines_pkg.set_segment(
50331         , p_segment_value           => l_segment
50332         , p_from_segment_code       => l_adr_value_segment_code
50333         , p_from_combination_id     => l_adr_value_combination_id
50334         , p_value_type_code         => l_adr_value_type_code
50335         , p_transaction_coa_id      => l_adr_transaction_coa_id
50336         , p_accounting_coa_id       => l_adr_accounting_coa_id
50337         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50338         , p_flex_value_set_id       => l_adr_flex_value_set_id
50339         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50340         , p_adr_type_code           => 'S'
50341         , p_component_type          => l_component_type
50342         , p_component_code          => l_component_code
50343         , p_component_type_code     => l_component_type_code
50344         , p_component_appl_id       => l_component_appl_id
50345         , p_amb_context_code        => l_amb_context_code
50346         , p_entity_code             => 'AP_PAYMENTS'
50347         , p_event_class_code        => 'REFUNDS'
50348         , p_side                    => 'NA'
50349         );
50350 
50351   END IF;
50352 
50353    l_segment := AcctDerRule_7(
50354            p_application_id           => p_application_id
50355          , p_ae_header_id             => l_ae_header_id 
50356 , p_source_15 => p_source_15
50357 , p_source_15_meaning => p_source_15_meaning
50358 , p_source_18 => p_source_18
50359 , p_source_19 => p_source_19
50360 , p_source_19_meaning => p_source_19_meaning
50361          , x_transaction_coa_id       => l_adr_transaction_coa_id
50362          , x_accounting_coa_id        => l_adr_accounting_coa_id
50363          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50364          , x_flex_value_set_id        => l_adr_flex_value_set_id
50365          , x_value_type_code          => l_adr_value_type_code
50366          , x_value_combination_id     => l_adr_value_combination_id
50367          , x_value_segment_code       => l_adr_value_segment_code
50368          , p_side                     => 'NA'
50369          , p_override_seg_flag        => 'Y'
50370    );
50371 
50372    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50373 
50374       xla_ae_lines_pkg.set_segment(
50375           p_to_segment_code         => 'GL_ACCOUNT'
50376         , p_segment_value           => l_segment
50377         , p_from_segment_code       => l_adr_value_segment_code
50378         , p_from_combination_id     => l_adr_value_combination_id
50379         , p_value_type_code         => l_adr_value_type_code
50380         , p_transaction_coa_id      => l_adr_transaction_coa_id
50381         , p_accounting_coa_id       => l_adr_accounting_coa_id
50382         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50383         , p_flex_value_set_id       => l_adr_flex_value_set_id
50384         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50385         , p_adr_type_code           => 'S'
50386         , p_component_type          => l_component_type
50387         , p_component_code          => l_component_code
50388         , p_component_type_code     => l_component_type_code
50389         , p_component_appl_id       => l_component_appl_id
50390         , p_amb_context_code        => l_amb_context_code
50391         , p_entity_code             => 'AP_PAYMENTS'
50392         , p_event_class_code        => 'REFUNDS'
50393         , p_side                    => 'NA'
50394         );
50395 
50396   END IF;
50397 
50398    --
50399    --
50400    END IF;
50401 
50402        --
50403        -- Update the line information that should be overwritten
50404        --
50405        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50406                                          p_header_num   => 1);
50407        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50408 
50409        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50410 
50411        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50412           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50413        END IF;
50414 
50415       --
50416       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50417       --
50418       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50419           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50420       ELSE
50421           ---------------------------------------------------------------------------------------------------
50422           -- 4262811a Switch Sign
50423           ---------------------------------------------------------------------------------------------------
50424           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50425           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50426                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50427           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50431                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50428                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50429           -- 5132302
50430           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50432 
50433       END IF;
50434 
50435       -- 4955764
50436       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50437       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50438 
50439 
50440       XLA_AE_LINES_PKG.ValidateCurrentLine;
50441       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50442 
50443       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50444                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50445                ,p_balance_type_code => l_balance_type_code);
50446 
50447    END IF;
50448 
50449    -----------------------------------------------------------------------------------------
50450    -- 4262811 Multiperiod Accounting
50451    -----------------------------------------------------------------------------------------
50452      -- No MPA option is assigned.
50453 
50454 
50455 END IF;
50456 END IF;
50457 --
50458 
50459 --
50460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50461    trace
50462       (p_msg      => 'END of AcctLineType_104'
50463       ,p_level    => C_LEVEL_PROCEDURE
50464       ,p_module   => l_log_module);
50465 END IF;
50466 --
50467 EXCEPTION
50468   WHEN xla_exceptions_pkg.application_exception THEN
50469       RAISE;
50470   WHEN OTHERS THEN
50471        xla_exceptions_pkg.raise_message
50472            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_104');
50473 END AcctLineType_104;
50474 --
50475 
50476 ---------------------------------------
50477 --
50478 -- PRIVATE FUNCTION
50479 --         AcctLineType_105
50480 --
50481 ---------------------------------------
50482 PROCEDURE AcctLineType_105 (
50483   p_application_id        IN NUMBER
50484  ,p_event_id              IN NUMBER
50485  ,p_calculate_acctd_flag  IN VARCHAR2
50486  ,p_calculate_g_l_flag    IN VARCHAR2
50487  ,p_actual_flag           IN OUT VARCHAR2
50488  ,p_balance_type_code     OUT VARCHAR2
50489  ,p_gain_or_loss_ref      OUT VARCHAR2
50490  
50491 --Invoice Distribution Description
50492  , p_source_1            IN VARCHAR2
50493 --Automatic Offsets Value
50494  , p_source_15            IN VARCHAR2
50495  , p_source_15_meaning    IN VARCHAR2
50496 --Purchase Order Rate Variance Gain Account
50497  , p_source_20            IN NUMBER
50498 --Invoice Distribution Ledger Amount
50499  , p_source_21            IN NUMBER
50500 --Destination Type of the PO Distribution
50501  , p_source_22            IN VARCHAR2
50502  , p_source_22_meaning    IN VARCHAR2
50503 --Purchase Order Rate Variance Loss Account
50504  , p_source_23            IN NUMBER
50505 --Invoice Distribution Account
50506  , p_source_30            IN NUMBER
50507 --Invoice Distribution Type
50508  , p_source_33            IN VARCHAR2
50509  , p_source_33_meaning    IN VARCHAR2
50510 --Automatic Offsets Flag
50511  , p_source_47            IN VARCHAR2
50512  , p_source_47_meaning    IN VARCHAR2
50513 --Accounting Reversal Indicator
50514  , p_source_52            IN VARCHAR2
50515 --Distribution Link Type
50516  , p_source_54            IN VARCHAR2
50517 --Allocation to Main Distribution Identifier
50518  , p_source_56            IN NUMBER
50519 --Invoice Identifier
50520  , p_source_57            IN NUMBER
50521 --Invoice Distribution Identifier
50522  , p_source_63            IN NUMBER
50523 --Payables Encumbrance Upgrade Credit Account
50524  , p_source_64            IN NUMBER
50525 --Payables Encumbrance Upgrade Credit Amount
50526  , p_source_65            IN NUMBER
50527 --Invoice Currency Code
50528  , p_source_66            IN VARCHAR2
50529 --Payables Encumbrance Upgrade Credit Base Amount
50530  , p_source_67            IN NUMBER
50531 --Payables Encumbrance Upgrade Debit Account
50532  , p_source_68            IN NUMBER
50533 --Payables Encumbrance Upgrade Debit Amount
50534  , p_source_69            IN NUMBER
50535 --Payables Encumbrance Upgrade Debit Base Amount
50536  , p_source_70            IN NUMBER
50537 --Payables Encumbrance Upgrade Option
50538  , p_source_71            IN VARCHAR2
50539 --Invoice Distribution Amount
50540  , p_source_72            IN NUMBER
50541 --Deferred Accounting End Date
50542  , p_source_76            IN DATE
50543 --Deferred Accounting Option
50544  , p_source_77            IN VARCHAR2
50545 --Deferred Accounting Start Date
50546  , p_source_78            IN DATE
50547 --Override Accounted Amount Indicator
50548  , p_source_79            IN VARCHAR2
50549  , p_source_79_meaning    IN VARCHAR2
50550 --Invoice Supplier Identifier
50551  , p_source_80            IN NUMBER
50552 --Invoice Supplier Site Identifier
50553  , p_source_81            IN NUMBER
50554 --Third Party Type
50555  , p_source_82            IN VARCHAR2
50556 --Parent Reversal Identifier
50557  , p_source_83            IN NUMBER
50558 --Invoice Distribution Statistical Amount
50559  , p_source_84            IN NUMBER
50560 --Invoice Distribution Tax Line Identifier
50564 --Invoice Distribution Summary Tax Line Identifier
50561  , p_source_85            IN NUMBER
50562 --Invoice Distribution Tax Distribution Identifier from Tax
50563  , p_source_86            IN NUMBER
50565  , p_source_87            IN NUMBER
50566 --Payables Upgrade Credit Encumbrance Type Identifier
50567  , p_source_88            IN NUMBER
50568 --Payables Upgrade Debit Encumbrance Type Identifier
50569  , p_source_89            IN NUMBER
50570 --Business Flow Accounts Payable Application Identifier
50571  , p_source_90            IN NUMBER
50572 --Business Flow Invoice Distribution Type
50573  , p_source_91            IN VARCHAR2
50574 --Business Flow Invoice Entity Code
50575  , p_source_92            IN VARCHAR2
50576 --Business Flow Invoice Distribution Identifier
50577  , p_source_93            IN NUMBER
50578 --Business Flow Invoice Identifier
50579  , p_source_94            IN NUMBER
50580 --Accrue on Receipt Option
50581  , p_source_95            IN VARCHAR2
50582  , p_source_95_meaning    IN VARCHAR2
50583 --Invoice Exchange Date
50584  , p_source_136            IN DATE
50585 --Invoice Exchange Rate
50586  , p_source_137            IN NUMBER
50587 --Invoice Exchange Rate Type
50588  , p_source_138            IN VARCHAR2
50589 )
50590 IS
50591 
50592 l_component_type              VARCHAR2(80);
50593 l_component_code              VARCHAR2(30);
50594 l_component_type_code         VARCHAR2(1);
50595 l_component_appl_id           INTEGER;
50596 l_amb_context_code            VARCHAR2(30);
50597 l_entity_code                 VARCHAR2(30);
50598 l_event_class_code            VARCHAR2(30);
50599 l_ae_header_id                NUMBER;
50600 l_event_type_code             VARCHAR2(30);
50601 l_line_definition_code        VARCHAR2(30);
50602 l_line_definition_owner_code  VARCHAR2(1);
50603 --
50604 -- adr variables
50605 l_segment                     VARCHAR2(30);
50606 l_ccid                        NUMBER;
50607 l_adr_transaction_coa_id      NUMBER;
50608 l_adr_accounting_coa_id       NUMBER;
50609 l_adr_flexfield_segment_code  VARCHAR2(30);
50610 l_adr_flex_value_set_id       NUMBER;
50611 l_adr_value_type_code         VARCHAR2(30);
50612 l_adr_value_combination_id    NUMBER;
50613 l_adr_value_segment_code      VARCHAR2(30);
50614 
50615 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50616 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50617 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50618 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50619 
50620 -- 4262811 Variables ------------------------------------------------------------------------------------------
50621 l_entered_amt_idx             NUMBER;
50622 l_accted_amt_idx              NUMBER;
50623 l_acc_rev_flag                VARCHAR2(1);
50624 l_accrual_line_num            NUMBER;
50625 l_tmp_amt                     NUMBER;
50626 l_acc_rev_natural_side_code   VARCHAR2(1);
50627 
50628 l_num_entries                 NUMBER;
50629 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50630 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50631 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50632 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50633 l_recog_line_1                NUMBER;
50634 l_recog_line_2                NUMBER;
50635 
50636 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50637 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50638 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50639 
50640 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50641 
50642 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50643 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50644 
50645 ---------------------------------------------------------------------------------------------------------------
50646 
50647 
50648 --
50649 -- bulk performance
50650 --
50651 l_balance_type_code           VARCHAR2(1);
50652 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50653 l_log_module                  VARCHAR2(240);
50654 
50655 --
50656 -- Upgrade strategy
50657 --
50658 l_actual_upg_option           VARCHAR2(1);
50659 l_enc_upg_option           VARCHAR2(1);
50660 
50661 --
50662 BEGIN
50663 --
50664 IF g_log_enabled THEN
50665       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
50666 END IF;
50667 --
50668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50669 
50670       trace
50671          (p_msg      => 'BEGIN of AcctLineType_105'
50672          ,p_level    => C_LEVEL_PROCEDURE
50673          ,p_module   => l_log_module);
50674 
50675 END IF;
50676 --
50677 l_component_type             := 'AMB_JLT';
50678 l_component_code             := 'AP_EX_RATE_VAR_CM';
50679 l_component_type_code        := 'S';
50680 l_component_appl_id          :=  200;
50681 l_amb_context_code           := 'DEFAULT';
50682 l_entity_code                := 'AP_INVOICES';
50683 l_event_class_code           := 'CREDIT MEMOS';
50684 l_event_type_code            := 'CREDIT MEMOS_ALL';
50685 l_line_definition_owner_code := 'S';
50686 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
50687 --
50688 l_balance_type_code          := 'A';
50692 l_adr_accounting_coa_id       := NULL;
50689 l_segment                     := NULL;
50690 l_ccid                        := NULL;
50691 l_adr_transaction_coa_id      := NULL;
50693 l_adr_flexfield_segment_code  := NULL;
50694 l_adr_flex_value_set_id       := NULL;
50695 l_adr_value_type_code         := NULL;
50696 l_adr_value_combination_id    := NULL;
50697 l_adr_value_segment_code      := NULL;
50698 
50699 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50700 l_bflow_class_code           := '';    -- 4219869 Business Flow
50701 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50702 l_budgetary_control_flag     := 'N';
50703 
50704 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50705 l_bflow_applied_to_amt       := NULL; -- 5132302
50706 l_entered_amt_idx            := NULL;          -- 4262811
50707 l_accted_amt_idx             := NULL;          -- 4262811
50708 l_acc_rev_flag               := NULL;          -- 4262811
50709 l_accrual_line_num           := NULL;          -- 4262811
50710 l_tmp_amt                    := NULL;          -- 4262811
50711 --
50712 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
50713             (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
50714                return;
50715   END IF;
50716   
50717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50718     l_balance_type_code <> 'B' THEN
50719 IF NVL(p_source_33,'
50720 ') =  'ERV' AND 
50721 NVL(p_source_95,'
50722 ') =  'Y'
50723  THEN 
50724 
50725    --
50726    XLA_AE_LINES_PKG.SetNewLine;
50727 
50728    p_balance_type_code          := l_balance_type_code;
50729    -- set the flag so later we will know whether the gain loss line needs to be created
50730    
50731    IF(l_balance_type_code = 'A' ) THEN
50732      p_actual_flag :='G';
50733    END IF;
50734 
50735    --
50736    -- bulk performance
50737    --
50738    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50739                                       p_header_num   => 0); -- 4262811
50740    --
50741    -- set accounting line options
50742    --
50743    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50744            p_natural_side_code          => 'D'
50745          , p_gain_or_loss_flag          => 'Y'
50746          , p_gl_transfer_mode_code      => 'S'
50747          , p_acct_entry_type_code       => 'A'
50748          , p_switch_side_flag           => 'Y'
50749          , p_merge_duplicate_code       => 'A'
50750          );
50751    --
50752    l_acc_rev_natural_side_code := 'C';  -- 4262811
50753    -- 
50754    --
50755    -- set accounting line type info
50756    --
50757    xla_ae_lines_pkg.SetAcctLineType
50758       (p_component_type             => l_component_type
50759       ,p_event_type_code            => l_event_type_code
50760       ,p_line_definition_owner_code => l_line_definition_owner_code
50761       ,p_line_definition_code       => l_line_definition_code
50762       ,p_accounting_line_code       => l_component_code
50763       ,p_accounting_line_type_code  => l_component_type_code
50764       ,p_accounting_line_appl_id    => l_component_appl_id
50765       ,p_amb_context_code           => l_amb_context_code
50766       ,p_entity_code                => l_entity_code
50767       ,p_event_class_code           => l_event_class_code);
50768    --
50769    -- set accounting class
50770    --
50771    xla_ae_lines_pkg.SetAcctClass(
50772            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
50773          , p_ae_header_id           => l_ae_header_id
50774          );
50775 
50776    --
50777    -- set rounding class
50778    --
50779    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50780                       'EXCHANGE_RATE_VARIANCE';
50781 
50782    --
50783    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50784    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50785    --
50786    -- bulk performance
50787    --
50788    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50789 
50790    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50791       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50792 
50793    -- 4955764
50794    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50796 
50797    -- 4458381 Public Sector Enh
50798    
50799    --
50800    -- set accounting attributes for the line type
50801    --
50802    l_entered_amt_idx := 23;
50803    l_accted_amt_idx  := 28;
50804    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
50805    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50806    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
50807    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
50808    l_rec_acct_attrs.array_num_value(2)  := 
50809 xla_ae_sources_pkg.GetSystemSourceNum(
50810    p_source_code           => 'XLA_EVENT_APPL_ID'
50811  , p_source_type_code      => 'Y'
50815    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
50812  , p_source_application_id =>  602
50813 );
50814    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
50816    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
50817    l_rec_acct_attrs.array_char_value(4)  := 
50818 xla_ae_sources_pkg.GetSystemSourceChar(
50819    p_source_code           => 'XLA_ENTITY_CODE'
50820  , p_source_type_code      => 'Y'
50821  , p_source_application_id =>  602
50822 );
50823    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
50824    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
50825    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
50826    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
50827    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
50828    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
50829    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50830    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
50831    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
50832    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
50833    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
50834    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
50835    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50836    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
50837    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
50838    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
50839    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
50840    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
50841    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
50842    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
50843    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
50844    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
50845    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
50846    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
50847    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
50848    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
50849    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
50850    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
50851    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
50852    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
50853    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
50854    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
50855    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
50856    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
50857    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
50858    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
50859    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
50860    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
50861    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
50862    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
50863    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
50864    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
50865    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
50866    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
50867    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
50868    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
50869    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
50870    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
50871    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
50872    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
50873    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
50874    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
50875    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
50876    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
50877    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
50878    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
50879    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
50880    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
50881    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
50882    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
50883    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
50884    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
50885    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
50886    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
50887    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
50888    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
50889    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
50890    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
50891    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
50892    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
50893    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
50894    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
50895    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
50896    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
50897    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
50898    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
50899    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
50903    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50900    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
50901 
50902    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50904 
50905    ---------------------------------------------------------------------------------------------------------------
50906    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50907    ---------------------------------------------------------------------------------------------------------------
50908    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50909 
50910    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50911    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50912 
50913    IF xla_accounting_cache_pkg.GetValueChar
50914          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50915          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50916    AND l_bflow_method_code = 'PRIOR_ENTRY'
50917 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50918    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50919          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50920        )
50921    THEN
50922          xla_ae_lines_pkg.BflowUpgEntry
50923            (p_business_method_code    => l_bflow_method_code
50924            ,p_business_class_code     => l_bflow_class_code
50925            ,p_balance_type            => l_balance_type_code);
50926    ELSE
50927       NULL;
50928 -- No business flow processing for business flow method of NONE.
50929    END IF;
50930 
50931    --
50932    -- call analytical criteria
50933    --
50934    
50935    --
50936    -- call description
50937    --
50938    
50939 xla_ae_lines_pkg.SetLineDescription(
50940    p_ae_header_id => l_ae_header_id
50941   ,p_description  => Description_1 (
50942      p_application_id         => p_application_id
50943    , p_ae_header_id           => l_ae_header_id 
50944 , p_source_1 => p_source_1
50945    )
50946 );
50947 
50948 
50949    --
50950    -- call ADRs
50951    -- Bug 4922099
50952    --
50953    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50954         (NVL(l_actual_upg_option, 'N') = 'O') OR
50955         (NVL(l_enc_upg_option, 'N') = 'O')
50956       )
50957    THEN
50958    NULL;
50959    --
50960    --
50961    
50962   l_ccid := AcctDerRule_30(
50963            p_application_id           => p_application_id
50964          , p_ae_header_id             => l_ae_header_id 
50965 , p_source_15 => p_source_15
50966 , p_source_15_meaning => p_source_15_meaning
50967 , p_source_20 => p_source_20
50968 , p_source_21 => p_source_21
50969 , p_source_22 => p_source_22
50970 , p_source_22_meaning => p_source_22_meaning
50971 , p_source_23 => p_source_23
50972 , p_source_30 => p_source_30
50973 , p_source_47 => p_source_47
50974 , p_source_47_meaning => p_source_47_meaning
50975          , x_transaction_coa_id       => l_adr_transaction_coa_id
50976          , x_accounting_coa_id        => l_adr_accounting_coa_id
50977          , x_value_type_code          => l_adr_value_type_code
50978          , p_side                     => 'NA'
50979    );
50980 
50981    xla_ae_lines_pkg.set_ccid(
50982     p_code_combination_id          => l_ccid
50983   , p_value_type_code              => l_adr_value_type_code
50984   , p_transaction_coa_id           => l_adr_transaction_coa_id
50985   , p_accounting_coa_id            => l_adr_accounting_coa_id
50986   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
50987   , p_adr_type_code                => 'S'
50988   , p_component_type               => l_component_type
50989   , p_component_code               => l_component_code
50990   , p_component_type_code          => l_component_type_code
50991   , p_component_appl_id            => l_component_appl_id
50992   , p_amb_context_code             => l_amb_context_code
50993   , p_side                         => 'NA'
50994   );
50995 
50996 
50997    l_segment := AcctDerRule_8(
50998            p_application_id           => p_application_id
50999          , p_ae_header_id             => l_ae_header_id 
51000 , p_source_15 => p_source_15
51001 , p_source_15_meaning => p_source_15_meaning
51002 , p_source_20 => p_source_20
51003 , p_source_21 => p_source_21
51004 , p_source_22 => p_source_22
51005 , p_source_22_meaning => p_source_22_meaning
51006 , p_source_23 => p_source_23
51007          , x_transaction_coa_id       => l_adr_transaction_coa_id
51008          , x_accounting_coa_id        => l_adr_accounting_coa_id
51009          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51010          , x_flex_value_set_id        => l_adr_flex_value_set_id
51011          , x_value_type_code          => l_adr_value_type_code
51012          , x_value_combination_id     => l_adr_value_combination_id
51013          , x_value_segment_code       => l_adr_value_segment_code
51014          , p_side                     => 'NA'
51015          , p_override_seg_flag        => 'Y'
51016    );
51017 
51018    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51019 
51020       xla_ae_lines_pkg.set_segment(
51021           p_to_segment_code         => 'GL_ACCOUNT'
51025         , p_value_type_code         => l_adr_value_type_code
51022         , p_segment_value           => l_segment
51023         , p_from_segment_code       => l_adr_value_segment_code
51024         , p_from_combination_id     => l_adr_value_combination_id
51026         , p_transaction_coa_id      => l_adr_transaction_coa_id
51027         , p_accounting_coa_id       => l_adr_accounting_coa_id
51028         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51029         , p_flex_value_set_id       => l_adr_flex_value_set_id
51030         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51031         , p_adr_type_code           => 'S'
51032         , p_component_type          => l_component_type
51033         , p_component_code          => l_component_code
51034         , p_component_type_code     => l_component_type_code
51035         , p_component_appl_id       => l_component_appl_id
51036         , p_amb_context_code        => l_amb_context_code
51037         , p_entity_code             => 'AP_INVOICES'
51038         , p_event_class_code        => 'CREDIT MEMOS'
51039         , p_side                    => 'NA'
51040         );
51041 
51042   END IF;
51043 
51044    l_segment := AcctDerRule_23(
51045            p_application_id           => p_application_id
51046          , p_ae_header_id             => l_ae_header_id 
51047 , p_source_15 => p_source_15
51048 , p_source_15_meaning => p_source_15_meaning
51049 , p_source_22 => p_source_22
51050 , p_source_22_meaning => p_source_22_meaning
51051 , p_source_30 => p_source_30
51052          , x_transaction_coa_id       => l_adr_transaction_coa_id
51053          , x_accounting_coa_id        => l_adr_accounting_coa_id
51054          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51055          , x_flex_value_set_id        => l_adr_flex_value_set_id
51056          , x_value_type_code          => l_adr_value_type_code
51057          , x_value_combination_id     => l_adr_value_combination_id
51058          , x_value_segment_code       => l_adr_value_segment_code
51059          , p_side                     => 'NA'
51060          , p_override_seg_flag        => 'Y'
51061    );
51062 
51063    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51064 
51065       xla_ae_lines_pkg.set_segment(
51066           p_to_segment_code         => 'GL_BALANCING'
51067         , p_segment_value           => l_segment
51068         , p_from_segment_code       => l_adr_value_segment_code
51069         , p_from_combination_id     => l_adr_value_combination_id
51070         , p_value_type_code         => l_adr_value_type_code
51071         , p_transaction_coa_id      => l_adr_transaction_coa_id
51072         , p_accounting_coa_id       => l_adr_accounting_coa_id
51073         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51074         , p_flex_value_set_id       => l_adr_flex_value_set_id
51075         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
51076         , p_adr_type_code           => 'S'
51077         , p_component_type          => l_component_type
51078         , p_component_code          => l_component_code
51079         , p_component_type_code     => l_component_type_code
51080         , p_component_appl_id       => l_component_appl_id
51081         , p_amb_context_code        => l_amb_context_code
51082         , p_entity_code             => 'AP_INVOICES'
51083         , p_event_class_code        => 'CREDIT MEMOS'
51084         , p_side                    => 'NA'
51085         );
51086 
51087   END IF;
51088 
51089    --
51090    --
51091    END IF;
51092    --
51093    -- Bug 4922099
51094    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51095           (NVL(l_enc_upg_option, 'N') = 'O')
51096         ) AND
51097         (l_bflow_method_code = 'PRIOR_ENTRY')
51098       )
51099    THEN
51100       IF
51101       --
51102       1 = 2
51103       --
51104       THEN
51105       xla_accounting_err_pkg.build_message
51106                                     (p_appli_s_name            => 'XLA'
51107                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51108                                     ,p_token_1                 => 'LINE_NUMBER'
51109                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51110                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51111                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51112                                                                              l_component_type
51113                                                                             ,l_component_code
51114                                                                             ,l_component_type_code
51115                                                                             ,l_component_appl_id
51116                                                                             ,l_amb_context_code
51117                                                                             ,l_entity_code
51118                                                                             ,l_event_class_code
51119                                                                            )
51120                                     ,p_token_3                 => 'OWNER'
51121                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51122                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51126                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51123                                                                           ,p_lookup_code    => l_component_type_code
51124                                                                          )
51125                                     ,p_token_4                 => 'PRODUCT_NAME'
51127                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51128                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51129                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51130                                     ,p_ae_header_id            =>  NULL
51131                                        );
51132 
51133         IF (C_LEVEL_ERROR>= g_log_level) THEN
51134                  trace
51135                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51136                       ,p_level    => C_LEVEL_ERROR
51137                       ,p_module   => l_log_module);
51138         END IF;
51139       END IF;
51140    END IF;
51141    --
51142    --
51143    ------------------------------------------------------------------------------------------------
51144    -- 4219869 Business Flow
51145    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51146    -- Prior Entry.  Currently, the following code is always generated.
51147    ------------------------------------------------------------------------------------------------
51148    XLA_AE_LINES_PKG.ValidateCurrentLine;
51149 
51150    ------------------------------------------------------------------------------------
51151    -- 4219869 Business Flow
51152    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51153    ------------------------------------------------------------------------------------
51154    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51155 
51156    ----------------------------------------------------------------------------------
51157    -- 4219869 Business Flow
51158    -- Update journal entry status -- Need to generate this within IF <condition>
51159    ----------------------------------------------------------------------------------
51160    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51161          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51162          ,p_balance_type_code => l_balance_type_code
51163          );
51164 
51165    -------------------------------------------------------------------------------------------
51166    -- 4262811 - Generate the Accrual Reversal lines
51167    -------------------------------------------------------------------------------------------
51168    BEGIN
51169       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51170                               (g_array_event(p_event_id).array_value_num('header_index'));
51171       IF l_acc_rev_flag IS NULL THEN
51172          l_acc_rev_flag := 'N';
51173       END IF;
51174    EXCEPTION
51175       WHEN OTHERS THEN
51176          l_acc_rev_flag := 'N';
51177    END;
51178    --
51179    IF (l_acc_rev_flag = 'Y') THEN
51180 
51181        -- 4645092  ------------------------------------------------------------------------------
51182        -- To allow MPA report to determine if it should generate report process
51183        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51184        ------------------------------------------------------------------------------------------
51185 
51186        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51187        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51188    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51189    -- call ADRs
51190    -- Bug 4922099
51191    --
51192    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51193         (NVL(l_actual_upg_option, 'N') = 'O') OR
51194         (NVL(l_enc_upg_option, 'N') = 'O')
51195       )
51196    THEN
51197    NULL;
51198    --
51199    --
51200    
51201   l_ccid := AcctDerRule_30(
51202            p_application_id           => p_application_id
51203          , p_ae_header_id             => l_ae_header_id 
51204 , p_source_15 => p_source_15
51205 , p_source_15_meaning => p_source_15_meaning
51206 , p_source_20 => p_source_20
51207 , p_source_21 => p_source_21
51208 , p_source_22 => p_source_22
51209 , p_source_22_meaning => p_source_22_meaning
51210 , p_source_23 => p_source_23
51211 , p_source_30 => p_source_30
51212 , p_source_47 => p_source_47
51213 , p_source_47_meaning => p_source_47_meaning
51214          , x_transaction_coa_id       => l_adr_transaction_coa_id
51215          , x_accounting_coa_id        => l_adr_accounting_coa_id
51216          , x_value_type_code          => l_adr_value_type_code
51217          , p_side                     => 'NA'
51218    );
51219 
51220    xla_ae_lines_pkg.set_ccid(
51221     p_code_combination_id          => l_ccid
51222   , p_value_type_code              => l_adr_value_type_code
51223   , p_transaction_coa_id           => l_adr_transaction_coa_id
51224   , p_accounting_coa_id            => l_adr_accounting_coa_id
51225   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
51226   , p_adr_type_code                => 'S'
51227   , p_component_type               => l_component_type
51228   , p_component_code               => l_component_code
51232   , p_side                         => 'NA'
51229   , p_component_type_code          => l_component_type_code
51230   , p_component_appl_id            => l_component_appl_id
51231   , p_amb_context_code             => l_amb_context_code
51233   );
51234 
51235 
51236    l_segment := AcctDerRule_8(
51237            p_application_id           => p_application_id
51238          , p_ae_header_id             => l_ae_header_id 
51239 , p_source_15 => p_source_15
51240 , p_source_15_meaning => p_source_15_meaning
51241 , p_source_20 => p_source_20
51242 , p_source_21 => p_source_21
51243 , p_source_22 => p_source_22
51244 , p_source_22_meaning => p_source_22_meaning
51245 , p_source_23 => p_source_23
51246          , x_transaction_coa_id       => l_adr_transaction_coa_id
51247          , x_accounting_coa_id        => l_adr_accounting_coa_id
51248          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51249          , x_flex_value_set_id        => l_adr_flex_value_set_id
51250          , x_value_type_code          => l_adr_value_type_code
51251          , x_value_combination_id     => l_adr_value_combination_id
51252          , x_value_segment_code       => l_adr_value_segment_code
51253          , p_side                     => 'NA'
51254          , p_override_seg_flag        => 'Y'
51255    );
51256 
51257    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51258 
51259       xla_ae_lines_pkg.set_segment(
51260           p_to_segment_code         => 'GL_ACCOUNT'
51261         , p_segment_value           => l_segment
51262         , p_from_segment_code       => l_adr_value_segment_code
51263         , p_from_combination_id     => l_adr_value_combination_id
51264         , p_value_type_code         => l_adr_value_type_code
51265         , p_transaction_coa_id      => l_adr_transaction_coa_id
51266         , p_accounting_coa_id       => l_adr_accounting_coa_id
51267         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51268         , p_flex_value_set_id       => l_adr_flex_value_set_id
51269         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51270         , p_adr_type_code           => 'S'
51271         , p_component_type          => l_component_type
51272         , p_component_code          => l_component_code
51273         , p_component_type_code     => l_component_type_code
51274         , p_component_appl_id       => l_component_appl_id
51275         , p_amb_context_code        => l_amb_context_code
51276         , p_entity_code             => 'AP_INVOICES'
51277         , p_event_class_code        => 'CREDIT MEMOS'
51278         , p_side                    => 'NA'
51279         );
51280 
51281   END IF;
51282 
51283    l_segment := AcctDerRule_23(
51284            p_application_id           => p_application_id
51285          , p_ae_header_id             => l_ae_header_id 
51286 , p_source_15 => p_source_15
51287 , p_source_15_meaning => p_source_15_meaning
51288 , p_source_22 => p_source_22
51289 , p_source_22_meaning => p_source_22_meaning
51290 , p_source_30 => p_source_30
51291          , x_transaction_coa_id       => l_adr_transaction_coa_id
51292          , x_accounting_coa_id        => l_adr_accounting_coa_id
51293          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51294          , x_flex_value_set_id        => l_adr_flex_value_set_id
51295          , x_value_type_code          => l_adr_value_type_code
51296          , x_value_combination_id     => l_adr_value_combination_id
51297          , x_value_segment_code       => l_adr_value_segment_code
51298          , p_side                     => 'NA'
51299          , p_override_seg_flag        => 'Y'
51300    );
51301 
51302    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51303 
51304       xla_ae_lines_pkg.set_segment(
51305           p_to_segment_code         => 'GL_BALANCING'
51306         , p_segment_value           => l_segment
51307         , p_from_segment_code       => l_adr_value_segment_code
51308         , p_from_combination_id     => l_adr_value_combination_id
51309         , p_value_type_code         => l_adr_value_type_code
51310         , p_transaction_coa_id      => l_adr_transaction_coa_id
51311         , p_accounting_coa_id       => l_adr_accounting_coa_id
51312         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51313         , p_flex_value_set_id       => l_adr_flex_value_set_id
51314         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
51315         , p_adr_type_code           => 'S'
51316         , p_component_type          => l_component_type
51317         , p_component_code          => l_component_code
51318         , p_component_type_code     => l_component_type_code
51319         , p_component_appl_id       => l_component_appl_id
51320         , p_amb_context_code        => l_amb_context_code
51321         , p_entity_code             => 'AP_INVOICES'
51322         , p_event_class_code        => 'CREDIT MEMOS'
51323         , p_side                    => 'NA'
51324         );
51325 
51326   END IF;
51327 
51328    --
51329    --
51330    END IF;
51331 
51332        --
51333        -- Update the line information that should be overwritten
51334        --
51335        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51336                                          p_header_num   => 1);
51337        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51338 
51339        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51340 
51341        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51345       --
51342           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51343        END IF;
51344 
51346       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51347       --
51348       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51349           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51350       ELSE
51351           ---------------------------------------------------------------------------------------------------
51352           -- 4262811a Switch Sign
51353           ---------------------------------------------------------------------------------------------------
51354           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51355           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51356                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51357           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51358                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51359           -- 5132302
51360           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51361                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51362 
51363       END IF;
51364 
51365       -- 4955764
51366       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51367       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51368 
51369 
51370       XLA_AE_LINES_PKG.ValidateCurrentLine;
51371       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51372 
51373       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51374                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51375                ,p_balance_type_code => l_balance_type_code);
51376 
51377    END IF;
51378 
51379    -----------------------------------------------------------------------------------------
51380    -- 4262811 Multiperiod Accounting
51381    -----------------------------------------------------------------------------------------
51382      -- No MPA option is assigned.
51383 
51384 
51385 END IF;
51386 END IF;
51387 --
51388 
51389 --
51390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51391    trace
51392       (p_msg      => 'END of AcctLineType_105'
51393       ,p_level    => C_LEVEL_PROCEDURE
51394       ,p_module   => l_log_module);
51395 END IF;
51396 --
51397 EXCEPTION
51398   WHEN xla_exceptions_pkg.application_exception THEN
51399       RAISE;
51400   WHEN OTHERS THEN
51401        xla_exceptions_pkg.raise_message
51402            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_105');
51403 END AcctLineType_105;
51404 --
51405 
51406 ---------------------------------------
51407 --
51408 -- PRIVATE FUNCTION
51409 --         AcctLineType_106
51410 --
51411 ---------------------------------------
51412 PROCEDURE AcctLineType_106 (
51413   p_application_id        IN NUMBER
51414  ,p_event_id              IN NUMBER
51415  ,p_calculate_acctd_flag  IN VARCHAR2
51416  ,p_calculate_g_l_flag    IN VARCHAR2
51417  ,p_actual_flag           IN OUT VARCHAR2
51418  ,p_balance_type_code     OUT VARCHAR2
51419  ,p_gain_or_loss_ref      OUT VARCHAR2
51420  
51421 --Invoice Distribution Description
51422  , p_source_1            IN VARCHAR2
51423 --Automatic Offsets Value
51424  , p_source_15            IN VARCHAR2
51425  , p_source_15_meaning    IN VARCHAR2
51426 --Purchase Order Rate Variance Gain Account
51427  , p_source_20            IN NUMBER
51428 --Invoice Distribution Ledger Amount
51429  , p_source_21            IN NUMBER
51430 --Destination Type of the PO Distribution
51431  , p_source_22            IN VARCHAR2
51432  , p_source_22_meaning    IN VARCHAR2
51433 --Purchase Order Rate Variance Loss Account
51434  , p_source_23            IN NUMBER
51435 --Invoice Distribution Account
51436  , p_source_30            IN NUMBER
51437 --Invoice Distribution Type
51438  , p_source_33            IN VARCHAR2
51439  , p_source_33_meaning    IN VARCHAR2
51440 --Automatic Offsets Flag
51441  , p_source_47            IN VARCHAR2
51442  , p_source_47_meaning    IN VARCHAR2
51443 --Accounting Reversal Indicator
51444  , p_source_52            IN VARCHAR2
51445 --Distribution Link Type
51446  , p_source_54            IN VARCHAR2
51447 --Allocation to Main Distribution Identifier
51448  , p_source_56            IN NUMBER
51449 --Invoice Identifier
51450  , p_source_57            IN NUMBER
51451 --Invoice Distribution Identifier
51452  , p_source_63            IN NUMBER
51453 --Payables Encumbrance Upgrade Credit Account
51454  , p_source_64            IN NUMBER
51455 --Payables Encumbrance Upgrade Credit Amount
51456  , p_source_65            IN NUMBER
51457 --Invoice Currency Code
51458  , p_source_66            IN VARCHAR2
51459 --Payables Encumbrance Upgrade Credit Base Amount
51460  , p_source_67            IN NUMBER
51461 --Payables Encumbrance Upgrade Debit Account
51462  , p_source_68            IN NUMBER
51463 --Payables Encumbrance Upgrade Debit Amount
51467 --Payables Encumbrance Upgrade Option
51464  , p_source_69            IN NUMBER
51465 --Payables Encumbrance Upgrade Debit Base Amount
51466  , p_source_70            IN NUMBER
51468  , p_source_71            IN VARCHAR2
51469 --Invoice Distribution Amount
51470  , p_source_72            IN NUMBER
51471 --Deferred Accounting End Date
51472  , p_source_76            IN DATE
51473 --Deferred Accounting Option
51474  , p_source_77            IN VARCHAR2
51475 --Deferred Accounting Start Date
51476  , p_source_78            IN DATE
51477 --Override Accounted Amount Indicator
51478  , p_source_79            IN VARCHAR2
51479  , p_source_79_meaning    IN VARCHAR2
51480 --Invoice Supplier Identifier
51481  , p_source_80            IN NUMBER
51482 --Invoice Supplier Site Identifier
51483  , p_source_81            IN NUMBER
51484 --Third Party Type
51485  , p_source_82            IN VARCHAR2
51486 --Parent Reversal Identifier
51487  , p_source_83            IN NUMBER
51488 --Invoice Distribution Tax Line Identifier
51489  , p_source_85            IN NUMBER
51490 --Invoice Distribution Tax Distribution Identifier from Tax
51491  , p_source_86            IN NUMBER
51492 --Invoice Distribution Summary Tax Line Identifier
51493  , p_source_87            IN NUMBER
51494 --Payables Upgrade Credit Encumbrance Type Identifier
51495  , p_source_88            IN NUMBER
51496 --Payables Upgrade Debit Encumbrance Type Identifier
51497  , p_source_89            IN NUMBER
51498 --Business Flow Accounts Payable Application Identifier
51499  , p_source_90            IN NUMBER
51500 --Business Flow Invoice Distribution Type
51501  , p_source_91            IN VARCHAR2
51502 --Business Flow Invoice Entity Code
51503  , p_source_92            IN VARCHAR2
51504 --Business Flow Invoice Distribution Identifier
51505  , p_source_93            IN NUMBER
51506 --Business Flow Invoice Identifier
51507  , p_source_94            IN NUMBER
51508 --Accrue on Receipt Option
51509  , p_source_95            IN VARCHAR2
51510  , p_source_95_meaning    IN VARCHAR2
51511 --Invoice Exchange Date
51512  , p_source_136            IN DATE
51513 --Invoice Exchange Rate
51514  , p_source_137            IN NUMBER
51515 --Invoice Exchange Rate Type
51516  , p_source_138            IN VARCHAR2
51517 )
51518 IS
51519 
51520 l_component_type              VARCHAR2(80);
51521 l_component_code              VARCHAR2(30);
51522 l_component_type_code         VARCHAR2(1);
51523 l_component_appl_id           INTEGER;
51524 l_amb_context_code            VARCHAR2(30);
51525 l_entity_code                 VARCHAR2(30);
51526 l_event_class_code            VARCHAR2(30);
51527 l_ae_header_id                NUMBER;
51528 l_event_type_code             VARCHAR2(30);
51529 l_line_definition_code        VARCHAR2(30);
51530 l_line_definition_owner_code  VARCHAR2(1);
51531 --
51532 -- adr variables
51533 l_segment                     VARCHAR2(30);
51534 l_ccid                        NUMBER;
51535 l_adr_transaction_coa_id      NUMBER;
51536 l_adr_accounting_coa_id       NUMBER;
51537 l_adr_flexfield_segment_code  VARCHAR2(30);
51538 l_adr_flex_value_set_id       NUMBER;
51539 l_adr_value_type_code         VARCHAR2(30);
51540 l_adr_value_combination_id    NUMBER;
51541 l_adr_value_segment_code      VARCHAR2(30);
51542 
51543 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51544 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51545 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51546 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51547 
51548 -- 4262811 Variables ------------------------------------------------------------------------------------------
51549 l_entered_amt_idx             NUMBER;
51550 l_accted_amt_idx              NUMBER;
51551 l_acc_rev_flag                VARCHAR2(1);
51552 l_accrual_line_num            NUMBER;
51553 l_tmp_amt                     NUMBER;
51554 l_acc_rev_natural_side_code   VARCHAR2(1);
51555 
51556 l_num_entries                 NUMBER;
51557 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51558 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51559 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51560 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51561 l_recog_line_1                NUMBER;
51562 l_recog_line_2                NUMBER;
51563 
51564 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51565 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51566 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51567 
51568 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51569 
51570 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51571 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51572 
51573 ---------------------------------------------------------------------------------------------------------------
51574 
51575 
51576 --
51577 -- bulk performance
51578 --
51579 l_balance_type_code           VARCHAR2(1);
51580 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51581 l_log_module                  VARCHAR2(240);
51582 
51583 --
51584 -- Upgrade strategy
51585 --
51586 l_actual_upg_option           VARCHAR2(1);
51587 l_enc_upg_option           VARCHAR2(1);
51588 
51589 --
51590 BEGIN
51591 --
51595 --
51592 IF g_log_enabled THEN
51593       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
51594 END IF;
51596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51597 
51598       trace
51599          (p_msg      => 'BEGIN of AcctLineType_106'
51600          ,p_level    => C_LEVEL_PROCEDURE
51601          ,p_module   => l_log_module);
51602 
51603 END IF;
51604 --
51605 l_component_type             := 'AMB_JLT';
51606 l_component_code             := 'AP_EX_RATE_VAR_DM';
51607 l_component_type_code        := 'S';
51608 l_component_appl_id          :=  200;
51609 l_amb_context_code           := 'DEFAULT';
51610 l_entity_code                := 'AP_INVOICES';
51611 l_event_class_code           := 'DEBIT MEMOS';
51612 l_event_type_code            := 'DEBIT MEMOS_ALL';
51613 l_line_definition_owner_code := 'S';
51614 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
51615 --
51616 l_balance_type_code          := 'A';
51617 l_segment                     := NULL;
51618 l_ccid                        := NULL;
51619 l_adr_transaction_coa_id      := NULL;
51620 l_adr_accounting_coa_id       := NULL;
51621 l_adr_flexfield_segment_code  := NULL;
51622 l_adr_flex_value_set_id       := NULL;
51623 l_adr_value_type_code         := NULL;
51624 l_adr_value_combination_id    := NULL;
51625 l_adr_value_segment_code      := NULL;
51626 
51627 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51628 l_bflow_class_code           := '';    -- 4219869 Business Flow
51629 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51630 l_budgetary_control_flag     := 'N';
51631 
51632 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51633 l_bflow_applied_to_amt       := NULL; -- 5132302
51634 l_entered_amt_idx            := NULL;          -- 4262811
51635 l_accted_amt_idx             := NULL;          -- 4262811
51636 l_acc_rev_flag               := NULL;          -- 4262811
51637 l_accrual_line_num           := NULL;          -- 4262811
51638 l_tmp_amt                    := NULL;          -- 4262811
51639 --
51640 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
51641             (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
51642                return;
51643   END IF;
51644   
51645 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51646     l_balance_type_code <> 'B' THEN
51647 IF NVL(p_source_33,'
51648 ') =  'ERV' AND 
51649 NVL(p_source_95,'
51650 ') =  'Y'
51651  THEN 
51652 
51653    --
51654    XLA_AE_LINES_PKG.SetNewLine;
51655 
51656    p_balance_type_code          := l_balance_type_code;
51657    -- set the flag so later we will know whether the gain loss line needs to be created
51658    
51659    IF(l_balance_type_code = 'A' ) THEN
51660      p_actual_flag :='G';
51661    END IF;
51662 
51663    --
51664    -- bulk performance
51665    --
51666    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51667                                       p_header_num   => 0); -- 4262811
51668    --
51669    -- set accounting line options
51670    --
51671    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51672            p_natural_side_code          => 'D'
51673          , p_gain_or_loss_flag          => 'Y'
51674          , p_gl_transfer_mode_code      => 'S'
51675          , p_acct_entry_type_code       => 'A'
51676          , p_switch_side_flag           => 'Y'
51677          , p_merge_duplicate_code       => 'A'
51678          );
51679    --
51680    l_acc_rev_natural_side_code := 'C';  -- 4262811
51681    -- 
51682    --
51683    -- set accounting line type info
51684    --
51685    xla_ae_lines_pkg.SetAcctLineType
51686       (p_component_type             => l_component_type
51687       ,p_event_type_code            => l_event_type_code
51688       ,p_line_definition_owner_code => l_line_definition_owner_code
51689       ,p_line_definition_code       => l_line_definition_code
51690       ,p_accounting_line_code       => l_component_code
51691       ,p_accounting_line_type_code  => l_component_type_code
51692       ,p_accounting_line_appl_id    => l_component_appl_id
51693       ,p_amb_context_code           => l_amb_context_code
51694       ,p_entity_code                => l_entity_code
51695       ,p_event_class_code           => l_event_class_code);
51696    --
51697    -- set accounting class
51698    --
51699    xla_ae_lines_pkg.SetAcctClass(
51700            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
51701          , p_ae_header_id           => l_ae_header_id
51702          );
51703 
51704    --
51705    -- set rounding class
51706    --
51707    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51708                       'EXCHANGE_RATE_VARIANCE';
51709 
51710    --
51711    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51712    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51713    --
51714    -- bulk performance
51715    --
51716    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51717 
51721    -- 4955764
51718    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51719       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51720 
51722    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51723       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51724 
51725    -- 4458381 Public Sector Enh
51726    
51727    --
51728    -- set accounting attributes for the line type
51729    --
51730    l_entered_amt_idx := 23;
51731    l_accted_amt_idx  := 28;
51732    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51733    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51734    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
51735    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
51736    l_rec_acct_attrs.array_num_value(2)  := 
51737 xla_ae_sources_pkg.GetSystemSourceNum(
51738    p_source_code           => 'XLA_EVENT_APPL_ID'
51739  , p_source_type_code      => 'Y'
51740  , p_source_application_id =>  602
51741 );
51742    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
51743    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
51744    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
51745    l_rec_acct_attrs.array_char_value(4)  := 
51746 xla_ae_sources_pkg.GetSystemSourceChar(
51747    p_source_code           => 'XLA_ENTITY_CODE'
51748  , p_source_type_code      => 'Y'
51749  , p_source_application_id =>  602
51750 );
51751    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
51752    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
51753    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
51754    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
51755    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
51756    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
51757    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51758    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
51759    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
51760    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
51761    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
51762    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
51763    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51764    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
51765    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
51766    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
51767    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
51768    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
51769    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
51770    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
51771    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
51772    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
51773    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
51774    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
51775    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
51776    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
51777    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
51778    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
51779    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
51780    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
51781    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
51782    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
51783    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
51784    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
51785    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
51786    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
51787    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
51788    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
51789    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
51790    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
51791    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
51792    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
51793    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
51794    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
51795    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
51796    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
51797    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
51798    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
51799    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
51800    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
51801    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
51802    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
51803    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
51804    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
51805    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
51806    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
51807    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
51808    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
51809    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
51813    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
51810    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
51811    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
51812    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
51814    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
51815    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
51816    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
51817    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
51818    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
51819    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
51820    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
51821    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
51822    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
51823    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
51824    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
51825    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
51826    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
51827 
51828    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51829    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51830 
51831    ---------------------------------------------------------------------------------------------------------------
51832    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51833    ---------------------------------------------------------------------------------------------------------------
51834    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51835 
51836    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51837    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51838 
51839    IF xla_accounting_cache_pkg.GetValueChar
51840          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51841          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51842    AND l_bflow_method_code = 'PRIOR_ENTRY'
51843 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51844    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51845          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51846        )
51847    THEN
51848          xla_ae_lines_pkg.BflowUpgEntry
51849            (p_business_method_code    => l_bflow_method_code
51850            ,p_business_class_code     => l_bflow_class_code
51851            ,p_balance_type            => l_balance_type_code);
51852    ELSE
51853       NULL;
51854 -- No business flow processing for business flow method of NONE.
51855    END IF;
51856 
51857    --
51858    -- call analytical criteria
51859    --
51860    
51861    --
51862    -- call description
51863    --
51864    
51865 xla_ae_lines_pkg.SetLineDescription(
51866    p_ae_header_id => l_ae_header_id
51867   ,p_description  => Description_1 (
51868      p_application_id         => p_application_id
51869    , p_ae_header_id           => l_ae_header_id 
51870 , p_source_1 => p_source_1
51871    )
51872 );
51873 
51874 
51875    --
51876    -- call ADRs
51877    -- Bug 4922099
51878    --
51879    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51880         (NVL(l_actual_upg_option, 'N') = 'O') OR
51881         (NVL(l_enc_upg_option, 'N') = 'O')
51882       )
51883    THEN
51884    NULL;
51885    --
51886    --
51887    
51888   l_ccid := AcctDerRule_30(
51889            p_application_id           => p_application_id
51890          , p_ae_header_id             => l_ae_header_id 
51891 , p_source_15 => p_source_15
51892 , p_source_15_meaning => p_source_15_meaning
51893 , p_source_20 => p_source_20
51894 , p_source_21 => p_source_21
51895 , p_source_22 => p_source_22
51896 , p_source_22_meaning => p_source_22_meaning
51897 , p_source_23 => p_source_23
51898 , p_source_30 => p_source_30
51899 , p_source_47 => p_source_47
51900 , p_source_47_meaning => p_source_47_meaning
51901          , x_transaction_coa_id       => l_adr_transaction_coa_id
51902          , x_accounting_coa_id        => l_adr_accounting_coa_id
51903          , x_value_type_code          => l_adr_value_type_code
51904          , p_side                     => 'NA'
51905    );
51906 
51907    xla_ae_lines_pkg.set_ccid(
51908     p_code_combination_id          => l_ccid
51909   , p_value_type_code              => l_adr_value_type_code
51910   , p_transaction_coa_id           => l_adr_transaction_coa_id
51911   , p_accounting_coa_id            => l_adr_accounting_coa_id
51912   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
51913   , p_adr_type_code                => 'S'
51914   , p_component_type               => l_component_type
51915   , p_component_code               => l_component_code
51916   , p_component_type_code          => l_component_type_code
51917   , p_component_appl_id            => l_component_appl_id
51918   , p_amb_context_code             => l_amb_context_code
51919   , p_side                         => 'NA'
51920   );
51921 
51922 
51923    l_segment := AcctDerRule_8(
51924            p_application_id           => p_application_id
51925          , p_ae_header_id             => l_ae_header_id 
51926 , p_source_15 => p_source_15
51927 , p_source_15_meaning => p_source_15_meaning
51931 , p_source_22_meaning => p_source_22_meaning
51928 , p_source_20 => p_source_20
51929 , p_source_21 => p_source_21
51930 , p_source_22 => p_source_22
51932 , p_source_23 => p_source_23
51933          , x_transaction_coa_id       => l_adr_transaction_coa_id
51934          , x_accounting_coa_id        => l_adr_accounting_coa_id
51935          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51936          , x_flex_value_set_id        => l_adr_flex_value_set_id
51937          , x_value_type_code          => l_adr_value_type_code
51938          , x_value_combination_id     => l_adr_value_combination_id
51939          , x_value_segment_code       => l_adr_value_segment_code
51940          , p_side                     => 'NA'
51941          , p_override_seg_flag        => 'Y'
51942    );
51943 
51944    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51945 
51946       xla_ae_lines_pkg.set_segment(
51947           p_to_segment_code         => 'GL_ACCOUNT'
51948         , p_segment_value           => l_segment
51949         , p_from_segment_code       => l_adr_value_segment_code
51950         , p_from_combination_id     => l_adr_value_combination_id
51951         , p_value_type_code         => l_adr_value_type_code
51952         , p_transaction_coa_id      => l_adr_transaction_coa_id
51953         , p_accounting_coa_id       => l_adr_accounting_coa_id
51954         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51955         , p_flex_value_set_id       => l_adr_flex_value_set_id
51956         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51957         , p_adr_type_code           => 'S'
51958         , p_component_type          => l_component_type
51959         , p_component_code          => l_component_code
51960         , p_component_type_code     => l_component_type_code
51961         , p_component_appl_id       => l_component_appl_id
51962         , p_amb_context_code        => l_amb_context_code
51963         , p_entity_code             => 'AP_INVOICES'
51964         , p_event_class_code        => 'DEBIT MEMOS'
51965         , p_side                    => 'NA'
51966         );
51967 
51968   END IF;
51969 
51970    l_segment := AcctDerRule_23(
51971            p_application_id           => p_application_id
51972          , p_ae_header_id             => l_ae_header_id 
51973 , p_source_15 => p_source_15
51974 , p_source_15_meaning => p_source_15_meaning
51975 , p_source_22 => p_source_22
51976 , p_source_22_meaning => p_source_22_meaning
51977 , p_source_30 => p_source_30
51978          , x_transaction_coa_id       => l_adr_transaction_coa_id
51979          , x_accounting_coa_id        => l_adr_accounting_coa_id
51980          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51981          , x_flex_value_set_id        => l_adr_flex_value_set_id
51982          , x_value_type_code          => l_adr_value_type_code
51983          , x_value_combination_id     => l_adr_value_combination_id
51984          , x_value_segment_code       => l_adr_value_segment_code
51985          , p_side                     => 'NA'
51986          , p_override_seg_flag        => 'Y'
51987    );
51988 
51989    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51990 
51991       xla_ae_lines_pkg.set_segment(
51992           p_to_segment_code         => 'GL_BALANCING'
51993         , p_segment_value           => l_segment
51994         , p_from_segment_code       => l_adr_value_segment_code
51995         , p_from_combination_id     => l_adr_value_combination_id
51996         , p_value_type_code         => l_adr_value_type_code
51997         , p_transaction_coa_id      => l_adr_transaction_coa_id
51998         , p_accounting_coa_id       => l_adr_accounting_coa_id
51999         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52000         , p_flex_value_set_id       => l_adr_flex_value_set_id
52001         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52002         , p_adr_type_code           => 'S'
52003         , p_component_type          => l_component_type
52004         , p_component_code          => l_component_code
52005         , p_component_type_code     => l_component_type_code
52006         , p_component_appl_id       => l_component_appl_id
52007         , p_amb_context_code        => l_amb_context_code
52008         , p_entity_code             => 'AP_INVOICES'
52009         , p_event_class_code        => 'DEBIT MEMOS'
52010         , p_side                    => 'NA'
52011         );
52012 
52013   END IF;
52014 
52015    --
52016    --
52017    END IF;
52018    --
52019    -- Bug 4922099
52020    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52021           (NVL(l_enc_upg_option, 'N') = 'O')
52022         ) AND
52023         (l_bflow_method_code = 'PRIOR_ENTRY')
52024       )
52025    THEN
52026       IF
52027       --
52028       1 = 2
52029       --
52030       THEN
52031       xla_accounting_err_pkg.build_message
52032                                     (p_appli_s_name            => 'XLA'
52033                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52034                                     ,p_token_1                 => 'LINE_NUMBER'
52035                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52036                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52037                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52038                                                                              l_component_type
52042                                                                             ,l_amb_context_code
52039                                                                             ,l_component_code
52040                                                                             ,l_component_type_code
52041                                                                             ,l_component_appl_id
52043                                                                             ,l_entity_code
52044                                                                             ,l_event_class_code
52045                                                                            )
52046                                     ,p_token_3                 => 'OWNER'
52047                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52048                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52049                                                                           ,p_lookup_code    => l_component_type_code
52050                                                                          )
52051                                     ,p_token_4                 => 'PRODUCT_NAME'
52052                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52053                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52054                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52055                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52056                                     ,p_ae_header_id            =>  NULL
52057                                        );
52058 
52059         IF (C_LEVEL_ERROR>= g_log_level) THEN
52060                  trace
52061                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52062                       ,p_level    => C_LEVEL_ERROR
52063                       ,p_module   => l_log_module);
52064         END IF;
52065       END IF;
52066    END IF;
52067    --
52068    --
52069    ------------------------------------------------------------------------------------------------
52070    -- 4219869 Business Flow
52071    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52072    -- Prior Entry.  Currently, the following code is always generated.
52073    ------------------------------------------------------------------------------------------------
52074    XLA_AE_LINES_PKG.ValidateCurrentLine;
52075 
52076    ------------------------------------------------------------------------------------
52077    -- 4219869 Business Flow
52078    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52079    ------------------------------------------------------------------------------------
52080    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52081 
52082    ----------------------------------------------------------------------------------
52083    -- 4219869 Business Flow
52084    -- Update journal entry status -- Need to generate this within IF <condition>
52085    ----------------------------------------------------------------------------------
52086    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52087          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52088          ,p_balance_type_code => l_balance_type_code
52089          );
52090 
52091    -------------------------------------------------------------------------------------------
52092    -- 4262811 - Generate the Accrual Reversal lines
52093    -------------------------------------------------------------------------------------------
52094    BEGIN
52095       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52096                               (g_array_event(p_event_id).array_value_num('header_index'));
52097       IF l_acc_rev_flag IS NULL THEN
52098          l_acc_rev_flag := 'N';
52099       END IF;
52100    EXCEPTION
52101       WHEN OTHERS THEN
52102          l_acc_rev_flag := 'N';
52103    END;
52104    --
52105    IF (l_acc_rev_flag = 'Y') THEN
52106 
52107        -- 4645092  ------------------------------------------------------------------------------
52108        -- To allow MPA report to determine if it should generate report process
52109        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52110        ------------------------------------------------------------------------------------------
52111 
52112        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52113        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52114    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52115    -- call ADRs
52116    -- Bug 4922099
52117    --
52118    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52119         (NVL(l_actual_upg_option, 'N') = 'O') OR
52120         (NVL(l_enc_upg_option, 'N') = 'O')
52121       )
52122    THEN
52123    NULL;
52124    --
52125    --
52126    
52127   l_ccid := AcctDerRule_30(
52128            p_application_id           => p_application_id
52129          , p_ae_header_id             => l_ae_header_id 
52130 , p_source_15 => p_source_15
52131 , p_source_15_meaning => p_source_15_meaning
52132 , p_source_20 => p_source_20
52133 , p_source_21 => p_source_21
52134 , p_source_22 => p_source_22
52135 , p_source_22_meaning => p_source_22_meaning
52136 , p_source_23 => p_source_23
52137 , p_source_30 => p_source_30
52138 , p_source_47 => p_source_47
52139 , p_source_47_meaning => p_source_47_meaning
52140          , x_transaction_coa_id       => l_adr_transaction_coa_id
52144    );
52141          , x_accounting_coa_id        => l_adr_accounting_coa_id
52142          , x_value_type_code          => l_adr_value_type_code
52143          , p_side                     => 'NA'
52145 
52146    xla_ae_lines_pkg.set_ccid(
52147     p_code_combination_id          => l_ccid
52148   , p_value_type_code              => l_adr_value_type_code
52149   , p_transaction_coa_id           => l_adr_transaction_coa_id
52150   , p_accounting_coa_id            => l_adr_accounting_coa_id
52151   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52152   , p_adr_type_code                => 'S'
52153   , p_component_type               => l_component_type
52154   , p_component_code               => l_component_code
52155   , p_component_type_code          => l_component_type_code
52156   , p_component_appl_id            => l_component_appl_id
52157   , p_amb_context_code             => l_amb_context_code
52158   , p_side                         => 'NA'
52159   );
52160 
52161 
52162    l_segment := AcctDerRule_8(
52163            p_application_id           => p_application_id
52164          , p_ae_header_id             => l_ae_header_id 
52165 , p_source_15 => p_source_15
52166 , p_source_15_meaning => p_source_15_meaning
52167 , p_source_20 => p_source_20
52168 , p_source_21 => p_source_21
52169 , p_source_22 => p_source_22
52170 , p_source_22_meaning => p_source_22_meaning
52171 , p_source_23 => p_source_23
52172          , x_transaction_coa_id       => l_adr_transaction_coa_id
52173          , x_accounting_coa_id        => l_adr_accounting_coa_id
52174          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52175          , x_flex_value_set_id        => l_adr_flex_value_set_id
52176          , x_value_type_code          => l_adr_value_type_code
52177          , x_value_combination_id     => l_adr_value_combination_id
52178          , x_value_segment_code       => l_adr_value_segment_code
52179          , p_side                     => 'NA'
52180          , p_override_seg_flag        => 'Y'
52181    );
52182 
52183    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52184 
52185       xla_ae_lines_pkg.set_segment(
52186           p_to_segment_code         => 'GL_ACCOUNT'
52187         , p_segment_value           => l_segment
52188         , p_from_segment_code       => l_adr_value_segment_code
52189         , p_from_combination_id     => l_adr_value_combination_id
52190         , p_value_type_code         => l_adr_value_type_code
52191         , p_transaction_coa_id      => l_adr_transaction_coa_id
52192         , p_accounting_coa_id       => l_adr_accounting_coa_id
52193         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52194         , p_flex_value_set_id       => l_adr_flex_value_set_id
52195         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52196         , p_adr_type_code           => 'S'
52197         , p_component_type          => l_component_type
52198         , p_component_code          => l_component_code
52199         , p_component_type_code     => l_component_type_code
52200         , p_component_appl_id       => l_component_appl_id
52201         , p_amb_context_code        => l_amb_context_code
52202         , p_entity_code             => 'AP_INVOICES'
52203         , p_event_class_code        => 'DEBIT MEMOS'
52204         , p_side                    => 'NA'
52205         );
52206 
52207   END IF;
52208 
52209    l_segment := AcctDerRule_23(
52210            p_application_id           => p_application_id
52211          , p_ae_header_id             => l_ae_header_id 
52212 , p_source_15 => p_source_15
52213 , p_source_15_meaning => p_source_15_meaning
52214 , p_source_22 => p_source_22
52215 , p_source_22_meaning => p_source_22_meaning
52216 , p_source_30 => p_source_30
52217          , x_transaction_coa_id       => l_adr_transaction_coa_id
52218          , x_accounting_coa_id        => l_adr_accounting_coa_id
52219          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52220          , x_flex_value_set_id        => l_adr_flex_value_set_id
52221          , x_value_type_code          => l_adr_value_type_code
52222          , x_value_combination_id     => l_adr_value_combination_id
52223          , x_value_segment_code       => l_adr_value_segment_code
52224          , p_side                     => 'NA'
52225          , p_override_seg_flag        => 'Y'
52226    );
52227 
52228    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52229 
52230       xla_ae_lines_pkg.set_segment(
52231           p_to_segment_code         => 'GL_BALANCING'
52232         , p_segment_value           => l_segment
52233         , p_from_segment_code       => l_adr_value_segment_code
52234         , p_from_combination_id     => l_adr_value_combination_id
52235         , p_value_type_code         => l_adr_value_type_code
52236         , p_transaction_coa_id      => l_adr_transaction_coa_id
52237         , p_accounting_coa_id       => l_adr_accounting_coa_id
52238         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52239         , p_flex_value_set_id       => l_adr_flex_value_set_id
52240         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52241         , p_adr_type_code           => 'S'
52242         , p_component_type          => l_component_type
52243         , p_component_code          => l_component_code
52244         , p_component_type_code     => l_component_type_code
52245         , p_component_appl_id       => l_component_appl_id
52246         , p_amb_context_code        => l_amb_context_code
52250         );
52247         , p_entity_code             => 'AP_INVOICES'
52248         , p_event_class_code        => 'DEBIT MEMOS'
52249         , p_side                    => 'NA'
52251 
52252   END IF;
52253 
52254    --
52255    --
52256    END IF;
52257 
52258        --
52259        -- Update the line information that should be overwritten
52260        --
52261        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52262                                          p_header_num   => 1);
52263        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52264 
52265        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52266 
52267        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52268           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52269        END IF;
52270 
52271       --
52272       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52273       --
52274       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52275           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52276       ELSE
52277           ---------------------------------------------------------------------------------------------------
52278           -- 4262811a Switch Sign
52279           ---------------------------------------------------------------------------------------------------
52280           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52281           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52282                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52283           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52284                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52285           -- 5132302
52286           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52287                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52288 
52289       END IF;
52290 
52291       -- 4955764
52292       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52293       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52294 
52295 
52296       XLA_AE_LINES_PKG.ValidateCurrentLine;
52297       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52298 
52299       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52300                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52301                ,p_balance_type_code => l_balance_type_code);
52302 
52303    END IF;
52304 
52305    -----------------------------------------------------------------------------------------
52306    -- 4262811 Multiperiod Accounting
52307    -----------------------------------------------------------------------------------------
52308      -- No MPA option is assigned.
52309 
52310 
52311 END IF;
52312 END IF;
52313 --
52314 
52315 --
52316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52317    trace
52318       (p_msg      => 'END of AcctLineType_106'
52319       ,p_level    => C_LEVEL_PROCEDURE
52320       ,p_module   => l_log_module);
52321 END IF;
52322 --
52323 EXCEPTION
52324   WHEN xla_exceptions_pkg.application_exception THEN
52325       RAISE;
52326   WHEN OTHERS THEN
52327        xla_exceptions_pkg.raise_message
52328            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_106');
52329 END AcctLineType_106;
52330 --
52331 
52332 ---------------------------------------
52333 --
52334 -- PRIVATE FUNCTION
52335 --         AcctLineType_107
52336 --
52337 ---------------------------------------
52338 PROCEDURE AcctLineType_107 (
52339   p_application_id        IN NUMBER
52340  ,p_event_id              IN NUMBER
52341  ,p_calculate_acctd_flag  IN VARCHAR2
52342  ,p_calculate_g_l_flag    IN VARCHAR2
52343  ,p_actual_flag           IN OUT VARCHAR2
52344  ,p_balance_type_code     OUT VARCHAR2
52345  ,p_gain_or_loss_ref      OUT VARCHAR2
52346  
52347 --Invoice Distribution Description
52348  , p_source_1            IN VARCHAR2
52349 --Automatic Offsets Value
52350  , p_source_15            IN VARCHAR2
52351  , p_source_15_meaning    IN VARCHAR2
52352 --Purchase Order Rate Variance Gain Account
52353  , p_source_20            IN NUMBER
52354 --Invoice Distribution Ledger Amount
52355  , p_source_21            IN NUMBER
52356 --Destination Type of the PO Distribution
52357  , p_source_22            IN VARCHAR2
52358  , p_source_22_meaning    IN VARCHAR2
52359 --Purchase Order Rate Variance Loss Account
52360  , p_source_23            IN NUMBER
52361 --Invoice Distribution Account
52362  , p_source_30            IN NUMBER
52363 --Invoice Distribution Type
52364  , p_source_33            IN VARCHAR2
52365  , p_source_33_meaning    IN VARCHAR2
52366 --Automatic Offsets Flag
52367  , p_source_47            IN VARCHAR2
52368  , p_source_47_meaning    IN VARCHAR2
52369 --Accounting Reversal Indicator
52370  , p_source_52            IN VARCHAR2
52374  , p_source_56            IN NUMBER
52371 --Distribution Link Type
52372  , p_source_54            IN VARCHAR2
52373 --Allocation to Main Distribution Identifier
52375 --Invoice Identifier
52376  , p_source_57            IN NUMBER
52377 --Invoice Distribution Identifier
52378  , p_source_63            IN NUMBER
52379 --Payables Encumbrance Upgrade Credit Account
52380  , p_source_64            IN NUMBER
52381 --Payables Encumbrance Upgrade Credit Amount
52382  , p_source_65            IN NUMBER
52383 --Invoice Currency Code
52384  , p_source_66            IN VARCHAR2
52385 --Payables Encumbrance Upgrade Credit Base Amount
52386  , p_source_67            IN NUMBER
52387 --Payables Encumbrance Upgrade Debit Account
52388  , p_source_68            IN NUMBER
52389 --Payables Encumbrance Upgrade Debit Amount
52390  , p_source_69            IN NUMBER
52391 --Payables Encumbrance Upgrade Debit Base Amount
52392  , p_source_70            IN NUMBER
52393 --Payables Encumbrance Upgrade Option
52394  , p_source_71            IN VARCHAR2
52395 --Invoice Distribution Amount
52396  , p_source_72            IN NUMBER
52397 --Deferred Accounting End Date
52398  , p_source_76            IN DATE
52399 --Deferred Accounting Option
52400  , p_source_77            IN VARCHAR2
52401 --Deferred Accounting Start Date
52402  , p_source_78            IN DATE
52403 --Override Accounted Amount Indicator
52404  , p_source_79            IN VARCHAR2
52405  , p_source_79_meaning    IN VARCHAR2
52406 --Invoice Supplier Identifier
52407  , p_source_80            IN NUMBER
52408 --Invoice Supplier Site Identifier
52409  , p_source_81            IN NUMBER
52410 --Third Party Type
52411  , p_source_82            IN VARCHAR2
52412 --Parent Reversal Identifier
52413  , p_source_83            IN NUMBER
52414 --Invoice Distribution Statistical Amount
52415  , p_source_84            IN NUMBER
52416 --Invoice Distribution Tax Line Identifier
52417  , p_source_85            IN NUMBER
52418 --Invoice Distribution Tax Distribution Identifier from Tax
52419  , p_source_86            IN NUMBER
52420 --Invoice Distribution Summary Tax Line Identifier
52421  , p_source_87            IN NUMBER
52422 --Payables Upgrade Credit Encumbrance Type Identifier
52423  , p_source_88            IN NUMBER
52424 --Payables Upgrade Debit Encumbrance Type Identifier
52425  , p_source_89            IN NUMBER
52426 --Business Flow Accounts Payable Application Identifier
52427  , p_source_90            IN NUMBER
52428 --Business Flow Invoice Distribution Type
52429  , p_source_91            IN VARCHAR2
52430 --Business Flow Invoice Entity Code
52431  , p_source_92            IN VARCHAR2
52432 --Business Flow Invoice Distribution Identifier
52433  , p_source_93            IN NUMBER
52434 --Business Flow Invoice Identifier
52435  , p_source_94            IN NUMBER
52436 --Accrue on Receipt Option
52437  , p_source_95            IN VARCHAR2
52438  , p_source_95_meaning    IN VARCHAR2
52439 --Invoice Exchange Date
52440  , p_source_136            IN DATE
52441 --Invoice Exchange Rate
52442  , p_source_137            IN NUMBER
52443 --Invoice Exchange Rate Type
52444  , p_source_138            IN VARCHAR2
52445 )
52446 IS
52447 
52448 l_component_type              VARCHAR2(80);
52449 l_component_code              VARCHAR2(30);
52450 l_component_type_code         VARCHAR2(1);
52451 l_component_appl_id           INTEGER;
52452 l_amb_context_code            VARCHAR2(30);
52453 l_entity_code                 VARCHAR2(30);
52454 l_event_class_code            VARCHAR2(30);
52455 l_ae_header_id                NUMBER;
52456 l_event_type_code             VARCHAR2(30);
52457 l_line_definition_code        VARCHAR2(30);
52458 l_line_definition_owner_code  VARCHAR2(1);
52459 --
52460 -- adr variables
52461 l_segment                     VARCHAR2(30);
52462 l_ccid                        NUMBER;
52463 l_adr_transaction_coa_id      NUMBER;
52464 l_adr_accounting_coa_id       NUMBER;
52465 l_adr_flexfield_segment_code  VARCHAR2(30);
52466 l_adr_flex_value_set_id       NUMBER;
52467 l_adr_value_type_code         VARCHAR2(30);
52468 l_adr_value_combination_id    NUMBER;
52469 l_adr_value_segment_code      VARCHAR2(30);
52470 
52471 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52472 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52473 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52474 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52475 
52476 -- 4262811 Variables ------------------------------------------------------------------------------------------
52477 l_entered_amt_idx             NUMBER;
52478 l_accted_amt_idx              NUMBER;
52479 l_acc_rev_flag                VARCHAR2(1);
52480 l_accrual_line_num            NUMBER;
52481 l_tmp_amt                     NUMBER;
52482 l_acc_rev_natural_side_code   VARCHAR2(1);
52483 
52484 l_num_entries                 NUMBER;
52485 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52486 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52487 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52488 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52489 l_recog_line_1                NUMBER;
52490 l_recog_line_2                NUMBER;
52491 
52492 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52493 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52497 
52494 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52495 
52496 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52498 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52499 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52500 
52501 ---------------------------------------------------------------------------------------------------------------
52502 
52503 
52504 --
52505 -- bulk performance
52506 --
52507 l_balance_type_code           VARCHAR2(1);
52508 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52509 l_log_module                  VARCHAR2(240);
52510 
52511 --
52512 -- Upgrade strategy
52513 --
52514 l_actual_upg_option           VARCHAR2(1);
52515 l_enc_upg_option           VARCHAR2(1);
52516 
52517 --
52518 BEGIN
52519 --
52520 IF g_log_enabled THEN
52521       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
52522 END IF;
52523 --
52524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52525 
52526       trace
52527          (p_msg      => 'BEGIN of AcctLineType_107'
52528          ,p_level    => C_LEVEL_PROCEDURE
52529          ,p_module   => l_log_module);
52530 
52531 END IF;
52532 --
52533 l_component_type             := 'AMB_JLT';
52534 l_component_code             := 'AP_EX_RATE_VAR_INV';
52535 l_component_type_code        := 'S';
52536 l_component_appl_id          :=  200;
52537 l_amb_context_code           := 'DEFAULT';
52538 l_entity_code                := 'AP_INVOICES';
52539 l_event_class_code           := 'INVOICES';
52540 l_event_type_code            := 'INVOICES_ALL';
52541 l_line_definition_owner_code := 'S';
52542 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
52543 --
52544 l_balance_type_code          := 'A';
52545 l_segment                     := NULL;
52546 l_ccid                        := NULL;
52547 l_adr_transaction_coa_id      := NULL;
52548 l_adr_accounting_coa_id       := NULL;
52549 l_adr_flexfield_segment_code  := NULL;
52550 l_adr_flex_value_set_id       := NULL;
52551 l_adr_value_type_code         := NULL;
52552 l_adr_value_combination_id    := NULL;
52553 l_adr_value_segment_code      := NULL;
52554 
52555 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52556 l_bflow_class_code           := '';    -- 4219869 Business Flow
52557 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52558 l_budgetary_control_flag     := 'N';
52559 
52560 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52561 l_bflow_applied_to_amt       := NULL; -- 5132302
52562 l_entered_amt_idx            := NULL;          -- 4262811
52563 l_accted_amt_idx             := NULL;          -- 4262811
52564 l_acc_rev_flag               := NULL;          -- 4262811
52565 l_accrual_line_num           := NULL;          -- 4262811
52566 l_tmp_amt                    := NULL;          -- 4262811
52567 --
52568 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52569             (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
52570                return;
52571   END IF;
52572   
52573 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52574     l_balance_type_code <> 'B' THEN
52575 IF NVL(p_source_33,'
52576 ') =  'ERV' AND 
52577 NVL(p_source_95,'
52578 ') =  'Y'
52579  THEN 
52580 
52581    --
52582    XLA_AE_LINES_PKG.SetNewLine;
52583 
52584    p_balance_type_code          := l_balance_type_code;
52585    -- set the flag so later we will know whether the gain loss line needs to be created
52586    
52587    IF(l_balance_type_code = 'A' ) THEN
52588      p_actual_flag :='G';
52589    END IF;
52590 
52591    --
52592    -- bulk performance
52593    --
52594    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52595                                       p_header_num   => 0); -- 4262811
52596    --
52597    -- set accounting line options
52598    --
52599    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52600            p_natural_side_code          => 'D'
52601          , p_gain_or_loss_flag          => 'Y'
52602          , p_gl_transfer_mode_code      => 'S'
52603          , p_acct_entry_type_code       => 'A'
52604          , p_switch_side_flag           => 'Y'
52605          , p_merge_duplicate_code       => 'A'
52606          );
52607    --
52608    l_acc_rev_natural_side_code := 'C';  -- 4262811
52609    -- 
52610    --
52611    -- set accounting line type info
52612    --
52613    xla_ae_lines_pkg.SetAcctLineType
52614       (p_component_type             => l_component_type
52615       ,p_event_type_code            => l_event_type_code
52616       ,p_line_definition_owner_code => l_line_definition_owner_code
52617       ,p_line_definition_code       => l_line_definition_code
52618       ,p_accounting_line_code       => l_component_code
52619       ,p_accounting_line_type_code  => l_component_type_code
52620       ,p_accounting_line_appl_id    => l_component_appl_id
52621       ,p_amb_context_code           => l_amb_context_code
52622       ,p_entity_code                => l_entity_code
52623       ,p_event_class_code           => l_event_class_code);
52624    --
52625    -- set accounting class
52626    --
52630          );
52627    xla_ae_lines_pkg.SetAcctClass(
52628            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
52629          , p_ae_header_id           => l_ae_header_id
52631 
52632    --
52633    -- set rounding class
52634    --
52635    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52636                       'EXCHANGE_RATE_VARIANCE';
52637 
52638    --
52639    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52640    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52641    --
52642    -- bulk performance
52643    --
52644    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52645 
52646    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52647       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52648 
52649    -- 4955764
52650    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52651       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52652 
52653    -- 4458381 Public Sector Enh
52654    
52655    --
52656    -- set accounting attributes for the line type
52657    --
52658    l_entered_amt_idx := 24;
52659    l_accted_amt_idx  := 29;
52660    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
52661    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52662    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
52663    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
52664    l_rec_acct_attrs.array_num_value(2)  := 
52665 xla_ae_sources_pkg.GetSystemSourceNum(
52666    p_source_code           => 'XLA_EVENT_APPL_ID'
52667  , p_source_type_code      => 'Y'
52668  , p_source_application_id =>  602
52669 );
52670    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
52671    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
52672    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
52673    l_rec_acct_attrs.array_char_value(4)  := 
52674 xla_ae_sources_pkg.GetSystemSourceChar(
52675    p_source_code           => 'XLA_ENTITY_CODE'
52676  , p_source_type_code      => 'Y'
52677  , p_source_application_id =>  602
52678 );
52679    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
52680    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
52681    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
52682    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
52683    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
52684    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
52685    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
52686    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
52687    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52688    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
52689    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
52690    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
52691    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
52692    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
52693    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52694    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
52695    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
52696    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
52697    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
52698    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
52699    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
52700    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
52701    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
52702    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
52703    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
52704    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
52705    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
52706    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
52707    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
52708    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
52709    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
52710    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
52711    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
52712    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
52713    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
52714    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
52715    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
52716    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
52717    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
52718    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
52719    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
52720    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
52721    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
52722    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
52723    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
52724    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
52725    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
52729    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
52726    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
52727    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
52728    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
52730    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
52731    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
52732    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
52733    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
52734    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
52735    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
52736    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
52737    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
52738    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
52739    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
52740    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
52741    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
52742    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
52743    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
52744    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
52745    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
52746    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
52747    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
52748    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
52749    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
52750    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
52751    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
52752    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
52753    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
52754    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
52755    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
52756    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
52757    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
52758    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
52759 
52760    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52761    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52762 
52763    ---------------------------------------------------------------------------------------------------------------
52764    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52765    ---------------------------------------------------------------------------------------------------------------
52766    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52767 
52768    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52769    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52770 
52771    IF xla_accounting_cache_pkg.GetValueChar
52772          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52773          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52774    AND l_bflow_method_code = 'PRIOR_ENTRY'
52775 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52776    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52777          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52778        )
52779    THEN
52780          xla_ae_lines_pkg.BflowUpgEntry
52781            (p_business_method_code    => l_bflow_method_code
52782            ,p_business_class_code     => l_bflow_class_code
52783            ,p_balance_type            => l_balance_type_code);
52784    ELSE
52785       NULL;
52786 -- No business flow processing for business flow method of NONE.
52787    END IF;
52788 
52789    --
52790    -- call analytical criteria
52791    --
52792    
52793    --
52794    -- call description
52795    --
52796    
52797 xla_ae_lines_pkg.SetLineDescription(
52798    p_ae_header_id => l_ae_header_id
52799   ,p_description  => Description_1 (
52800      p_application_id         => p_application_id
52801    , p_ae_header_id           => l_ae_header_id 
52802 , p_source_1 => p_source_1
52803    )
52804 );
52805 
52806 
52807    --
52808    -- call ADRs
52809    -- Bug 4922099
52810    --
52811    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52812         (NVL(l_actual_upg_option, 'N') = 'O') OR
52813         (NVL(l_enc_upg_option, 'N') = 'O')
52814       )
52815    THEN
52816    NULL;
52817    --
52818    --
52819    
52820   l_ccid := AcctDerRule_30(
52821            p_application_id           => p_application_id
52822          , p_ae_header_id             => l_ae_header_id 
52823 , p_source_15 => p_source_15
52824 , p_source_15_meaning => p_source_15_meaning
52825 , p_source_20 => p_source_20
52826 , p_source_21 => p_source_21
52827 , p_source_22 => p_source_22
52828 , p_source_22_meaning => p_source_22_meaning
52829 , p_source_23 => p_source_23
52830 , p_source_30 => p_source_30
52831 , p_source_47 => p_source_47
52832 , p_source_47_meaning => p_source_47_meaning
52833          , x_transaction_coa_id       => l_adr_transaction_coa_id
52834          , x_accounting_coa_id        => l_adr_accounting_coa_id
52835          , x_value_type_code          => l_adr_value_type_code
52836          , p_side                     => 'NA'
52837    );
52838 
52842   , p_transaction_coa_id           => l_adr_transaction_coa_id
52839    xla_ae_lines_pkg.set_ccid(
52840     p_code_combination_id          => l_ccid
52841   , p_value_type_code              => l_adr_value_type_code
52843   , p_accounting_coa_id            => l_adr_accounting_coa_id
52844   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52845   , p_adr_type_code                => 'S'
52846   , p_component_type               => l_component_type
52847   , p_component_code               => l_component_code
52848   , p_component_type_code          => l_component_type_code
52849   , p_component_appl_id            => l_component_appl_id
52850   , p_amb_context_code             => l_amb_context_code
52851   , p_side                         => 'NA'
52852   );
52853 
52854 
52855    l_segment := AcctDerRule_8(
52856            p_application_id           => p_application_id
52857          , p_ae_header_id             => l_ae_header_id 
52858 , p_source_15 => p_source_15
52859 , p_source_15_meaning => p_source_15_meaning
52860 , p_source_20 => p_source_20
52861 , p_source_21 => p_source_21
52862 , p_source_22 => p_source_22
52863 , p_source_22_meaning => p_source_22_meaning
52864 , p_source_23 => p_source_23
52865          , x_transaction_coa_id       => l_adr_transaction_coa_id
52866          , x_accounting_coa_id        => l_adr_accounting_coa_id
52867          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52868          , x_flex_value_set_id        => l_adr_flex_value_set_id
52869          , x_value_type_code          => l_adr_value_type_code
52870          , x_value_combination_id     => l_adr_value_combination_id
52871          , x_value_segment_code       => l_adr_value_segment_code
52872          , p_side                     => 'NA'
52873          , p_override_seg_flag        => 'Y'
52874    );
52875 
52876    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52877 
52878       xla_ae_lines_pkg.set_segment(
52879           p_to_segment_code         => 'GL_ACCOUNT'
52880         , p_segment_value           => l_segment
52881         , p_from_segment_code       => l_adr_value_segment_code
52882         , p_from_combination_id     => l_adr_value_combination_id
52883         , p_value_type_code         => l_adr_value_type_code
52884         , p_transaction_coa_id      => l_adr_transaction_coa_id
52885         , p_accounting_coa_id       => l_adr_accounting_coa_id
52886         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52887         , p_flex_value_set_id       => l_adr_flex_value_set_id
52888         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52889         , p_adr_type_code           => 'S'
52890         , p_component_type          => l_component_type
52891         , p_component_code          => l_component_code
52892         , p_component_type_code     => l_component_type_code
52893         , p_component_appl_id       => l_component_appl_id
52894         , p_amb_context_code        => l_amb_context_code
52895         , p_entity_code             => 'AP_INVOICES'
52896         , p_event_class_code        => 'INVOICES'
52897         , p_side                    => 'NA'
52898         );
52899 
52900   END IF;
52901 
52902    l_segment := AcctDerRule_23(
52903            p_application_id           => p_application_id
52904          , p_ae_header_id             => l_ae_header_id 
52905 , p_source_15 => p_source_15
52906 , p_source_15_meaning => p_source_15_meaning
52907 , p_source_22 => p_source_22
52908 , p_source_22_meaning => p_source_22_meaning
52909 , p_source_30 => p_source_30
52910          , x_transaction_coa_id       => l_adr_transaction_coa_id
52911          , x_accounting_coa_id        => l_adr_accounting_coa_id
52912          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52913          , x_flex_value_set_id        => l_adr_flex_value_set_id
52914          , x_value_type_code          => l_adr_value_type_code
52915          , x_value_combination_id     => l_adr_value_combination_id
52916          , x_value_segment_code       => l_adr_value_segment_code
52917          , p_side                     => 'NA'
52918          , p_override_seg_flag        => 'Y'
52919    );
52920 
52921    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52922 
52923       xla_ae_lines_pkg.set_segment(
52924           p_to_segment_code         => 'GL_BALANCING'
52925         , p_segment_value           => l_segment
52926         , p_from_segment_code       => l_adr_value_segment_code
52927         , p_from_combination_id     => l_adr_value_combination_id
52928         , p_value_type_code         => l_adr_value_type_code
52929         , p_transaction_coa_id      => l_adr_transaction_coa_id
52930         , p_accounting_coa_id       => l_adr_accounting_coa_id
52931         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52932         , p_flex_value_set_id       => l_adr_flex_value_set_id
52933         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52934         , p_adr_type_code           => 'S'
52935         , p_component_type          => l_component_type
52936         , p_component_code          => l_component_code
52937         , p_component_type_code     => l_component_type_code
52938         , p_component_appl_id       => l_component_appl_id
52939         , p_amb_context_code        => l_amb_context_code
52940         , p_entity_code             => 'AP_INVOICES'
52941         , p_event_class_code        => 'INVOICES'
52942         , p_side                    => 'NA'
52943         );
52944 
52945   END IF;
52946 
52947    --
52951    -- Bug 4922099
52948    --
52949    END IF;
52950    --
52952    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52953           (NVL(l_enc_upg_option, 'N') = 'O')
52954         ) AND
52955         (l_bflow_method_code = 'PRIOR_ENTRY')
52956       )
52957    THEN
52958       IF
52959       --
52960       1 = 2
52961       --
52962       THEN
52963       xla_accounting_err_pkg.build_message
52964                                     (p_appli_s_name            => 'XLA'
52965                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52966                                     ,p_token_1                 => 'LINE_NUMBER'
52967                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52968                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52969                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52970                                                                              l_component_type
52971                                                                             ,l_component_code
52972                                                                             ,l_component_type_code
52973                                                                             ,l_component_appl_id
52974                                                                             ,l_amb_context_code
52975                                                                             ,l_entity_code
52976                                                                             ,l_event_class_code
52977                                                                            )
52978                                     ,p_token_3                 => 'OWNER'
52979                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52980                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52981                                                                           ,p_lookup_code    => l_component_type_code
52982                                                                          )
52983                                     ,p_token_4                 => 'PRODUCT_NAME'
52984                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52985                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52986                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52987                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52988                                     ,p_ae_header_id            =>  NULL
52989                                        );
52990 
52991         IF (C_LEVEL_ERROR>= g_log_level) THEN
52992                  trace
52993                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52994                       ,p_level    => C_LEVEL_ERROR
52995                       ,p_module   => l_log_module);
52996         END IF;
52997       END IF;
52998    END IF;
52999    --
53000    --
53001    ------------------------------------------------------------------------------------------------
53002    -- 4219869 Business Flow
53003    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53004    -- Prior Entry.  Currently, the following code is always generated.
53005    ------------------------------------------------------------------------------------------------
53006    XLA_AE_LINES_PKG.ValidateCurrentLine;
53007 
53008    ------------------------------------------------------------------------------------
53009    -- 4219869 Business Flow
53010    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53011    ------------------------------------------------------------------------------------
53012    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53013 
53014    ----------------------------------------------------------------------------------
53015    -- 4219869 Business Flow
53016    -- Update journal entry status -- Need to generate this within IF <condition>
53017    ----------------------------------------------------------------------------------
53018    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53019          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53020          ,p_balance_type_code => l_balance_type_code
53021          );
53022 
53023    -------------------------------------------------------------------------------------------
53024    -- 4262811 - Generate the Accrual Reversal lines
53025    -------------------------------------------------------------------------------------------
53026    BEGIN
53027       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53028                               (g_array_event(p_event_id).array_value_num('header_index'));
53029       IF l_acc_rev_flag IS NULL THEN
53030          l_acc_rev_flag := 'N';
53031       END IF;
53032    EXCEPTION
53033       WHEN OTHERS THEN
53034          l_acc_rev_flag := 'N';
53035    END;
53036    --
53037    IF (l_acc_rev_flag = 'Y') THEN
53038 
53039        -- 4645092  ------------------------------------------------------------------------------
53040        -- To allow MPA report to determine if it should generate report process
53041        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53045        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53042        ------------------------------------------------------------------------------------------
53043 
53044        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53046    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53047    -- call ADRs
53048    -- Bug 4922099
53049    --
53050    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53051         (NVL(l_actual_upg_option, 'N') = 'O') OR
53052         (NVL(l_enc_upg_option, 'N') = 'O')
53053       )
53054    THEN
53055    NULL;
53056    --
53057    --
53058    
53059   l_ccid := AcctDerRule_30(
53060            p_application_id           => p_application_id
53061          , p_ae_header_id             => l_ae_header_id 
53062 , p_source_15 => p_source_15
53063 , p_source_15_meaning => p_source_15_meaning
53064 , p_source_20 => p_source_20
53065 , p_source_21 => p_source_21
53066 , p_source_22 => p_source_22
53067 , p_source_22_meaning => p_source_22_meaning
53068 , p_source_23 => p_source_23
53069 , p_source_30 => p_source_30
53070 , p_source_47 => p_source_47
53071 , p_source_47_meaning => p_source_47_meaning
53072          , x_transaction_coa_id       => l_adr_transaction_coa_id
53073          , x_accounting_coa_id        => l_adr_accounting_coa_id
53074          , x_value_type_code          => l_adr_value_type_code
53075          , p_side                     => 'NA'
53076    );
53077 
53078    xla_ae_lines_pkg.set_ccid(
53079     p_code_combination_id          => l_ccid
53080   , p_value_type_code              => l_adr_value_type_code
53081   , p_transaction_coa_id           => l_adr_transaction_coa_id
53082   , p_accounting_coa_id            => l_adr_accounting_coa_id
53083   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53084   , p_adr_type_code                => 'S'
53085   , p_component_type               => l_component_type
53086   , p_component_code               => l_component_code
53087   , p_component_type_code          => l_component_type_code
53088   , p_component_appl_id            => l_component_appl_id
53089   , p_amb_context_code             => l_amb_context_code
53090   , p_side                         => 'NA'
53091   );
53092 
53093 
53094    l_segment := AcctDerRule_8(
53095            p_application_id           => p_application_id
53096          , p_ae_header_id             => l_ae_header_id 
53097 , p_source_15 => p_source_15
53098 , p_source_15_meaning => p_source_15_meaning
53099 , p_source_20 => p_source_20
53100 , p_source_21 => p_source_21
53101 , p_source_22 => p_source_22
53102 , p_source_22_meaning => p_source_22_meaning
53103 , p_source_23 => p_source_23
53104          , x_transaction_coa_id       => l_adr_transaction_coa_id
53105          , x_accounting_coa_id        => l_adr_accounting_coa_id
53106          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53107          , x_flex_value_set_id        => l_adr_flex_value_set_id
53108          , x_value_type_code          => l_adr_value_type_code
53109          , x_value_combination_id     => l_adr_value_combination_id
53110          , x_value_segment_code       => l_adr_value_segment_code
53111          , p_side                     => 'NA'
53112          , p_override_seg_flag        => 'Y'
53113    );
53114 
53115    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53116 
53117       xla_ae_lines_pkg.set_segment(
53118           p_to_segment_code         => 'GL_ACCOUNT'
53119         , p_segment_value           => l_segment
53120         , p_from_segment_code       => l_adr_value_segment_code
53121         , p_from_combination_id     => l_adr_value_combination_id
53122         , p_value_type_code         => l_adr_value_type_code
53123         , p_transaction_coa_id      => l_adr_transaction_coa_id
53124         , p_accounting_coa_id       => l_adr_accounting_coa_id
53125         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53126         , p_flex_value_set_id       => l_adr_flex_value_set_id
53127         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53128         , p_adr_type_code           => 'S'
53129         , p_component_type          => l_component_type
53130         , p_component_code          => l_component_code
53131         , p_component_type_code     => l_component_type_code
53132         , p_component_appl_id       => l_component_appl_id
53133         , p_amb_context_code        => l_amb_context_code
53134         , p_entity_code             => 'AP_INVOICES'
53135         , p_event_class_code        => 'INVOICES'
53136         , p_side                    => 'NA'
53137         );
53138 
53139   END IF;
53140 
53141    l_segment := AcctDerRule_23(
53142            p_application_id           => p_application_id
53143          , p_ae_header_id             => l_ae_header_id 
53144 , p_source_15 => p_source_15
53145 , p_source_15_meaning => p_source_15_meaning
53146 , p_source_22 => p_source_22
53147 , p_source_22_meaning => p_source_22_meaning
53148 , p_source_30 => p_source_30
53149          , x_transaction_coa_id       => l_adr_transaction_coa_id
53150          , x_accounting_coa_id        => l_adr_accounting_coa_id
53151          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53152          , x_flex_value_set_id        => l_adr_flex_value_set_id
53153          , x_value_type_code          => l_adr_value_type_code
53154          , x_value_combination_id     => l_adr_value_combination_id
53155          , x_value_segment_code       => l_adr_value_segment_code
53156          , p_side                     => 'NA'
53157          , p_override_seg_flag        => 'Y'
53161 
53158    );
53159 
53160    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53162       xla_ae_lines_pkg.set_segment(
53163           p_to_segment_code         => 'GL_BALANCING'
53164         , p_segment_value           => l_segment
53165         , p_from_segment_code       => l_adr_value_segment_code
53166         , p_from_combination_id     => l_adr_value_combination_id
53167         , p_value_type_code         => l_adr_value_type_code
53168         , p_transaction_coa_id      => l_adr_transaction_coa_id
53169         , p_accounting_coa_id       => l_adr_accounting_coa_id
53170         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53171         , p_flex_value_set_id       => l_adr_flex_value_set_id
53172         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53173         , p_adr_type_code           => 'S'
53174         , p_component_type          => l_component_type
53175         , p_component_code          => l_component_code
53176         , p_component_type_code     => l_component_type_code
53177         , p_component_appl_id       => l_component_appl_id
53178         , p_amb_context_code        => l_amb_context_code
53179         , p_entity_code             => 'AP_INVOICES'
53180         , p_event_class_code        => 'INVOICES'
53181         , p_side                    => 'NA'
53182         );
53183 
53184   END IF;
53185 
53186    --
53187    --
53188    END IF;
53189 
53190        --
53191        -- Update the line information that should be overwritten
53192        --
53193        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53194                                          p_header_num   => 1);
53195        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53196 
53197        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53198 
53199        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53200           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53201        END IF;
53202 
53203       --
53204       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53205       --
53206       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53207           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53208       ELSE
53209           ---------------------------------------------------------------------------------------------------
53210           -- 4262811a Switch Sign
53211           ---------------------------------------------------------------------------------------------------
53212           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53213           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53214                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53215           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53216                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53217           -- 5132302
53218           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53219                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53220 
53221       END IF;
53222 
53223       -- 4955764
53224       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53225       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53226 
53227 
53228       XLA_AE_LINES_PKG.ValidateCurrentLine;
53229       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53230 
53231       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53232                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53233                ,p_balance_type_code => l_balance_type_code);
53234 
53235    END IF;
53236 
53237    -----------------------------------------------------------------------------------------
53238    -- 4262811 Multiperiod Accounting
53239    -----------------------------------------------------------------------------------------
53240      -- No MPA option is assigned.
53241 
53242 
53243 END IF;
53244 END IF;
53245 --
53246 
53247 --
53248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53249    trace
53250       (p_msg      => 'END of AcctLineType_107'
53251       ,p_level    => C_LEVEL_PROCEDURE
53252       ,p_module   => l_log_module);
53253 END IF;
53254 --
53255 EXCEPTION
53256   WHEN xla_exceptions_pkg.application_exception THEN
53257       RAISE;
53258   WHEN OTHERS THEN
53259        xla_exceptions_pkg.raise_message
53260            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_107');
53261 END AcctLineType_107;
53262 --
53263 
53264 ---------------------------------------
53265 --
53266 -- PRIVATE FUNCTION
53267 --         AcctLineType_108
53268 --
53269 ---------------------------------------
53270 PROCEDURE AcctLineType_108 (
53271   p_application_id        IN NUMBER
53272  ,p_event_id              IN NUMBER
53273  ,p_calculate_acctd_flag  IN VARCHAR2
53274  ,p_calculate_g_l_flag    IN VARCHAR2
53275  ,p_actual_flag           IN OUT VARCHAR2
53276  ,p_balance_type_code     OUT VARCHAR2
53277  ,p_gain_or_loss_ref      OUT VARCHAR2
53281 --Automatic Offsets Value
53278  
53279 --Invoice Distribution Description
53280  , p_source_1            IN VARCHAR2
53282  , p_source_15            IN VARCHAR2
53283  , p_source_15_meaning    IN VARCHAR2
53284 --Purchase Order Rate Variance Gain Account
53285  , p_source_20            IN NUMBER
53286 --Invoice Distribution Ledger Amount
53287  , p_source_21            IN NUMBER
53288 --Destination Type of the PO Distribution
53289  , p_source_22            IN VARCHAR2
53290  , p_source_22_meaning    IN VARCHAR2
53291 --Purchase Order Rate Variance Loss Account
53292  , p_source_23            IN NUMBER
53293 --Invoice Distribution Account
53294  , p_source_30            IN NUMBER
53295 --Invoice Distribution Type
53296  , p_source_33            IN VARCHAR2
53297  , p_source_33_meaning    IN VARCHAR2
53298 --Automatic Offsets Flag
53299  , p_source_47            IN VARCHAR2
53300  , p_source_47_meaning    IN VARCHAR2
53301 --Accounting Reversal Indicator
53302  , p_source_52            IN VARCHAR2
53303 --Distribution Link Type
53304  , p_source_54            IN VARCHAR2
53305 --Allocation to Main Distribution Identifier
53306  , p_source_56            IN NUMBER
53307 --Invoice Identifier
53308  , p_source_57            IN NUMBER
53309 --Invoice Distribution Identifier
53310  , p_source_63            IN NUMBER
53311 --Payables Encumbrance Upgrade Credit Account
53312  , p_source_64            IN NUMBER
53313 --Payables Encumbrance Upgrade Credit Amount
53314  , p_source_65            IN NUMBER
53315 --Invoice Currency Code
53316  , p_source_66            IN VARCHAR2
53317 --Payables Encumbrance Upgrade Credit Base Amount
53318  , p_source_67            IN NUMBER
53319 --Payables Encumbrance Upgrade Debit Account
53320  , p_source_68            IN NUMBER
53321 --Payables Encumbrance Upgrade Debit Amount
53322  , p_source_69            IN NUMBER
53323 --Payables Encumbrance Upgrade Debit Base Amount
53324  , p_source_70            IN NUMBER
53325 --Payables Encumbrance Upgrade Option
53326  , p_source_71            IN VARCHAR2
53327 --Invoice Distribution Amount
53328  , p_source_72            IN NUMBER
53329 --Deferred Accounting End Date
53330  , p_source_76            IN DATE
53331 --Deferred Accounting Option
53332  , p_source_77            IN VARCHAR2
53333 --Deferred Accounting Start Date
53334  , p_source_78            IN DATE
53335 --Override Accounted Amount Indicator
53336  , p_source_79            IN VARCHAR2
53337  , p_source_79_meaning    IN VARCHAR2
53338 --Invoice Supplier Identifier
53339  , p_source_80            IN NUMBER
53340 --Invoice Supplier Site Identifier
53341  , p_source_81            IN NUMBER
53342 --Third Party Type
53343  , p_source_82            IN VARCHAR2
53344 --Parent Reversal Identifier
53345  , p_source_83            IN NUMBER
53346 --Invoice Distribution Statistical Amount
53347  , p_source_84            IN NUMBER
53348 --Invoice Distribution Tax Line Identifier
53349  , p_source_85            IN NUMBER
53350 --Invoice Distribution Tax Distribution Identifier from Tax
53351  , p_source_86            IN NUMBER
53352 --Invoice Distribution Summary Tax Line Identifier
53353  , p_source_87            IN NUMBER
53354 --Payables Upgrade Credit Encumbrance Type Identifier
53355  , p_source_88            IN NUMBER
53356 --Payables Upgrade Debit Encumbrance Type Identifier
53357  , p_source_89            IN NUMBER
53358 --Business Flow Accounts Payable Application Identifier
53359  , p_source_90            IN NUMBER
53360 --Business Flow Invoice Distribution Type
53361  , p_source_91            IN VARCHAR2
53362 --Business Flow Invoice Entity Code
53363  , p_source_92            IN VARCHAR2
53364 --Business Flow Invoice Distribution Identifier
53365  , p_source_93            IN NUMBER
53366 --Business Flow Invoice Identifier
53367  , p_source_94            IN NUMBER
53368 --Accrue on Receipt Option
53369  , p_source_95            IN VARCHAR2
53370  , p_source_95_meaning    IN VARCHAR2
53371 --Invoice Exchange Date
53372  , p_source_136            IN DATE
53373 --Invoice Exchange Rate
53374  , p_source_137            IN NUMBER
53375 --Invoice Exchange Rate Type
53376  , p_source_138            IN VARCHAR2
53377 )
53378 IS
53379 
53380 l_component_type              VARCHAR2(80);
53381 l_component_code              VARCHAR2(30);
53382 l_component_type_code         VARCHAR2(1);
53383 l_component_appl_id           INTEGER;
53384 l_amb_context_code            VARCHAR2(30);
53385 l_entity_code                 VARCHAR2(30);
53386 l_event_class_code            VARCHAR2(30);
53387 l_ae_header_id                NUMBER;
53388 l_event_type_code             VARCHAR2(30);
53389 l_line_definition_code        VARCHAR2(30);
53390 l_line_definition_owner_code  VARCHAR2(1);
53391 --
53392 -- adr variables
53393 l_segment                     VARCHAR2(30);
53394 l_ccid                        NUMBER;
53395 l_adr_transaction_coa_id      NUMBER;
53396 l_adr_accounting_coa_id       NUMBER;
53397 l_adr_flexfield_segment_code  VARCHAR2(30);
53398 l_adr_flex_value_set_id       NUMBER;
53399 l_adr_value_type_code         VARCHAR2(30);
53400 l_adr_value_combination_id    NUMBER;
53401 l_adr_value_segment_code      VARCHAR2(30);
53402 
53403 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53404 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53405 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53406 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53407 
53411 l_acc_rev_flag                VARCHAR2(1);
53408 -- 4262811 Variables ------------------------------------------------------------------------------------------
53409 l_entered_amt_idx             NUMBER;
53410 l_accted_amt_idx              NUMBER;
53412 l_accrual_line_num            NUMBER;
53413 l_tmp_amt                     NUMBER;
53414 l_acc_rev_natural_side_code   VARCHAR2(1);
53415 
53416 l_num_entries                 NUMBER;
53417 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53418 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53419 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53420 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53421 l_recog_line_1                NUMBER;
53422 l_recog_line_2                NUMBER;
53423 
53424 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53425 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53426 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53427 
53428 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53429 
53430 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53431 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53432 
53433 ---------------------------------------------------------------------------------------------------------------
53434 
53435 
53436 --
53437 -- bulk performance
53438 --
53439 l_balance_type_code           VARCHAR2(1);
53440 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53441 l_log_module                  VARCHAR2(240);
53442 
53443 --
53444 -- Upgrade strategy
53445 --
53446 l_actual_upg_option           VARCHAR2(1);
53447 l_enc_upg_option           VARCHAR2(1);
53448 
53449 --
53450 BEGIN
53451 --
53452 IF g_log_enabled THEN
53453       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
53454 END IF;
53455 --
53456 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53457 
53458       trace
53459          (p_msg      => 'BEGIN of AcctLineType_108'
53460          ,p_level    => C_LEVEL_PROCEDURE
53461          ,p_module   => l_log_module);
53462 
53463 END IF;
53464 --
53465 l_component_type             := 'AMB_JLT';
53466 l_component_code             := 'AP_EX_RATE_VAR_PREPAY';
53467 l_component_type_code        := 'S';
53468 l_component_appl_id          :=  200;
53469 l_amb_context_code           := 'DEFAULT';
53470 l_entity_code                := 'AP_INVOICES';
53471 l_event_class_code           := 'PREPAYMENTS';
53472 l_event_type_code            := 'PREPAYMENTS_ALL';
53473 l_line_definition_owner_code := 'S';
53474 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
53475 --
53476 l_balance_type_code          := 'A';
53477 l_segment                     := NULL;
53478 l_ccid                        := NULL;
53479 l_adr_transaction_coa_id      := NULL;
53480 l_adr_accounting_coa_id       := NULL;
53481 l_adr_flexfield_segment_code  := NULL;
53482 l_adr_flex_value_set_id       := NULL;
53483 l_adr_value_type_code         := NULL;
53484 l_adr_value_combination_id    := NULL;
53485 l_adr_value_segment_code      := NULL;
53486 
53487 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53488 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
53489 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53490 l_budgetary_control_flag     := 'N';
53491 
53492 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53493 l_bflow_applied_to_amt       := NULL; -- 5132302
53494 l_entered_amt_idx            := NULL;          -- 4262811
53495 l_accted_amt_idx             := NULL;          -- 4262811
53496 l_acc_rev_flag               := NULL;          -- 4262811
53497 l_accrual_line_num           := NULL;          -- 4262811
53498 l_tmp_amt                    := NULL;          -- 4262811
53499 --
53500 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53501             (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
53502                return;
53503   END IF;
53504   
53505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53506     l_balance_type_code <> 'B' THEN
53507 IF NVL(p_source_33,'
53508 ') =  'ERV' AND 
53509 NVL(p_source_95,'
53510 ') =  'Y'
53511  THEN 
53512 
53513    --
53514    XLA_AE_LINES_PKG.SetNewLine;
53515 
53516    p_balance_type_code          := l_balance_type_code;
53517    -- set the flag so later we will know whether the gain loss line needs to be created
53518    
53519    IF(l_balance_type_code = 'A' ) THEN
53520      p_actual_flag :='G';
53521    END IF;
53522 
53523    --
53524    -- bulk performance
53525    --
53526    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53527                                       p_header_num   => 0); -- 4262811
53528    --
53529    -- set accounting line options
53530    --
53531    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53532            p_natural_side_code          => 'D'
53533          , p_gain_or_loss_flag          => 'Y'
53534          , p_gl_transfer_mode_code      => 'S'
53538          );
53535          , p_acct_entry_type_code       => 'A'
53536          , p_switch_side_flag           => 'Y'
53537          , p_merge_duplicate_code       => 'A'
53539    --
53540    l_acc_rev_natural_side_code := 'C';  -- 4262811
53541    -- 
53542    --
53543    -- set accounting line type info
53544    --
53545    xla_ae_lines_pkg.SetAcctLineType
53546       (p_component_type             => l_component_type
53547       ,p_event_type_code            => l_event_type_code
53548       ,p_line_definition_owner_code => l_line_definition_owner_code
53549       ,p_line_definition_code       => l_line_definition_code
53550       ,p_accounting_line_code       => l_component_code
53551       ,p_accounting_line_type_code  => l_component_type_code
53552       ,p_accounting_line_appl_id    => l_component_appl_id
53553       ,p_amb_context_code           => l_amb_context_code
53554       ,p_entity_code                => l_entity_code
53555       ,p_event_class_code           => l_event_class_code);
53556    --
53557    -- set accounting class
53558    --
53559    xla_ae_lines_pkg.SetAcctClass(
53560            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
53561          , p_ae_header_id           => l_ae_header_id
53562          );
53563 
53564    --
53565    -- set rounding class
53566    --
53567    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53568                       'EXCHANGE_RATE_VARIANCE';
53569 
53570    --
53571    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53572    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53573    --
53574    -- bulk performance
53575    --
53576    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53577 
53578    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53579       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53580 
53581    -- 4955764
53582    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53583       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53584 
53585    -- 4458381 Public Sector Enh
53586    
53587    --
53588    -- set accounting attributes for the line type
53589    --
53590    l_entered_amt_idx := 23;
53591    l_accted_amt_idx  := 28;
53592    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53593    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53594    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
53595    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53596    l_rec_acct_attrs.array_num_value(2)  := 
53597 xla_ae_sources_pkg.GetSystemSourceNum(
53598    p_source_code           => 'XLA_EVENT_APPL_ID'
53599  , p_source_type_code      => 'Y'
53600  , p_source_application_id =>  602
53601 );
53602    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53603    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
53604    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53605    l_rec_acct_attrs.array_char_value(4)  := 
53606 xla_ae_sources_pkg.GetSystemSourceChar(
53607    p_source_code           => 'XLA_ENTITY_CODE'
53608  , p_source_type_code      => 'Y'
53609  , p_source_application_id =>  602
53610 );
53611    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53612    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
53613    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53614    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
53615    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
53616    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
53617    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53618    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
53619    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
53620    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
53621    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53622    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
53623    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53624    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
53625    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
53626    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
53627    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
53628    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
53629    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
53630    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
53631    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
53632    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
53633    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
53634    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
53635    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
53636    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
53637    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
53638    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
53639    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
53643    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
53640    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
53641    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
53642    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
53644    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
53645    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
53646    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
53647    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
53648    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
53649    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
53650    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
53651    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
53652    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
53653    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
53654    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
53655    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
53656    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
53657    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
53658    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
53659    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
53660    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
53661    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
53662    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
53663    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
53664    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
53665    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
53666    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
53667    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
53668    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
53669    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
53670    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
53671    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
53672    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
53673    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
53674    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
53675    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
53676    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
53677    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
53678    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
53679    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
53680    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
53681    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
53682    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
53683    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
53684    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
53685    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
53686    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
53687    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
53688    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
53689 
53690    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53691    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53692 
53693    ---------------------------------------------------------------------------------------------------------------
53694    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53695    ---------------------------------------------------------------------------------------------------------------
53696    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53697 
53698    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53699    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53700 
53701    IF xla_accounting_cache_pkg.GetValueChar
53702          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53703          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53704    AND l_bflow_method_code = 'PRIOR_ENTRY'
53705 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53706    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53707          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53708        )
53709    THEN
53710          xla_ae_lines_pkg.BflowUpgEntry
53711            (p_business_method_code    => l_bflow_method_code
53712            ,p_business_class_code     => l_bflow_class_code
53713            ,p_balance_type            => l_balance_type_code);
53714    ELSE
53715       NULL;
53716 -- No business flow processing for business flow method of NONE.
53717    END IF;
53718 
53719    --
53720    -- call analytical criteria
53721    --
53722    
53723    --
53724    -- call description
53725    --
53726    
53727 xla_ae_lines_pkg.SetLineDescription(
53728    p_ae_header_id => l_ae_header_id
53729   ,p_description  => Description_1 (
53730      p_application_id         => p_application_id
53731    , p_ae_header_id           => l_ae_header_id 
53732 , p_source_1 => p_source_1
53733    )
53734 );
53735 
53736 
53737    --
53738    -- call ADRs
53739    -- Bug 4922099
53740    --
53741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53745    THEN
53742         (NVL(l_actual_upg_option, 'N') = 'O') OR
53743         (NVL(l_enc_upg_option, 'N') = 'O')
53744       )
53746    NULL;
53747    --
53748    --
53749    
53750   l_ccid := AcctDerRule_30(
53751            p_application_id           => p_application_id
53752          , p_ae_header_id             => l_ae_header_id 
53753 , p_source_15 => p_source_15
53754 , p_source_15_meaning => p_source_15_meaning
53755 , p_source_20 => p_source_20
53756 , p_source_21 => p_source_21
53757 , p_source_22 => p_source_22
53758 , p_source_22_meaning => p_source_22_meaning
53759 , p_source_23 => p_source_23
53760 , p_source_30 => p_source_30
53761 , p_source_47 => p_source_47
53762 , p_source_47_meaning => p_source_47_meaning
53763          , x_transaction_coa_id       => l_adr_transaction_coa_id
53764          , x_accounting_coa_id        => l_adr_accounting_coa_id
53765          , x_value_type_code          => l_adr_value_type_code
53766          , p_side                     => 'NA'
53767    );
53768 
53769    xla_ae_lines_pkg.set_ccid(
53770     p_code_combination_id          => l_ccid
53771   , p_value_type_code              => l_adr_value_type_code
53772   , p_transaction_coa_id           => l_adr_transaction_coa_id
53773   , p_accounting_coa_id            => l_adr_accounting_coa_id
53774   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53775   , p_adr_type_code                => 'S'
53776   , p_component_type               => l_component_type
53777   , p_component_code               => l_component_code
53778   , p_component_type_code          => l_component_type_code
53779   , p_component_appl_id            => l_component_appl_id
53780   , p_amb_context_code             => l_amb_context_code
53781   , p_side                         => 'NA'
53782   );
53783 
53784 
53785    l_segment := AcctDerRule_8(
53786            p_application_id           => p_application_id
53787          , p_ae_header_id             => l_ae_header_id 
53788 , p_source_15 => p_source_15
53789 , p_source_15_meaning => p_source_15_meaning
53790 , p_source_20 => p_source_20
53791 , p_source_21 => p_source_21
53792 , p_source_22 => p_source_22
53793 , p_source_22_meaning => p_source_22_meaning
53794 , p_source_23 => p_source_23
53795          , x_transaction_coa_id       => l_adr_transaction_coa_id
53796          , x_accounting_coa_id        => l_adr_accounting_coa_id
53797          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53798          , x_flex_value_set_id        => l_adr_flex_value_set_id
53799          , x_value_type_code          => l_adr_value_type_code
53800          , x_value_combination_id     => l_adr_value_combination_id
53801          , x_value_segment_code       => l_adr_value_segment_code
53802          , p_side                     => 'NA'
53803          , p_override_seg_flag        => 'Y'
53804    );
53805 
53806    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53807 
53808       xla_ae_lines_pkg.set_segment(
53809           p_to_segment_code         => 'GL_ACCOUNT'
53810         , p_segment_value           => l_segment
53811         , p_from_segment_code       => l_adr_value_segment_code
53812         , p_from_combination_id     => l_adr_value_combination_id
53813         , p_value_type_code         => l_adr_value_type_code
53814         , p_transaction_coa_id      => l_adr_transaction_coa_id
53815         , p_accounting_coa_id       => l_adr_accounting_coa_id
53816         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53817         , p_flex_value_set_id       => l_adr_flex_value_set_id
53818         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53819         , p_adr_type_code           => 'S'
53820         , p_component_type          => l_component_type
53821         , p_component_code          => l_component_code
53822         , p_component_type_code     => l_component_type_code
53823         , p_component_appl_id       => l_component_appl_id
53824         , p_amb_context_code        => l_amb_context_code
53825         , p_entity_code             => 'AP_INVOICES'
53826         , p_event_class_code        => 'PREPAYMENTS'
53827         , p_side                    => 'NA'
53828         );
53829 
53830   END IF;
53831 
53832    l_segment := AcctDerRule_23(
53833            p_application_id           => p_application_id
53834          , p_ae_header_id             => l_ae_header_id 
53835 , p_source_15 => p_source_15
53836 , p_source_15_meaning => p_source_15_meaning
53837 , p_source_22 => p_source_22
53838 , p_source_22_meaning => p_source_22_meaning
53839 , p_source_30 => p_source_30
53840          , x_transaction_coa_id       => l_adr_transaction_coa_id
53841          , x_accounting_coa_id        => l_adr_accounting_coa_id
53842          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53843          , x_flex_value_set_id        => l_adr_flex_value_set_id
53844          , x_value_type_code          => l_adr_value_type_code
53845          , x_value_combination_id     => l_adr_value_combination_id
53846          , x_value_segment_code       => l_adr_value_segment_code
53847          , p_side                     => 'NA'
53848          , p_override_seg_flag        => 'Y'
53849    );
53850 
53851    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53852 
53853       xla_ae_lines_pkg.set_segment(
53854           p_to_segment_code         => 'GL_BALANCING'
53855         , p_segment_value           => l_segment
53856         , p_from_segment_code       => l_adr_value_segment_code
53857         , p_from_combination_id     => l_adr_value_combination_id
53861         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53858         , p_value_type_code         => l_adr_value_type_code
53859         , p_transaction_coa_id      => l_adr_transaction_coa_id
53860         , p_accounting_coa_id       => l_adr_accounting_coa_id
53862         , p_flex_value_set_id       => l_adr_flex_value_set_id
53863         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53864         , p_adr_type_code           => 'S'
53865         , p_component_type          => l_component_type
53866         , p_component_code          => l_component_code
53867         , p_component_type_code     => l_component_type_code
53868         , p_component_appl_id       => l_component_appl_id
53869         , p_amb_context_code        => l_amb_context_code
53870         , p_entity_code             => 'AP_INVOICES'
53871         , p_event_class_code        => 'PREPAYMENTS'
53872         , p_side                    => 'NA'
53873         );
53874 
53875   END IF;
53876 
53877    --
53878    --
53879    END IF;
53880    --
53881    -- Bug 4922099
53882    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53883           (NVL(l_enc_upg_option, 'N') = 'O')
53884         ) AND
53885         (l_bflow_method_code = 'PRIOR_ENTRY')
53886       )
53887    THEN
53888       IF
53889       --
53890       1 = 2
53891       --
53892       THEN
53893       xla_accounting_err_pkg.build_message
53894                                     (p_appli_s_name            => 'XLA'
53895                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53896                                     ,p_token_1                 => 'LINE_NUMBER'
53897                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53898                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53899                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53900                                                                              l_component_type
53901                                                                             ,l_component_code
53902                                                                             ,l_component_type_code
53903                                                                             ,l_component_appl_id
53904                                                                             ,l_amb_context_code
53905                                                                             ,l_entity_code
53906                                                                             ,l_event_class_code
53907                                                                            )
53908                                     ,p_token_3                 => 'OWNER'
53909                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53910                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53911                                                                           ,p_lookup_code    => l_component_type_code
53912                                                                          )
53913                                     ,p_token_4                 => 'PRODUCT_NAME'
53914                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53915                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53916                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53917                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53918                                     ,p_ae_header_id            =>  NULL
53919                                        );
53920 
53921         IF (C_LEVEL_ERROR>= g_log_level) THEN
53922                  trace
53923                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53924                       ,p_level    => C_LEVEL_ERROR
53925                       ,p_module   => l_log_module);
53926         END IF;
53927       END IF;
53928    END IF;
53929    --
53930    --
53931    ------------------------------------------------------------------------------------------------
53932    -- 4219869 Business Flow
53933    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53934    -- Prior Entry.  Currently, the following code is always generated.
53935    ------------------------------------------------------------------------------------------------
53936    XLA_AE_LINES_PKG.ValidateCurrentLine;
53937 
53938    ------------------------------------------------------------------------------------
53939    -- 4219869 Business Flow
53940    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53941    ------------------------------------------------------------------------------------
53942    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53943 
53944    ----------------------------------------------------------------------------------
53945    -- 4219869 Business Flow
53946    -- Update journal entry status -- Need to generate this within IF <condition>
53947    ----------------------------------------------------------------------------------
53948    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53949          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53950          ,p_balance_type_code => l_balance_type_code
53951          );
53952 
53953    -------------------------------------------------------------------------------------------
53957       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53954    -- 4262811 - Generate the Accrual Reversal lines
53955    -------------------------------------------------------------------------------------------
53956    BEGIN
53958                               (g_array_event(p_event_id).array_value_num('header_index'));
53959       IF l_acc_rev_flag IS NULL THEN
53960          l_acc_rev_flag := 'N';
53961       END IF;
53962    EXCEPTION
53963       WHEN OTHERS THEN
53964          l_acc_rev_flag := 'N';
53965    END;
53966    --
53967    IF (l_acc_rev_flag = 'Y') THEN
53968 
53969        -- 4645092  ------------------------------------------------------------------------------
53970        -- To allow MPA report to determine if it should generate report process
53971        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53972        ------------------------------------------------------------------------------------------
53973 
53974        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53975        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53976    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53977    -- call ADRs
53978    -- Bug 4922099
53979    --
53980    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53981         (NVL(l_actual_upg_option, 'N') = 'O') OR
53982         (NVL(l_enc_upg_option, 'N') = 'O')
53983       )
53984    THEN
53985    NULL;
53986    --
53987    --
53988    
53989   l_ccid := AcctDerRule_30(
53990            p_application_id           => p_application_id
53991          , p_ae_header_id             => l_ae_header_id 
53992 , p_source_15 => p_source_15
53993 , p_source_15_meaning => p_source_15_meaning
53994 , p_source_20 => p_source_20
53995 , p_source_21 => p_source_21
53996 , p_source_22 => p_source_22
53997 , p_source_22_meaning => p_source_22_meaning
53998 , p_source_23 => p_source_23
53999 , p_source_30 => p_source_30
54000 , p_source_47 => p_source_47
54001 , p_source_47_meaning => p_source_47_meaning
54002          , x_transaction_coa_id       => l_adr_transaction_coa_id
54003          , x_accounting_coa_id        => l_adr_accounting_coa_id
54004          , x_value_type_code          => l_adr_value_type_code
54005          , p_side                     => 'NA'
54006    );
54007 
54008    xla_ae_lines_pkg.set_ccid(
54009     p_code_combination_id          => l_ccid
54010   , p_value_type_code              => l_adr_value_type_code
54011   , p_transaction_coa_id           => l_adr_transaction_coa_id
54012   , p_accounting_coa_id            => l_adr_accounting_coa_id
54013   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
54014   , p_adr_type_code                => 'S'
54015   , p_component_type               => l_component_type
54016   , p_component_code               => l_component_code
54017   , p_component_type_code          => l_component_type_code
54018   , p_component_appl_id            => l_component_appl_id
54019   , p_amb_context_code             => l_amb_context_code
54020   , p_side                         => 'NA'
54021   );
54022 
54023 
54024    l_segment := AcctDerRule_8(
54025            p_application_id           => p_application_id
54026          , p_ae_header_id             => l_ae_header_id 
54027 , p_source_15 => p_source_15
54028 , p_source_15_meaning => p_source_15_meaning
54029 , p_source_20 => p_source_20
54030 , p_source_21 => p_source_21
54031 , p_source_22 => p_source_22
54032 , p_source_22_meaning => p_source_22_meaning
54033 , p_source_23 => p_source_23
54034          , x_transaction_coa_id       => l_adr_transaction_coa_id
54035          , x_accounting_coa_id        => l_adr_accounting_coa_id
54036          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54037          , x_flex_value_set_id        => l_adr_flex_value_set_id
54038          , x_value_type_code          => l_adr_value_type_code
54039          , x_value_combination_id     => l_adr_value_combination_id
54040          , x_value_segment_code       => l_adr_value_segment_code
54041          , p_side                     => 'NA'
54042          , p_override_seg_flag        => 'Y'
54043    );
54044 
54045    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54046 
54047       xla_ae_lines_pkg.set_segment(
54048           p_to_segment_code         => 'GL_ACCOUNT'
54049         , p_segment_value           => l_segment
54050         , p_from_segment_code       => l_adr_value_segment_code
54051         , p_from_combination_id     => l_adr_value_combination_id
54052         , p_value_type_code         => l_adr_value_type_code
54053         , p_transaction_coa_id      => l_adr_transaction_coa_id
54054         , p_accounting_coa_id       => l_adr_accounting_coa_id
54055         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54056         , p_flex_value_set_id       => l_adr_flex_value_set_id
54057         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54058         , p_adr_type_code           => 'S'
54059         , p_component_type          => l_component_type
54060         , p_component_code          => l_component_code
54061         , p_component_type_code     => l_component_type_code
54062         , p_component_appl_id       => l_component_appl_id
54063         , p_amb_context_code        => l_amb_context_code
54064         , p_entity_code             => 'AP_INVOICES'
54065         , p_event_class_code        => 'PREPAYMENTS'
54066         , p_side                    => 'NA'
54067         );
54068 
54069   END IF;
54070 
54071    l_segment := AcctDerRule_23(
54075 , p_source_15_meaning => p_source_15_meaning
54072            p_application_id           => p_application_id
54073          , p_ae_header_id             => l_ae_header_id 
54074 , p_source_15 => p_source_15
54076 , p_source_22 => p_source_22
54077 , p_source_22_meaning => p_source_22_meaning
54078 , p_source_30 => p_source_30
54079          , x_transaction_coa_id       => l_adr_transaction_coa_id
54080          , x_accounting_coa_id        => l_adr_accounting_coa_id
54081          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54082          , x_flex_value_set_id        => l_adr_flex_value_set_id
54083          , x_value_type_code          => l_adr_value_type_code
54084          , x_value_combination_id     => l_adr_value_combination_id
54085          , x_value_segment_code       => l_adr_value_segment_code
54086          , p_side                     => 'NA'
54087          , p_override_seg_flag        => 'Y'
54088    );
54089 
54090    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54091 
54092       xla_ae_lines_pkg.set_segment(
54093           p_to_segment_code         => 'GL_BALANCING'
54094         , p_segment_value           => l_segment
54095         , p_from_segment_code       => l_adr_value_segment_code
54096         , p_from_combination_id     => l_adr_value_combination_id
54097         , p_value_type_code         => l_adr_value_type_code
54098         , p_transaction_coa_id      => l_adr_transaction_coa_id
54099         , p_accounting_coa_id       => l_adr_accounting_coa_id
54100         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54101         , p_flex_value_set_id       => l_adr_flex_value_set_id
54102         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54103         , p_adr_type_code           => 'S'
54104         , p_component_type          => l_component_type
54105         , p_component_code          => l_component_code
54106         , p_component_type_code     => l_component_type_code
54107         , p_component_appl_id       => l_component_appl_id
54108         , p_amb_context_code        => l_amb_context_code
54109         , p_entity_code             => 'AP_INVOICES'
54110         , p_event_class_code        => 'PREPAYMENTS'
54111         , p_side                    => 'NA'
54112         );
54113 
54114   END IF;
54115 
54116    --
54117    --
54118    END IF;
54119 
54120        --
54121        -- Update the line information that should be overwritten
54122        --
54123        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54124                                          p_header_num   => 1);
54125        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54126 
54127        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54128 
54129        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54130           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54131        END IF;
54132 
54133       --
54134       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54135       --
54136       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54137           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54138       ELSE
54139           ---------------------------------------------------------------------------------------------------
54140           -- 4262811a Switch Sign
54141           ---------------------------------------------------------------------------------------------------
54142           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54143           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54144                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54145           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54146                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54147           -- 5132302
54148           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54149                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54150 
54151       END IF;
54152 
54153       -- 4955764
54154       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54155       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54156 
54157 
54158       XLA_AE_LINES_PKG.ValidateCurrentLine;
54159       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54160 
54161       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54162                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54163                ,p_balance_type_code => l_balance_type_code);
54164 
54165    END IF;
54166 
54167    -----------------------------------------------------------------------------------------
54168    -- 4262811 Multiperiod Accounting
54169    -----------------------------------------------------------------------------------------
54170      -- No MPA option is assigned.
54171 
54172 
54173 END IF;
54174 END IF;
54175 --
54176 
54177 --
54178 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54179    trace
54183 END IF;
54180       (p_msg      => 'END of AcctLineType_108'
54181       ,p_level    => C_LEVEL_PROCEDURE
54182       ,p_module   => l_log_module);
54184 --
54185 EXCEPTION
54186   WHEN xla_exceptions_pkg.application_exception THEN
54187       RAISE;
54188   WHEN OTHERS THEN
54189        xla_exceptions_pkg.raise_message
54190            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_108');
54191 END AcctLineType_108;
54192 --
54193 
54194 ---------------------------------------
54195 --
54196 -- PRIVATE FUNCTION
54197 --         AcctLineType_109
54198 --
54199 ---------------------------------------
54200 PROCEDURE AcctLineType_109 (
54201   p_application_id        IN NUMBER
54202  ,p_event_id              IN NUMBER
54203  ,p_calculate_acctd_flag  IN VARCHAR2
54204  ,p_calculate_g_l_flag    IN VARCHAR2
54205  ,p_actual_flag           IN OUT VARCHAR2
54206  ,p_balance_type_code     OUT VARCHAR2
54207  ,p_gain_or_loss_ref      OUT VARCHAR2
54208  
54209 --Automatic Offsets Value
54210  , p_source_15            IN VARCHAR2
54211  , p_source_15_meaning    IN VARCHAR2
54212 --Invoice Distribution Account
54213  , p_source_30            IN NUMBER
54214 --Payables Options Rounding Account
54215  , p_source_48            IN NUMBER
54216 --Accounting Reversal Indicator
54217  , p_source_52            IN VARCHAR2
54218 --Distribution Link Type
54219  , p_source_54            IN VARCHAR2
54220 --Invoice Identifier
54221  , p_source_57            IN NUMBER
54222 --Payables Encumbrance Upgrade Credit Account
54223  , p_source_64            IN NUMBER
54224 --Payables Encumbrance Upgrade Credit Amount
54225  , p_source_65            IN NUMBER
54226 --Invoice Currency Code
54227  , p_source_66            IN VARCHAR2
54228 --Payables Encumbrance Upgrade Credit Base Amount
54229  , p_source_67            IN NUMBER
54230 --Payables Encumbrance Upgrade Debit Account
54231  , p_source_68            IN NUMBER
54232 --Payables Encumbrance Upgrade Debit Amount
54233  , p_source_69            IN NUMBER
54234 --Payables Encumbrance Upgrade Debit Base Amount
54235  , p_source_70            IN NUMBER
54236 --Payables Encumbrance Upgrade Option
54237  , p_source_71            IN VARCHAR2
54238 --Deferred Accounting End Date
54239  , p_source_76            IN DATE
54240 --Deferred Accounting Option
54241  , p_source_77            IN VARCHAR2
54242 --Deferred Accounting Start Date
54243  , p_source_78            IN DATE
54244 --Override Accounted Amount Indicator
54245  , p_source_79            IN VARCHAR2
54246  , p_source_79_meaning    IN VARCHAR2
54247 --Invoice Supplier Identifier
54248  , p_source_80            IN NUMBER
54249 --Invoice Supplier Site Identifier
54250  , p_source_81            IN NUMBER
54251 --Third Party Type
54252  , p_source_82            IN VARCHAR2
54253 --Invoice Distribution Tax Line Identifier
54254  , p_source_85            IN NUMBER
54255 --Invoice Distribution Tax Distribution Identifier from Tax
54256  , p_source_86            IN NUMBER
54257 --Invoice Distribution Summary Tax Line Identifier
54258  , p_source_87            IN NUMBER
54259 --Payables Upgrade Credit Encumbrance Type Identifier
54260  , p_source_88            IN NUMBER
54261 --Payables Upgrade Debit Encumbrance Type Identifier
54262  , p_source_89            IN NUMBER
54263 --Business Flow Accounts Payable Application Identifier
54264  , p_source_90            IN NUMBER
54265 --Prepayment Application Distribution Identifier
54266  , p_source_127            IN NUMBER
54267 --Upgrade Encumbrance Credit Account Class
54268  , p_source_130            IN VARCHAR2
54269 --Upgrade Encumbrance Debit Account Class
54270  , p_source_131            IN VARCHAR2
54271 --Prepayment Distribution Amount
54272  , p_source_132            IN NUMBER
54273 --Identifier of the Prepayment Application Reversed
54274  , p_source_134            IN NUMBER
54275 --Invoice Exchange Date
54276  , p_source_136            IN DATE
54277 --Invoice Exchange Rate
54278  , p_source_137            IN NUMBER
54279 --Invoice Exchange Rate Type
54280  , p_source_138            IN VARCHAR2
54281 --Business Flow Prepayment Invoice Distribution Type
54282  , p_source_139            IN VARCHAR2
54283 --Business Flow Prepayment Invoice Entity Code
54284  , p_source_140            IN VARCHAR2
54285 --Business Flow Prepayment Invoice Distribution Identifier
54286  , p_source_141            IN NUMBER
54287 --Business Flow Prepayment Invoice Identifier
54288  , p_source_142            IN NUMBER
54289 --Prepayment Distribution Type
54290  , p_source_143            IN VARCHAR2
54291 --Prepayment Distribution (Prepayment Rate) Ledger Amount
54292  , p_source_144            IN NUMBER
54293 --Project Identifier
54294  , p_source_146            IN NUMBER
54295 )
54296 IS
54297 
54298 l_component_type              VARCHAR2(80);
54299 l_component_code              VARCHAR2(30);
54300 l_component_type_code         VARCHAR2(1);
54301 l_component_appl_id           INTEGER;
54302 l_amb_context_code            VARCHAR2(30);
54303 l_entity_code                 VARCHAR2(30);
54304 l_event_class_code            VARCHAR2(30);
54305 l_ae_header_id                NUMBER;
54306 l_event_type_code             VARCHAR2(30);
54307 l_line_definition_code        VARCHAR2(30);
54308 l_line_definition_owner_code  VARCHAR2(1);
54309 --
54310 -- adr variables
54314 l_adr_accounting_coa_id       NUMBER;
54311 l_segment                     VARCHAR2(30);
54312 l_ccid                        NUMBER;
54313 l_adr_transaction_coa_id      NUMBER;
54315 l_adr_flexfield_segment_code  VARCHAR2(30);
54316 l_adr_flex_value_set_id       NUMBER;
54317 l_adr_value_type_code         VARCHAR2(30);
54318 l_adr_value_combination_id    NUMBER;
54319 l_adr_value_segment_code      VARCHAR2(30);
54320 
54321 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54322 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54323 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54324 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54325 
54326 -- 4262811 Variables ------------------------------------------------------------------------------------------
54327 l_entered_amt_idx             NUMBER;
54328 l_accted_amt_idx              NUMBER;
54329 l_acc_rev_flag                VARCHAR2(1);
54330 l_accrual_line_num            NUMBER;
54331 l_tmp_amt                     NUMBER;
54332 l_acc_rev_natural_side_code   VARCHAR2(1);
54333 
54334 l_num_entries                 NUMBER;
54335 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54336 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54337 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54338 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54339 l_recog_line_1                NUMBER;
54340 l_recog_line_2                NUMBER;
54341 
54342 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54343 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54344 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54345 
54346 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54347 
54348 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54349 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54350 
54351 ---------------------------------------------------------------------------------------------------------------
54352 
54353 
54354 --
54355 -- bulk performance
54356 --
54357 l_balance_type_code           VARCHAR2(1);
54358 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54359 l_log_module                  VARCHAR2(240);
54360 
54361 --
54362 -- Upgrade strategy
54363 --
54364 l_actual_upg_option           VARCHAR2(1);
54365 l_enc_upg_option           VARCHAR2(1);
54366 
54367 --
54368 BEGIN
54369 --
54370 IF g_log_enabled THEN
54371       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
54372 END IF;
54373 --
54374 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54375 
54376       trace
54377          (p_msg      => 'BEGIN of AcctLineType_109'
54378          ,p_level    => C_LEVEL_PROCEDURE
54379          ,p_module   => l_log_module);
54380 
54381 END IF;
54382 --
54383 l_component_type             := 'AMB_JLT';
54384 l_component_code             := 'AP_FINAL_APP_ROUND_ACCR';
54385 l_component_type_code        := 'S';
54386 l_component_appl_id          :=  200;
54387 l_amb_context_code           := 'DEFAULT';
54388 l_entity_code                := 'AP_INVOICES';
54389 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
54390 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
54391 l_line_definition_owner_code := 'S';
54392 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
54393 --
54394 l_balance_type_code          := 'A';
54395 l_segment                     := NULL;
54396 l_ccid                        := NULL;
54397 l_adr_transaction_coa_id      := NULL;
54398 l_adr_accounting_coa_id       := NULL;
54399 l_adr_flexfield_segment_code  := NULL;
54400 l_adr_flex_value_set_id       := NULL;
54401 l_adr_value_type_code         := NULL;
54402 l_adr_value_combination_id    := NULL;
54403 l_adr_value_segment_code      := NULL;
54404 
54405 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54406 l_bflow_class_code           := '';    -- 4219869 Business Flow
54407 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54408 l_budgetary_control_flag     := 'N';
54409 
54410 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54411 l_bflow_applied_to_amt       := NULL; -- 5132302
54412 l_entered_amt_idx            := NULL;          -- 4262811
54413 l_accted_amt_idx             := NULL;          -- 4262811
54414 l_acc_rev_flag               := NULL;          -- 4262811
54415 l_accrual_line_num           := NULL;          -- 4262811
54416 l_tmp_amt                    := NULL;          -- 4262811
54417 --
54418  
54419 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54420     l_balance_type_code <> 'B' THEN
54421 IF NVL(p_source_143,'
54422 ') =  'FINAL APPLICATION ROUNDING'
54423  THEN 
54424 
54425    --
54426    XLA_AE_LINES_PKG.SetNewLine;
54427 
54428    p_balance_type_code          := l_balance_type_code;
54429    -- set the flag so later we will know whether the gain loss line needs to be created
54430    
54431    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54432      p_actual_flag :='A';
54433    END IF;
54434 
54435    --
54436    -- bulk performance
54437    --
54438    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54439                                       p_header_num   => 0); -- 4262811
54443    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54440    --
54441    -- set accounting line options
54442    --
54444            p_natural_side_code          => 'C'
54445          , p_gain_or_loss_flag          => 'N'
54446          , p_gl_transfer_mode_code      => 'S'
54447          , p_acct_entry_type_code       => 'A'
54448          , p_switch_side_flag           => 'Y'
54449          , p_merge_duplicate_code       => 'A'
54450          );
54451    --
54452    l_acc_rev_natural_side_code := 'D';  -- 4262811
54453    -- 
54454    --
54455    -- set accounting line type info
54456    --
54457    xla_ae_lines_pkg.SetAcctLineType
54458       (p_component_type             => l_component_type
54459       ,p_event_type_code            => l_event_type_code
54460       ,p_line_definition_owner_code => l_line_definition_owner_code
54461       ,p_line_definition_code       => l_line_definition_code
54462       ,p_accounting_line_code       => l_component_code
54463       ,p_accounting_line_type_code  => l_component_type_code
54464       ,p_accounting_line_appl_id    => l_component_appl_id
54465       ,p_amb_context_code           => l_amb_context_code
54466       ,p_entity_code                => l_entity_code
54467       ,p_event_class_code           => l_event_class_code);
54468    --
54469    -- set accounting class
54470    --
54471    xla_ae_lines_pkg.SetAcctClass(
54472            p_accounting_class_code  => 'ROUNDING'
54473          , p_ae_header_id           => l_ae_header_id
54474          );
54475 
54476    --
54477    -- set rounding class
54478    --
54479    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54480                       'ROUNDING';
54481 
54482    --
54483    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54484    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54485    --
54486    -- bulk performance
54487    --
54488    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54489 
54490    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54491       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54492 
54493    -- 4955764
54494    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54495       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54496 
54497    -- 4458381 Public Sector Enh
54498    
54499    --
54500    -- set accounting attributes for the line type
54501    --
54502    l_entered_amt_idx := 25;
54503    l_accted_amt_idx  := 30;
54504    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54505    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54506    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
54507    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54508    l_rec_acct_attrs.array_num_value(2)  := 
54509 xla_ae_sources_pkg.GetSystemSourceNum(
54510    p_source_code           => 'XLA_EVENT_APPL_ID'
54511  , p_source_type_code      => 'Y'
54512  , p_source_application_id =>  602
54513 );
54514    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54515    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
54516    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54517    l_rec_acct_attrs.array_char_value(4)  := 
54518 xla_ae_sources_pkg.GetSystemSourceChar(
54519    p_source_code           => 'XLA_ENTITY_CODE'
54520  , p_source_type_code      => 'Y'
54521  , p_source_application_id =>  602
54522 );
54523    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54524    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
54525    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54526    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
54527    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54528    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
54529    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54530    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
54531    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54532    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
54533    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54534    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
54535    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54536    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
54537    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54538    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
54539    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54540    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
54541    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
54542    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
54543    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
54544    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
54545    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
54546    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
54547    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
54548    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
54552    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
54549    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
54550    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
54551    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
54553    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
54554    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
54555    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
54556    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
54557    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
54558    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
54559    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
54560    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
54561    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
54562    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
54563    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
54564    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
54565    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
54566    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
54567    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
54568    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
54569    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
54570    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
54571    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
54572    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
54573    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
54574    l_rec_acct_attrs.array_num_value(30)  := p_source_144;
54575    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
54576    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
54577    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
54578    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
54579    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
54580    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
54581    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
54582    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
54583    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
54584    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
54585    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
54586    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
54587    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
54588    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
54589    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54590    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
54591    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
54592    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
54593    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
54594    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
54595    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
54596    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
54597    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
54598    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
54599    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
54600    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
54601    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
54602    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
54603 
54604    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54605    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54606 
54607    ---------------------------------------------------------------------------------------------------------------
54608    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54609    ---------------------------------------------------------------------------------------------------------------
54610    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54611 
54612    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54613    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54614 
54615    IF xla_accounting_cache_pkg.GetValueChar
54616          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54617          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54618    AND l_bflow_method_code = 'PRIOR_ENTRY'
54619 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54620    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54621          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54622        )
54623    THEN
54624          xla_ae_lines_pkg.BflowUpgEntry
54625            (p_business_method_code    => l_bflow_method_code
54626            ,p_business_class_code     => l_bflow_class_code
54627            ,p_balance_type            => l_balance_type_code);
54628    ELSE
54629       NULL;
54630 -- No business flow processing for business flow method of NONE.
54631    END IF;
54632 
54633    --
54634    -- call analytical criteria
54635    --
54636    
54637 
54638 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
54639 xla_ae_lines_pkg.SetAnalyticalCriteria(
54640    p_analytical_criterion_name    => 'Project Number'
54641  , p_analytical_criterion_owner   => 'S'
54645  
54642  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
54643  , p_amb_context_code             => 'DEFAULT'
54644  , p_balancing_flag               => 'N'
54646  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
54647 p_source_146))
54648  , p_analytical_detail_num_1     =>  NULL
54649  , p_analytical_detail_date_1    =>  NULL
54650 
54651  , p_ae_header_id                 => l_ae_header_id
54652 )
54653 ;
54654 --
54655 
54656    --
54657    -- call description
54658    --
54659    -- No description or it is inherited.
54660    --
54661    -- call ADRs
54662    -- Bug 4922099
54663    --
54664    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54665         (NVL(l_actual_upg_option, 'N') = 'O') OR
54666         (NVL(l_enc_upg_option, 'N') = 'O')
54667       )
54668    THEN
54669    NULL;
54670    --
54671    --
54672    
54673   l_ccid := AcctDerRule_40(
54674            p_application_id           => p_application_id
54675          , p_ae_header_id             => l_ae_header_id 
54676 , p_source_15 => p_source_15
54677 , p_source_15_meaning => p_source_15_meaning
54678 , p_source_30 => p_source_30
54679 , p_source_48 => p_source_48
54680          , x_transaction_coa_id       => l_adr_transaction_coa_id
54681          , x_accounting_coa_id        => l_adr_accounting_coa_id
54682          , x_value_type_code          => l_adr_value_type_code
54683          , p_side                     => 'NA'
54684    );
54685 
54686    xla_ae_lines_pkg.set_ccid(
54687     p_code_combination_id          => l_ccid
54688   , p_value_type_code              => l_adr_value_type_code
54689   , p_transaction_coa_id           => l_adr_transaction_coa_id
54690   , p_accounting_coa_id            => l_adr_accounting_coa_id
54691   , p_adr_code                     => 'AP_ROUNDING'
54692   , p_adr_type_code                => 'S'
54693   , p_component_type               => l_component_type
54694   , p_component_code               => l_component_code
54695   , p_component_type_code          => l_component_type_code
54696   , p_component_appl_id            => l_component_appl_id
54697   , p_amb_context_code             => l_amb_context_code
54698   , p_side                         => 'NA'
54699   );
54700 
54701 
54702    --
54703    --
54704    END IF;
54705    --
54706    -- Bug 4922099
54707    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54708           (NVL(l_enc_upg_option, 'N') = 'O')
54709         ) AND
54710         (l_bflow_method_code = 'PRIOR_ENTRY')
54711       )
54712    THEN
54713       IF
54714       --
54715       1 = 2
54716       --
54717       THEN
54718       xla_accounting_err_pkg.build_message
54719                                     (p_appli_s_name            => 'XLA'
54720                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54721                                     ,p_token_1                 => 'LINE_NUMBER'
54722                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54723                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54724                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54725                                                                              l_component_type
54726                                                                             ,l_component_code
54727                                                                             ,l_component_type_code
54728                                                                             ,l_component_appl_id
54729                                                                             ,l_amb_context_code
54730                                                                             ,l_entity_code
54731                                                                             ,l_event_class_code
54732                                                                            )
54733                                     ,p_token_3                 => 'OWNER'
54734                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54735                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54736                                                                           ,p_lookup_code    => l_component_type_code
54737                                                                          )
54738                                     ,p_token_4                 => 'PRODUCT_NAME'
54739                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54740                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54741                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54742                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54743                                     ,p_ae_header_id            =>  NULL
54744                                        );
54745 
54746         IF (C_LEVEL_ERROR>= g_log_level) THEN
54747                  trace
54748                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54749                       ,p_level    => C_LEVEL_ERROR
54750                       ,p_module   => l_log_module);
54751         END IF;
54752       END IF;
54753    END IF;
54757    -- 4219869 Business Flow
54754    --
54755    --
54756    ------------------------------------------------------------------------------------------------
54758    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54759    -- Prior Entry.  Currently, the following code is always generated.
54760    ------------------------------------------------------------------------------------------------
54761    XLA_AE_LINES_PKG.ValidateCurrentLine;
54762 
54763    ------------------------------------------------------------------------------------
54764    -- 4219869 Business Flow
54765    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54766    ------------------------------------------------------------------------------------
54767    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54768 
54769    ----------------------------------------------------------------------------------
54770    -- 4219869 Business Flow
54771    -- Update journal entry status -- Need to generate this within IF <condition>
54772    ----------------------------------------------------------------------------------
54773    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54774          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54775          ,p_balance_type_code => l_balance_type_code
54776          );
54777 
54778    -------------------------------------------------------------------------------------------
54779    -- 4262811 - Generate the Accrual Reversal lines
54780    -------------------------------------------------------------------------------------------
54781    BEGIN
54782       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54783                               (g_array_event(p_event_id).array_value_num('header_index'));
54784       IF l_acc_rev_flag IS NULL THEN
54785          l_acc_rev_flag := 'N';
54786       END IF;
54787    EXCEPTION
54788       WHEN OTHERS THEN
54789          l_acc_rev_flag := 'N';
54790    END;
54791    --
54792    IF (l_acc_rev_flag = 'Y') THEN
54793 
54794        -- 4645092  ------------------------------------------------------------------------------
54795        -- To allow MPA report to determine if it should generate report process
54796        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54797        ------------------------------------------------------------------------------------------
54798 
54799        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54800        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54801    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54802    -- call ADRs
54803    -- Bug 4922099
54804    --
54805    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54806         (NVL(l_actual_upg_option, 'N') = 'O') OR
54807         (NVL(l_enc_upg_option, 'N') = 'O')
54808       )
54809    THEN
54810    NULL;
54811    --
54812    --
54813    
54814   l_ccid := AcctDerRule_40(
54815            p_application_id           => p_application_id
54816          , p_ae_header_id             => l_ae_header_id 
54817 , p_source_15 => p_source_15
54818 , p_source_15_meaning => p_source_15_meaning
54819 , p_source_30 => p_source_30
54820 , p_source_48 => p_source_48
54821          , x_transaction_coa_id       => l_adr_transaction_coa_id
54822          , x_accounting_coa_id        => l_adr_accounting_coa_id
54823          , x_value_type_code          => l_adr_value_type_code
54824          , p_side                     => 'NA'
54825    );
54826 
54827    xla_ae_lines_pkg.set_ccid(
54828     p_code_combination_id          => l_ccid
54829   , p_value_type_code              => l_adr_value_type_code
54830   , p_transaction_coa_id           => l_adr_transaction_coa_id
54831   , p_accounting_coa_id            => l_adr_accounting_coa_id
54832   , p_adr_code                     => 'AP_ROUNDING'
54833   , p_adr_type_code                => 'S'
54834   , p_component_type               => l_component_type
54835   , p_component_code               => l_component_code
54836   , p_component_type_code          => l_component_type_code
54837   , p_component_appl_id            => l_component_appl_id
54838   , p_amb_context_code             => l_amb_context_code
54839   , p_side                         => 'NA'
54840   );
54841 
54842 
54843    --
54844    --
54845    END IF;
54846 
54847        --
54848        -- Update the line information that should be overwritten
54849        --
54850        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54851                                          p_header_num   => 1);
54852        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54853 
54854        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54855 
54856        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54857           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54858        END IF;
54859 
54860       --
54861       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54862       --
54863       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54864           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54865       ELSE
54869           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54866           ---------------------------------------------------------------------------------------------------
54867           -- 4262811a Switch Sign
54868           ---------------------------------------------------------------------------------------------------
54870           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54871                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54872           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54873                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54874           -- 5132302
54875           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54876                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54877 
54878       END IF;
54879 
54880       -- 4955764
54881       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54882       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54883 
54884 
54885       XLA_AE_LINES_PKG.ValidateCurrentLine;
54886       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54887 
54888       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54889                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54890                ,p_balance_type_code => l_balance_type_code);
54891 
54892    END IF;
54893 
54894    -----------------------------------------------------------------------------------------
54895    -- 4262811 Multiperiod Accounting
54896    -----------------------------------------------------------------------------------------
54897      -- No MPA option is assigned.
54898 
54899 
54900 END IF;
54901 END IF;
54902 --
54903 
54904 --
54905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54906    trace
54907       (p_msg      => 'END of AcctLineType_109'
54908       ,p_level    => C_LEVEL_PROCEDURE
54909       ,p_module   => l_log_module);
54910 END IF;
54911 --
54912 EXCEPTION
54913   WHEN xla_exceptions_pkg.application_exception THEN
54914       RAISE;
54915   WHEN OTHERS THEN
54916        xla_exceptions_pkg.raise_message
54917            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_109');
54918 END AcctLineType_109;
54919 --
54920 
54921 ---------------------------------------
54922 --
54923 -- PRIVATE FUNCTION
54924 --         AcctLineType_110
54925 --
54926 ---------------------------------------
54927 PROCEDURE AcctLineType_110 (
54928   p_application_id        IN NUMBER
54929  ,p_event_id              IN NUMBER
54930  ,p_calculate_acctd_flag  IN VARCHAR2
54931  ,p_calculate_g_l_flag    IN VARCHAR2
54932  ,p_actual_flag           IN OUT VARCHAR2
54933  ,p_balance_type_code     OUT VARCHAR2
54934  ,p_gain_or_loss_ref      OUT VARCHAR2
54935  
54936 --Automatic Offsets Value
54937  , p_source_15            IN VARCHAR2
54938  , p_source_15_meaning    IN VARCHAR2
54939 --Invoice Distribution Account
54940  , p_source_30            IN NUMBER
54941 --Payables Options Rounding Account
54942  , p_source_48            IN NUMBER
54943 --Accounting Reversal Indicator
54944  , p_source_52            IN VARCHAR2
54945 --Distribution Link Type
54946  , p_source_54            IN VARCHAR2
54947 --Invoice Currency Code
54948  , p_source_66            IN VARCHAR2
54949 --Override Accounted Amount Indicator
54950  , p_source_79            IN VARCHAR2
54951  , p_source_79_meaning    IN VARCHAR2
54952 --Third Party Type
54953  , p_source_82            IN VARCHAR2
54954 --Invoice Distribution Tax Line Identifier
54955  , p_source_85            IN NUMBER
54956 --Invoice Distribution Summary Tax Line Identifier
54957  , p_source_87            IN NUMBER
54958 --Business Flow Accounts Payable Application Identifier
54959  , p_source_90            IN NUMBER
54960 --When to Account for Payment Option
54961  , p_source_96            IN VARCHAR2
54962 --Payment Distribution Type
54963  , p_source_97            IN VARCHAR2
54964  , p_source_97_meaning    IN VARCHAR2
54965 --Payment Distribution Amount
54966  , p_source_98            IN NUMBER
54967 --Business Flow Payment Distribution Type
54968  , p_source_99            IN VARCHAR2
54969 --Business Flow Payment Entity Code
54970  , p_source_100            IN VARCHAR2
54971 --Business Flow Payment Distribution Identifier
54972  , p_source_101            IN NUMBER
54973 --Business Flow Payment Identifier
54974  , p_source_102            IN NUMBER
54975 --Payment Distribution Identifier
54976  , p_source_103            IN NUMBER
54977 --Payment Supplier Identifier
54978  , p_source_109            IN NUMBER
54979 --Payment Supplier Site Identifier
54980  , p_source_110            IN NUMBER
54981 --Payment Distribution Reversed Identifier
54982  , p_source_111            IN NUMBER
54983 --Payment Identifier
54984  , p_source_112            IN NUMBER
54985 --Payment Distribution (Invoice Rate) Ledger Amount
54986  , p_source_116            IN NUMBER
54987 --Invoice Exchange Date
54988  , p_source_136            IN DATE
54989 --Invoice Exchange Rate
54990  , p_source_137            IN NUMBER
54991 --Invoice Exchange Rate Type
54992  , p_source_138            IN VARCHAR2
54993 )
54994 IS
54995 
54999 l_component_appl_id           INTEGER;
54996 l_component_type              VARCHAR2(80);
54997 l_component_code              VARCHAR2(30);
54998 l_component_type_code         VARCHAR2(1);
55000 l_amb_context_code            VARCHAR2(30);
55001 l_entity_code                 VARCHAR2(30);
55002 l_event_class_code            VARCHAR2(30);
55003 l_ae_header_id                NUMBER;
55004 l_event_type_code             VARCHAR2(30);
55005 l_line_definition_code        VARCHAR2(30);
55006 l_line_definition_owner_code  VARCHAR2(1);
55007 --
55008 -- adr variables
55009 l_segment                     VARCHAR2(30);
55010 l_ccid                        NUMBER;
55011 l_adr_transaction_coa_id      NUMBER;
55012 l_adr_accounting_coa_id       NUMBER;
55013 l_adr_flexfield_segment_code  VARCHAR2(30);
55014 l_adr_flex_value_set_id       NUMBER;
55015 l_adr_value_type_code         VARCHAR2(30);
55016 l_adr_value_combination_id    NUMBER;
55017 l_adr_value_segment_code      VARCHAR2(30);
55018 
55019 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55020 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55021 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55022 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55023 
55024 -- 4262811 Variables ------------------------------------------------------------------------------------------
55025 l_entered_amt_idx             NUMBER;
55026 l_accted_amt_idx              NUMBER;
55027 l_acc_rev_flag                VARCHAR2(1);
55028 l_accrual_line_num            NUMBER;
55029 l_tmp_amt                     NUMBER;
55030 l_acc_rev_natural_side_code   VARCHAR2(1);
55031 
55032 l_num_entries                 NUMBER;
55033 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55034 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55035 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55036 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55037 l_recog_line_1                NUMBER;
55038 l_recog_line_2                NUMBER;
55039 
55040 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55041 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55042 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55043 
55044 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55045 
55046 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55047 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55048 
55049 ---------------------------------------------------------------------------------------------------------------
55050 
55051 
55052 --
55053 -- bulk performance
55054 --
55055 l_balance_type_code           VARCHAR2(1);
55056 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55057 l_log_module                  VARCHAR2(240);
55058 
55059 --
55060 -- Upgrade strategy
55061 --
55062 l_actual_upg_option           VARCHAR2(1);
55063 l_enc_upg_option           VARCHAR2(1);
55064 
55065 --
55066 BEGIN
55067 --
55068 IF g_log_enabled THEN
55069       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
55070 END IF;
55071 --
55072 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55073 
55074       trace
55075          (p_msg      => 'BEGIN of AcctLineType_110'
55076          ,p_level    => C_LEVEL_PROCEDURE
55077          ,p_module   => l_log_module);
55078 
55079 END IF;
55080 --
55081 l_component_type             := 'AMB_JLT';
55082 l_component_code             := 'AP_FINAL_PMT_ROUNDING_CLEAR';
55083 l_component_type_code        := 'S';
55084 l_component_appl_id          :=  200;
55085 l_amb_context_code           := 'DEFAULT';
55086 l_entity_code                := 'AP_PAYMENTS';
55087 l_event_class_code           := 'RECONCILED PAYMENTS';
55088 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
55089 l_line_definition_owner_code := 'S';
55090 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
55091 --
55092 l_balance_type_code          := 'A';
55093 l_segment                     := NULL;
55094 l_ccid                        := NULL;
55095 l_adr_transaction_coa_id      := NULL;
55096 l_adr_accounting_coa_id       := NULL;
55097 l_adr_flexfield_segment_code  := NULL;
55098 l_adr_flex_value_set_id       := NULL;
55099 l_adr_value_type_code         := NULL;
55100 l_adr_value_combination_id    := NULL;
55101 l_adr_value_segment_code      := NULL;
55102 
55103 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55104 l_bflow_class_code           := '';    -- 4219869 Business Flow
55105 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55106 l_budgetary_control_flag     := 'N';
55107 
55108 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55109 l_bflow_applied_to_amt       := NULL; -- 5132302
55110 l_entered_amt_idx            := NULL;          -- 4262811
55111 l_accted_amt_idx             := NULL;          -- 4262811
55112 l_acc_rev_flag               := NULL;          -- 4262811
55113 l_accrual_line_num           := NULL;          -- 4262811
55114 l_tmp_amt                    := NULL;          -- 4262811
55115 --
55116  
55117 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55118     l_balance_type_code <> 'B' THEN
55119 IF NVL(p_source_96,'
55123  THEN 
55120 ') =  'CLEAR_CLEAR' AND 
55121 NVL(p_source_97,'
55122 ') =  'FINAL PAYMENT ROUNDING'
55124 
55125    --
55126    XLA_AE_LINES_PKG.SetNewLine;
55127 
55128    p_balance_type_code          := l_balance_type_code;
55129    -- set the flag so later we will know whether the gain loss line needs to be created
55130    
55131    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55132      p_actual_flag :='A';
55133    END IF;
55134 
55135    --
55136    -- bulk performance
55137    --
55138    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55139                                       p_header_num   => 0); -- 4262811
55140    --
55141    -- set accounting line options
55142    --
55143    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55144            p_natural_side_code          => 'D'
55145          , p_gain_or_loss_flag          => 'N'
55146          , p_gl_transfer_mode_code      => 'S'
55147          , p_acct_entry_type_code       => 'A'
55148          , p_switch_side_flag           => 'Y'
55149          , p_merge_duplicate_code       => 'A'
55150          );
55151    --
55152    l_acc_rev_natural_side_code := 'C';  -- 4262811
55153    -- 
55154    --
55155    -- set accounting line type info
55156    --
55157    xla_ae_lines_pkg.SetAcctLineType
55158       (p_component_type             => l_component_type
55159       ,p_event_type_code            => l_event_type_code
55160       ,p_line_definition_owner_code => l_line_definition_owner_code
55161       ,p_line_definition_code       => l_line_definition_code
55162       ,p_accounting_line_code       => l_component_code
55163       ,p_accounting_line_type_code  => l_component_type_code
55164       ,p_accounting_line_appl_id    => l_component_appl_id
55165       ,p_amb_context_code           => l_amb_context_code
55166       ,p_entity_code                => l_entity_code
55167       ,p_event_class_code           => l_event_class_code);
55168    --
55169    -- set accounting class
55170    --
55171    xla_ae_lines_pkg.SetAcctClass(
55172            p_accounting_class_code  => 'ROUNDING'
55173          , p_ae_header_id           => l_ae_header_id
55174          );
55175 
55176    --
55177    -- set rounding class
55178    --
55179    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55180                       'ROUNDING';
55181 
55182    --
55183    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55184    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55185    --
55186    -- bulk performance
55187    --
55188    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55189 
55190    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55191       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55192 
55193    -- 4955764
55194    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55195       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55196 
55197    -- 4458381 Public Sector Enh
55198    
55199    --
55200    -- set accounting attributes for the line type
55201    --
55202    l_entered_amt_idx := 10;
55203    l_accted_amt_idx  := 15;
55204    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55205    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55206    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
55207    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55208    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
55209    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55210    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
55211    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55212    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
55213    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55214    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
55215    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55216    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
55217    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55218    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
55219    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55220    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
55221    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55222    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
55223    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55224    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
55225    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55226    l_rec_acct_attrs.array_char_value(11)  := p_source_66;
55227    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55228    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
55229    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55230    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
55231    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55232    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
55233    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55234    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
55235    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55239    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55236    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
55237    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55238    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
55240    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
55241    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55242    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
55243    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55244    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
55245    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55246    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
55247    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55248    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
55249    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55250    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
55251    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55252    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
55253 
55254    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55255    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55256 
55257    ---------------------------------------------------------------------------------------------------------------
55258    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55259    ---------------------------------------------------------------------------------------------------------------
55260    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55261 
55262    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55263    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55264 
55265    IF xla_accounting_cache_pkg.GetValueChar
55266          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55267          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55268    AND l_bflow_method_code = 'PRIOR_ENTRY'
55269 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55270    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55271          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55272        )
55273    THEN
55274          xla_ae_lines_pkg.BflowUpgEntry
55275            (p_business_method_code    => l_bflow_method_code
55276            ,p_business_class_code     => l_bflow_class_code
55277            ,p_balance_type            => l_balance_type_code);
55278    ELSE
55279       NULL;
55280 -- No business flow processing for business flow method of NONE.
55281    END IF;
55282 
55283    --
55284    -- call analytical criteria
55285    --
55286    
55287 
55288 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
55289 xla_ae_lines_pkg.SetAnalyticalCriteria(
55290    p_analytical_criterion_name    => 'Check Id'
55291  , p_analytical_criterion_owner   => 'S'
55292  , p_analytical_criterion_code    => 'CHECK_ID'
55293  , p_amb_context_code             => 'DEFAULT'
55294  , p_balancing_flag               => 'N'
55295  
55296  , p_analytical_detail_char_1    =>  NULL
55297  , p_analytical_detail_num_1     =>  p_source_112
55298  , p_analytical_detail_date_1    =>  NULL
55299 
55300  , p_ae_header_id                 => l_ae_header_id
55301 )
55302 ;
55303 --
55304 
55305    --
55306    -- call description
55307    --
55308    -- No description or it is inherited.
55309    --
55310    -- call ADRs
55311    -- Bug 4922099
55312    --
55313    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55314         (NVL(l_actual_upg_option, 'N') = 'O') OR
55315         (NVL(l_enc_upg_option, 'N') = 'O')
55316       )
55317    THEN
55318    NULL;
55319    --
55320    --
55321    
55322   l_ccid := AcctDerRule_40(
55323            p_application_id           => p_application_id
55324          , p_ae_header_id             => l_ae_header_id 
55325 , p_source_15 => p_source_15
55326 , p_source_15_meaning => p_source_15_meaning
55327 , p_source_30 => p_source_30
55328 , p_source_48 => p_source_48
55329          , x_transaction_coa_id       => l_adr_transaction_coa_id
55330          , x_accounting_coa_id        => l_adr_accounting_coa_id
55331          , x_value_type_code          => l_adr_value_type_code
55332          , p_side                     => 'NA'
55333    );
55334 
55335    xla_ae_lines_pkg.set_ccid(
55336     p_code_combination_id          => l_ccid
55337   , p_value_type_code              => l_adr_value_type_code
55338   , p_transaction_coa_id           => l_adr_transaction_coa_id
55339   , p_accounting_coa_id            => l_adr_accounting_coa_id
55340   , p_adr_code                     => 'AP_ROUNDING'
55341   , p_adr_type_code                => 'S'
55342   , p_component_type               => l_component_type
55343   , p_component_code               => l_component_code
55344   , p_component_type_code          => l_component_type_code
55345   , p_component_appl_id            => l_component_appl_id
55346   , p_amb_context_code             => l_amb_context_code
55347   , p_side                         => 'NA'
55348   );
55349 
55350 
55351    --
55352    --
55356    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55353    END IF;
55354    --
55355    -- Bug 4922099
55357           (NVL(l_enc_upg_option, 'N') = 'O')
55358         ) AND
55359         (l_bflow_method_code = 'PRIOR_ENTRY')
55360       )
55361    THEN
55362       IF
55363       --
55364       1 = 2
55365       --
55366       THEN
55367       xla_accounting_err_pkg.build_message
55368                                     (p_appli_s_name            => 'XLA'
55369                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55370                                     ,p_token_1                 => 'LINE_NUMBER'
55371                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55372                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55373                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55374                                                                              l_component_type
55375                                                                             ,l_component_code
55376                                                                             ,l_component_type_code
55377                                                                             ,l_component_appl_id
55378                                                                             ,l_amb_context_code
55379                                                                             ,l_entity_code
55380                                                                             ,l_event_class_code
55381                                                                            )
55382                                     ,p_token_3                 => 'OWNER'
55383                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55384                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55385                                                                           ,p_lookup_code    => l_component_type_code
55386                                                                          )
55387                                     ,p_token_4                 => 'PRODUCT_NAME'
55388                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55389                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55390                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55391                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55392                                     ,p_ae_header_id            =>  NULL
55393                                        );
55394 
55395         IF (C_LEVEL_ERROR>= g_log_level) THEN
55396                  trace
55397                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55398                       ,p_level    => C_LEVEL_ERROR
55399                       ,p_module   => l_log_module);
55400         END IF;
55401       END IF;
55402    END IF;
55403    --
55404    --
55405    ------------------------------------------------------------------------------------------------
55406    -- 4219869 Business Flow
55407    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55408    -- Prior Entry.  Currently, the following code is always generated.
55409    ------------------------------------------------------------------------------------------------
55410    XLA_AE_LINES_PKG.ValidateCurrentLine;
55411 
55412    ------------------------------------------------------------------------------------
55413    -- 4219869 Business Flow
55414    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55415    ------------------------------------------------------------------------------------
55416    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55417 
55418    ----------------------------------------------------------------------------------
55419    -- 4219869 Business Flow
55420    -- Update journal entry status -- Need to generate this within IF <condition>
55421    ----------------------------------------------------------------------------------
55422    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55423          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55424          ,p_balance_type_code => l_balance_type_code
55425          );
55426 
55427    -------------------------------------------------------------------------------------------
55428    -- 4262811 - Generate the Accrual Reversal lines
55429    -------------------------------------------------------------------------------------------
55430    BEGIN
55431       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55432                               (g_array_event(p_event_id).array_value_num('header_index'));
55433       IF l_acc_rev_flag IS NULL THEN
55434          l_acc_rev_flag := 'N';
55435       END IF;
55436    EXCEPTION
55437       WHEN OTHERS THEN
55438          l_acc_rev_flag := 'N';
55439    END;
55440    --
55441    IF (l_acc_rev_flag = 'Y') THEN
55442 
55443        -- 4645092  ------------------------------------------------------------------------------
55444        -- To allow MPA report to determine if it should generate report process
55445        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55446        ------------------------------------------------------------------------------------------
55447 
55451    -- call ADRs
55448        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55449        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55450    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55452    -- Bug 4922099
55453    --
55454    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55455         (NVL(l_actual_upg_option, 'N') = 'O') OR
55456         (NVL(l_enc_upg_option, 'N') = 'O')
55457       )
55458    THEN
55459    NULL;
55460    --
55461    --
55462    
55463   l_ccid := AcctDerRule_40(
55464            p_application_id           => p_application_id
55465          , p_ae_header_id             => l_ae_header_id 
55466 , p_source_15 => p_source_15
55467 , p_source_15_meaning => p_source_15_meaning
55468 , p_source_30 => p_source_30
55469 , p_source_48 => p_source_48
55470          , x_transaction_coa_id       => l_adr_transaction_coa_id
55471          , x_accounting_coa_id        => l_adr_accounting_coa_id
55472          , x_value_type_code          => l_adr_value_type_code
55473          , p_side                     => 'NA'
55474    );
55475 
55476    xla_ae_lines_pkg.set_ccid(
55477     p_code_combination_id          => l_ccid
55478   , p_value_type_code              => l_adr_value_type_code
55479   , p_transaction_coa_id           => l_adr_transaction_coa_id
55480   , p_accounting_coa_id            => l_adr_accounting_coa_id
55481   , p_adr_code                     => 'AP_ROUNDING'
55482   , p_adr_type_code                => 'S'
55483   , p_component_type               => l_component_type
55484   , p_component_code               => l_component_code
55485   , p_component_type_code          => l_component_type_code
55486   , p_component_appl_id            => l_component_appl_id
55487   , p_amb_context_code             => l_amb_context_code
55488   , p_side                         => 'NA'
55489   );
55490 
55491 
55492    --
55493    --
55494    END IF;
55495 
55496        --
55497        -- Update the line information that should be overwritten
55498        --
55499        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55500                                          p_header_num   => 1);
55501        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55502 
55503        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55504 
55505        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55506           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55507        END IF;
55508 
55509       --
55510       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55511       --
55512       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55513           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55514       ELSE
55515           ---------------------------------------------------------------------------------------------------
55516           -- 4262811a Switch Sign
55517           ---------------------------------------------------------------------------------------------------
55518           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55519           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55520                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55521           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55522                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55523           -- 5132302
55524           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55525                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55526 
55527       END IF;
55528 
55529       -- 4955764
55530       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55531       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55532 
55533 
55534       XLA_AE_LINES_PKG.ValidateCurrentLine;
55535       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55536 
55537       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55538                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55539                ,p_balance_type_code => l_balance_type_code);
55540 
55541    END IF;
55542 
55543    -----------------------------------------------------------------------------------------
55544    -- 4262811 Multiperiod Accounting
55545    -----------------------------------------------------------------------------------------
55546      -- No MPA option is assigned.
55547 
55548 
55549 END IF;
55550 END IF;
55551 --
55552 
55553 --
55554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55555    trace
55556       (p_msg      => 'END of AcctLineType_110'
55557       ,p_level    => C_LEVEL_PROCEDURE
55558       ,p_module   => l_log_module);
55559 END IF;
55560 --
55561 EXCEPTION
55562   WHEN xla_exceptions_pkg.application_exception THEN
55563       RAISE;
55564   WHEN OTHERS THEN
55565        xla_exceptions_pkg.raise_message
55569 
55566            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_110');
55567 END AcctLineType_110;
55568 --
55570 ---------------------------------------
55571 --
55572 -- PRIVATE FUNCTION
55573 --         AcctLineType_111
55574 --
55575 ---------------------------------------
55576 PROCEDURE AcctLineType_111 (
55577   p_application_id        IN NUMBER
55578  ,p_event_id              IN NUMBER
55579  ,p_calculate_acctd_flag  IN VARCHAR2
55580  ,p_calculate_g_l_flag    IN VARCHAR2
55581  ,p_actual_flag           IN OUT VARCHAR2
55582  ,p_balance_type_code     OUT VARCHAR2
55583  ,p_gain_or_loss_ref      OUT VARCHAR2
55584  
55585 --Automatic Offsets Value
55586  , p_source_15            IN VARCHAR2
55587  , p_source_15_meaning    IN VARCHAR2
55588 --Invoice Distribution Account
55589  , p_source_30            IN NUMBER
55590 --Payables Options Rounding Account
55591  , p_source_48            IN NUMBER
55592 --Accounting Reversal Indicator
55593  , p_source_52            IN VARCHAR2
55594 --Distribution Link Type
55595  , p_source_54            IN VARCHAR2
55596 --Invoice Currency Code
55597  , p_source_66            IN VARCHAR2
55598 --Override Accounted Amount Indicator
55599  , p_source_79            IN VARCHAR2
55600  , p_source_79_meaning    IN VARCHAR2
55601 --Third Party Type
55602  , p_source_82            IN VARCHAR2
55603 --Invoice Distribution Tax Line Identifier
55604  , p_source_85            IN NUMBER
55605 --Invoice Distribution Tax Distribution Identifier from Tax
55606  , p_source_86            IN NUMBER
55607 --Invoice Distribution Summary Tax Line Identifier
55608  , p_source_87            IN NUMBER
55609 --Business Flow Accounts Payable Application Identifier
55610  , p_source_90            IN NUMBER
55611 --Business Flow Invoice Distribution Type
55612  , p_source_91            IN VARCHAR2
55613 --Business Flow Invoice Entity Code
55614  , p_source_92            IN VARCHAR2
55615 --Business Flow Invoice Distribution Identifier
55616  , p_source_93            IN NUMBER
55617 --Business Flow Invoice Identifier
55618  , p_source_94            IN NUMBER
55619 --When to Account for Payment Option
55620  , p_source_96            IN VARCHAR2
55621 --Payment Distribution Type
55622  , p_source_97            IN VARCHAR2
55623  , p_source_97_meaning    IN VARCHAR2
55624 --Payment Distribution Amount
55625  , p_source_98            IN NUMBER
55626 --Payment Distribution Identifier
55627  , p_source_103            IN NUMBER
55628 --Payment Supplier Identifier
55629  , p_source_109            IN NUMBER
55630 --Payment Supplier Site Identifier
55631  , p_source_110            IN NUMBER
55632 --Payment Distribution Reversed Identifier
55633  , p_source_111            IN NUMBER
55634 --Payment Identifier
55635  , p_source_112            IN NUMBER
55636 --Payment Distribution (Invoice Rate) Ledger Amount
55637  , p_source_116            IN NUMBER
55638 --Payment Type
55639  , p_source_122            IN VARCHAR2
55640  , p_source_122_meaning    IN VARCHAR2
55641 --Payment Processing Type
55642  , p_source_123            IN VARCHAR2
55643 --Invoice Distribution Amount of the Payment Distribution
55644  , p_source_124            IN NUMBER
55645 --Invoice Exchange Date
55646  , p_source_136            IN DATE
55647 --Invoice Exchange Rate
55648  , p_source_137            IN NUMBER
55649 --Invoice Exchange Rate Type
55650  , p_source_138            IN VARCHAR2
55651 )
55652 IS
55653 
55654 l_component_type              VARCHAR2(80);
55655 l_component_code              VARCHAR2(30);
55656 l_component_type_code         VARCHAR2(1);
55657 l_component_appl_id           INTEGER;
55658 l_amb_context_code            VARCHAR2(30);
55659 l_entity_code                 VARCHAR2(30);
55660 l_event_class_code            VARCHAR2(30);
55661 l_ae_header_id                NUMBER;
55662 l_event_type_code             VARCHAR2(30);
55663 l_line_definition_code        VARCHAR2(30);
55664 l_line_definition_owner_code  VARCHAR2(1);
55665 --
55666 -- adr variables
55667 l_segment                     VARCHAR2(30);
55668 l_ccid                        NUMBER;
55669 l_adr_transaction_coa_id      NUMBER;
55670 l_adr_accounting_coa_id       NUMBER;
55671 l_adr_flexfield_segment_code  VARCHAR2(30);
55672 l_adr_flex_value_set_id       NUMBER;
55673 l_adr_value_type_code         VARCHAR2(30);
55674 l_adr_value_combination_id    NUMBER;
55675 l_adr_value_segment_code      VARCHAR2(30);
55676 
55677 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55678 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55679 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55680 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55681 
55682 -- 4262811 Variables ------------------------------------------------------------------------------------------
55683 l_entered_amt_idx             NUMBER;
55684 l_accted_amt_idx              NUMBER;
55685 l_acc_rev_flag                VARCHAR2(1);
55686 l_accrual_line_num            NUMBER;
55687 l_tmp_amt                     NUMBER;
55688 l_acc_rev_natural_side_code   VARCHAR2(1);
55689 
55690 l_num_entries                 NUMBER;
55691 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55692 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55693 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55694 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55698 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55695 l_recog_line_1                NUMBER;
55696 l_recog_line_2                NUMBER;
55697 
55699 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55700 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55701 
55702 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55703 
55704 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55705 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55706 
55707 ---------------------------------------------------------------------------------------------------------------
55708 
55709 
55710 --
55711 -- bulk performance
55712 --
55713 l_balance_type_code           VARCHAR2(1);
55714 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55715 l_log_module                  VARCHAR2(240);
55716 
55717 --
55718 -- Upgrade strategy
55719 --
55720 l_actual_upg_option           VARCHAR2(1);
55721 l_enc_upg_option           VARCHAR2(1);
55722 
55723 --
55724 BEGIN
55725 --
55726 IF g_log_enabled THEN
55727       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
55728 END IF;
55729 --
55730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55731 
55732       trace
55733          (p_msg      => 'BEGIN of AcctLineType_111'
55734          ,p_level    => C_LEVEL_PROCEDURE
55735          ,p_module   => l_log_module);
55736 
55737 END IF;
55738 --
55739 l_component_type             := 'AMB_JLT';
55740 l_component_code             := 'AP_FINAL_PMT_ROUNDING_PMT';
55741 l_component_type_code        := 'S';
55742 l_component_appl_id          :=  200;
55743 l_amb_context_code           := 'DEFAULT';
55744 l_entity_code                := 'AP_PAYMENTS';
55745 l_event_class_code           := 'PAYMENTS';
55746 l_event_type_code            := 'PAYMENTS_ALL';
55747 l_line_definition_owner_code := 'S';
55748 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
55749 --
55750 l_balance_type_code          := 'A';
55751 l_segment                     := NULL;
55752 l_ccid                        := NULL;
55753 l_adr_transaction_coa_id      := NULL;
55754 l_adr_accounting_coa_id       := NULL;
55755 l_adr_flexfield_segment_code  := NULL;
55756 l_adr_flex_value_set_id       := NULL;
55757 l_adr_value_type_code         := NULL;
55758 l_adr_value_combination_id    := NULL;
55759 l_adr_value_segment_code      := NULL;
55760 
55761 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55762 l_bflow_class_code           := '';    -- 4219869 Business Flow
55763 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55764 l_budgetary_control_flag     := 'N';
55765 
55766 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55767 l_bflow_applied_to_amt       := NULL; -- 5132302
55768 l_entered_amt_idx            := NULL;          -- 4262811
55769 l_accted_amt_idx             := NULL;          -- 4262811
55770 l_acc_rev_flag               := NULL;          -- 4262811
55771 l_accrual_line_num           := NULL;          -- 4262811
55772 l_tmp_amt                    := NULL;          -- 4262811
55773 --
55774  
55775 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55776     l_balance_type_code <> 'B' THEN
55777 IF NVL(p_source_96,'
55778 ') <>  'CLEAR_CLEAR' AND 
55779 NVL(p_source_97,'
55780 ') =  'FINAL PAYMENT ROUNDING' AND 
55781 NVL(p_source_122,'
55782 ') <>  'R' AND 
55783 NVL(p_source_123,'
55784 ') <>  'PAYMENTCARD'
55785  THEN 
55786 
55787    --
55788    XLA_AE_LINES_PKG.SetNewLine;
55789 
55790    p_balance_type_code          := l_balance_type_code;
55791    -- set the flag so later we will know whether the gain loss line needs to be created
55792    
55793    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55794      p_actual_flag :='A';
55795    END IF;
55796 
55797    --
55798    -- bulk performance
55799    --
55800    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55801                                       p_header_num   => 0); -- 4262811
55802    --
55803    -- set accounting line options
55804    --
55805    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55806            p_natural_side_code          => 'D'
55807          , p_gain_or_loss_flag          => 'N'
55808          , p_gl_transfer_mode_code      => 'S'
55809          , p_acct_entry_type_code       => 'A'
55810          , p_switch_side_flag           => 'Y'
55811          , p_merge_duplicate_code       => 'A'
55812          );
55813    --
55814    l_acc_rev_natural_side_code := 'C';  -- 4262811
55815    -- 
55816    --
55817    -- set accounting line type info
55818    --
55819    xla_ae_lines_pkg.SetAcctLineType
55820       (p_component_type             => l_component_type
55821       ,p_event_type_code            => l_event_type_code
55822       ,p_line_definition_owner_code => l_line_definition_owner_code
55823       ,p_line_definition_code       => l_line_definition_code
55824       ,p_accounting_line_code       => l_component_code
55825       ,p_accounting_line_type_code  => l_component_type_code
55826       ,p_accounting_line_appl_id    => l_component_appl_id
55827       ,p_amb_context_code           => l_amb_context_code
55828       ,p_entity_code                => l_entity_code
55829       ,p_event_class_code           => l_event_class_code);
55833    xla_ae_lines_pkg.SetAcctClass(
55830    --
55831    -- set accounting class
55832    --
55834            p_accounting_class_code  => 'ROUNDING'
55835          , p_ae_header_id           => l_ae_header_id
55836          );
55837 
55838    --
55839    -- set rounding class
55840    --
55841    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55842                       'ROUNDING';
55843 
55844    --
55845    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55846    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55847    --
55848    -- bulk performance
55849    --
55850    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55851 
55852    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55853       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55854 
55855    -- 4955764
55856    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55857       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55858 
55859    -- 4458381 Public Sector Enh
55860    
55861    --
55862    -- set accounting attributes for the line type
55863    --
55864    l_entered_amt_idx := 10;
55865    l_accted_amt_idx  := 15;
55866    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55867    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55868    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
55869    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55870    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
55871    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55872    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
55873    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55874    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
55875    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55876    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
55877    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55878    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
55879    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55880    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
55881    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55882    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
55883    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55884    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
55885    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55886    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
55887    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55888    l_rec_acct_attrs.array_char_value(11)  := p_source_66;
55889    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55890    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
55891    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55892    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
55893    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55894    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
55895    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55896    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
55897    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55898    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
55899    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55900    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
55901    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55902    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
55903    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55904    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
55905    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55906    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
55907    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55908    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
55909    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55910    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
55911    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55912    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
55913    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55914    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
55915 
55916    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55917    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55918 
55919    ---------------------------------------------------------------------------------------------------------------
55920    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55921    ---------------------------------------------------------------------------------------------------------------
55922    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55923 
55924    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55928          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55925    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55926 
55927    IF xla_accounting_cache_pkg.GetValueChar
55929          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55930    AND l_bflow_method_code = 'PRIOR_ENTRY'
55931 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55932    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55933          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55934        )
55935    THEN
55936          xla_ae_lines_pkg.BflowUpgEntry
55937            (p_business_method_code    => l_bflow_method_code
55938            ,p_business_class_code     => l_bflow_class_code
55939            ,p_balance_type            => l_balance_type_code);
55940    ELSE
55941       NULL;
55942 -- No business flow processing for business flow method of NONE.
55943    END IF;
55944 
55945    --
55946    -- call analytical criteria
55947    --
55948    
55949 
55950 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
55951 xla_ae_lines_pkg.SetAnalyticalCriteria(
55952    p_analytical_criterion_name    => 'Check Id'
55953  , p_analytical_criterion_owner   => 'S'
55954  , p_analytical_criterion_code    => 'CHECK_ID'
55955  , p_amb_context_code             => 'DEFAULT'
55956  , p_balancing_flag               => 'N'
55957  
55958  , p_analytical_detail_char_1    =>  NULL
55959  , p_analytical_detail_num_1     =>  p_source_112
55960  , p_analytical_detail_date_1    =>  NULL
55961 
55962  , p_ae_header_id                 => l_ae_header_id
55963 )
55964 ;
55965 --
55966 
55967    --
55968    -- call description
55969    --
55970    -- No description or it is inherited.
55971    --
55972    -- call ADRs
55973    -- Bug 4922099
55974    --
55975    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55976         (NVL(l_actual_upg_option, 'N') = 'O') OR
55977         (NVL(l_enc_upg_option, 'N') = 'O')
55978       )
55979    THEN
55980    NULL;
55981    --
55982    --
55983    
55984   l_ccid := AcctDerRule_40(
55985            p_application_id           => p_application_id
55986          , p_ae_header_id             => l_ae_header_id 
55987 , p_source_15 => p_source_15
55988 , p_source_15_meaning => p_source_15_meaning
55989 , p_source_30 => p_source_30
55990 , p_source_48 => p_source_48
55991          , x_transaction_coa_id       => l_adr_transaction_coa_id
55992          , x_accounting_coa_id        => l_adr_accounting_coa_id
55993          , x_value_type_code          => l_adr_value_type_code
55994          , p_side                     => 'NA'
55995    );
55996 
55997    xla_ae_lines_pkg.set_ccid(
55998     p_code_combination_id          => l_ccid
55999   , p_value_type_code              => l_adr_value_type_code
56000   , p_transaction_coa_id           => l_adr_transaction_coa_id
56001   , p_accounting_coa_id            => l_adr_accounting_coa_id
56002   , p_adr_code                     => 'AP_ROUNDING'
56003   , p_adr_type_code                => 'S'
56004   , p_component_type               => l_component_type
56005   , p_component_code               => l_component_code
56006   , p_component_type_code          => l_component_type_code
56007   , p_component_appl_id            => l_component_appl_id
56008   , p_amb_context_code             => l_amb_context_code
56009   , p_side                         => 'NA'
56010   );
56011 
56012 
56013    --
56014    --
56015    END IF;
56016    --
56017    -- Bug 4922099
56018    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56019           (NVL(l_enc_upg_option, 'N') = 'O')
56020         ) AND
56021         (l_bflow_method_code = 'PRIOR_ENTRY')
56022       )
56023    THEN
56024       IF
56025       --
56026       1 = 2
56027       --
56028       THEN
56029       xla_accounting_err_pkg.build_message
56030                                     (p_appli_s_name            => 'XLA'
56031                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56032                                     ,p_token_1                 => 'LINE_NUMBER'
56033                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56034                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56035                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56036                                                                              l_component_type
56037                                                                             ,l_component_code
56038                                                                             ,l_component_type_code
56039                                                                             ,l_component_appl_id
56040                                                                             ,l_amb_context_code
56041                                                                             ,l_entity_code
56042                                                                             ,l_event_class_code
56043                                                                            )
56044                                     ,p_token_3                 => 'OWNER'
56045                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56049                                     ,p_token_4                 => 'PRODUCT_NAME'
56046                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56047                                                                           ,p_lookup_code    => l_component_type_code
56048                                                                          )
56050                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56051                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56052                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56053                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56054                                     ,p_ae_header_id            =>  NULL
56055                                        );
56056 
56057         IF (C_LEVEL_ERROR>= g_log_level) THEN
56058                  trace
56059                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56060                       ,p_level    => C_LEVEL_ERROR
56061                       ,p_module   => l_log_module);
56062         END IF;
56063       END IF;
56064    END IF;
56065    --
56066    --
56067    ------------------------------------------------------------------------------------------------
56068    -- 4219869 Business Flow
56069    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56070    -- Prior Entry.  Currently, the following code is always generated.
56071    ------------------------------------------------------------------------------------------------
56072    XLA_AE_LINES_PKG.ValidateCurrentLine;
56073 
56074    ------------------------------------------------------------------------------------
56075    -- 4219869 Business Flow
56076    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56077    ------------------------------------------------------------------------------------
56078    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56079 
56080    ----------------------------------------------------------------------------------
56081    -- 4219869 Business Flow
56082    -- Update journal entry status -- Need to generate this within IF <condition>
56083    ----------------------------------------------------------------------------------
56084    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56085          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56086          ,p_balance_type_code => l_balance_type_code
56087          );
56088 
56089    -------------------------------------------------------------------------------------------
56090    -- 4262811 - Generate the Accrual Reversal lines
56091    -------------------------------------------------------------------------------------------
56092    BEGIN
56093       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56094                               (g_array_event(p_event_id).array_value_num('header_index'));
56095       IF l_acc_rev_flag IS NULL THEN
56096          l_acc_rev_flag := 'N';
56097       END IF;
56098    EXCEPTION
56099       WHEN OTHERS THEN
56100          l_acc_rev_flag := 'N';
56101    END;
56102    --
56103    IF (l_acc_rev_flag = 'Y') THEN
56104 
56105        -- 4645092  ------------------------------------------------------------------------------
56106        -- To allow MPA report to determine if it should generate report process
56107        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56108        ------------------------------------------------------------------------------------------
56109 
56110        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56111        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56112    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56113    -- call ADRs
56114    -- Bug 4922099
56115    --
56116    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56117         (NVL(l_actual_upg_option, 'N') = 'O') OR
56118         (NVL(l_enc_upg_option, 'N') = 'O')
56119       )
56120    THEN
56121    NULL;
56122    --
56123    --
56124    
56125   l_ccid := AcctDerRule_40(
56126            p_application_id           => p_application_id
56127          , p_ae_header_id             => l_ae_header_id 
56128 , p_source_15 => p_source_15
56129 , p_source_15_meaning => p_source_15_meaning
56130 , p_source_30 => p_source_30
56131 , p_source_48 => p_source_48
56132          , x_transaction_coa_id       => l_adr_transaction_coa_id
56133          , x_accounting_coa_id        => l_adr_accounting_coa_id
56134          , x_value_type_code          => l_adr_value_type_code
56135          , p_side                     => 'NA'
56136    );
56137 
56138    xla_ae_lines_pkg.set_ccid(
56139     p_code_combination_id          => l_ccid
56140   , p_value_type_code              => l_adr_value_type_code
56141   , p_transaction_coa_id           => l_adr_transaction_coa_id
56142   , p_accounting_coa_id            => l_adr_accounting_coa_id
56143   , p_adr_code                     => 'AP_ROUNDING'
56144   , p_adr_type_code                => 'S'
56145   , p_component_type               => l_component_type
56146   , p_component_code               => l_component_code
56147   , p_component_type_code          => l_component_type_code
56148   , p_component_appl_id            => l_component_appl_id
56152 
56149   , p_amb_context_code             => l_amb_context_code
56150   , p_side                         => 'NA'
56151   );
56153 
56154    --
56155    --
56156    END IF;
56157 
56158        --
56159        -- Update the line information that should be overwritten
56160        --
56161        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56162                                          p_header_num   => 1);
56163        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56164 
56165        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56166 
56167        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56168           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56169        END IF;
56170 
56171       --
56172       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56173       --
56174       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56175           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56176       ELSE
56177           ---------------------------------------------------------------------------------------------------
56178           -- 4262811a Switch Sign
56179           ---------------------------------------------------------------------------------------------------
56180           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56181           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56182                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56183           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56184                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56185           -- 5132302
56186           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56187                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56188 
56189       END IF;
56190 
56191       -- 4955764
56192       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56193       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56194 
56195 
56196       XLA_AE_LINES_PKG.ValidateCurrentLine;
56197       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56198 
56199       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56200                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56201                ,p_balance_type_code => l_balance_type_code);
56202 
56203    END IF;
56204 
56205    -----------------------------------------------------------------------------------------
56206    -- 4262811 Multiperiod Accounting
56207    -----------------------------------------------------------------------------------------
56208      -- No MPA option is assigned.
56209 
56210 
56211 END IF;
56212 END IF;
56213 --
56214 
56215 --
56216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56217    trace
56218       (p_msg      => 'END of AcctLineType_111'
56219       ,p_level    => C_LEVEL_PROCEDURE
56220       ,p_module   => l_log_module);
56221 END IF;
56222 --
56223 EXCEPTION
56224   WHEN xla_exceptions_pkg.application_exception THEN
56225       RAISE;
56226   WHEN OTHERS THEN
56227        xla_exceptions_pkg.raise_message
56228            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_111');
56229 END AcctLineType_111;
56230 --
56231 
56232 ---------------------------------------
56233 --
56234 -- PRIVATE FUNCTION
56235 --         AcctLineType_112
56236 --
56237 ---------------------------------------
56238 PROCEDURE AcctLineType_112 (
56239   p_application_id        IN NUMBER
56240  ,p_event_id              IN NUMBER
56241  ,p_calculate_acctd_flag  IN VARCHAR2
56242  ,p_calculate_g_l_flag    IN VARCHAR2
56243  ,p_actual_flag           IN OUT VARCHAR2
56244  ,p_balance_type_code     OUT VARCHAR2
56245  ,p_gain_or_loss_ref      OUT VARCHAR2
56246  
56247 --Automatic Offsets Value
56248  , p_source_15            IN VARCHAR2
56249  , p_source_15_meaning    IN VARCHAR2
56250 --Invoice Distribution Account
56251  , p_source_30            IN NUMBER
56252 --Payables Options Rounding Account
56253  , p_source_48            IN NUMBER
56254 --Accounting Reversal Indicator
56255  , p_source_52            IN VARCHAR2
56256 --Distribution Link Type
56257  , p_source_54            IN VARCHAR2
56258 --Invoice Currency Code
56259  , p_source_66            IN VARCHAR2
56260 --Override Accounted Amount Indicator
56261  , p_source_79            IN VARCHAR2
56262  , p_source_79_meaning    IN VARCHAR2
56263 --Third Party Type
56264  , p_source_82            IN VARCHAR2
56265 --Invoice Distribution Tax Line Identifier
56266  , p_source_85            IN NUMBER
56267 --Invoice Distribution Tax Distribution Identifier from Tax
56268  , p_source_86            IN NUMBER
56269 --Invoice Distribution Summary Tax Line Identifier
56270  , p_source_87            IN NUMBER
56271 --Business Flow Accounts Payable Application Identifier
56272  , p_source_90            IN NUMBER
56273 --Business Flow Invoice Distribution Type
56274  , p_source_91            IN VARCHAR2
56278  , p_source_93            IN NUMBER
56275 --Business Flow Invoice Entity Code
56276  , p_source_92            IN VARCHAR2
56277 --Business Flow Invoice Distribution Identifier
56279 --Business Flow Invoice Identifier
56280  , p_source_94            IN NUMBER
56281 --When to Account for Payment Option
56282  , p_source_96            IN VARCHAR2
56283 --Payment Distribution Type
56284  , p_source_97            IN VARCHAR2
56285  , p_source_97_meaning    IN VARCHAR2
56286 --Payment Distribution Amount
56287  , p_source_98            IN NUMBER
56288 --Payment Distribution Identifier
56289  , p_source_103            IN NUMBER
56290 --Payment Supplier Identifier
56291  , p_source_109            IN NUMBER
56292 --Payment Supplier Site Identifier
56293  , p_source_110            IN NUMBER
56294 --Payment Distribution Reversed Identifier
56295  , p_source_111            IN NUMBER
56296 --Payment Identifier
56297  , p_source_112            IN NUMBER
56298 --Payment Distribution (Invoice Rate) Ledger Amount
56299  , p_source_116            IN NUMBER
56300 --Payment Type
56301  , p_source_122            IN VARCHAR2
56302  , p_source_122_meaning    IN VARCHAR2
56303 --Invoice Exchange Date
56304  , p_source_136            IN DATE
56305 --Invoice Exchange Rate
56306  , p_source_137            IN NUMBER
56307 --Invoice Exchange Rate Type
56308  , p_source_138            IN VARCHAR2
56309 )
56310 IS
56311 
56312 l_component_type              VARCHAR2(80);
56313 l_component_code              VARCHAR2(30);
56314 l_component_type_code         VARCHAR2(1);
56315 l_component_appl_id           INTEGER;
56316 l_amb_context_code            VARCHAR2(30);
56317 l_entity_code                 VARCHAR2(30);
56318 l_event_class_code            VARCHAR2(30);
56319 l_ae_header_id                NUMBER;
56320 l_event_type_code             VARCHAR2(30);
56321 l_line_definition_code        VARCHAR2(30);
56322 l_line_definition_owner_code  VARCHAR2(1);
56323 --
56324 -- adr variables
56325 l_segment                     VARCHAR2(30);
56326 l_ccid                        NUMBER;
56327 l_adr_transaction_coa_id      NUMBER;
56328 l_adr_accounting_coa_id       NUMBER;
56329 l_adr_flexfield_segment_code  VARCHAR2(30);
56330 l_adr_flex_value_set_id       NUMBER;
56331 l_adr_value_type_code         VARCHAR2(30);
56332 l_adr_value_combination_id    NUMBER;
56333 l_adr_value_segment_code      VARCHAR2(30);
56334 
56335 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56336 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56337 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56338 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56339 
56340 -- 4262811 Variables ------------------------------------------------------------------------------------------
56341 l_entered_amt_idx             NUMBER;
56342 l_accted_amt_idx              NUMBER;
56343 l_acc_rev_flag                VARCHAR2(1);
56344 l_accrual_line_num            NUMBER;
56345 l_tmp_amt                     NUMBER;
56346 l_acc_rev_natural_side_code   VARCHAR2(1);
56347 
56348 l_num_entries                 NUMBER;
56349 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56350 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56351 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56352 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56353 l_recog_line_1                NUMBER;
56354 l_recog_line_2                NUMBER;
56355 
56356 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56357 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56358 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56359 
56360 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56361 
56362 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56363 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56364 
56365 ---------------------------------------------------------------------------------------------------------------
56366 
56367 
56368 --
56369 -- bulk performance
56370 --
56371 l_balance_type_code           VARCHAR2(1);
56372 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56373 l_log_module                  VARCHAR2(240);
56374 
56375 --
56376 -- Upgrade strategy
56377 --
56378 l_actual_upg_option           VARCHAR2(1);
56379 l_enc_upg_option           VARCHAR2(1);
56380 
56381 --
56382 BEGIN
56383 --
56384 IF g_log_enabled THEN
56385       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
56386 END IF;
56387 --
56388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56389 
56390       trace
56391          (p_msg      => 'BEGIN of AcctLineType_112'
56392          ,p_level    => C_LEVEL_PROCEDURE
56393          ,p_module   => l_log_module);
56394 
56395 END IF;
56396 --
56397 l_component_type             := 'AMB_JLT';
56398 l_component_code             := 'AP_FINAL_PMT_ROUNDING_REF';
56399 l_component_type_code        := 'S';
56400 l_component_appl_id          :=  200;
56401 l_amb_context_code           := 'DEFAULT';
56402 l_entity_code                := 'AP_PAYMENTS';
56403 l_event_class_code           := 'REFUNDS';
56404 l_event_type_code            := 'REFUNDS_ALL';
56408 l_balance_type_code          := 'A';
56405 l_line_definition_owner_code := 'S';
56406 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
56407 --
56409 l_segment                     := NULL;
56410 l_ccid                        := NULL;
56411 l_adr_transaction_coa_id      := NULL;
56412 l_adr_accounting_coa_id       := NULL;
56413 l_adr_flexfield_segment_code  := NULL;
56414 l_adr_flex_value_set_id       := NULL;
56415 l_adr_value_type_code         := NULL;
56416 l_adr_value_combination_id    := NULL;
56417 l_adr_value_segment_code      := NULL;
56418 
56419 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56420 l_bflow_class_code           := '';    -- 4219869 Business Flow
56421 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56422 l_budgetary_control_flag     := 'N';
56423 
56424 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56425 l_bflow_applied_to_amt       := NULL; -- 5132302
56426 l_entered_amt_idx            := NULL;          -- 4262811
56427 l_accted_amt_idx             := NULL;          -- 4262811
56428 l_acc_rev_flag               := NULL;          -- 4262811
56429 l_accrual_line_num           := NULL;          -- 4262811
56430 l_tmp_amt                    := NULL;          -- 4262811
56431 --
56432  
56433 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56434     l_balance_type_code <> 'B' THEN
56435 IF NVL(p_source_96,'
56436 ') <>  'CLEAR_CLEAR' AND 
56437 NVL(p_source_97,'
56438 ') =  'FINAL PAYMENT ROUNDING' AND 
56439 NVL(p_source_122,'
56440 ') =  'R'
56441  THEN 
56442 
56443    --
56444    XLA_AE_LINES_PKG.SetNewLine;
56445 
56446    p_balance_type_code          := l_balance_type_code;
56447    -- set the flag so later we will know whether the gain loss line needs to be created
56448    
56449    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56450      p_actual_flag :='A';
56451    END IF;
56452 
56453    --
56454    -- bulk performance
56455    --
56456    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56457                                       p_header_num   => 0); -- 4262811
56458    --
56459    -- set accounting line options
56460    --
56461    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56462            p_natural_side_code          => 'D'
56463          , p_gain_or_loss_flag          => 'N'
56464          , p_gl_transfer_mode_code      => 'S'
56465          , p_acct_entry_type_code       => 'A'
56466          , p_switch_side_flag           => 'Y'
56467          , p_merge_duplicate_code       => 'A'
56468          );
56469    --
56470    l_acc_rev_natural_side_code := 'C';  -- 4262811
56471    -- 
56472    --
56473    -- set accounting line type info
56474    --
56475    xla_ae_lines_pkg.SetAcctLineType
56476       (p_component_type             => l_component_type
56477       ,p_event_type_code            => l_event_type_code
56478       ,p_line_definition_owner_code => l_line_definition_owner_code
56479       ,p_line_definition_code       => l_line_definition_code
56480       ,p_accounting_line_code       => l_component_code
56481       ,p_accounting_line_type_code  => l_component_type_code
56482       ,p_accounting_line_appl_id    => l_component_appl_id
56483       ,p_amb_context_code           => l_amb_context_code
56484       ,p_entity_code                => l_entity_code
56485       ,p_event_class_code           => l_event_class_code);
56486    --
56487    -- set accounting class
56488    --
56489    xla_ae_lines_pkg.SetAcctClass(
56490            p_accounting_class_code  => 'ROUNDING'
56491          , p_ae_header_id           => l_ae_header_id
56492          );
56493 
56494    --
56495    -- set rounding class
56496    --
56497    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56498                       'ROUNDING';
56499 
56500    --
56501    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56502    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56503    --
56504    -- bulk performance
56505    --
56506    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56507 
56508    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56509       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56510 
56511    -- 4955764
56512    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56513       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56514 
56515    -- 4458381 Public Sector Enh
56516    
56517    --
56518    -- set accounting attributes for the line type
56519    --
56520    l_entered_amt_idx := 9;
56521    l_accted_amt_idx  := 14;
56522    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
56523    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56524    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
56525    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
56526    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
56527    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56528    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
56529    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
56530    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
56534    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
56531    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
56532    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
56533    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56535    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
56536    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
56537    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
56538    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
56539    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
56540    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
56541    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
56542    l_rec_acct_attrs.array_char_value(10)  := p_source_66;
56543    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
56544    l_rec_acct_attrs.array_date_value(11)  := p_source_136;
56545    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
56546    l_rec_acct_attrs.array_num_value(12)  := p_source_137;
56547    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
56548    l_rec_acct_attrs.array_char_value(13)  := p_source_138;
56549    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
56550    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
56551    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
56552    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
56553    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
56554    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
56555    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
56556    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
56557    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
56558    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
56559    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
56560    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
56561    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
56562    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
56563    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
56564    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
56565    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
56566    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
56567    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
56568    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
56569 
56570    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56571    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56572 
56573    ---------------------------------------------------------------------------------------------------------------
56574    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56575    ---------------------------------------------------------------------------------------------------------------
56576    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56577 
56578    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56579    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56580 
56581    IF xla_accounting_cache_pkg.GetValueChar
56582          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56583          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56584    AND l_bflow_method_code = 'PRIOR_ENTRY'
56585 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56586    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56587          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56588        )
56589    THEN
56590          xla_ae_lines_pkg.BflowUpgEntry
56591            (p_business_method_code    => l_bflow_method_code
56592            ,p_business_class_code     => l_bflow_class_code
56593            ,p_balance_type            => l_balance_type_code);
56594    ELSE
56595       NULL;
56596 -- No business flow processing for business flow method of NONE.
56597    END IF;
56598 
56599    --
56600    -- call analytical criteria
56601    --
56602    
56603 
56604 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
56605 xla_ae_lines_pkg.SetAnalyticalCriteria(
56606    p_analytical_criterion_name    => 'Check Id'
56607  , p_analytical_criterion_owner   => 'S'
56608  , p_analytical_criterion_code    => 'CHECK_ID'
56609  , p_amb_context_code             => 'DEFAULT'
56610  , p_balancing_flag               => 'N'
56611  
56612  , p_analytical_detail_char_1    =>  NULL
56613  , p_analytical_detail_num_1     =>  p_source_112
56614  , p_analytical_detail_date_1    =>  NULL
56615 
56616  , p_ae_header_id                 => l_ae_header_id
56617 )
56618 ;
56619 --
56620 
56621    --
56622    -- call description
56623    --
56624    -- No description or it is inherited.
56625    --
56626    -- call ADRs
56627    -- Bug 4922099
56628    --
56629    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56630         (NVL(l_actual_upg_option, 'N') = 'O') OR
56631         (NVL(l_enc_upg_option, 'N') = 'O')
56632       )
56633    THEN
56634    NULL;
56635    --
56636    --
56640          , p_ae_header_id             => l_ae_header_id 
56637    
56638   l_ccid := AcctDerRule_40(
56639            p_application_id           => p_application_id
56641 , p_source_15 => p_source_15
56642 , p_source_15_meaning => p_source_15_meaning
56643 , p_source_30 => p_source_30
56644 , p_source_48 => p_source_48
56645          , x_transaction_coa_id       => l_adr_transaction_coa_id
56646          , x_accounting_coa_id        => l_adr_accounting_coa_id
56647          , x_value_type_code          => l_adr_value_type_code
56648          , p_side                     => 'NA'
56649    );
56650 
56651    xla_ae_lines_pkg.set_ccid(
56652     p_code_combination_id          => l_ccid
56653   , p_value_type_code              => l_adr_value_type_code
56654   , p_transaction_coa_id           => l_adr_transaction_coa_id
56655   , p_accounting_coa_id            => l_adr_accounting_coa_id
56656   , p_adr_code                     => 'AP_ROUNDING'
56657   , p_adr_type_code                => 'S'
56658   , p_component_type               => l_component_type
56659   , p_component_code               => l_component_code
56660   , p_component_type_code          => l_component_type_code
56661   , p_component_appl_id            => l_component_appl_id
56662   , p_amb_context_code             => l_amb_context_code
56663   , p_side                         => 'NA'
56664   );
56665 
56666 
56667    --
56668    --
56669    END IF;
56670    --
56671    -- Bug 4922099
56672    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56673           (NVL(l_enc_upg_option, 'N') = 'O')
56674         ) AND
56675         (l_bflow_method_code = 'PRIOR_ENTRY')
56676       )
56677    THEN
56678       IF
56679       --
56680       1 = 2
56681       --
56682       THEN
56683       xla_accounting_err_pkg.build_message
56684                                     (p_appli_s_name            => 'XLA'
56685                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56686                                     ,p_token_1                 => 'LINE_NUMBER'
56687                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56688                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56689                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56690                                                                              l_component_type
56691                                                                             ,l_component_code
56692                                                                             ,l_component_type_code
56693                                                                             ,l_component_appl_id
56694                                                                             ,l_amb_context_code
56695                                                                             ,l_entity_code
56696                                                                             ,l_event_class_code
56697                                                                            )
56698                                     ,p_token_3                 => 'OWNER'
56699                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56700                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56701                                                                           ,p_lookup_code    => l_component_type_code
56702                                                                          )
56703                                     ,p_token_4                 => 'PRODUCT_NAME'
56704                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56705                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56706                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56707                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56708                                     ,p_ae_header_id            =>  NULL
56709                                        );
56710 
56711         IF (C_LEVEL_ERROR>= g_log_level) THEN
56712                  trace
56713                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56714                       ,p_level    => C_LEVEL_ERROR
56715                       ,p_module   => l_log_module);
56716         END IF;
56717       END IF;
56718    END IF;
56719    --
56720    --
56721    ------------------------------------------------------------------------------------------------
56722    -- 4219869 Business Flow
56723    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56724    -- Prior Entry.  Currently, the following code is always generated.
56725    ------------------------------------------------------------------------------------------------
56726    XLA_AE_LINES_PKG.ValidateCurrentLine;
56727 
56728    ------------------------------------------------------------------------------------
56729    -- 4219869 Business Flow
56730    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56731    ------------------------------------------------------------------------------------
56732    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56733 
56734    ----------------------------------------------------------------------------------
56735    -- 4219869 Business Flow
56739          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56736    -- Update journal entry status -- Need to generate this within IF <condition>
56737    ----------------------------------------------------------------------------------
56738    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56740          ,p_balance_type_code => l_balance_type_code
56741          );
56742 
56743    -------------------------------------------------------------------------------------------
56744    -- 4262811 - Generate the Accrual Reversal lines
56745    -------------------------------------------------------------------------------------------
56746    BEGIN
56747       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56748                               (g_array_event(p_event_id).array_value_num('header_index'));
56749       IF l_acc_rev_flag IS NULL THEN
56750          l_acc_rev_flag := 'N';
56751       END IF;
56752    EXCEPTION
56753       WHEN OTHERS THEN
56754          l_acc_rev_flag := 'N';
56755    END;
56756    --
56757    IF (l_acc_rev_flag = 'Y') THEN
56758 
56759        -- 4645092  ------------------------------------------------------------------------------
56760        -- To allow MPA report to determine if it should generate report process
56761        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56762        ------------------------------------------------------------------------------------------
56763 
56764        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56765        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56766    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56767    -- call ADRs
56768    -- Bug 4922099
56769    --
56770    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56771         (NVL(l_actual_upg_option, 'N') = 'O') OR
56772         (NVL(l_enc_upg_option, 'N') = 'O')
56773       )
56774    THEN
56775    NULL;
56776    --
56777    --
56778    
56779   l_ccid := AcctDerRule_40(
56780            p_application_id           => p_application_id
56781          , p_ae_header_id             => l_ae_header_id 
56782 , p_source_15 => p_source_15
56783 , p_source_15_meaning => p_source_15_meaning
56784 , p_source_30 => p_source_30
56785 , p_source_48 => p_source_48
56786          , x_transaction_coa_id       => l_adr_transaction_coa_id
56787          , x_accounting_coa_id        => l_adr_accounting_coa_id
56788          , x_value_type_code          => l_adr_value_type_code
56789          , p_side                     => 'NA'
56790    );
56791 
56792    xla_ae_lines_pkg.set_ccid(
56793     p_code_combination_id          => l_ccid
56794   , p_value_type_code              => l_adr_value_type_code
56795   , p_transaction_coa_id           => l_adr_transaction_coa_id
56796   , p_accounting_coa_id            => l_adr_accounting_coa_id
56797   , p_adr_code                     => 'AP_ROUNDING'
56798   , p_adr_type_code                => 'S'
56799   , p_component_type               => l_component_type
56800   , p_component_code               => l_component_code
56801   , p_component_type_code          => l_component_type_code
56802   , p_component_appl_id            => l_component_appl_id
56803   , p_amb_context_code             => l_amb_context_code
56804   , p_side                         => 'NA'
56805   );
56806 
56807 
56808    --
56809    --
56810    END IF;
56811 
56812        --
56813        -- Update the line information that should be overwritten
56814        --
56815        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56816                                          p_header_num   => 1);
56817        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56818 
56819        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56820 
56821        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56822           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56823        END IF;
56824 
56825       --
56826       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56827       --
56828       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56829           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56830       ELSE
56831           ---------------------------------------------------------------------------------------------------
56832           -- 4262811a Switch Sign
56833           ---------------------------------------------------------------------------------------------------
56834           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56835           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56836                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56837           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56838                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56839           -- 5132302
56840           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56841                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56842 
56843       END IF;
56844 
56845       -- 4955764
56849 
56846       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56847       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56848 
56850       XLA_AE_LINES_PKG.ValidateCurrentLine;
56851       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56852 
56853       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56854                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56855                ,p_balance_type_code => l_balance_type_code);
56856 
56857    END IF;
56858 
56859    -----------------------------------------------------------------------------------------
56860    -- 4262811 Multiperiod Accounting
56861    -----------------------------------------------------------------------------------------
56862      -- No MPA option is assigned.
56863 
56864 
56865 END IF;
56866 END IF;
56867 --
56868 
56869 --
56870 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56871    trace
56872       (p_msg      => 'END of AcctLineType_112'
56873       ,p_level    => C_LEVEL_PROCEDURE
56874       ,p_module   => l_log_module);
56875 END IF;
56876 --
56877 EXCEPTION
56878   WHEN xla_exceptions_pkg.application_exception THEN
56879       RAISE;
56880   WHEN OTHERS THEN
56881        xla_exceptions_pkg.raise_message
56882            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_112');
56883 END AcctLineType_112;
56884 --
56885 
56886 ---------------------------------------
56887 --
56888 -- PRIVATE FUNCTION
56889 --         AcctLineType_113
56890 --
56891 ---------------------------------------
56892 PROCEDURE AcctLineType_113 (
56893   p_application_id        IN NUMBER
56894  ,p_event_id              IN NUMBER
56895  ,p_calculate_acctd_flag  IN VARCHAR2
56896  ,p_calculate_g_l_flag    IN VARCHAR2
56897  ,p_actual_flag           IN OUT VARCHAR2
56898  ,p_balance_type_code     OUT VARCHAR2
56899  ,p_gain_or_loss_ref      OUT VARCHAR2
56900  
56901 --Automatic Offsets Value
56902  , p_source_15            IN VARCHAR2
56903  , p_source_15_meaning    IN VARCHAR2
56904 --Invoice Distribution Account
56905  , p_source_30            IN NUMBER
56906 --Payables Options Rounding Account
56907  , p_source_48            IN NUMBER
56908 --Accounting Reversal Indicator
56909  , p_source_52            IN VARCHAR2
56910 --Distribution Link Type
56911  , p_source_54            IN VARCHAR2
56912 --Invoice Identifier
56913  , p_source_57            IN NUMBER
56914 --Payables Encumbrance Upgrade Credit Account
56915  , p_source_64            IN NUMBER
56916 --Payables Encumbrance Upgrade Credit Amount
56917  , p_source_65            IN NUMBER
56918 --Invoice Currency Code
56919  , p_source_66            IN VARCHAR2
56920 --Payables Encumbrance Upgrade Credit Base Amount
56921  , p_source_67            IN NUMBER
56922 --Payables Encumbrance Upgrade Debit Account
56923  , p_source_68            IN NUMBER
56924 --Payables Encumbrance Upgrade Debit Amount
56925  , p_source_69            IN NUMBER
56926 --Payables Encumbrance Upgrade Debit Base Amount
56927  , p_source_70            IN NUMBER
56928 --Payables Encumbrance Upgrade Option
56929  , p_source_71            IN VARCHAR2
56930 --Deferred Accounting End Date
56931  , p_source_76            IN DATE
56932 --Deferred Accounting Option
56933  , p_source_77            IN VARCHAR2
56934 --Deferred Accounting Start Date
56935  , p_source_78            IN DATE
56936 --Override Accounted Amount Indicator
56937  , p_source_79            IN VARCHAR2
56938  , p_source_79_meaning    IN VARCHAR2
56939 --Invoice Supplier Identifier
56940  , p_source_80            IN NUMBER
56941 --Invoice Supplier Site Identifier
56942  , p_source_81            IN NUMBER
56943 --Third Party Type
56944  , p_source_82            IN VARCHAR2
56945 --Invoice Distribution Tax Line Identifier
56946  , p_source_85            IN NUMBER
56947 --Invoice Distribution Tax Distribution Identifier from Tax
56948  , p_source_86            IN NUMBER
56949 --Invoice Distribution Summary Tax Line Identifier
56950  , p_source_87            IN NUMBER
56951 --Payables Upgrade Credit Encumbrance Type Identifier
56952  , p_source_88            IN NUMBER
56953 --Payables Upgrade Debit Encumbrance Type Identifier
56954  , p_source_89            IN NUMBER
56955 --Business Flow Accounts Payable Application Identifier
56956  , p_source_90            IN NUMBER
56957 --Prepayment Application Distribution Identifier
56958  , p_source_127            IN NUMBER
56959 --Upgrade Encumbrance Credit Account Class
56960  , p_source_130            IN VARCHAR2
56961 --Upgrade Encumbrance Debit Account Class
56962  , p_source_131            IN VARCHAR2
56963 --Prepayment Distribution Amount
56964  , p_source_132            IN NUMBER
56965 --Identifier of the Prepayment Application Reversed
56966  , p_source_134            IN NUMBER
56967 --Invoice Exchange Date
56968  , p_source_136            IN DATE
56969 --Invoice Exchange Rate
56970  , p_source_137            IN NUMBER
56971 --Invoice Exchange Rate Type
56972  , p_source_138            IN VARCHAR2
56973 --Business Flow Prepayment Invoice Distribution Type
56974  , p_source_139            IN VARCHAR2
56975 --Business Flow Prepayment Invoice Entity Code
56976  , p_source_140            IN VARCHAR2
56977 --Business Flow Prepayment Invoice Distribution Identifier
56978  , p_source_141            IN NUMBER
56982  , p_source_143            IN VARCHAR2
56979 --Business Flow Prepayment Invoice Identifier
56980  , p_source_142            IN NUMBER
56981 --Prepayment Distribution Type
56983 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
56984  , p_source_147            IN NUMBER
56985 )
56986 IS
56987 
56988 l_component_type              VARCHAR2(80);
56989 l_component_code              VARCHAR2(30);
56990 l_component_type_code         VARCHAR2(1);
56991 l_component_appl_id           INTEGER;
56992 l_amb_context_code            VARCHAR2(30);
56993 l_entity_code                 VARCHAR2(30);
56994 l_event_class_code            VARCHAR2(30);
56995 l_ae_header_id                NUMBER;
56996 l_event_type_code             VARCHAR2(30);
56997 l_line_definition_code        VARCHAR2(30);
56998 l_line_definition_owner_code  VARCHAR2(1);
56999 --
57000 -- adr variables
57001 l_segment                     VARCHAR2(30);
57002 l_ccid                        NUMBER;
57003 l_adr_transaction_coa_id      NUMBER;
57004 l_adr_accounting_coa_id       NUMBER;
57005 l_adr_flexfield_segment_code  VARCHAR2(30);
57006 l_adr_flex_value_set_id       NUMBER;
57007 l_adr_value_type_code         VARCHAR2(30);
57008 l_adr_value_combination_id    NUMBER;
57009 l_adr_value_segment_code      VARCHAR2(30);
57010 
57011 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57012 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57013 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57014 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57015 
57016 -- 4262811 Variables ------------------------------------------------------------------------------------------
57017 l_entered_amt_idx             NUMBER;
57018 l_accted_amt_idx              NUMBER;
57019 l_acc_rev_flag                VARCHAR2(1);
57020 l_accrual_line_num            NUMBER;
57021 l_tmp_amt                     NUMBER;
57022 l_acc_rev_natural_side_code   VARCHAR2(1);
57023 
57024 l_num_entries                 NUMBER;
57025 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57026 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57027 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57028 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57029 l_recog_line_1                NUMBER;
57030 l_recog_line_2                NUMBER;
57031 
57032 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57033 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57034 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57035 
57036 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57037 
57038 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57039 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57040 
57041 ---------------------------------------------------------------------------------------------------------------
57042 
57043 
57044 --
57045 -- bulk performance
57046 --
57047 l_balance_type_code           VARCHAR2(1);
57048 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57049 l_log_module                  VARCHAR2(240);
57050 
57051 --
57052 -- Upgrade strategy
57053 --
57054 l_actual_upg_option           VARCHAR2(1);
57055 l_enc_upg_option           VARCHAR2(1);
57056 
57057 --
57058 BEGIN
57059 --
57060 IF g_log_enabled THEN
57061       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
57062 END IF;
57063 --
57064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57065 
57066       trace
57067          (p_msg      => 'BEGIN of AcctLineType_113'
57068          ,p_level    => C_LEVEL_PROCEDURE
57069          ,p_module   => l_log_module);
57070 
57071 END IF;
57072 --
57073 l_component_type             := 'AMB_JLT';
57074 l_component_code             := 'AP_FINAL_PMT_ROUND_PREPAY_APP';
57075 l_component_type_code        := 'S';
57076 l_component_appl_id          :=  200;
57077 l_amb_context_code           := 'DEFAULT';
57078 l_entity_code                := 'AP_INVOICES';
57079 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
57080 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
57081 l_line_definition_owner_code := 'S';
57082 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
57083 --
57084 l_balance_type_code          := 'A';
57085 l_segment                     := NULL;
57086 l_ccid                        := NULL;
57087 l_adr_transaction_coa_id      := NULL;
57088 l_adr_accounting_coa_id       := NULL;
57089 l_adr_flexfield_segment_code  := NULL;
57090 l_adr_flex_value_set_id       := NULL;
57091 l_adr_value_type_code         := NULL;
57092 l_adr_value_combination_id    := NULL;
57093 l_adr_value_segment_code      := NULL;
57094 
57095 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57096 l_bflow_class_code           := '';    -- 4219869 Business Flow
57097 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57098 l_budgetary_control_flag     := 'N';
57099 
57100 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57101 l_bflow_applied_to_amt       := NULL; -- 5132302
57102 l_entered_amt_idx            := NULL;          -- 4262811
57103 l_accted_amt_idx             := NULL;          -- 4262811
57104 l_acc_rev_flag               := NULL;          -- 4262811
57105 l_accrual_line_num           := NULL;          -- 4262811
57109 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57106 l_tmp_amt                    := NULL;          -- 4262811
57107 --
57108  
57110     l_balance_type_code <> 'B' THEN
57111 IF NVL(p_source_143,'
57112 ') =  'FINAL PAYMENT ROUNDING'
57113  THEN 
57114 
57115    --
57116    XLA_AE_LINES_PKG.SetNewLine;
57117 
57118    p_balance_type_code          := l_balance_type_code;
57119    -- set the flag so later we will know whether the gain loss line needs to be created
57120    
57121    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57122      p_actual_flag :='A';
57123    END IF;
57124 
57125    --
57126    -- bulk performance
57127    --
57128    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57129                                       p_header_num   => 0); -- 4262811
57130    --
57131    -- set accounting line options
57132    --
57133    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57134            p_natural_side_code          => 'C'
57135          , p_gain_or_loss_flag          => 'N'
57136          , p_gl_transfer_mode_code      => 'S'
57137          , p_acct_entry_type_code       => 'A'
57138          , p_switch_side_flag           => 'Y'
57139          , p_merge_duplicate_code       => 'A'
57140          );
57141    --
57142    l_acc_rev_natural_side_code := 'D';  -- 4262811
57143    -- 
57144    --
57145    -- set accounting line type info
57146    --
57147    xla_ae_lines_pkg.SetAcctLineType
57148       (p_component_type             => l_component_type
57149       ,p_event_type_code            => l_event_type_code
57150       ,p_line_definition_owner_code => l_line_definition_owner_code
57151       ,p_line_definition_code       => l_line_definition_code
57152       ,p_accounting_line_code       => l_component_code
57153       ,p_accounting_line_type_code  => l_component_type_code
57154       ,p_accounting_line_appl_id    => l_component_appl_id
57155       ,p_amb_context_code           => l_amb_context_code
57156       ,p_entity_code                => l_entity_code
57157       ,p_event_class_code           => l_event_class_code);
57158    --
57159    -- set accounting class
57160    --
57161    xla_ae_lines_pkg.SetAcctClass(
57162            p_accounting_class_code  => 'ROUNDING'
57163          , p_ae_header_id           => l_ae_header_id
57164          );
57165 
57166    --
57167    -- set rounding class
57168    --
57169    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57170                       'ROUNDING';
57171 
57172    --
57173    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57174    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57175    --
57176    -- bulk performance
57177    --
57178    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57179 
57180    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57181       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57182 
57183    -- 4955764
57184    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57185       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57186 
57187    -- 4458381 Public Sector Enh
57188    
57189    --
57190    -- set accounting attributes for the line type
57191    --
57192    l_entered_amt_idx := 25;
57193    l_accted_amt_idx  := 30;
57194    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57195    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57196    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
57197    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57198    l_rec_acct_attrs.array_num_value(2)  := 
57199 xla_ae_sources_pkg.GetSystemSourceNum(
57200    p_source_code           => 'XLA_EVENT_APPL_ID'
57201  , p_source_type_code      => 'Y'
57202  , p_source_application_id =>  602
57203 );
57204    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57205    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
57206    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57207    l_rec_acct_attrs.array_char_value(4)  := 
57208 xla_ae_sources_pkg.GetSystemSourceChar(
57209    p_source_code           => 'XLA_ENTITY_CODE'
57210  , p_source_type_code      => 'Y'
57211  , p_source_application_id =>  602
57212 );
57213    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57214    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
57215    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57216    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
57217    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57218    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
57219    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57220    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
57221    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57222    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
57223    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57224    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
57228    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
57225    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57226    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
57227    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57229    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57230    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
57231    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
57232    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
57233    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
57234    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
57235    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
57236    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
57237    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
57238    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
57239    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
57240    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
57241    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
57242    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
57243    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
57244    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
57245    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
57246    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
57247    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
57248    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
57249    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
57250    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
57251    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
57252    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
57253    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
57254    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
57255    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
57256    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
57257    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
57258    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
57259    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
57260    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
57261    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
57262    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
57263    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
57264    l_rec_acct_attrs.array_num_value(30)  := p_source_147;
57265    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
57266    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
57267    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
57268    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
57269    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
57270    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
57271    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
57272    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
57273    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
57274    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
57275    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
57276    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
57277    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
57278    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
57279    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
57280    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
57281    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
57282    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
57283    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
57284    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
57285    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
57286    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
57287    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
57288    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
57289    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
57290    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
57291    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
57292    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
57293 
57294    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57295    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57296 
57297    ---------------------------------------------------------------------------------------------------------------
57298    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57299    ---------------------------------------------------------------------------------------------------------------
57300    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57301 
57302    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57303    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57304 
57305    IF xla_accounting_cache_pkg.GetValueChar
57306          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57310    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57307          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57308    AND l_bflow_method_code = 'PRIOR_ENTRY'
57309 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57311          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57312        )
57313    THEN
57314          xla_ae_lines_pkg.BflowUpgEntry
57315            (p_business_method_code    => l_bflow_method_code
57316            ,p_business_class_code     => l_bflow_class_code
57317            ,p_balance_type            => l_balance_type_code);
57318    ELSE
57319       NULL;
57320 -- No business flow processing for business flow method of NONE.
57321    END IF;
57322 
57323    --
57324    -- call analytical criteria
57325    --
57326    
57327    --
57328    -- call description
57329    --
57330    -- No description or it is inherited.
57331    --
57332    -- call ADRs
57333    -- Bug 4922099
57334    --
57335    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57336         (NVL(l_actual_upg_option, 'N') = 'O') OR
57337         (NVL(l_enc_upg_option, 'N') = 'O')
57338       )
57339    THEN
57340    NULL;
57341    --
57342    --
57343    
57344   l_ccid := AcctDerRule_40(
57345            p_application_id           => p_application_id
57346          , p_ae_header_id             => l_ae_header_id 
57347 , p_source_15 => p_source_15
57348 , p_source_15_meaning => p_source_15_meaning
57349 , p_source_30 => p_source_30
57350 , p_source_48 => p_source_48
57351          , x_transaction_coa_id       => l_adr_transaction_coa_id
57352          , x_accounting_coa_id        => l_adr_accounting_coa_id
57353          , x_value_type_code          => l_adr_value_type_code
57354          , p_side                     => 'NA'
57355    );
57356 
57357    xla_ae_lines_pkg.set_ccid(
57358     p_code_combination_id          => l_ccid
57359   , p_value_type_code              => l_adr_value_type_code
57360   , p_transaction_coa_id           => l_adr_transaction_coa_id
57361   , p_accounting_coa_id            => l_adr_accounting_coa_id
57362   , p_adr_code                     => 'AP_ROUNDING'
57363   , p_adr_type_code                => 'S'
57364   , p_component_type               => l_component_type
57365   , p_component_code               => l_component_code
57366   , p_component_type_code          => l_component_type_code
57367   , p_component_appl_id            => l_component_appl_id
57368   , p_amb_context_code             => l_amb_context_code
57369   , p_side                         => 'NA'
57370   );
57371 
57372 
57373    --
57374    --
57375    END IF;
57376    --
57377    -- Bug 4922099
57378    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57379           (NVL(l_enc_upg_option, 'N') = 'O')
57380         ) AND
57381         (l_bflow_method_code = 'PRIOR_ENTRY')
57382       )
57383    THEN
57384       IF
57385       --
57386       1 = 2
57387       --
57388       THEN
57389       xla_accounting_err_pkg.build_message
57390                                     (p_appli_s_name            => 'XLA'
57391                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57392                                     ,p_token_1                 => 'LINE_NUMBER'
57393                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57394                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57395                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57396                                                                              l_component_type
57397                                                                             ,l_component_code
57398                                                                             ,l_component_type_code
57399                                                                             ,l_component_appl_id
57400                                                                             ,l_amb_context_code
57401                                                                             ,l_entity_code
57402                                                                             ,l_event_class_code
57403                                                                            )
57404                                     ,p_token_3                 => 'OWNER'
57405                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57406                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57407                                                                           ,p_lookup_code    => l_component_type_code
57408                                                                          )
57409                                     ,p_token_4                 => 'PRODUCT_NAME'
57410                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57411                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57412                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57413                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57414                                     ,p_ae_header_id            =>  NULL
57415                                        );
57416 
57420                       ,p_level    => C_LEVEL_ERROR
57417         IF (C_LEVEL_ERROR>= g_log_level) THEN
57418                  trace
57419                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57421                       ,p_module   => l_log_module);
57422         END IF;
57423       END IF;
57424    END IF;
57425    --
57426    --
57427    ------------------------------------------------------------------------------------------------
57428    -- 4219869 Business Flow
57429    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57430    -- Prior Entry.  Currently, the following code is always generated.
57431    ------------------------------------------------------------------------------------------------
57432    XLA_AE_LINES_PKG.ValidateCurrentLine;
57433 
57434    ------------------------------------------------------------------------------------
57435    -- 4219869 Business Flow
57436    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57437    ------------------------------------------------------------------------------------
57438    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57439 
57440    ----------------------------------------------------------------------------------
57441    -- 4219869 Business Flow
57442    -- Update journal entry status -- Need to generate this within IF <condition>
57443    ----------------------------------------------------------------------------------
57444    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57445          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57446          ,p_balance_type_code => l_balance_type_code
57447          );
57448 
57449    -------------------------------------------------------------------------------------------
57450    -- 4262811 - Generate the Accrual Reversal lines
57451    -------------------------------------------------------------------------------------------
57452    BEGIN
57453       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57454                               (g_array_event(p_event_id).array_value_num('header_index'));
57455       IF l_acc_rev_flag IS NULL THEN
57456          l_acc_rev_flag := 'N';
57457       END IF;
57458    EXCEPTION
57459       WHEN OTHERS THEN
57460          l_acc_rev_flag := 'N';
57461    END;
57462    --
57463    IF (l_acc_rev_flag = 'Y') THEN
57464 
57465        -- 4645092  ------------------------------------------------------------------------------
57466        -- To allow MPA report to determine if it should generate report process
57467        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57468        ------------------------------------------------------------------------------------------
57469 
57470        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57471        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57472    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57473    -- call ADRs
57474    -- Bug 4922099
57475    --
57476    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57477         (NVL(l_actual_upg_option, 'N') = 'O') OR
57478         (NVL(l_enc_upg_option, 'N') = 'O')
57479       )
57480    THEN
57481    NULL;
57482    --
57483    --
57484    
57485   l_ccid := AcctDerRule_40(
57486            p_application_id           => p_application_id
57487          , p_ae_header_id             => l_ae_header_id 
57488 , p_source_15 => p_source_15
57489 , p_source_15_meaning => p_source_15_meaning
57490 , p_source_30 => p_source_30
57491 , p_source_48 => p_source_48
57492          , x_transaction_coa_id       => l_adr_transaction_coa_id
57493          , x_accounting_coa_id        => l_adr_accounting_coa_id
57494          , x_value_type_code          => l_adr_value_type_code
57495          , p_side                     => 'NA'
57496    );
57497 
57498    xla_ae_lines_pkg.set_ccid(
57499     p_code_combination_id          => l_ccid
57500   , p_value_type_code              => l_adr_value_type_code
57501   , p_transaction_coa_id           => l_adr_transaction_coa_id
57502   , p_accounting_coa_id            => l_adr_accounting_coa_id
57503   , p_adr_code                     => 'AP_ROUNDING'
57504   , p_adr_type_code                => 'S'
57505   , p_component_type               => l_component_type
57506   , p_component_code               => l_component_code
57507   , p_component_type_code          => l_component_type_code
57508   , p_component_appl_id            => l_component_appl_id
57509   , p_amb_context_code             => l_amb_context_code
57510   , p_side                         => 'NA'
57511   );
57512 
57513 
57514    --
57515    --
57516    END IF;
57517 
57518        --
57519        -- Update the line information that should be overwritten
57520        --
57521        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57522                                          p_header_num   => 1);
57523        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57524 
57525        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57526 
57527        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57528           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57529        END IF;
57530 
57531       --
57532       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57533       --
57537           ---------------------------------------------------------------------------------------------------
57534       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57535           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57536       ELSE
57538           -- 4262811a Switch Sign
57539           ---------------------------------------------------------------------------------------------------
57540           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57541           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57542                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57543           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57544                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57545           -- 5132302
57546           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57547                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57548 
57549       END IF;
57550 
57551       -- 4955764
57552       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57553       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57554 
57555 
57556       XLA_AE_LINES_PKG.ValidateCurrentLine;
57557       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57558 
57559       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57560                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57561                ,p_balance_type_code => l_balance_type_code);
57562 
57563    END IF;
57564 
57565    -----------------------------------------------------------------------------------------
57566    -- 4262811 Multiperiod Accounting
57567    -----------------------------------------------------------------------------------------
57568      -- No MPA option is assigned.
57569 
57570 
57571 END IF;
57572 END IF;
57573 --
57574 
57575 --
57576 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57577    trace
57578       (p_msg      => 'END of AcctLineType_113'
57579       ,p_level    => C_LEVEL_PROCEDURE
57580       ,p_module   => l_log_module);
57581 END IF;
57582 --
57583 EXCEPTION
57584   WHEN xla_exceptions_pkg.application_exception THEN
57585       RAISE;
57586   WHEN OTHERS THEN
57587        xla_exceptions_pkg.raise_message
57588            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_113');
57589 END AcctLineType_113;
57590 --
57591 
57592 ---------------------------------------
57593 --
57594 -- PRIVATE FUNCTION
57595 --         AcctLineType_114
57596 --
57597 ---------------------------------------
57598 PROCEDURE AcctLineType_114 (
57599   p_application_id        IN NUMBER
57600  ,p_event_id              IN NUMBER
57601  ,p_calculate_acctd_flag  IN VARCHAR2
57602  ,p_calculate_g_l_flag    IN VARCHAR2
57603  ,p_actual_flag           IN OUT VARCHAR2
57604  ,p_balance_type_code     OUT VARCHAR2
57605  ,p_gain_or_loss_ref      OUT VARCHAR2
57606  
57607 --Invoice Distribution Description
57608  , p_source_1            IN VARCHAR2
57609 --Invoice Distribution Ledger Amount
57610  , p_source_21            IN NUMBER
57611 --Invoice Distribution Account
57612  , p_source_30            IN NUMBER
57613 --Invoice Distribution Type
57614  , p_source_33            IN VARCHAR2
57615  , p_source_33_meaning    IN VARCHAR2
57616 --Accounting Reversal Indicator
57617  , p_source_52            IN VARCHAR2
57618 --Distribution Link Type
57619  , p_source_54            IN VARCHAR2
57620 --Allocation to Main Distribution Identifier
57621  , p_source_56            IN NUMBER
57622 --Invoice Identifier
57623  , p_source_57            IN NUMBER
57624 --Invoice Distribution Identifier
57625  , p_source_63            IN NUMBER
57626 --Payables Encumbrance Upgrade Credit Account
57627  , p_source_64            IN NUMBER
57628 --Payables Encumbrance Upgrade Credit Amount
57629  , p_source_65            IN NUMBER
57630 --Invoice Currency Code
57631  , p_source_66            IN VARCHAR2
57632 --Payables Encumbrance Upgrade Credit Base Amount
57633  , p_source_67            IN NUMBER
57634 --Payables Encumbrance Upgrade Debit Account
57635  , p_source_68            IN NUMBER
57636 --Payables Encumbrance Upgrade Debit Amount
57637  , p_source_69            IN NUMBER
57638 --Payables Encumbrance Upgrade Debit Base Amount
57639  , p_source_70            IN NUMBER
57640 --Payables Encumbrance Upgrade Option
57641  , p_source_71            IN VARCHAR2
57642 --Invoice Distribution Amount
57643  , p_source_72            IN NUMBER
57644 --Deferred Accounting End Date
57645  , p_source_76            IN DATE
57646 --Deferred Accounting Option
57647  , p_source_77            IN VARCHAR2
57648 --Deferred Accounting Start Date
57649  , p_source_78            IN DATE
57650 --Override Accounted Amount Indicator
57651  , p_source_79            IN VARCHAR2
57652  , p_source_79_meaning    IN VARCHAR2
57653 --Invoice Supplier Identifier
57654  , p_source_80            IN NUMBER
57655 --Invoice Supplier Site Identifier
57656  , p_source_81            IN NUMBER
57657 --Third Party Type
57661 --Invoice Distribution Statistical Amount
57658  , p_source_82            IN VARCHAR2
57659 --Parent Reversal Identifier
57660  , p_source_83            IN NUMBER
57662  , p_source_84            IN NUMBER
57663 --Invoice Distribution Tax Line Identifier
57664  , p_source_85            IN NUMBER
57665 --Invoice Distribution Tax Distribution Identifier from Tax
57666  , p_source_86            IN NUMBER
57667 --Invoice Distribution Summary Tax Line Identifier
57668  , p_source_87            IN NUMBER
57669 --Payables Upgrade Credit Encumbrance Type Identifier
57670  , p_source_88            IN NUMBER
57671 --Payables Upgrade Debit Encumbrance Type Identifier
57672  , p_source_89            IN NUMBER
57673 --Business Flow Accounts Payable Application Identifier
57674  , p_source_90            IN NUMBER
57675 --Business Flow Invoice Distribution Type
57676  , p_source_91            IN VARCHAR2
57677 --Business Flow Invoice Entity Code
57678  , p_source_92            IN VARCHAR2
57679 --Business Flow Invoice Distribution Identifier
57680  , p_source_93            IN NUMBER
57681 --Business Flow Invoice Identifier
57682  , p_source_94            IN NUMBER
57683 --Invoice Exchange Date
57684  , p_source_136            IN DATE
57685 --Invoice Exchange Rate
57686  , p_source_137            IN NUMBER
57687 --Invoice Exchange Rate Type
57688  , p_source_138            IN VARCHAR2
57689 --Project Identifier
57690  , p_source_146            IN NUMBER
57691 )
57692 IS
57693 
57694 l_component_type              VARCHAR2(80);
57695 l_component_code              VARCHAR2(30);
57696 l_component_type_code         VARCHAR2(1);
57697 l_component_appl_id           INTEGER;
57698 l_amb_context_code            VARCHAR2(30);
57699 l_entity_code                 VARCHAR2(30);
57700 l_event_class_code            VARCHAR2(30);
57701 l_ae_header_id                NUMBER;
57702 l_event_type_code             VARCHAR2(30);
57703 l_line_definition_code        VARCHAR2(30);
57704 l_line_definition_owner_code  VARCHAR2(1);
57705 --
57706 -- adr variables
57707 l_segment                     VARCHAR2(30);
57708 l_ccid                        NUMBER;
57709 l_adr_transaction_coa_id      NUMBER;
57710 l_adr_accounting_coa_id       NUMBER;
57711 l_adr_flexfield_segment_code  VARCHAR2(30);
57712 l_adr_flex_value_set_id       NUMBER;
57713 l_adr_value_type_code         VARCHAR2(30);
57714 l_adr_value_combination_id    NUMBER;
57715 l_adr_value_segment_code      VARCHAR2(30);
57716 
57717 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57718 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57719 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57720 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57721 
57722 -- 4262811 Variables ------------------------------------------------------------------------------------------
57723 l_entered_amt_idx             NUMBER;
57724 l_accted_amt_idx              NUMBER;
57725 l_acc_rev_flag                VARCHAR2(1);
57726 l_accrual_line_num            NUMBER;
57727 l_tmp_amt                     NUMBER;
57728 l_acc_rev_natural_side_code   VARCHAR2(1);
57729 
57730 l_num_entries                 NUMBER;
57731 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57732 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57733 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57734 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57735 l_recog_line_1                NUMBER;
57736 l_recog_line_2                NUMBER;
57737 
57738 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57739 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57740 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57741 
57742 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57743 
57744 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57745 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57746 
57747 ---------------------------------------------------------------------------------------------------------------
57748 
57749 
57750 --
57751 -- bulk performance
57752 --
57753 l_balance_type_code           VARCHAR2(1);
57754 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57755 l_log_module                  VARCHAR2(240);
57756 
57757 --
57758 -- Upgrade strategy
57759 --
57760 l_actual_upg_option           VARCHAR2(1);
57761 l_enc_upg_option           VARCHAR2(1);
57762 
57763 --
57764 BEGIN
57765 --
57766 IF g_log_enabled THEN
57767       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
57768 END IF;
57769 --
57770 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57771 
57772       trace
57773          (p_msg      => 'BEGIN of AcctLineType_114'
57774          ,p_level    => C_LEVEL_PROCEDURE
57775          ,p_module   => l_log_module);
57776 
57777 END IF;
57778 --
57779 l_component_type             := 'AMB_JLT';
57780 l_component_code             := 'AP_FREIGHT_EXPENSE_CM';
57781 l_component_type_code        := 'S';
57782 l_component_appl_id          :=  200;
57783 l_amb_context_code           := 'DEFAULT';
57784 l_entity_code                := 'AP_INVOICES';
57785 l_event_class_code           := 'CREDIT MEMOS';
57786 l_event_type_code            := 'CREDIT MEMOS_ALL';
57787 l_line_definition_owner_code := 'S';
57791 l_segment                     := NULL;
57788 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
57789 --
57790 l_balance_type_code          := 'A';
57792 l_ccid                        := NULL;
57793 l_adr_transaction_coa_id      := NULL;
57794 l_adr_accounting_coa_id       := NULL;
57795 l_adr_flexfield_segment_code  := NULL;
57796 l_adr_flex_value_set_id       := NULL;
57797 l_adr_value_type_code         := NULL;
57798 l_adr_value_combination_id    := NULL;
57799 l_adr_value_segment_code      := NULL;
57800 
57801 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57802 l_bflow_class_code           := '';    -- 4219869 Business Flow
57803 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57804 l_budgetary_control_flag     := 'N';
57805 
57806 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57807 l_bflow_applied_to_amt       := NULL; -- 5132302
57808 l_entered_amt_idx            := NULL;          -- 4262811
57809 l_accted_amt_idx             := NULL;          -- 4262811
57810 l_acc_rev_flag               := NULL;          -- 4262811
57811 l_accrual_line_num           := NULL;          -- 4262811
57812 l_tmp_amt                    := NULL;          -- 4262811
57813 --
57814  
57815 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57816     l_balance_type_code <> 'B' THEN
57817 IF NVL(p_source_33,'
57818 ') =  'FREIGHT'
57819  THEN 
57820 
57821    --
57822    XLA_AE_LINES_PKG.SetNewLine;
57823 
57824    p_balance_type_code          := l_balance_type_code;
57825    -- set the flag so later we will know whether the gain loss line needs to be created
57826    
57827    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57828      p_actual_flag :='A';
57829    END IF;
57830 
57831    --
57832    -- bulk performance
57833    --
57834    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57835                                       p_header_num   => 0); -- 4262811
57836    --
57837    -- set accounting line options
57838    --
57839    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57840            p_natural_side_code          => 'D'
57841          , p_gain_or_loss_flag          => 'N'
57842          , p_gl_transfer_mode_code      => 'S'
57843          , p_acct_entry_type_code       => 'A'
57844          , p_switch_side_flag           => 'Y'
57845          , p_merge_duplicate_code       => 'A'
57846          );
57847    --
57848    l_acc_rev_natural_side_code := 'C';  -- 4262811
57849    -- 
57850    --
57851    -- set accounting line type info
57852    --
57853    xla_ae_lines_pkg.SetAcctLineType
57854       (p_component_type             => l_component_type
57855       ,p_event_type_code            => l_event_type_code
57856       ,p_line_definition_owner_code => l_line_definition_owner_code
57857       ,p_line_definition_code       => l_line_definition_code
57858       ,p_accounting_line_code       => l_component_code
57859       ,p_accounting_line_type_code  => l_component_type_code
57860       ,p_accounting_line_appl_id    => l_component_appl_id
57861       ,p_amb_context_code           => l_amb_context_code
57862       ,p_entity_code                => l_entity_code
57863       ,p_event_class_code           => l_event_class_code);
57864    --
57865    -- set accounting class
57866    --
57867    xla_ae_lines_pkg.SetAcctClass(
57868            p_accounting_class_code  => 'FREIGHT'
57869          , p_ae_header_id           => l_ae_header_id
57870          );
57871 
57872    --
57873    -- set rounding class
57874    --
57875    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57876                       'FREIGHT';
57877 
57878    --
57879    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57880    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57881    --
57882    -- bulk performance
57883    --
57884    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57885 
57886    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57887       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57888 
57889    -- 4955764
57890    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57891       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57892 
57893    -- 4458381 Public Sector Enh
57894    
57895    --
57896    -- set accounting attributes for the line type
57897    --
57898    l_entered_amt_idx := 23;
57899    l_accted_amt_idx  := 28;
57900    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57901    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57902    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
57903    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57904    l_rec_acct_attrs.array_num_value(2)  := 
57905 xla_ae_sources_pkg.GetSystemSourceNum(
57906    p_source_code           => 'XLA_EVENT_APPL_ID'
57907  , p_source_type_code      => 'Y'
57908  , p_source_application_id =>  602
57909 );
57910    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57914 xla_ae_sources_pkg.GetSystemSourceChar(
57911    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
57912    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57913    l_rec_acct_attrs.array_char_value(4)  := 
57915    p_source_code           => 'XLA_ENTITY_CODE'
57916  , p_source_type_code      => 'Y'
57917  , p_source_application_id =>  602
57918 );
57919    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57920    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
57921    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57922    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
57923    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57924    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
57925    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57926    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
57927    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57928    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
57929    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57930    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
57931    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57932    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
57933    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57934    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
57935    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57936    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
57937    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
57938    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
57939    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
57940    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
57941    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
57942    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
57943    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
57944    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
57945    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
57946    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
57947    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
57948    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
57949    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
57950    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
57951    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
57952    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
57953    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
57954    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
57955    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
57956    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
57957    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
57958    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
57959    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
57960    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
57961    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
57962    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
57963    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
57964    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
57965    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
57966    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
57967    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
57968    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
57969    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
57970    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
57971    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
57972    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
57973    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
57974    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
57975    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
57976    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
57977    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
57978    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
57979    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
57980    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
57981    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
57982    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
57983    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
57984    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
57985    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
57986    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
57987    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
57988    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
57989    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
57990    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
57991    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
57992    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
57993    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
57994    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
57995    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
57999    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57996    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
57997 
57998    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58000 
58001    ---------------------------------------------------------------------------------------------------------------
58002    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58003    ---------------------------------------------------------------------------------------------------------------
58004    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58005 
58006    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58007    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58008 
58009    IF xla_accounting_cache_pkg.GetValueChar
58010          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58011          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58012    AND l_bflow_method_code = 'PRIOR_ENTRY'
58013 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58014    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58015          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58016        )
58017    THEN
58018          xla_ae_lines_pkg.BflowUpgEntry
58019            (p_business_method_code    => l_bflow_method_code
58020            ,p_business_class_code     => l_bflow_class_code
58021            ,p_balance_type            => l_balance_type_code);
58022    ELSE
58023       NULL;
58024 -- No business flow processing for business flow method of NONE.
58025    END IF;
58026 
58027    --
58028    -- call analytical criteria
58029    --
58030    
58031 
58032 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
58033 xla_ae_lines_pkg.SetAnalyticalCriteria(
58034    p_analytical_criterion_name    => 'Project Number'
58035  , p_analytical_criterion_owner   => 'S'
58036  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
58037  , p_amb_context_code             => 'DEFAULT'
58038  , p_balancing_flag               => 'N'
58039  
58040  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
58041 p_source_146))
58042  , p_analytical_detail_num_1     =>  NULL
58043  , p_analytical_detail_date_1    =>  NULL
58044 
58045  , p_ae_header_id                 => l_ae_header_id
58046 )
58047 ;
58048 --
58049 
58050    --
58051    -- call description
58052    --
58053    
58054 xla_ae_lines_pkg.SetLineDescription(
58055    p_ae_header_id => l_ae_header_id
58056   ,p_description  => Description_1 (
58057      p_application_id         => p_application_id
58058    , p_ae_header_id           => l_ae_header_id 
58059 , p_source_1 => p_source_1
58060    )
58061 );
58062 
58063 
58064    --
58065    -- call ADRs
58066    -- Bug 4922099
58067    --
58068    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58069         (NVL(l_actual_upg_option, 'N') = 'O') OR
58070         (NVL(l_enc_upg_option, 'N') = 'O')
58071       )
58072    THEN
58073    NULL;
58074    --
58075    --
58076    
58077   l_ccid := AcctDerRule_33(
58078            p_application_id           => p_application_id
58079          , p_ae_header_id             => l_ae_header_id 
58080 , p_source_30 => p_source_30
58081          , x_transaction_coa_id       => l_adr_transaction_coa_id
58082          , x_accounting_coa_id        => l_adr_accounting_coa_id
58083          , x_value_type_code          => l_adr_value_type_code
58084          , p_side                     => 'NA'
58085    );
58086 
58087    xla_ae_lines_pkg.set_ccid(
58088     p_code_combination_id          => l_ccid
58089   , p_value_type_code              => l_adr_value_type_code
58090   , p_transaction_coa_id           => l_adr_transaction_coa_id
58091   , p_accounting_coa_id            => l_adr_accounting_coa_id
58092   , p_adr_code                     => 'AP_INVOICE_DIST'
58093   , p_adr_type_code                => 'S'
58094   , p_component_type               => l_component_type
58095   , p_component_code               => l_component_code
58096   , p_component_type_code          => l_component_type_code
58097   , p_component_appl_id            => l_component_appl_id
58098   , p_amb_context_code             => l_amb_context_code
58099   , p_side                         => 'NA'
58100   );
58101 
58102 
58103    --
58104    --
58105    END IF;
58106    --
58107    -- Bug 4922099
58108    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58109           (NVL(l_enc_upg_option, 'N') = 'O')
58110         ) AND
58111         (l_bflow_method_code = 'PRIOR_ENTRY')
58112       )
58113    THEN
58114       IF
58115       --
58116       1 = 2
58117       --
58118       THEN
58119       xla_accounting_err_pkg.build_message
58120                                     (p_appli_s_name            => 'XLA'
58121                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58122                                     ,p_token_1                 => 'LINE_NUMBER'
58123                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58124                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58128                                                                             ,l_component_type_code
58125                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58126                                                                              l_component_type
58127                                                                             ,l_component_code
58129                                                                             ,l_component_appl_id
58130                                                                             ,l_amb_context_code
58131                                                                             ,l_entity_code
58132                                                                             ,l_event_class_code
58133                                                                            )
58134                                     ,p_token_3                 => 'OWNER'
58135                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58136                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58137                                                                           ,p_lookup_code    => l_component_type_code
58138                                                                          )
58139                                     ,p_token_4                 => 'PRODUCT_NAME'
58140                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58141                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58142                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58143                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58144                                     ,p_ae_header_id            =>  NULL
58145                                        );
58146 
58147         IF (C_LEVEL_ERROR>= g_log_level) THEN
58148                  trace
58149                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58150                       ,p_level    => C_LEVEL_ERROR
58151                       ,p_module   => l_log_module);
58152         END IF;
58153       END IF;
58154    END IF;
58155    --
58156    --
58157    ------------------------------------------------------------------------------------------------
58158    -- 4219869 Business Flow
58159    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58160    -- Prior Entry.  Currently, the following code is always generated.
58161    ------------------------------------------------------------------------------------------------
58162    XLA_AE_LINES_PKG.ValidateCurrentLine;
58163 
58164    ------------------------------------------------------------------------------------
58165    -- 4219869 Business Flow
58166    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58167    ------------------------------------------------------------------------------------
58168    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58169 
58170    ----------------------------------------------------------------------------------
58171    -- 4219869 Business Flow
58172    -- Update journal entry status -- Need to generate this within IF <condition>
58173    ----------------------------------------------------------------------------------
58174    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58175          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58176          ,p_balance_type_code => l_balance_type_code
58177          );
58178 
58179    -------------------------------------------------------------------------------------------
58180    -- 4262811 - Generate the Accrual Reversal lines
58181    -------------------------------------------------------------------------------------------
58182    BEGIN
58183       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58184                               (g_array_event(p_event_id).array_value_num('header_index'));
58185       IF l_acc_rev_flag IS NULL THEN
58186          l_acc_rev_flag := 'N';
58187       END IF;
58188    EXCEPTION
58189       WHEN OTHERS THEN
58190          l_acc_rev_flag := 'N';
58191    END;
58192    --
58193    IF (l_acc_rev_flag = 'Y') THEN
58194 
58195        -- 4645092  ------------------------------------------------------------------------------
58196        -- To allow MPA report to determine if it should generate report process
58197        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58198        ------------------------------------------------------------------------------------------
58199 
58200        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58201        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58202    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58203    -- call ADRs
58204    -- Bug 4922099
58205    --
58206    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58207         (NVL(l_actual_upg_option, 'N') = 'O') OR
58208         (NVL(l_enc_upg_option, 'N') = 'O')
58209       )
58210    THEN
58211    NULL;
58212    --
58213    --
58214    
58215   l_ccid := AcctDerRule_33(
58216            p_application_id           => p_application_id
58217          , p_ae_header_id             => l_ae_header_id 
58218 , p_source_30 => p_source_30
58219          , x_transaction_coa_id       => l_adr_transaction_coa_id
58220          , x_accounting_coa_id        => l_adr_accounting_coa_id
58224 
58221          , x_value_type_code          => l_adr_value_type_code
58222          , p_side                     => 'NA'
58223    );
58225    xla_ae_lines_pkg.set_ccid(
58226     p_code_combination_id          => l_ccid
58227   , p_value_type_code              => l_adr_value_type_code
58228   , p_transaction_coa_id           => l_adr_transaction_coa_id
58229   , p_accounting_coa_id            => l_adr_accounting_coa_id
58230   , p_adr_code                     => 'AP_INVOICE_DIST'
58231   , p_adr_type_code                => 'S'
58232   , p_component_type               => l_component_type
58233   , p_component_code               => l_component_code
58234   , p_component_type_code          => l_component_type_code
58235   , p_component_appl_id            => l_component_appl_id
58236   , p_amb_context_code             => l_amb_context_code
58237   , p_side                         => 'NA'
58238   );
58239 
58240 
58241    --
58242    --
58243    END IF;
58244 
58245        --
58246        -- Update the line information that should be overwritten
58247        --
58248        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58249                                          p_header_num   => 1);
58250        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58251 
58252        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58253 
58254        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58255           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58256        END IF;
58257 
58258       --
58259       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58260       --
58261       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58262           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58263       ELSE
58264           ---------------------------------------------------------------------------------------------------
58265           -- 4262811a Switch Sign
58266           ---------------------------------------------------------------------------------------------------
58267           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58268           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58269                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58270           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58271                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58272           -- 5132302
58273           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58274                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58275 
58276       END IF;
58277 
58278       -- 4955764
58279       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58280       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58281 
58282 
58283       XLA_AE_LINES_PKG.ValidateCurrentLine;
58284       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58285 
58286       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58287                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58288                ,p_balance_type_code => l_balance_type_code);
58289 
58290    END IF;
58291 
58292    -----------------------------------------------------------------------------------------
58293    -- 4262811 Multiperiod Accounting
58294    -----------------------------------------------------------------------------------------
58295      -- No MPA option is assigned.
58296 
58297 
58298 END IF;
58299 END IF;
58300 --
58301 
58302 --
58303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58304    trace
58305       (p_msg      => 'END of AcctLineType_114'
58306       ,p_level    => C_LEVEL_PROCEDURE
58307       ,p_module   => l_log_module);
58308 END IF;
58309 --
58310 EXCEPTION
58311   WHEN xla_exceptions_pkg.application_exception THEN
58312       RAISE;
58313   WHEN OTHERS THEN
58314        xla_exceptions_pkg.raise_message
58315            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_114');
58316 END AcctLineType_114;
58317 --
58318 
58319 ---------------------------------------
58320 --
58321 -- PRIVATE FUNCTION
58322 --         AcctLineType_115
58323 --
58324 ---------------------------------------
58325 PROCEDURE AcctLineType_115 (
58326   p_application_id        IN NUMBER
58327  ,p_event_id              IN NUMBER
58328  ,p_calculate_acctd_flag  IN VARCHAR2
58329  ,p_calculate_g_l_flag    IN VARCHAR2
58330  ,p_actual_flag           IN OUT VARCHAR2
58331  ,p_balance_type_code     OUT VARCHAR2
58332  ,p_gain_or_loss_ref      OUT VARCHAR2
58333  
58334 --Invoice Distribution Description
58335  , p_source_1            IN VARCHAR2
58336 --Invoice Distribution Ledger Amount
58337  , p_source_21            IN NUMBER
58338 --Invoice Distribution Account
58339  , p_source_30            IN NUMBER
58340 --Invoice Distribution Type
58341  , p_source_33            IN VARCHAR2
58342  , p_source_33_meaning    IN VARCHAR2
58343 --Accounting Reversal Indicator
58344  , p_source_52            IN VARCHAR2
58348  , p_source_56            IN NUMBER
58345 --Distribution Link Type
58346  , p_source_54            IN VARCHAR2
58347 --Allocation to Main Distribution Identifier
58349 --Invoice Identifier
58350  , p_source_57            IN NUMBER
58351 --Invoice Distribution Identifier
58352  , p_source_63            IN NUMBER
58353 --Payables Encumbrance Upgrade Credit Account
58354  , p_source_64            IN NUMBER
58355 --Payables Encumbrance Upgrade Credit Amount
58356  , p_source_65            IN NUMBER
58357 --Invoice Currency Code
58358  , p_source_66            IN VARCHAR2
58359 --Payables Encumbrance Upgrade Credit Base Amount
58360  , p_source_67            IN NUMBER
58361 --Payables Encumbrance Upgrade Debit Account
58362  , p_source_68            IN NUMBER
58363 --Payables Encumbrance Upgrade Debit Amount
58364  , p_source_69            IN NUMBER
58365 --Payables Encumbrance Upgrade Debit Base Amount
58366  , p_source_70            IN NUMBER
58367 --Payables Encumbrance Upgrade Option
58368  , p_source_71            IN VARCHAR2
58369 --Invoice Distribution Amount
58370  , p_source_72            IN NUMBER
58371 --Deferred Accounting End Date
58372  , p_source_76            IN DATE
58373 --Deferred Accounting Option
58374  , p_source_77            IN VARCHAR2
58375 --Deferred Accounting Start Date
58376  , p_source_78            IN DATE
58377 --Override Accounted Amount Indicator
58378  , p_source_79            IN VARCHAR2
58379  , p_source_79_meaning    IN VARCHAR2
58380 --Invoice Supplier Identifier
58381  , p_source_80            IN NUMBER
58382 --Invoice Supplier Site Identifier
58383  , p_source_81            IN NUMBER
58384 --Third Party Type
58385  , p_source_82            IN VARCHAR2
58386 --Parent Reversal Identifier
58387  , p_source_83            IN NUMBER
58388 --Invoice Distribution Tax Line Identifier
58389  , p_source_85            IN NUMBER
58390 --Invoice Distribution Tax Distribution Identifier from Tax
58391  , p_source_86            IN NUMBER
58392 --Invoice Distribution Summary Tax Line Identifier
58393  , p_source_87            IN NUMBER
58394 --Payables Upgrade Credit Encumbrance Type Identifier
58395  , p_source_88            IN NUMBER
58396 --Payables Upgrade Debit Encumbrance Type Identifier
58397  , p_source_89            IN NUMBER
58398 --Business Flow Accounts Payable Application Identifier
58399  , p_source_90            IN NUMBER
58400 --Business Flow Invoice Distribution Type
58401  , p_source_91            IN VARCHAR2
58402 --Business Flow Invoice Entity Code
58403  , p_source_92            IN VARCHAR2
58404 --Business Flow Invoice Distribution Identifier
58405  , p_source_93            IN NUMBER
58406 --Business Flow Invoice Identifier
58407  , p_source_94            IN NUMBER
58408 --Invoice Exchange Date
58409  , p_source_136            IN DATE
58410 --Invoice Exchange Rate
58411  , p_source_137            IN NUMBER
58412 --Invoice Exchange Rate Type
58413  , p_source_138            IN VARCHAR2
58414 --Project Identifier
58415  , p_source_146            IN NUMBER
58416 )
58417 IS
58418 
58419 l_component_type              VARCHAR2(80);
58420 l_component_code              VARCHAR2(30);
58421 l_component_type_code         VARCHAR2(1);
58422 l_component_appl_id           INTEGER;
58423 l_amb_context_code            VARCHAR2(30);
58424 l_entity_code                 VARCHAR2(30);
58425 l_event_class_code            VARCHAR2(30);
58426 l_ae_header_id                NUMBER;
58427 l_event_type_code             VARCHAR2(30);
58428 l_line_definition_code        VARCHAR2(30);
58429 l_line_definition_owner_code  VARCHAR2(1);
58430 --
58431 -- adr variables
58432 l_segment                     VARCHAR2(30);
58433 l_ccid                        NUMBER;
58434 l_adr_transaction_coa_id      NUMBER;
58435 l_adr_accounting_coa_id       NUMBER;
58436 l_adr_flexfield_segment_code  VARCHAR2(30);
58437 l_adr_flex_value_set_id       NUMBER;
58438 l_adr_value_type_code         VARCHAR2(30);
58439 l_adr_value_combination_id    NUMBER;
58440 l_adr_value_segment_code      VARCHAR2(30);
58441 
58442 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58443 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58444 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58445 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58446 
58447 -- 4262811 Variables ------------------------------------------------------------------------------------------
58448 l_entered_amt_idx             NUMBER;
58449 l_accted_amt_idx              NUMBER;
58450 l_acc_rev_flag                VARCHAR2(1);
58451 l_accrual_line_num            NUMBER;
58452 l_tmp_amt                     NUMBER;
58453 l_acc_rev_natural_side_code   VARCHAR2(1);
58454 
58455 l_num_entries                 NUMBER;
58456 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58457 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58458 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58459 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58460 l_recog_line_1                NUMBER;
58461 l_recog_line_2                NUMBER;
58462 
58463 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58464 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58465 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58466 
58470 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58467 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58468 
58469 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58471 
58472 ---------------------------------------------------------------------------------------------------------------
58473 
58474 
58475 --
58476 -- bulk performance
58477 --
58478 l_balance_type_code           VARCHAR2(1);
58479 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58480 l_log_module                  VARCHAR2(240);
58481 
58482 --
58483 -- Upgrade strategy
58484 --
58485 l_actual_upg_option           VARCHAR2(1);
58486 l_enc_upg_option           VARCHAR2(1);
58487 
58488 --
58489 BEGIN
58490 --
58491 IF g_log_enabled THEN
58492       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
58493 END IF;
58494 --
58495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58496 
58497       trace
58498          (p_msg      => 'BEGIN of AcctLineType_115'
58499          ,p_level    => C_LEVEL_PROCEDURE
58500          ,p_module   => l_log_module);
58501 
58502 END IF;
58503 --
58504 l_component_type             := 'AMB_JLT';
58505 l_component_code             := 'AP_FREIGHT_EXPENSE_DM';
58506 l_component_type_code        := 'S';
58507 l_component_appl_id          :=  200;
58508 l_amb_context_code           := 'DEFAULT';
58509 l_entity_code                := 'AP_INVOICES';
58510 l_event_class_code           := 'DEBIT MEMOS';
58511 l_event_type_code            := 'DEBIT MEMOS_ALL';
58512 l_line_definition_owner_code := 'S';
58513 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
58514 --
58515 l_balance_type_code          := 'A';
58516 l_segment                     := NULL;
58517 l_ccid                        := NULL;
58518 l_adr_transaction_coa_id      := NULL;
58519 l_adr_accounting_coa_id       := NULL;
58520 l_adr_flexfield_segment_code  := NULL;
58521 l_adr_flex_value_set_id       := NULL;
58522 l_adr_value_type_code         := NULL;
58523 l_adr_value_combination_id    := NULL;
58524 l_adr_value_segment_code      := NULL;
58525 
58526 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58527 l_bflow_class_code           := '';    -- 4219869 Business Flow
58528 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58529 l_budgetary_control_flag     := 'N';
58530 
58531 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58532 l_bflow_applied_to_amt       := NULL; -- 5132302
58533 l_entered_amt_idx            := NULL;          -- 4262811
58534 l_accted_amt_idx             := NULL;          -- 4262811
58535 l_acc_rev_flag               := NULL;          -- 4262811
58536 l_accrual_line_num           := NULL;          -- 4262811
58537 l_tmp_amt                    := NULL;          -- 4262811
58538 --
58539  
58540 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58541     l_balance_type_code <> 'B' THEN
58542 IF NVL(p_source_33,'
58543 ') =  'FREIGHT'
58544  THEN 
58545 
58546    --
58547    XLA_AE_LINES_PKG.SetNewLine;
58548 
58549    p_balance_type_code          := l_balance_type_code;
58550    -- set the flag so later we will know whether the gain loss line needs to be created
58551    
58552    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58553      p_actual_flag :='A';
58554    END IF;
58555 
58556    --
58557    -- bulk performance
58558    --
58559    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58560                                       p_header_num   => 0); -- 4262811
58561    --
58562    -- set accounting line options
58563    --
58564    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58565            p_natural_side_code          => 'D'
58566          , p_gain_or_loss_flag          => 'N'
58567          , p_gl_transfer_mode_code      => 'S'
58568          , p_acct_entry_type_code       => 'A'
58569          , p_switch_side_flag           => 'Y'
58570          , p_merge_duplicate_code       => 'A'
58571          );
58572    --
58573    l_acc_rev_natural_side_code := 'C';  -- 4262811
58574    -- 
58575    --
58576    -- set accounting line type info
58577    --
58578    xla_ae_lines_pkg.SetAcctLineType
58579       (p_component_type             => l_component_type
58580       ,p_event_type_code            => l_event_type_code
58581       ,p_line_definition_owner_code => l_line_definition_owner_code
58582       ,p_line_definition_code       => l_line_definition_code
58583       ,p_accounting_line_code       => l_component_code
58584       ,p_accounting_line_type_code  => l_component_type_code
58585       ,p_accounting_line_appl_id    => l_component_appl_id
58586       ,p_amb_context_code           => l_amb_context_code
58587       ,p_entity_code                => l_entity_code
58588       ,p_event_class_code           => l_event_class_code);
58589    --
58590    -- set accounting class
58591    --
58592    xla_ae_lines_pkg.SetAcctClass(
58593            p_accounting_class_code  => 'FREIGHT'
58594          , p_ae_header_id           => l_ae_header_id
58595          );
58596 
58597    --
58598    -- set rounding class
58599    --
58600    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58604    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58601                       'FREIGHT';
58602 
58603    --
58605    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58606    --
58607    -- bulk performance
58608    --
58609    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58610 
58611    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58612       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58613 
58614    -- 4955764
58615    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58616       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58617 
58618    -- 4458381 Public Sector Enh
58619    
58620    --
58621    -- set accounting attributes for the line type
58622    --
58623    l_entered_amt_idx := 23;
58624    l_accted_amt_idx  := 28;
58625    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58626    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58627    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
58628    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58629    l_rec_acct_attrs.array_num_value(2)  := 
58630 xla_ae_sources_pkg.GetSystemSourceNum(
58631    p_source_code           => 'XLA_EVENT_APPL_ID'
58632  , p_source_type_code      => 'Y'
58633  , p_source_application_id =>  602
58634 );
58635    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58636    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
58637    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58638    l_rec_acct_attrs.array_char_value(4)  := 
58639 xla_ae_sources_pkg.GetSystemSourceChar(
58640    p_source_code           => 'XLA_ENTITY_CODE'
58641  , p_source_type_code      => 'Y'
58642  , p_source_application_id =>  602
58643 );
58644    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58645    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
58646    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58647    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
58648    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58649    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
58650    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58651    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
58652    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58653    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
58654    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58655    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
58656    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58657    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
58658    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58659    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
58660    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58661    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
58662    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
58663    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
58664    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
58665    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
58666    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
58667    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
58668    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
58669    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
58670    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
58671    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
58672    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
58673    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
58674    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
58675    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
58676    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
58677    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
58678    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
58679    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
58680    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
58681    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
58682    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
58683    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
58684    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
58685    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
58686    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
58687    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
58688    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
58689    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
58690    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
58691    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
58692    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
58693    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
58694    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
58695    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
58699    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
58696    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
58697    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
58698    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
58700    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
58701    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
58702    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
58703    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
58704    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
58705    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
58706    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
58707    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
58708    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
58709    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
58710    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
58711    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
58712    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
58713    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
58714    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
58715    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
58716    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
58717    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
58718    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
58719    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
58720 
58721    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58722    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58723 
58724    ---------------------------------------------------------------------------------------------------------------
58725    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58726    ---------------------------------------------------------------------------------------------------------------
58727    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58728 
58729    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58730    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58731 
58732    IF xla_accounting_cache_pkg.GetValueChar
58733          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58734          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58735    AND l_bflow_method_code = 'PRIOR_ENTRY'
58736 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58737    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58738          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58739        )
58740    THEN
58741          xla_ae_lines_pkg.BflowUpgEntry
58742            (p_business_method_code    => l_bflow_method_code
58743            ,p_business_class_code     => l_bflow_class_code
58744            ,p_balance_type            => l_balance_type_code);
58745    ELSE
58746       NULL;
58747 -- No business flow processing for business flow method of NONE.
58748    END IF;
58749 
58750    --
58751    -- call analytical criteria
58752    --
58753    
58754 
58755 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
58756 xla_ae_lines_pkg.SetAnalyticalCriteria(
58757    p_analytical_criterion_name    => 'Project Number'
58758  , p_analytical_criterion_owner   => 'S'
58759  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
58760  , p_amb_context_code             => 'DEFAULT'
58761  , p_balancing_flag               => 'N'
58762  
58763  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
58764 p_source_146))
58765  , p_analytical_detail_num_1     =>  NULL
58766  , p_analytical_detail_date_1    =>  NULL
58767 
58768  , p_ae_header_id                 => l_ae_header_id
58769 )
58770 ;
58771 --
58772 
58773    --
58774    -- call description
58775    --
58776    
58777 xla_ae_lines_pkg.SetLineDescription(
58778    p_ae_header_id => l_ae_header_id
58779   ,p_description  => Description_1 (
58780      p_application_id         => p_application_id
58781    , p_ae_header_id           => l_ae_header_id 
58782 , p_source_1 => p_source_1
58783    )
58784 );
58785 
58786 
58787    --
58788    -- call ADRs
58789    -- Bug 4922099
58790    --
58791    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58792         (NVL(l_actual_upg_option, 'N') = 'O') OR
58793         (NVL(l_enc_upg_option, 'N') = 'O')
58794       )
58795    THEN
58796    NULL;
58797    --
58798    --
58799    
58800   l_ccid := AcctDerRule_33(
58801            p_application_id           => p_application_id
58802          , p_ae_header_id             => l_ae_header_id 
58803 , p_source_30 => p_source_30
58804          , x_transaction_coa_id       => l_adr_transaction_coa_id
58805          , x_accounting_coa_id        => l_adr_accounting_coa_id
58806          , x_value_type_code          => l_adr_value_type_code
58807          , p_side                     => 'NA'
58808    );
58809 
58810    xla_ae_lines_pkg.set_ccid(
58811     p_code_combination_id          => l_ccid
58812   , p_value_type_code              => l_adr_value_type_code
58813   , p_transaction_coa_id           => l_adr_transaction_coa_id
58817   , p_component_type               => l_component_type
58814   , p_accounting_coa_id            => l_adr_accounting_coa_id
58815   , p_adr_code                     => 'AP_INVOICE_DIST'
58816   , p_adr_type_code                => 'S'
58818   , p_component_code               => l_component_code
58819   , p_component_type_code          => l_component_type_code
58820   , p_component_appl_id            => l_component_appl_id
58821   , p_amb_context_code             => l_amb_context_code
58822   , p_side                         => 'NA'
58823   );
58824 
58825 
58826    --
58827    --
58828    END IF;
58829    --
58830    -- Bug 4922099
58831    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58832           (NVL(l_enc_upg_option, 'N') = 'O')
58833         ) AND
58834         (l_bflow_method_code = 'PRIOR_ENTRY')
58835       )
58836    THEN
58837       IF
58838       --
58839       1 = 2
58840       --
58841       THEN
58842       xla_accounting_err_pkg.build_message
58843                                     (p_appli_s_name            => 'XLA'
58844                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58845                                     ,p_token_1                 => 'LINE_NUMBER'
58846                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58847                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58848                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58849                                                                              l_component_type
58850                                                                             ,l_component_code
58851                                                                             ,l_component_type_code
58852                                                                             ,l_component_appl_id
58853                                                                             ,l_amb_context_code
58854                                                                             ,l_entity_code
58855                                                                             ,l_event_class_code
58856                                                                            )
58857                                     ,p_token_3                 => 'OWNER'
58858                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58859                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58860                                                                           ,p_lookup_code    => l_component_type_code
58861                                                                          )
58862                                     ,p_token_4                 => 'PRODUCT_NAME'
58863                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58864                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58865                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58866                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58867                                     ,p_ae_header_id            =>  NULL
58868                                        );
58869 
58870         IF (C_LEVEL_ERROR>= g_log_level) THEN
58871                  trace
58872                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58873                       ,p_level    => C_LEVEL_ERROR
58874                       ,p_module   => l_log_module);
58875         END IF;
58876       END IF;
58877    END IF;
58878    --
58879    --
58880    ------------------------------------------------------------------------------------------------
58881    -- 4219869 Business Flow
58882    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58883    -- Prior Entry.  Currently, the following code is always generated.
58884    ------------------------------------------------------------------------------------------------
58885    XLA_AE_LINES_PKG.ValidateCurrentLine;
58886 
58887    ------------------------------------------------------------------------------------
58888    -- 4219869 Business Flow
58889    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58890    ------------------------------------------------------------------------------------
58891    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58892 
58893    ----------------------------------------------------------------------------------
58894    -- 4219869 Business Flow
58895    -- Update journal entry status -- Need to generate this within IF <condition>
58896    ----------------------------------------------------------------------------------
58897    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58898          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58899          ,p_balance_type_code => l_balance_type_code
58900          );
58901 
58902    -------------------------------------------------------------------------------------------
58903    -- 4262811 - Generate the Accrual Reversal lines
58904    -------------------------------------------------------------------------------------------
58905    BEGIN
58906       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58907                               (g_array_event(p_event_id).array_value_num('header_index'));
58908       IF l_acc_rev_flag IS NULL THEN
58912       WHEN OTHERS THEN
58909          l_acc_rev_flag := 'N';
58910       END IF;
58911    EXCEPTION
58913          l_acc_rev_flag := 'N';
58914    END;
58915    --
58916    IF (l_acc_rev_flag = 'Y') THEN
58917 
58918        -- 4645092  ------------------------------------------------------------------------------
58919        -- To allow MPA report to determine if it should generate report process
58920        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58921        ------------------------------------------------------------------------------------------
58922 
58923        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58924        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58925    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58926    -- call ADRs
58927    -- Bug 4922099
58928    --
58929    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58930         (NVL(l_actual_upg_option, 'N') = 'O') OR
58931         (NVL(l_enc_upg_option, 'N') = 'O')
58932       )
58933    THEN
58934    NULL;
58935    --
58936    --
58937    
58938   l_ccid := AcctDerRule_33(
58939            p_application_id           => p_application_id
58940          , p_ae_header_id             => l_ae_header_id 
58941 , p_source_30 => p_source_30
58942          , x_transaction_coa_id       => l_adr_transaction_coa_id
58943          , x_accounting_coa_id        => l_adr_accounting_coa_id
58944          , x_value_type_code          => l_adr_value_type_code
58945          , p_side                     => 'NA'
58946    );
58947 
58948    xla_ae_lines_pkg.set_ccid(
58949     p_code_combination_id          => l_ccid
58950   , p_value_type_code              => l_adr_value_type_code
58951   , p_transaction_coa_id           => l_adr_transaction_coa_id
58952   , p_accounting_coa_id            => l_adr_accounting_coa_id
58953   , p_adr_code                     => 'AP_INVOICE_DIST'
58954   , p_adr_type_code                => 'S'
58955   , p_component_type               => l_component_type
58956   , p_component_code               => l_component_code
58957   , p_component_type_code          => l_component_type_code
58958   , p_component_appl_id            => l_component_appl_id
58959   , p_amb_context_code             => l_amb_context_code
58960   , p_side                         => 'NA'
58961   );
58962 
58963 
58964    --
58965    --
58966    END IF;
58967 
58968        --
58969        -- Update the line information that should be overwritten
58970        --
58971        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58972                                          p_header_num   => 1);
58973        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58974 
58975        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58976 
58977        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58978           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58979        END IF;
58980 
58981       --
58982       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58983       --
58984       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58985           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58986       ELSE
58987           ---------------------------------------------------------------------------------------------------
58988           -- 4262811a Switch Sign
58989           ---------------------------------------------------------------------------------------------------
58990           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58991           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58992                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58993           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58994                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58995           -- 5132302
58996           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58997                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58998 
58999       END IF;
59000 
59001       -- 4955764
59002       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59003       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59004 
59005 
59006       XLA_AE_LINES_PKG.ValidateCurrentLine;
59007       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59008 
59009       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59010                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59011                ,p_balance_type_code => l_balance_type_code);
59012 
59013    END IF;
59014 
59015    -----------------------------------------------------------------------------------------
59016    -- 4262811 Multiperiod Accounting
59017    -----------------------------------------------------------------------------------------
59018      -- No MPA option is assigned.
59019 
59020 
59021 END IF;
59022 END IF;
59023 --
59024 
59025 --
59026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59027    trace
59031 END IF;
59028       (p_msg      => 'END of AcctLineType_115'
59029       ,p_level    => C_LEVEL_PROCEDURE
59030       ,p_module   => l_log_module);
59032 --
59033 EXCEPTION
59034   WHEN xla_exceptions_pkg.application_exception THEN
59035       RAISE;
59036   WHEN OTHERS THEN
59037        xla_exceptions_pkg.raise_message
59038            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_115');
59039 END AcctLineType_115;
59040 --
59041 
59042 ---------------------------------------
59043 --
59044 -- PRIVATE FUNCTION
59045 --         AcctLineType_116
59046 --
59047 ---------------------------------------
59048 PROCEDURE AcctLineType_116 (
59049   p_application_id        IN NUMBER
59050  ,p_event_id              IN NUMBER
59051  ,p_calculate_acctd_flag  IN VARCHAR2
59052  ,p_calculate_g_l_flag    IN VARCHAR2
59053  ,p_actual_flag           IN OUT VARCHAR2
59054  ,p_balance_type_code     OUT VARCHAR2
59055  ,p_gain_or_loss_ref      OUT VARCHAR2
59056  
59057 --Invoice Distribution Description
59058  , p_source_1            IN VARCHAR2
59059 --Invoice Distribution Ledger Amount
59060  , p_source_21            IN NUMBER
59061 --Invoice Distribution Account
59062  , p_source_30            IN NUMBER
59063 --Invoice Distribution Type
59064  , p_source_33            IN VARCHAR2
59065  , p_source_33_meaning    IN VARCHAR2
59066 --Accounting Reversal Indicator
59067  , p_source_52            IN VARCHAR2
59068 --Distribution Link Type
59069  , p_source_54            IN VARCHAR2
59070 --Allocation to Main Distribution Identifier
59071  , p_source_56            IN NUMBER
59072 --Invoice Identifier
59073  , p_source_57            IN NUMBER
59074 --Invoice Distribution Identifier
59075  , p_source_63            IN NUMBER
59076 --Payables Encumbrance Upgrade Credit Account
59077  , p_source_64            IN NUMBER
59078 --Payables Encumbrance Upgrade Credit Amount
59079  , p_source_65            IN NUMBER
59080 --Invoice Currency Code
59081  , p_source_66            IN VARCHAR2
59082 --Payables Encumbrance Upgrade Credit Base Amount
59083  , p_source_67            IN NUMBER
59084 --Payables Encumbrance Upgrade Debit Account
59085  , p_source_68            IN NUMBER
59086 --Payables Encumbrance Upgrade Debit Amount
59087  , p_source_69            IN NUMBER
59088 --Payables Encumbrance Upgrade Debit Base Amount
59089  , p_source_70            IN NUMBER
59090 --Payables Encumbrance Upgrade Option
59091  , p_source_71            IN VARCHAR2
59092 --Invoice Distribution Amount
59093  , p_source_72            IN NUMBER
59094 --Deferred Accounting End Date
59095  , p_source_76            IN DATE
59096 --Deferred Accounting Option
59097  , p_source_77            IN VARCHAR2
59098 --Deferred Accounting Start Date
59099  , p_source_78            IN DATE
59100 --Override Accounted Amount Indicator
59101  , p_source_79            IN VARCHAR2
59102  , p_source_79_meaning    IN VARCHAR2
59103 --Invoice Supplier Identifier
59104  , p_source_80            IN NUMBER
59105 --Invoice Supplier Site Identifier
59106  , p_source_81            IN NUMBER
59107 --Third Party Type
59108  , p_source_82            IN VARCHAR2
59109 --Parent Reversal Identifier
59110  , p_source_83            IN NUMBER
59111 --Invoice Distribution Statistical Amount
59112  , p_source_84            IN NUMBER
59113 --Invoice Distribution Tax Line Identifier
59114  , p_source_85            IN NUMBER
59115 --Invoice Distribution Tax Distribution Identifier from Tax
59116  , p_source_86            IN NUMBER
59117 --Invoice Distribution Summary Tax Line Identifier
59118  , p_source_87            IN NUMBER
59119 --Payables Upgrade Credit Encumbrance Type Identifier
59120  , p_source_88            IN NUMBER
59121 --Payables Upgrade Debit Encumbrance Type Identifier
59122  , p_source_89            IN NUMBER
59123 --Business Flow Accounts Payable Application Identifier
59124  , p_source_90            IN NUMBER
59125 --Business Flow Invoice Distribution Type
59126  , p_source_91            IN VARCHAR2
59127 --Business Flow Invoice Entity Code
59128  , p_source_92            IN VARCHAR2
59129 --Business Flow Invoice Distribution Identifier
59130  , p_source_93            IN NUMBER
59131 --Business Flow Invoice Identifier
59132  , p_source_94            IN NUMBER
59133 --Invoice Exchange Date
59134  , p_source_136            IN DATE
59135 --Invoice Exchange Rate
59136  , p_source_137            IN NUMBER
59137 --Invoice Exchange Rate Type
59138  , p_source_138            IN VARCHAR2
59139 --Project Identifier
59140  , p_source_146            IN NUMBER
59141 )
59142 IS
59143 
59144 l_component_type              VARCHAR2(80);
59145 l_component_code              VARCHAR2(30);
59146 l_component_type_code         VARCHAR2(1);
59147 l_component_appl_id           INTEGER;
59148 l_amb_context_code            VARCHAR2(30);
59149 l_entity_code                 VARCHAR2(30);
59150 l_event_class_code            VARCHAR2(30);
59151 l_ae_header_id                NUMBER;
59152 l_event_type_code             VARCHAR2(30);
59153 l_line_definition_code        VARCHAR2(30);
59154 l_line_definition_owner_code  VARCHAR2(1);
59155 --
59156 -- adr variables
59157 l_segment                     VARCHAR2(30);
59158 l_ccid                        NUMBER;
59159 l_adr_transaction_coa_id      NUMBER;
59160 l_adr_accounting_coa_id       NUMBER;
59164 l_adr_value_combination_id    NUMBER;
59161 l_adr_flexfield_segment_code  VARCHAR2(30);
59162 l_adr_flex_value_set_id       NUMBER;
59163 l_adr_value_type_code         VARCHAR2(30);
59165 l_adr_value_segment_code      VARCHAR2(30);
59166 
59167 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59168 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59169 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59170 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59171 
59172 -- 4262811 Variables ------------------------------------------------------------------------------------------
59173 l_entered_amt_idx             NUMBER;
59174 l_accted_amt_idx              NUMBER;
59175 l_acc_rev_flag                VARCHAR2(1);
59176 l_accrual_line_num            NUMBER;
59177 l_tmp_amt                     NUMBER;
59178 l_acc_rev_natural_side_code   VARCHAR2(1);
59179 
59180 l_num_entries                 NUMBER;
59181 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59182 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59183 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59184 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59185 l_recog_line_1                NUMBER;
59186 l_recog_line_2                NUMBER;
59187 
59188 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59189 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59190 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59191 
59192 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59193 
59194 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59195 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59196 
59197 ---------------------------------------------------------------------------------------------------------------
59198 
59199 
59200 --
59201 -- bulk performance
59202 --
59203 l_balance_type_code           VARCHAR2(1);
59204 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59205 l_log_module                  VARCHAR2(240);
59206 
59207 --
59208 -- Upgrade strategy
59209 --
59210 l_actual_upg_option           VARCHAR2(1);
59211 l_enc_upg_option           VARCHAR2(1);
59212 
59213 --
59214 BEGIN
59215 --
59216 IF g_log_enabled THEN
59217       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
59218 END IF;
59219 --
59220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59221 
59222       trace
59223          (p_msg      => 'BEGIN of AcctLineType_116'
59224          ,p_level    => C_LEVEL_PROCEDURE
59225          ,p_module   => l_log_module);
59226 
59227 END IF;
59228 --
59229 l_component_type             := 'AMB_JLT';
59230 l_component_code             := 'AP_FREIGHT_EXPENSE_INV';
59231 l_component_type_code        := 'S';
59232 l_component_appl_id          :=  200;
59233 l_amb_context_code           := 'DEFAULT';
59234 l_entity_code                := 'AP_INVOICES';
59235 l_event_class_code           := 'INVOICES';
59236 l_event_type_code            := 'INVOICES_ALL';
59237 l_line_definition_owner_code := 'S';
59238 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
59239 --
59240 l_balance_type_code          := 'A';
59241 l_segment                     := NULL;
59242 l_ccid                        := NULL;
59243 l_adr_transaction_coa_id      := NULL;
59244 l_adr_accounting_coa_id       := NULL;
59245 l_adr_flexfield_segment_code  := NULL;
59246 l_adr_flex_value_set_id       := NULL;
59247 l_adr_value_type_code         := NULL;
59248 l_adr_value_combination_id    := NULL;
59249 l_adr_value_segment_code      := NULL;
59250 
59251 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59252 l_bflow_class_code           := '';    -- 4219869 Business Flow
59253 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59254 l_budgetary_control_flag     := 'N';
59255 
59256 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59257 l_bflow_applied_to_amt       := NULL; -- 5132302
59258 l_entered_amt_idx            := NULL;          -- 4262811
59259 l_accted_amt_idx             := NULL;          -- 4262811
59260 l_acc_rev_flag               := NULL;          -- 4262811
59261 l_accrual_line_num           := NULL;          -- 4262811
59262 l_tmp_amt                    := NULL;          -- 4262811
59263 --
59264  
59265 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59266     l_balance_type_code <> 'B' THEN
59267 IF NVL(p_source_33,'
59268 ') =  'FREIGHT'
59269  THEN 
59270 
59271    --
59272    XLA_AE_LINES_PKG.SetNewLine;
59273 
59274    p_balance_type_code          := l_balance_type_code;
59275    -- set the flag so later we will know whether the gain loss line needs to be created
59276    
59277    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59278      p_actual_flag :='A';
59279    END IF;
59280 
59281    --
59282    -- bulk performance
59283    --
59284    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59285                                       p_header_num   => 0); -- 4262811
59286    --
59287    -- set accounting line options
59288    --
59292          , p_gl_transfer_mode_code      => 'S'
59289    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59290            p_natural_side_code          => 'D'
59291          , p_gain_or_loss_flag          => 'N'
59293          , p_acct_entry_type_code       => 'A'
59294          , p_switch_side_flag           => 'Y'
59295          , p_merge_duplicate_code       => 'A'
59296          );
59297    --
59298    l_acc_rev_natural_side_code := 'C';  -- 4262811
59299    -- 
59300    --
59301    -- set accounting line type info
59302    --
59303    xla_ae_lines_pkg.SetAcctLineType
59304       (p_component_type             => l_component_type
59305       ,p_event_type_code            => l_event_type_code
59306       ,p_line_definition_owner_code => l_line_definition_owner_code
59307       ,p_line_definition_code       => l_line_definition_code
59308       ,p_accounting_line_code       => l_component_code
59309       ,p_accounting_line_type_code  => l_component_type_code
59310       ,p_accounting_line_appl_id    => l_component_appl_id
59311       ,p_amb_context_code           => l_amb_context_code
59312       ,p_entity_code                => l_entity_code
59313       ,p_event_class_code           => l_event_class_code);
59314    --
59315    -- set accounting class
59316    --
59317    xla_ae_lines_pkg.SetAcctClass(
59318            p_accounting_class_code  => 'FREIGHT'
59319          , p_ae_header_id           => l_ae_header_id
59320          );
59321 
59322    --
59323    -- set rounding class
59324    --
59325    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59326                       'FREIGHT';
59327 
59328    --
59329    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59330    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59331    --
59332    -- bulk performance
59333    --
59334    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59335 
59336    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59337       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59338 
59339    -- 4955764
59340    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59341       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59342 
59343    -- 4458381 Public Sector Enh
59344    
59345    --
59346    -- set accounting attributes for the line type
59347    --
59348    l_entered_amt_idx := 24;
59349    l_accted_amt_idx  := 29;
59350    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
59351    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59352    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
59353    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59354    l_rec_acct_attrs.array_num_value(2)  := 
59355 xla_ae_sources_pkg.GetSystemSourceNum(
59356    p_source_code           => 'XLA_EVENT_APPL_ID'
59357  , p_source_type_code      => 'Y'
59358  , p_source_application_id =>  602
59359 );
59360    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59361    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
59362    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59363    l_rec_acct_attrs.array_char_value(4)  := 
59364 xla_ae_sources_pkg.GetSystemSourceChar(
59365    p_source_code           => 'XLA_ENTITY_CODE'
59366  , p_source_type_code      => 'Y'
59367  , p_source_application_id =>  602
59368 );
59369    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59370    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
59371    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59372    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
59373    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
59374    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
59375    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
59376    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
59377    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59378    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
59379    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
59380    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
59381    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
59382    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
59383    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59384    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
59385    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
59386    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
59387    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
59388    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
59389    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
59390    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
59391    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
59392    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
59393    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
59394    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
59395    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
59396    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
59400    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
59397    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
59398    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
59399    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
59401    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
59402    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
59403    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
59404    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
59405    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
59406    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
59407    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
59408    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
59409    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
59410    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
59411    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
59412    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
59413    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
59414    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
59415    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
59416    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
59417    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
59418    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
59419    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
59420    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
59421    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
59422    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
59423    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
59424    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
59425    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
59426    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
59427    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
59428    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
59429    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
59430    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
59431    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
59432    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
59433    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
59434    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
59435    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
59436    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
59437    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
59438    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
59439    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
59440    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
59441    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
59442    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
59443    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
59444    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
59445    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
59446    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
59447    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
59448    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
59449 
59450    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59451    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59452 
59453    ---------------------------------------------------------------------------------------------------------------
59454    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59455    ---------------------------------------------------------------------------------------------------------------
59456    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59457 
59458    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59459    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59460 
59461    IF xla_accounting_cache_pkg.GetValueChar
59462          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59463          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59464    AND l_bflow_method_code = 'PRIOR_ENTRY'
59465 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59466    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59467          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59468        )
59469    THEN
59470          xla_ae_lines_pkg.BflowUpgEntry
59471            (p_business_method_code    => l_bflow_method_code
59472            ,p_business_class_code     => l_bflow_class_code
59473            ,p_balance_type            => l_balance_type_code);
59474    ELSE
59475       NULL;
59476 -- No business flow processing for business flow method of NONE.
59477    END IF;
59478 
59479    --
59480    -- call analytical criteria
59481    --
59482    
59483 
59484 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
59485 xla_ae_lines_pkg.SetAnalyticalCriteria(
59486    p_analytical_criterion_name    => 'Project Number'
59487  , p_analytical_criterion_owner   => 'S'
59488  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
59492  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
59489  , p_amb_context_code             => 'DEFAULT'
59490  , p_balancing_flag               => 'N'
59491  
59493 p_source_146))
59494  , p_analytical_detail_num_1     =>  NULL
59495  , p_analytical_detail_date_1    =>  NULL
59496 
59497  , p_ae_header_id                 => l_ae_header_id
59498 )
59499 ;
59500 --
59501 
59502    --
59503    -- call description
59504    --
59505    
59506 xla_ae_lines_pkg.SetLineDescription(
59507    p_ae_header_id => l_ae_header_id
59508   ,p_description  => Description_1 (
59509      p_application_id         => p_application_id
59510    , p_ae_header_id           => l_ae_header_id 
59511 , p_source_1 => p_source_1
59512    )
59513 );
59514 
59515 
59516    --
59517    -- call ADRs
59518    -- Bug 4922099
59519    --
59520    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59521         (NVL(l_actual_upg_option, 'N') = 'O') OR
59522         (NVL(l_enc_upg_option, 'N') = 'O')
59523       )
59524    THEN
59525    NULL;
59526    --
59527    --
59528    
59529   l_ccid := AcctDerRule_33(
59530            p_application_id           => p_application_id
59531          , p_ae_header_id             => l_ae_header_id 
59532 , p_source_30 => p_source_30
59533          , x_transaction_coa_id       => l_adr_transaction_coa_id
59534          , x_accounting_coa_id        => l_adr_accounting_coa_id
59535          , x_value_type_code          => l_adr_value_type_code
59536          , p_side                     => 'NA'
59537    );
59538 
59539    xla_ae_lines_pkg.set_ccid(
59540     p_code_combination_id          => l_ccid
59541   , p_value_type_code              => l_adr_value_type_code
59542   , p_transaction_coa_id           => l_adr_transaction_coa_id
59543   , p_accounting_coa_id            => l_adr_accounting_coa_id
59544   , p_adr_code                     => 'AP_INVOICE_DIST'
59545   , p_adr_type_code                => 'S'
59546   , p_component_type               => l_component_type
59547   , p_component_code               => l_component_code
59548   , p_component_type_code          => l_component_type_code
59549   , p_component_appl_id            => l_component_appl_id
59550   , p_amb_context_code             => l_amb_context_code
59551   , p_side                         => 'NA'
59552   );
59553 
59554 
59555    --
59556    --
59557    END IF;
59558    --
59559    -- Bug 4922099
59560    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59561           (NVL(l_enc_upg_option, 'N') = 'O')
59562         ) AND
59563         (l_bflow_method_code = 'PRIOR_ENTRY')
59564       )
59565    THEN
59566       IF
59567       --
59568       1 = 2
59569       --
59570       THEN
59571       xla_accounting_err_pkg.build_message
59572                                     (p_appli_s_name            => 'XLA'
59573                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59574                                     ,p_token_1                 => 'LINE_NUMBER'
59575                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59576                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59577                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59578                                                                              l_component_type
59579                                                                             ,l_component_code
59580                                                                             ,l_component_type_code
59581                                                                             ,l_component_appl_id
59582                                                                             ,l_amb_context_code
59583                                                                             ,l_entity_code
59584                                                                             ,l_event_class_code
59585                                                                            )
59586                                     ,p_token_3                 => 'OWNER'
59587                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59588                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59589                                                                           ,p_lookup_code    => l_component_type_code
59590                                                                          )
59591                                     ,p_token_4                 => 'PRODUCT_NAME'
59592                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59593                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59594                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59595                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59596                                     ,p_ae_header_id            =>  NULL
59597                                        );
59598 
59599         IF (C_LEVEL_ERROR>= g_log_level) THEN
59600                  trace
59601                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59602                       ,p_level    => C_LEVEL_ERROR
59603                       ,p_module   => l_log_module);
59604         END IF;
59605       END IF;
59606    END IF;
59607    --
59608    --
59612    -- Prior Entry.  Currently, the following code is always generated.
59609    ------------------------------------------------------------------------------------------------
59610    -- 4219869 Business Flow
59611    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59613    ------------------------------------------------------------------------------------------------
59614    XLA_AE_LINES_PKG.ValidateCurrentLine;
59615 
59616    ------------------------------------------------------------------------------------
59617    -- 4219869 Business Flow
59618    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59619    ------------------------------------------------------------------------------------
59620    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59621 
59622    ----------------------------------------------------------------------------------
59623    -- 4219869 Business Flow
59624    -- Update journal entry status -- Need to generate this within IF <condition>
59625    ----------------------------------------------------------------------------------
59626    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59627          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59628          ,p_balance_type_code => l_balance_type_code
59629          );
59630 
59631    -------------------------------------------------------------------------------------------
59632    -- 4262811 - Generate the Accrual Reversal lines
59633    -------------------------------------------------------------------------------------------
59634    BEGIN
59635       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59636                               (g_array_event(p_event_id).array_value_num('header_index'));
59637       IF l_acc_rev_flag IS NULL THEN
59638          l_acc_rev_flag := 'N';
59639       END IF;
59640    EXCEPTION
59641       WHEN OTHERS THEN
59642          l_acc_rev_flag := 'N';
59643    END;
59644    --
59645    IF (l_acc_rev_flag = 'Y') THEN
59646 
59647        -- 4645092  ------------------------------------------------------------------------------
59648        -- To allow MPA report to determine if it should generate report process
59649        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59650        ------------------------------------------------------------------------------------------
59651 
59652        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59653        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59654    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59655    -- call ADRs
59656    -- Bug 4922099
59657    --
59658    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59659         (NVL(l_actual_upg_option, 'N') = 'O') OR
59660         (NVL(l_enc_upg_option, 'N') = 'O')
59661       )
59662    THEN
59663    NULL;
59664    --
59665    --
59666    
59667   l_ccid := AcctDerRule_33(
59668            p_application_id           => p_application_id
59669          , p_ae_header_id             => l_ae_header_id 
59670 , p_source_30 => p_source_30
59671          , x_transaction_coa_id       => l_adr_transaction_coa_id
59672          , x_accounting_coa_id        => l_adr_accounting_coa_id
59673          , x_value_type_code          => l_adr_value_type_code
59674          , p_side                     => 'NA'
59675    );
59676 
59677    xla_ae_lines_pkg.set_ccid(
59678     p_code_combination_id          => l_ccid
59679   , p_value_type_code              => l_adr_value_type_code
59680   , p_transaction_coa_id           => l_adr_transaction_coa_id
59681   , p_accounting_coa_id            => l_adr_accounting_coa_id
59682   , p_adr_code                     => 'AP_INVOICE_DIST'
59683   , p_adr_type_code                => 'S'
59684   , p_component_type               => l_component_type
59685   , p_component_code               => l_component_code
59686   , p_component_type_code          => l_component_type_code
59687   , p_component_appl_id            => l_component_appl_id
59688   , p_amb_context_code             => l_amb_context_code
59689   , p_side                         => 'NA'
59690   );
59691 
59692 
59693    --
59694    --
59695    END IF;
59696 
59697        --
59698        -- Update the line information that should be overwritten
59699        --
59700        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59701                                          p_header_num   => 1);
59702        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59703 
59704        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59705 
59706        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59707           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59708        END IF;
59709 
59710       --
59711       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59712       --
59713       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59714           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59715       ELSE
59716           ---------------------------------------------------------------------------------------------------
59717           -- 4262811a Switch Sign
59721                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59718           ---------------------------------------------------------------------------------------------------
59719           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59720           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59722           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59723                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59724           -- 5132302
59725           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59726                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59727 
59728       END IF;
59729 
59730       -- 4955764
59731       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59732       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59733 
59734 
59735       XLA_AE_LINES_PKG.ValidateCurrentLine;
59736       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59737 
59738       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59739                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59740                ,p_balance_type_code => l_balance_type_code);
59741 
59742    END IF;
59743 
59744    -----------------------------------------------------------------------------------------
59745    -- 4262811 Multiperiod Accounting
59746    -----------------------------------------------------------------------------------------
59747      -- No MPA option is assigned.
59748 
59749 
59750 END IF;
59751 END IF;
59752 --
59753 
59754 --
59755 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59756    trace
59757       (p_msg      => 'END of AcctLineType_116'
59758       ,p_level    => C_LEVEL_PROCEDURE
59759       ,p_module   => l_log_module);
59760 END IF;
59761 --
59762 EXCEPTION
59763   WHEN xla_exceptions_pkg.application_exception THEN
59764       RAISE;
59765   WHEN OTHERS THEN
59766        xla_exceptions_pkg.raise_message
59767            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_116');
59768 END AcctLineType_116;
59769 --
59770 
59771 ---------------------------------------
59772 --
59773 -- PRIVATE FUNCTION
59774 --         AcctLineType_117
59775 --
59776 ---------------------------------------
59777 PROCEDURE AcctLineType_117 (
59778   p_application_id        IN NUMBER
59779  ,p_event_id              IN NUMBER
59780  ,p_calculate_acctd_flag  IN VARCHAR2
59781  ,p_calculate_g_l_flag    IN VARCHAR2
59782  ,p_actual_flag           IN OUT VARCHAR2
59783  ,p_balance_type_code     OUT VARCHAR2
59784  ,p_gain_or_loss_ref      OUT VARCHAR2
59785  
59786 --Invoice Distribution Description
59787  , p_source_1            IN VARCHAR2
59788 --Invoice Distribution Ledger Amount
59789  , p_source_21            IN NUMBER
59790 --Invoice Distribution Account
59791  , p_source_30            IN NUMBER
59792 --Invoice Distribution Type
59793  , p_source_33            IN VARCHAR2
59794  , p_source_33_meaning    IN VARCHAR2
59795 --Accounting Reversal Indicator
59796  , p_source_52            IN VARCHAR2
59797 --Distribution Link Type
59798  , p_source_54            IN VARCHAR2
59799 --Allocation to Main Distribution Identifier
59800  , p_source_56            IN NUMBER
59801 --Invoice Identifier
59802  , p_source_57            IN NUMBER
59803 --Invoice Distribution Identifier
59804  , p_source_63            IN NUMBER
59805 --Payables Encumbrance Upgrade Credit Account
59806  , p_source_64            IN NUMBER
59807 --Payables Encumbrance Upgrade Credit Amount
59808  , p_source_65            IN NUMBER
59809 --Invoice Currency Code
59810  , p_source_66            IN VARCHAR2
59811 --Payables Encumbrance Upgrade Credit Base Amount
59812  , p_source_67            IN NUMBER
59813 --Payables Encumbrance Upgrade Debit Account
59814  , p_source_68            IN NUMBER
59815 --Payables Encumbrance Upgrade Debit Amount
59816  , p_source_69            IN NUMBER
59817 --Payables Encumbrance Upgrade Debit Base Amount
59818  , p_source_70            IN NUMBER
59819 --Payables Encumbrance Upgrade Option
59820  , p_source_71            IN VARCHAR2
59821 --Invoice Distribution Amount
59822  , p_source_72            IN NUMBER
59823 --Deferred Accounting End Date
59824  , p_source_76            IN DATE
59825 --Deferred Accounting Option
59826  , p_source_77            IN VARCHAR2
59827 --Deferred Accounting Start Date
59828  , p_source_78            IN DATE
59829 --Override Accounted Amount Indicator
59830  , p_source_79            IN VARCHAR2
59831  , p_source_79_meaning    IN VARCHAR2
59832 --Invoice Supplier Identifier
59833  , p_source_80            IN NUMBER
59834 --Invoice Supplier Site Identifier
59835  , p_source_81            IN NUMBER
59836 --Third Party Type
59837  , p_source_82            IN VARCHAR2
59838 --Parent Reversal Identifier
59839  , p_source_83            IN NUMBER
59840 --Invoice Distribution Statistical Amount
59841  , p_source_84            IN NUMBER
59842 --Invoice Distribution Tax Line Identifier
59843  , p_source_85            IN NUMBER
59844 --Invoice Distribution Tax Distribution Identifier from Tax
59848 --Payables Upgrade Credit Encumbrance Type Identifier
59845  , p_source_86            IN NUMBER
59846 --Invoice Distribution Summary Tax Line Identifier
59847  , p_source_87            IN NUMBER
59849  , p_source_88            IN NUMBER
59850 --Payables Upgrade Debit Encumbrance Type Identifier
59851  , p_source_89            IN NUMBER
59852 --Business Flow Accounts Payable Application Identifier
59853  , p_source_90            IN NUMBER
59854 --Business Flow Invoice Distribution Type
59855  , p_source_91            IN VARCHAR2
59856 --Business Flow Invoice Entity Code
59857  , p_source_92            IN VARCHAR2
59858 --Business Flow Invoice Distribution Identifier
59859  , p_source_93            IN NUMBER
59860 --Business Flow Invoice Identifier
59861  , p_source_94            IN NUMBER
59862 --Invoice Exchange Date
59863  , p_source_136            IN DATE
59864 --Invoice Exchange Rate
59865  , p_source_137            IN NUMBER
59866 --Invoice Exchange Rate Type
59867  , p_source_138            IN VARCHAR2
59868 --Project Identifier
59869  , p_source_146            IN NUMBER
59870 )
59871 IS
59872 
59873 l_component_type              VARCHAR2(80);
59874 l_component_code              VARCHAR2(30);
59875 l_component_type_code         VARCHAR2(1);
59876 l_component_appl_id           INTEGER;
59877 l_amb_context_code            VARCHAR2(30);
59878 l_entity_code                 VARCHAR2(30);
59879 l_event_class_code            VARCHAR2(30);
59880 l_ae_header_id                NUMBER;
59881 l_event_type_code             VARCHAR2(30);
59882 l_line_definition_code        VARCHAR2(30);
59883 l_line_definition_owner_code  VARCHAR2(1);
59884 --
59885 -- adr variables
59886 l_segment                     VARCHAR2(30);
59887 l_ccid                        NUMBER;
59888 l_adr_transaction_coa_id      NUMBER;
59889 l_adr_accounting_coa_id       NUMBER;
59890 l_adr_flexfield_segment_code  VARCHAR2(30);
59891 l_adr_flex_value_set_id       NUMBER;
59892 l_adr_value_type_code         VARCHAR2(30);
59893 l_adr_value_combination_id    NUMBER;
59894 l_adr_value_segment_code      VARCHAR2(30);
59895 
59896 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59897 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59898 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59899 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59900 
59901 -- 4262811 Variables ------------------------------------------------------------------------------------------
59902 l_entered_amt_idx             NUMBER;
59903 l_accted_amt_idx              NUMBER;
59904 l_acc_rev_flag                VARCHAR2(1);
59905 l_accrual_line_num            NUMBER;
59906 l_tmp_amt                     NUMBER;
59907 l_acc_rev_natural_side_code   VARCHAR2(1);
59908 
59909 l_num_entries                 NUMBER;
59910 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59911 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59912 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59913 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59914 l_recog_line_1                NUMBER;
59915 l_recog_line_2                NUMBER;
59916 
59917 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59918 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59919 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59920 
59921 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59922 
59923 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59924 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59925 
59926 ---------------------------------------------------------------------------------------------------------------
59927 
59928 
59929 --
59930 -- bulk performance
59931 --
59932 l_balance_type_code           VARCHAR2(1);
59933 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59934 l_log_module                  VARCHAR2(240);
59935 
59936 --
59937 -- Upgrade strategy
59938 --
59939 l_actual_upg_option           VARCHAR2(1);
59940 l_enc_upg_option           VARCHAR2(1);
59941 
59942 --
59943 BEGIN
59944 --
59945 IF g_log_enabled THEN
59946       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
59947 END IF;
59948 --
59949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59950 
59951       trace
59952          (p_msg      => 'BEGIN of AcctLineType_117'
59953          ,p_level    => C_LEVEL_PROCEDURE
59954          ,p_module   => l_log_module);
59955 
59956 END IF;
59957 --
59958 l_component_type             := 'AMB_JLT';
59959 l_component_code             := 'AP_FREIGHT_EXPENSE_PREPAY';
59960 l_component_type_code        := 'S';
59961 l_component_appl_id          :=  200;
59962 l_amb_context_code           := 'DEFAULT';
59963 l_entity_code                := 'AP_INVOICES';
59964 l_event_class_code           := 'PREPAYMENTS';
59965 l_event_type_code            := 'PREPAYMENTS_ALL';
59966 l_line_definition_owner_code := 'S';
59967 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
59968 --
59969 l_balance_type_code          := 'A';
59970 l_segment                     := NULL;
59971 l_ccid                        := NULL;
59972 l_adr_transaction_coa_id      := NULL;
59976 l_adr_value_type_code         := NULL;
59973 l_adr_accounting_coa_id       := NULL;
59974 l_adr_flexfield_segment_code  := NULL;
59975 l_adr_flex_value_set_id       := NULL;
59977 l_adr_value_combination_id    := NULL;
59978 l_adr_value_segment_code      := NULL;
59979 
59980 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59981 l_bflow_class_code           := '';    -- 4219869 Business Flow
59982 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59983 l_budgetary_control_flag     := 'N';
59984 
59985 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59986 l_bflow_applied_to_amt       := NULL; -- 5132302
59987 l_entered_amt_idx            := NULL;          -- 4262811
59988 l_accted_amt_idx             := NULL;          -- 4262811
59989 l_acc_rev_flag               := NULL;          -- 4262811
59990 l_accrual_line_num           := NULL;          -- 4262811
59991 l_tmp_amt                    := NULL;          -- 4262811
59992 --
59993  
59994 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59995     l_balance_type_code <> 'B' THEN
59996 IF NVL(p_source_33,'
59997 ') =  'FREIGHT'
59998  THEN 
59999 
60000    --
60001    XLA_AE_LINES_PKG.SetNewLine;
60002 
60003    p_balance_type_code          := l_balance_type_code;
60004    -- set the flag so later we will know whether the gain loss line needs to be created
60005    
60006    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60007      p_actual_flag :='A';
60008    END IF;
60009 
60010    --
60011    -- bulk performance
60012    --
60013    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60014                                       p_header_num   => 0); -- 4262811
60015    --
60016    -- set accounting line options
60017    --
60018    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60019            p_natural_side_code          => 'D'
60020          , p_gain_or_loss_flag          => 'N'
60021          , p_gl_transfer_mode_code      => 'S'
60022          , p_acct_entry_type_code       => 'A'
60023          , p_switch_side_flag           => 'Y'
60024          , p_merge_duplicate_code       => 'A'
60025          );
60026    --
60027    l_acc_rev_natural_side_code := 'C';  -- 4262811
60028    -- 
60029    --
60030    -- set accounting line type info
60031    --
60032    xla_ae_lines_pkg.SetAcctLineType
60033       (p_component_type             => l_component_type
60034       ,p_event_type_code            => l_event_type_code
60035       ,p_line_definition_owner_code => l_line_definition_owner_code
60036       ,p_line_definition_code       => l_line_definition_code
60037       ,p_accounting_line_code       => l_component_code
60038       ,p_accounting_line_type_code  => l_component_type_code
60039       ,p_accounting_line_appl_id    => l_component_appl_id
60040       ,p_amb_context_code           => l_amb_context_code
60041       ,p_entity_code                => l_entity_code
60042       ,p_event_class_code           => l_event_class_code);
60043    --
60044    -- set accounting class
60045    --
60046    xla_ae_lines_pkg.SetAcctClass(
60047            p_accounting_class_code  => 'FREIGHT'
60048          , p_ae_header_id           => l_ae_header_id
60049          );
60050 
60051    --
60052    -- set rounding class
60053    --
60054    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60055                       'FREIGHT';
60056 
60057    --
60058    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60059    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60060    --
60061    -- bulk performance
60062    --
60063    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60064 
60065    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60066       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60067 
60068    -- 4955764
60069    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60070       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60071 
60072    -- 4458381 Public Sector Enh
60073    
60074    --
60075    -- set accounting attributes for the line type
60076    --
60077    l_entered_amt_idx := 23;
60078    l_accted_amt_idx  := 28;
60079    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
60080    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60081    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
60082    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
60083    l_rec_acct_attrs.array_num_value(2)  := 
60084 xla_ae_sources_pkg.GetSystemSourceNum(
60085    p_source_code           => 'XLA_EVENT_APPL_ID'
60086  , p_source_type_code      => 'Y'
60087  , p_source_application_id =>  602
60088 );
60089    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
60090    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
60091    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
60092    l_rec_acct_attrs.array_char_value(4)  := 
60093 xla_ae_sources_pkg.GetSystemSourceChar(
60094    p_source_code           => 'XLA_ENTITY_CODE'
60095  , p_source_type_code      => 'Y'
60096  , p_source_application_id =>  602
60097 );
60098    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
60102    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
60099    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
60100    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
60101    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
60103    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
60104    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60105    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
60106    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
60107    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
60108    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
60109    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
60110    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60111    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
60112    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
60113    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
60114    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
60115    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
60116    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
60117    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
60118    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
60119    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
60120    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
60121    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
60122    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
60123    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
60124    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
60125    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
60126    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
60127    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
60128    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
60129    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
60130    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
60131    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
60132    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
60133    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
60134    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
60135    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
60136    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
60137    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
60138    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
60139    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
60140    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
60141    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
60142    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
60143    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
60144    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
60145    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
60146    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
60147    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
60148    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
60149    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
60150    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
60151    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
60152    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
60153    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
60154    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
60155    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
60156    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
60157    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
60158    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
60159    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
60160    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
60161    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
60162    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
60163    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
60164    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
60165    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
60166    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
60167    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
60168    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
60169    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
60170    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
60171    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
60172    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
60173    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
60174    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
60175    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
60176 
60177    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60178    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60179 
60180    ---------------------------------------------------------------------------------------------------------------
60181    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60185    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60182    ---------------------------------------------------------------------------------------------------------------
60183    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60184 
60186    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60187 
60188    IF xla_accounting_cache_pkg.GetValueChar
60189          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60190          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60191    AND l_bflow_method_code = 'PRIOR_ENTRY'
60192 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60193    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60194          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60195        )
60196    THEN
60197          xla_ae_lines_pkg.BflowUpgEntry
60198            (p_business_method_code    => l_bflow_method_code
60199            ,p_business_class_code     => l_bflow_class_code
60200            ,p_balance_type            => l_balance_type_code);
60201    ELSE
60202       NULL;
60203 -- No business flow processing for business flow method of NONE.
60204    END IF;
60205 
60206    --
60207    -- call analytical criteria
60208    --
60209    
60210 
60211 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
60212 xla_ae_lines_pkg.SetAnalyticalCriteria(
60213    p_analytical_criterion_name    => 'Project Number'
60214  , p_analytical_criterion_owner   => 'S'
60215  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
60216  , p_amb_context_code             => 'DEFAULT'
60217  , p_balancing_flag               => 'N'
60218  
60219  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
60220 p_source_146))
60221  , p_analytical_detail_num_1     =>  NULL
60222  , p_analytical_detail_date_1    =>  NULL
60223 
60224  , p_ae_header_id                 => l_ae_header_id
60225 )
60226 ;
60227 --
60228 
60229    --
60230    -- call description
60231    --
60232    
60233 xla_ae_lines_pkg.SetLineDescription(
60234    p_ae_header_id => l_ae_header_id
60235   ,p_description  => Description_1 (
60236      p_application_id         => p_application_id
60237    , p_ae_header_id           => l_ae_header_id 
60238 , p_source_1 => p_source_1
60239    )
60240 );
60241 
60242 
60243    --
60244    -- call ADRs
60245    -- Bug 4922099
60246    --
60247    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60248         (NVL(l_actual_upg_option, 'N') = 'O') OR
60249         (NVL(l_enc_upg_option, 'N') = 'O')
60250       )
60251    THEN
60252    NULL;
60253    --
60254    --
60255    
60256   l_ccid := AcctDerRule_33(
60257            p_application_id           => p_application_id
60258          , p_ae_header_id             => l_ae_header_id 
60259 , p_source_30 => p_source_30
60260          , x_transaction_coa_id       => l_adr_transaction_coa_id
60261          , x_accounting_coa_id        => l_adr_accounting_coa_id
60262          , x_value_type_code          => l_adr_value_type_code
60263          , p_side                     => 'NA'
60264    );
60265 
60266    xla_ae_lines_pkg.set_ccid(
60267     p_code_combination_id          => l_ccid
60268   , p_value_type_code              => l_adr_value_type_code
60269   , p_transaction_coa_id           => l_adr_transaction_coa_id
60270   , p_accounting_coa_id            => l_adr_accounting_coa_id
60271   , p_adr_code                     => 'AP_INVOICE_DIST'
60272   , p_adr_type_code                => 'S'
60273   , p_component_type               => l_component_type
60274   , p_component_code               => l_component_code
60275   , p_component_type_code          => l_component_type_code
60276   , p_component_appl_id            => l_component_appl_id
60277   , p_amb_context_code             => l_amb_context_code
60278   , p_side                         => 'NA'
60279   );
60280 
60281 
60282    --
60283    --
60284    END IF;
60285    --
60286    -- Bug 4922099
60287    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60288           (NVL(l_enc_upg_option, 'N') = 'O')
60289         ) AND
60290         (l_bflow_method_code = 'PRIOR_ENTRY')
60291       )
60292    THEN
60293       IF
60294       --
60295       1 = 2
60296       --
60297       THEN
60298       xla_accounting_err_pkg.build_message
60299                                     (p_appli_s_name            => 'XLA'
60300                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60301                                     ,p_token_1                 => 'LINE_NUMBER'
60302                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60303                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60304                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60305                                                                              l_component_type
60306                                                                             ,l_component_code
60307                                                                             ,l_component_type_code
60308                                                                             ,l_component_appl_id
60312                                                                            )
60309                                                                             ,l_amb_context_code
60310                                                                             ,l_entity_code
60311                                                                             ,l_event_class_code
60313                                     ,p_token_3                 => 'OWNER'
60314                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60315                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60316                                                                           ,p_lookup_code    => l_component_type_code
60317                                                                          )
60318                                     ,p_token_4                 => 'PRODUCT_NAME'
60319                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60320                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60321                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60322                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60323                                     ,p_ae_header_id            =>  NULL
60324                                        );
60325 
60326         IF (C_LEVEL_ERROR>= g_log_level) THEN
60327                  trace
60328                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60329                       ,p_level    => C_LEVEL_ERROR
60330                       ,p_module   => l_log_module);
60331         END IF;
60332       END IF;
60333    END IF;
60334    --
60335    --
60336    ------------------------------------------------------------------------------------------------
60337    -- 4219869 Business Flow
60338    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60339    -- Prior Entry.  Currently, the following code is always generated.
60340    ------------------------------------------------------------------------------------------------
60341    XLA_AE_LINES_PKG.ValidateCurrentLine;
60342 
60343    ------------------------------------------------------------------------------------
60344    -- 4219869 Business Flow
60345    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60346    ------------------------------------------------------------------------------------
60347    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60348 
60349    ----------------------------------------------------------------------------------
60350    -- 4219869 Business Flow
60351    -- Update journal entry status -- Need to generate this within IF <condition>
60352    ----------------------------------------------------------------------------------
60353    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60354          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60355          ,p_balance_type_code => l_balance_type_code
60356          );
60357 
60358    -------------------------------------------------------------------------------------------
60359    -- 4262811 - Generate the Accrual Reversal lines
60360    -------------------------------------------------------------------------------------------
60361    BEGIN
60362       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60363                               (g_array_event(p_event_id).array_value_num('header_index'));
60364       IF l_acc_rev_flag IS NULL THEN
60365          l_acc_rev_flag := 'N';
60366       END IF;
60367    EXCEPTION
60368       WHEN OTHERS THEN
60369          l_acc_rev_flag := 'N';
60370    END;
60371    --
60372    IF (l_acc_rev_flag = 'Y') THEN
60373 
60374        -- 4645092  ------------------------------------------------------------------------------
60375        -- To allow MPA report to determine if it should generate report process
60376        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60377        ------------------------------------------------------------------------------------------
60378 
60379        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60380        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60381    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60382    -- call ADRs
60383    -- Bug 4922099
60384    --
60385    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60386         (NVL(l_actual_upg_option, 'N') = 'O') OR
60387         (NVL(l_enc_upg_option, 'N') = 'O')
60388       )
60389    THEN
60390    NULL;
60391    --
60392    --
60393    
60394   l_ccid := AcctDerRule_33(
60395            p_application_id           => p_application_id
60396          , p_ae_header_id             => l_ae_header_id 
60397 , p_source_30 => p_source_30
60398          , x_transaction_coa_id       => l_adr_transaction_coa_id
60399          , x_accounting_coa_id        => l_adr_accounting_coa_id
60400          , x_value_type_code          => l_adr_value_type_code
60401          , p_side                     => 'NA'
60402    );
60403 
60404    xla_ae_lines_pkg.set_ccid(
60405     p_code_combination_id          => l_ccid
60406   , p_value_type_code              => l_adr_value_type_code
60407   , p_transaction_coa_id           => l_adr_transaction_coa_id
60411   , p_component_type               => l_component_type
60408   , p_accounting_coa_id            => l_adr_accounting_coa_id
60409   , p_adr_code                     => 'AP_INVOICE_DIST'
60410   , p_adr_type_code                => 'S'
60412   , p_component_code               => l_component_code
60413   , p_component_type_code          => l_component_type_code
60414   , p_component_appl_id            => l_component_appl_id
60415   , p_amb_context_code             => l_amb_context_code
60416   , p_side                         => 'NA'
60417   );
60418 
60419 
60420    --
60421    --
60422    END IF;
60423 
60424        --
60425        -- Update the line information that should be overwritten
60426        --
60427        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60428                                          p_header_num   => 1);
60429        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60430 
60431        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60432 
60433        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60434           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60435        END IF;
60436 
60437       --
60438       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60439       --
60440       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60441           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60442       ELSE
60443           ---------------------------------------------------------------------------------------------------
60444           -- 4262811a Switch Sign
60445           ---------------------------------------------------------------------------------------------------
60446           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60447           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60448                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60449           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60450                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60451           -- 5132302
60452           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60453                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60454 
60455       END IF;
60456 
60457       -- 4955764
60458       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60459       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60460 
60461 
60462       XLA_AE_LINES_PKG.ValidateCurrentLine;
60463       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60464 
60465       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60466                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60467                ,p_balance_type_code => l_balance_type_code);
60468 
60469    END IF;
60470 
60471    -----------------------------------------------------------------------------------------
60472    -- 4262811 Multiperiod Accounting
60473    -----------------------------------------------------------------------------------------
60474      -- No MPA option is assigned.
60475 
60476 
60477 END IF;
60478 END IF;
60479 --
60480 
60481 --
60482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60483    trace
60484       (p_msg      => 'END of AcctLineType_117'
60485       ,p_level    => C_LEVEL_PROCEDURE
60486       ,p_module   => l_log_module);
60487 END IF;
60488 --
60489 EXCEPTION
60490   WHEN xla_exceptions_pkg.application_exception THEN
60491       RAISE;
60492   WHEN OTHERS THEN
60493        xla_exceptions_pkg.raise_message
60494            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_117');
60495 END AcctLineType_117;
60496 --
60497 
60498 ---------------------------------------
60499 --
60500 -- PRIVATE FUNCTION
60501 --         AcctLineType_118
60502 --
60503 ---------------------------------------
60504 PROCEDURE AcctLineType_118 (
60505   p_application_id        IN NUMBER
60506  ,p_event_id              IN NUMBER
60507  ,p_calculate_acctd_flag  IN VARCHAR2
60508  ,p_calculate_g_l_flag    IN VARCHAR2
60509  ,p_actual_flag           IN OUT VARCHAR2
60510  ,p_balance_type_code     OUT VARCHAR2
60511  ,p_gain_or_loss_ref      OUT VARCHAR2
60512  
60513 --Payment Currency Code
60514  , p_source_13            IN VARCHAR2
60515 --Automatic Offsets Value
60516  , p_source_15            IN VARCHAR2
60517  , p_source_15_meaning    IN VARCHAR2
60518 --Bank Future Dated Payment Account
60519  , p_source_24            IN NUMBER
60520 --Future Dated Payment Account Source Option
60521  , p_source_25            IN VARCHAR2
60522  , p_source_25_meaning    IN VARCHAR2
60523 --Financials Options Future Dated Payment Account
60524  , p_source_26            IN NUMBER
60525 --Supplier Site Future Dated Payment Account
60526  , p_source_27            IN NUMBER
60527 --Invoice Distribution Account
60531 --Distribution Link Type
60528  , p_source_30            IN NUMBER
60529 --Accounting Reversal Indicator
60530  , p_source_52            IN VARCHAR2
60532  , p_source_54            IN VARCHAR2
60533 --Override Accounted Amount Indicator
60534  , p_source_79            IN VARCHAR2
60535  , p_source_79_meaning    IN VARCHAR2
60536 --Third Party Type
60537  , p_source_82            IN VARCHAR2
60538 --Invoice Distribution Tax Line Identifier
60539  , p_source_85            IN NUMBER
60540 --Invoice Distribution Tax Distribution Identifier from Tax
60541  , p_source_86            IN NUMBER
60542 --Invoice Distribution Summary Tax Line Identifier
60543  , p_source_87            IN NUMBER
60544 --Business Flow Accounts Payable Application Identifier
60545  , p_source_90            IN NUMBER
60546 --Business Flow Invoice Distribution Type
60547  , p_source_91            IN VARCHAR2
60548 --Business Flow Invoice Entity Code
60549  , p_source_92            IN VARCHAR2
60550 --Business Flow Invoice Distribution Identifier
60551  , p_source_93            IN NUMBER
60552 --Business Flow Invoice Identifier
60553  , p_source_94            IN NUMBER
60554 --When to Account for Payment Option
60555  , p_source_96            IN VARCHAR2
60556 --Payment Distribution Type
60557  , p_source_97            IN VARCHAR2
60558  , p_source_97_meaning    IN VARCHAR2
60559 --Payment Distribution Amount
60560  , p_source_98            IN NUMBER
60561 --Payment Distribution Identifier
60562  , p_source_103            IN NUMBER
60563 --Payment Supplier Identifier
60564  , p_source_109            IN NUMBER
60565 --Payment Supplier Site Identifier
60566  , p_source_110            IN NUMBER
60567 --Payment Distribution Reversed Identifier
60568  , p_source_111            IN NUMBER
60569 --Payment Identifier
60570  , p_source_112            IN NUMBER
60571 --Payment Maturity Date
60572  , p_source_114            IN DATE
60573 --Payment Distribution (Payment Rate) Ledger Amount
60574  , p_source_115            IN NUMBER
60575 --Payment Exchange Date
60576  , p_source_117            IN DATE
60577 --Payment Exchange Rate
60578  , p_source_118            IN NUMBER
60579 --Payment Exchange Rate Type
60580  , p_source_119            IN VARCHAR2
60581 --Payment Processing Type
60582  , p_source_123            IN VARCHAR2
60583 --Invoice Distribution Amount of the Payment Distribution
60584  , p_source_124            IN NUMBER
60585 )
60586 IS
60587 
60588 l_component_type              VARCHAR2(80);
60589 l_component_code              VARCHAR2(30);
60590 l_component_type_code         VARCHAR2(1);
60591 l_component_appl_id           INTEGER;
60592 l_amb_context_code            VARCHAR2(30);
60593 l_entity_code                 VARCHAR2(30);
60594 l_event_class_code            VARCHAR2(30);
60595 l_ae_header_id                NUMBER;
60596 l_event_type_code             VARCHAR2(30);
60597 l_line_definition_code        VARCHAR2(30);
60598 l_line_definition_owner_code  VARCHAR2(1);
60599 --
60600 -- adr variables
60601 l_segment                     VARCHAR2(30);
60602 l_ccid                        NUMBER;
60603 l_adr_transaction_coa_id      NUMBER;
60604 l_adr_accounting_coa_id       NUMBER;
60605 l_adr_flexfield_segment_code  VARCHAR2(30);
60606 l_adr_flex_value_set_id       NUMBER;
60607 l_adr_value_type_code         VARCHAR2(30);
60608 l_adr_value_combination_id    NUMBER;
60609 l_adr_value_segment_code      VARCHAR2(30);
60610 
60611 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60612 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60613 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60614 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60615 
60616 -- 4262811 Variables ------------------------------------------------------------------------------------------
60617 l_entered_amt_idx             NUMBER;
60618 l_accted_amt_idx              NUMBER;
60619 l_acc_rev_flag                VARCHAR2(1);
60620 l_accrual_line_num            NUMBER;
60621 l_tmp_amt                     NUMBER;
60622 l_acc_rev_natural_side_code   VARCHAR2(1);
60623 
60624 l_num_entries                 NUMBER;
60625 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60626 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60627 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60628 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60629 l_recog_line_1                NUMBER;
60630 l_recog_line_2                NUMBER;
60631 
60632 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60633 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60634 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60635 
60636 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60637 
60638 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60639 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60640 
60641 ---------------------------------------------------------------------------------------------------------------
60642 
60643 
60644 --
60645 -- bulk performance
60646 --
60647 l_balance_type_code           VARCHAR2(1);
60648 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60649 l_log_module                  VARCHAR2(240);
60650 
60651 --
60652 -- Upgrade strategy
60653 --
60657 --
60654 l_actual_upg_option           VARCHAR2(1);
60655 l_enc_upg_option           VARCHAR2(1);
60656 
60658 BEGIN
60659 --
60660 IF g_log_enabled THEN
60661       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
60662 END IF;
60663 --
60664 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60665 
60666       trace
60667          (p_msg      => 'BEGIN of AcctLineType_118'
60668          ,p_level    => C_LEVEL_PROCEDURE
60669          ,p_module   => l_log_module);
60670 
60671 END IF;
60672 --
60673 l_component_type             := 'AMB_JLT';
60674 l_component_code             := 'AP_FUTURE_DATED_PMT';
60675 l_component_type_code        := 'S';
60676 l_component_appl_id          :=  200;
60677 l_amb_context_code           := 'DEFAULT';
60678 l_entity_code                := 'AP_PAYMENTS';
60679 l_event_class_code           := 'PAYMENTS';
60680 l_event_type_code            := 'PAYMENTS_ALL';
60681 l_line_definition_owner_code := 'S';
60682 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
60683 --
60684 l_balance_type_code          := 'A';
60685 l_segment                     := NULL;
60686 l_ccid                        := NULL;
60687 l_adr_transaction_coa_id      := NULL;
60688 l_adr_accounting_coa_id       := NULL;
60689 l_adr_flexfield_segment_code  := NULL;
60690 l_adr_flex_value_set_id       := NULL;
60691 l_adr_value_type_code         := NULL;
60692 l_adr_value_combination_id    := NULL;
60693 l_adr_value_segment_code      := NULL;
60694 
60695 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60696 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
60697 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60698 l_budgetary_control_flag     := 'N';
60699 
60700 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60701 l_bflow_applied_to_amt       := NULL; -- 5132302
60702 l_entered_amt_idx            := NULL;          -- 4262811
60703 l_accted_amt_idx             := NULL;          -- 4262811
60704 l_acc_rev_flag               := NULL;          -- 4262811
60705 l_accrual_line_num           := NULL;          -- 4262811
60706 l_tmp_amt                    := NULL;          -- 4262811
60707 --
60708  
60709 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60710     l_balance_type_code <> 'B' THEN
60711 IF NVL(p_source_96,'
60712 ') <>  'CLEAR_CLEAR' AND 
60713 NVL(p_source_96,'
60714 ') <>  'ALWAYS_CLEAR' AND 
60715 NVL(p_source_97,'
60716 ') =  'CASH' AND 
60717 p_source_114 IS NOT NULL AND 
60718 NVL(p_source_123,'
60719 ') <>  'PAYMENTCARD'
60720  THEN 
60721 
60722    --
60723    XLA_AE_LINES_PKG.SetNewLine;
60724 
60725    p_balance_type_code          := l_balance_type_code;
60726    -- set the flag so later we will know whether the gain loss line needs to be created
60727    
60728    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60729      p_actual_flag :='A';
60730    END IF;
60731 
60732    --
60733    -- bulk performance
60734    --
60735    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60736                                       p_header_num   => 0); -- 4262811
60737    --
60738    -- set accounting line options
60739    --
60740    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60741            p_natural_side_code          => 'C'
60742          , p_gain_or_loss_flag          => 'N'
60743          , p_gl_transfer_mode_code      => 'S'
60744          , p_acct_entry_type_code       => 'A'
60745          , p_switch_side_flag           => 'Y'
60746          , p_merge_duplicate_code       => 'A'
60747          );
60748    --
60749    l_acc_rev_natural_side_code := 'D';  -- 4262811
60750    -- 
60751    --
60752    -- set accounting line type info
60753    --
60754    xla_ae_lines_pkg.SetAcctLineType
60755       (p_component_type             => l_component_type
60756       ,p_event_type_code            => l_event_type_code
60757       ,p_line_definition_owner_code => l_line_definition_owner_code
60758       ,p_line_definition_code       => l_line_definition_code
60759       ,p_accounting_line_code       => l_component_code
60760       ,p_accounting_line_type_code  => l_component_type_code
60761       ,p_accounting_line_appl_id    => l_component_appl_id
60762       ,p_amb_context_code           => l_amb_context_code
60763       ,p_entity_code                => l_entity_code
60764       ,p_event_class_code           => l_event_class_code);
60765    --
60766    -- set accounting class
60767    --
60768    xla_ae_lines_pkg.SetAcctClass(
60769            p_accounting_class_code  => 'FUTURE_DATED_PMT'
60770          , p_ae_header_id           => l_ae_header_id
60771          );
60772 
60773    --
60774    -- set rounding class
60775    --
60776    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60777                       'FUTURE_DATED_PMT';
60778 
60779    --
60780    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60781    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60782    --
60783    -- bulk performance
60784    --
60785    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60786 
60787    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60791    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60788       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60789 
60790    -- 4955764
60792       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60793 
60794    -- 4458381 Public Sector Enh
60795    
60796    --
60797    -- set accounting attributes for the line type
60798    --
60799    l_entered_amt_idx := 10;
60800    l_accted_amt_idx  := 15;
60801    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
60802    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60803    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
60804    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
60805    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
60806    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
60807    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
60808    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60809    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
60810    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
60811    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
60812    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
60813    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
60814    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60815    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
60816    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
60817    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
60818    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
60819    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
60820    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
60821    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
60822    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
60823    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
60824    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
60825    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
60826    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
60827    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
60828    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
60829    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
60830    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
60831    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
60832    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
60833    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
60834    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
60835    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
60836    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
60837    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
60838    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
60839    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
60840    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
60841    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
60842    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
60843    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
60844    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
60845    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
60846    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
60847    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
60848    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
60849    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
60850 
60851    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60852    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60853 
60854    ---------------------------------------------------------------------------------------------------------------
60855    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60856    ---------------------------------------------------------------------------------------------------------------
60857    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60858 
60859    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60860    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60861 
60862    IF xla_accounting_cache_pkg.GetValueChar
60863          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60864          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60865    AND l_bflow_method_code = 'PRIOR_ENTRY'
60866 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60867    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60868          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60869        )
60870    THEN
60871          xla_ae_lines_pkg.BflowUpgEntry
60872            (p_business_method_code    => l_bflow_method_code
60873            ,p_business_class_code     => l_bflow_class_code
60874            ,p_balance_type            => l_balance_type_code);
60875    ELSE
60876       NULL;
60877 -- No business flow processing for business flow method of NONE.
60878    END IF;
60879 
60880    --
60881    -- call analytical criteria
60882    --
60883    
60884 
60885 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
60889  , p_analytical_criterion_code    => 'CHECK_ID'
60886 xla_ae_lines_pkg.SetAnalyticalCriteria(
60887    p_analytical_criterion_name    => 'Check Id'
60888  , p_analytical_criterion_owner   => 'S'
60890  , p_amb_context_code             => 'DEFAULT'
60891  , p_balancing_flag               => 'N'
60892  
60893  , p_analytical_detail_char_1    =>  NULL
60894  , p_analytical_detail_num_1     =>  p_source_112
60895  , p_analytical_detail_date_1    =>  NULL
60896 
60897  , p_ae_header_id                 => l_ae_header_id
60898 )
60899 ;
60900 --
60901 
60902    --
60903    -- call description
60904    --
60905    -- No description or it is inherited.
60906    --
60907    -- call ADRs
60908    -- Bug 4922099
60909    --
60910    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60911         (NVL(l_actual_upg_option, 'N') = 'O') OR
60912         (NVL(l_enc_upg_option, 'N') = 'O')
60913       )
60914    THEN
60915    NULL;
60916    --
60917    --
60918    
60919   l_ccid := AcctDerRule_31(
60920            p_application_id           => p_application_id
60921          , p_ae_header_id             => l_ae_header_id 
60922 , p_source_15 => p_source_15
60923 , p_source_15_meaning => p_source_15_meaning
60924 , p_source_24 => p_source_24
60925 , p_source_25 => p_source_25
60926 , p_source_25_meaning => p_source_25_meaning
60927 , p_source_26 => p_source_26
60928 , p_source_27 => p_source_27
60929 , p_source_30 => p_source_30
60930          , x_transaction_coa_id       => l_adr_transaction_coa_id
60931          , x_accounting_coa_id        => l_adr_accounting_coa_id
60932          , x_value_type_code          => l_adr_value_type_code
60933          , p_side                     => 'NA'
60934    );
60935 
60936    xla_ae_lines_pkg.set_ccid(
60937     p_code_combination_id          => l_ccid
60938   , p_value_type_code              => l_adr_value_type_code
60939   , p_transaction_coa_id           => l_adr_transaction_coa_id
60940   , p_accounting_coa_id            => l_adr_accounting_coa_id
60941   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
60942   , p_adr_type_code                => 'S'
60943   , p_component_type               => l_component_type
60944   , p_component_code               => l_component_code
60945   , p_component_type_code          => l_component_type_code
60946   , p_component_appl_id            => l_component_appl_id
60947   , p_amb_context_code             => l_amb_context_code
60948   , p_side                         => 'NA'
60949   );
60950 
60951 
60952    l_segment := AcctDerRule_11(
60953            p_application_id           => p_application_id
60954          , p_ae_header_id             => l_ae_header_id 
60955 , p_source_15 => p_source_15
60956 , p_source_15_meaning => p_source_15_meaning
60957 , p_source_24 => p_source_24
60958 , p_source_25 => p_source_25
60959 , p_source_25_meaning => p_source_25_meaning
60960 , p_source_26 => p_source_26
60961 , p_source_27 => p_source_27
60962          , x_transaction_coa_id       => l_adr_transaction_coa_id
60963          , x_accounting_coa_id        => l_adr_accounting_coa_id
60964          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
60965          , x_flex_value_set_id        => l_adr_flex_value_set_id
60966          , x_value_type_code          => l_adr_value_type_code
60967          , x_value_combination_id     => l_adr_value_combination_id
60968          , x_value_segment_code       => l_adr_value_segment_code
60969          , p_side                     => 'NA'
60970          , p_override_seg_flag        => 'Y'
60971    );
60972 
60973    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
60974 
60975       xla_ae_lines_pkg.set_segment(
60976           p_to_segment_code         => 'GL_ACCOUNT'
60977         , p_segment_value           => l_segment
60978         , p_from_segment_code       => l_adr_value_segment_code
60979         , p_from_combination_id     => l_adr_value_combination_id
60980         , p_value_type_code         => l_adr_value_type_code
60981         , p_transaction_coa_id      => l_adr_transaction_coa_id
60982         , p_accounting_coa_id       => l_adr_accounting_coa_id
60983         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
60984         , p_flex_value_set_id       => l_adr_flex_value_set_id
60985         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
60986         , p_adr_type_code           => 'S'
60987         , p_component_type          => l_component_type
60988         , p_component_code          => l_component_code
60989         , p_component_type_code     => l_component_type_code
60990         , p_component_appl_id       => l_component_appl_id
60991         , p_amb_context_code        => l_amb_context_code
60992         , p_entity_code             => 'AP_PAYMENTS'
60993         , p_event_class_code        => 'PAYMENTS'
60994         , p_side                    => 'NA'
60995         );
60996 
60997   END IF;
60998 
60999    l_segment := AcctDerRule_22(
61000            p_application_id           => p_application_id
61001          , p_ae_header_id             => l_ae_header_id 
61002 , p_source_15 => p_source_15
61003 , p_source_15_meaning => p_source_15_meaning
61004 , p_source_30 => p_source_30
61005          , x_transaction_coa_id       => l_adr_transaction_coa_id
61006          , x_accounting_coa_id        => l_adr_accounting_coa_id
61007          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61011          , x_value_segment_code       => l_adr_value_segment_code
61008          , x_flex_value_set_id        => l_adr_flex_value_set_id
61009          , x_value_type_code          => l_adr_value_type_code
61010          , x_value_combination_id     => l_adr_value_combination_id
61012          , p_side                     => 'NA'
61013          , p_override_seg_flag        => 'Y'
61014    );
61015 
61016    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61017 
61018       xla_ae_lines_pkg.set_segment(
61019           p_to_segment_code         => 'GL_BALANCING'
61020         , p_segment_value           => l_segment
61021         , p_from_segment_code       => l_adr_value_segment_code
61022         , p_from_combination_id     => l_adr_value_combination_id
61023         , p_value_type_code         => l_adr_value_type_code
61024         , p_transaction_coa_id      => l_adr_transaction_coa_id
61025         , p_accounting_coa_id       => l_adr_accounting_coa_id
61026         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61027         , p_flex_value_set_id       => l_adr_flex_value_set_id
61028         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61029         , p_adr_type_code           => 'S'
61030         , p_component_type          => l_component_type
61031         , p_component_code          => l_component_code
61032         , p_component_type_code     => l_component_type_code
61033         , p_component_appl_id       => l_component_appl_id
61034         , p_amb_context_code        => l_amb_context_code
61035         , p_entity_code             => 'AP_PAYMENTS'
61036         , p_event_class_code        => 'PAYMENTS'
61037         , p_side                    => 'NA'
61038         );
61039 
61040   END IF;
61041 
61042    --
61043    --
61044    END IF;
61045    --
61046    -- Bug 4922099
61047    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61048           (NVL(l_enc_upg_option, 'N') = 'O')
61049         ) AND
61050         (l_bflow_method_code = 'PRIOR_ENTRY')
61051       )
61052    THEN
61053       IF
61054       --
61055       1 = 2
61056       --
61057       THEN
61058       xla_accounting_err_pkg.build_message
61059                                     (p_appli_s_name            => 'XLA'
61060                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61061                                     ,p_token_1                 => 'LINE_NUMBER'
61062                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61063                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61064                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61065                                                                              l_component_type
61066                                                                             ,l_component_code
61067                                                                             ,l_component_type_code
61068                                                                             ,l_component_appl_id
61069                                                                             ,l_amb_context_code
61070                                                                             ,l_entity_code
61071                                                                             ,l_event_class_code
61072                                                                            )
61073                                     ,p_token_3                 => 'OWNER'
61074                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61075                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61076                                                                           ,p_lookup_code    => l_component_type_code
61077                                                                          )
61078                                     ,p_token_4                 => 'PRODUCT_NAME'
61079                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61080                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61081                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61082                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61083                                     ,p_ae_header_id            =>  NULL
61084                                        );
61085 
61086         IF (C_LEVEL_ERROR>= g_log_level) THEN
61087                  trace
61088                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61089                       ,p_level    => C_LEVEL_ERROR
61090                       ,p_module   => l_log_module);
61091         END IF;
61092       END IF;
61093    END IF;
61094    --
61095    --
61096    ------------------------------------------------------------------------------------------------
61097    -- 4219869 Business Flow
61098    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61099    -- Prior Entry.  Currently, the following code is always generated.
61100    ------------------------------------------------------------------------------------------------
61101    XLA_AE_LINES_PKG.ValidateCurrentLine;
61102 
61103    ------------------------------------------------------------------------------------
61104    -- 4219869 Business Flow
61108 
61105    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61106    ------------------------------------------------------------------------------------
61107    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61109    ----------------------------------------------------------------------------------
61110    -- 4219869 Business Flow
61111    -- Update journal entry status -- Need to generate this within IF <condition>
61112    ----------------------------------------------------------------------------------
61113    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61114          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61115          ,p_balance_type_code => l_balance_type_code
61116          );
61117 
61118    -------------------------------------------------------------------------------------------
61119    -- 4262811 - Generate the Accrual Reversal lines
61120    -------------------------------------------------------------------------------------------
61121    BEGIN
61122       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61123                               (g_array_event(p_event_id).array_value_num('header_index'));
61124       IF l_acc_rev_flag IS NULL THEN
61125          l_acc_rev_flag := 'N';
61126       END IF;
61127    EXCEPTION
61128       WHEN OTHERS THEN
61129          l_acc_rev_flag := 'N';
61130    END;
61131    --
61132    IF (l_acc_rev_flag = 'Y') THEN
61133 
61134        -- 4645092  ------------------------------------------------------------------------------
61135        -- To allow MPA report to determine if it should generate report process
61136        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61137        ------------------------------------------------------------------------------------------
61138 
61139        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61140        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61141    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61142    -- call ADRs
61143    -- Bug 4922099
61144    --
61145    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61146         (NVL(l_actual_upg_option, 'N') = 'O') OR
61147         (NVL(l_enc_upg_option, 'N') = 'O')
61148       )
61149    THEN
61150    NULL;
61151    --
61152    --
61153    
61154   l_ccid := AcctDerRule_31(
61155            p_application_id           => p_application_id
61156          , p_ae_header_id             => l_ae_header_id 
61157 , p_source_15 => p_source_15
61158 , p_source_15_meaning => p_source_15_meaning
61159 , p_source_24 => p_source_24
61160 , p_source_25 => p_source_25
61161 , p_source_25_meaning => p_source_25_meaning
61162 , p_source_26 => p_source_26
61163 , p_source_27 => p_source_27
61164 , p_source_30 => p_source_30
61165          , x_transaction_coa_id       => l_adr_transaction_coa_id
61166          , x_accounting_coa_id        => l_adr_accounting_coa_id
61167          , x_value_type_code          => l_adr_value_type_code
61168          , p_side                     => 'NA'
61169    );
61170 
61171    xla_ae_lines_pkg.set_ccid(
61172     p_code_combination_id          => l_ccid
61173   , p_value_type_code              => l_adr_value_type_code
61174   , p_transaction_coa_id           => l_adr_transaction_coa_id
61175   , p_accounting_coa_id            => l_adr_accounting_coa_id
61176   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
61177   , p_adr_type_code                => 'S'
61178   , p_component_type               => l_component_type
61179   , p_component_code               => l_component_code
61180   , p_component_type_code          => l_component_type_code
61181   , p_component_appl_id            => l_component_appl_id
61182   , p_amb_context_code             => l_amb_context_code
61183   , p_side                         => 'NA'
61184   );
61185 
61186 
61187    l_segment := AcctDerRule_11(
61188            p_application_id           => p_application_id
61189          , p_ae_header_id             => l_ae_header_id 
61190 , p_source_15 => p_source_15
61191 , p_source_15_meaning => p_source_15_meaning
61192 , p_source_24 => p_source_24
61193 , p_source_25 => p_source_25
61194 , p_source_25_meaning => p_source_25_meaning
61195 , p_source_26 => p_source_26
61196 , p_source_27 => p_source_27
61197          , x_transaction_coa_id       => l_adr_transaction_coa_id
61198          , x_accounting_coa_id        => l_adr_accounting_coa_id
61199          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61200          , x_flex_value_set_id        => l_adr_flex_value_set_id
61201          , x_value_type_code          => l_adr_value_type_code
61202          , x_value_combination_id     => l_adr_value_combination_id
61203          , x_value_segment_code       => l_adr_value_segment_code
61204          , p_side                     => 'NA'
61205          , p_override_seg_flag        => 'Y'
61206    );
61207 
61208    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61209 
61210       xla_ae_lines_pkg.set_segment(
61211           p_to_segment_code         => 'GL_ACCOUNT'
61212         , p_segment_value           => l_segment
61213         , p_from_segment_code       => l_adr_value_segment_code
61214         , p_from_combination_id     => l_adr_value_combination_id
61215         , p_value_type_code         => l_adr_value_type_code
61216         , p_transaction_coa_id      => l_adr_transaction_coa_id
61217         , p_accounting_coa_id       => l_adr_accounting_coa_id
61221         , p_adr_type_code           => 'S'
61218         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61219         , p_flex_value_set_id       => l_adr_flex_value_set_id
61220         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61222         , p_component_type          => l_component_type
61223         , p_component_code          => l_component_code
61224         , p_component_type_code     => l_component_type_code
61225         , p_component_appl_id       => l_component_appl_id
61226         , p_amb_context_code        => l_amb_context_code
61227         , p_entity_code             => 'AP_PAYMENTS'
61228         , p_event_class_code        => 'PAYMENTS'
61229         , p_side                    => 'NA'
61230         );
61231 
61232   END IF;
61233 
61234    l_segment := AcctDerRule_22(
61235            p_application_id           => p_application_id
61236          , p_ae_header_id             => l_ae_header_id 
61237 , p_source_15 => p_source_15
61238 , p_source_15_meaning => p_source_15_meaning
61239 , p_source_30 => p_source_30
61240          , x_transaction_coa_id       => l_adr_transaction_coa_id
61241          , x_accounting_coa_id        => l_adr_accounting_coa_id
61242          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61243          , x_flex_value_set_id        => l_adr_flex_value_set_id
61244          , x_value_type_code          => l_adr_value_type_code
61245          , x_value_combination_id     => l_adr_value_combination_id
61246          , x_value_segment_code       => l_adr_value_segment_code
61247          , p_side                     => 'NA'
61248          , p_override_seg_flag        => 'Y'
61249    );
61250 
61251    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61252 
61253       xla_ae_lines_pkg.set_segment(
61254           p_to_segment_code         => 'GL_BALANCING'
61255         , p_segment_value           => l_segment
61256         , p_from_segment_code       => l_adr_value_segment_code
61257         , p_from_combination_id     => l_adr_value_combination_id
61258         , p_value_type_code         => l_adr_value_type_code
61259         , p_transaction_coa_id      => l_adr_transaction_coa_id
61260         , p_accounting_coa_id       => l_adr_accounting_coa_id
61261         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61262         , p_flex_value_set_id       => l_adr_flex_value_set_id
61263         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61264         , p_adr_type_code           => 'S'
61265         , p_component_type          => l_component_type
61266         , p_component_code          => l_component_code
61267         , p_component_type_code     => l_component_type_code
61268         , p_component_appl_id       => l_component_appl_id
61269         , p_amb_context_code        => l_amb_context_code
61270         , p_entity_code             => 'AP_PAYMENTS'
61271         , p_event_class_code        => 'PAYMENTS'
61272         , p_side                    => 'NA'
61273         );
61274 
61275   END IF;
61276 
61277    --
61278    --
61279    END IF;
61280 
61281        --
61282        -- Update the line information that should be overwritten
61283        --
61284        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61285                                          p_header_num   => 1);
61286        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61287 
61288        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61289 
61290        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61291           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61292        END IF;
61293 
61294       --
61295       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61296       --
61297       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61298           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61299       ELSE
61300           ---------------------------------------------------------------------------------------------------
61301           -- 4262811a Switch Sign
61302           ---------------------------------------------------------------------------------------------------
61303           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61304           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61305                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61306           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61307                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61308           -- 5132302
61309           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61310                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61311 
61312       END IF;
61313 
61314       -- 4955764
61315       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61316       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61317 
61318 
61319       XLA_AE_LINES_PKG.ValidateCurrentLine;
61320       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61321 
61322       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61326    END IF;
61323                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61324                ,p_balance_type_code => l_balance_type_code);
61325 
61327 
61328    -----------------------------------------------------------------------------------------
61329    -- 4262811 Multiperiod Accounting
61330    -----------------------------------------------------------------------------------------
61331      -- No MPA option is assigned.
61332 
61333 
61334 END IF;
61335 END IF;
61336 --
61337 
61338 --
61339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61340    trace
61341       (p_msg      => 'END of AcctLineType_118'
61342       ,p_level    => C_LEVEL_PROCEDURE
61343       ,p_module   => l_log_module);
61344 END IF;
61345 --
61346 EXCEPTION
61347   WHEN xla_exceptions_pkg.application_exception THEN
61348       RAISE;
61349   WHEN OTHERS THEN
61350        xla_exceptions_pkg.raise_message
61351            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_118');
61352 END AcctLineType_118;
61353 --
61354 
61355 ---------------------------------------
61356 --
61357 -- PRIVATE FUNCTION
61358 --         AcctLineType_119
61359 --
61360 ---------------------------------------
61361 PROCEDURE AcctLineType_119 (
61362   p_application_id        IN NUMBER
61363  ,p_event_id              IN NUMBER
61364  ,p_calculate_acctd_flag  IN VARCHAR2
61365  ,p_calculate_g_l_flag    IN VARCHAR2
61366  ,p_actual_flag           IN OUT VARCHAR2
61367  ,p_balance_type_code     OUT VARCHAR2
61368  ,p_gain_or_loss_ref      OUT VARCHAR2
61369  
61370 --Payment Currency Code
61371  , p_source_13            IN VARCHAR2
61372 --Automatic Offsets Value
61373  , p_source_15            IN VARCHAR2
61374  , p_source_15_meaning    IN VARCHAR2
61375 --Bank Future Dated Payment Account
61376  , p_source_24            IN NUMBER
61377 --Future Dated Payment Account Source Option
61378  , p_source_25            IN VARCHAR2
61379  , p_source_25_meaning    IN VARCHAR2
61380 --Financials Options Future Dated Payment Account
61381  , p_source_26            IN NUMBER
61382 --Supplier Site Future Dated Payment Account
61383  , p_source_27            IN NUMBER
61384 --Invoice Distribution Account
61385  , p_source_30            IN NUMBER
61386 --Accounting Reversal Indicator
61387  , p_source_52            IN VARCHAR2
61388 --Distribution Link Type
61389  , p_source_54            IN VARCHAR2
61390 --Override Accounted Amount Indicator
61391  , p_source_79            IN VARCHAR2
61392  , p_source_79_meaning    IN VARCHAR2
61393 --Third Party Type
61394  , p_source_82            IN VARCHAR2
61395 --Invoice Distribution Tax Line Identifier
61396  , p_source_85            IN NUMBER
61397 --Invoice Distribution Tax Distribution Identifier from Tax
61398  , p_source_86            IN NUMBER
61399 --Invoice Distribution Summary Tax Line Identifier
61400  , p_source_87            IN NUMBER
61401 --Business Flow Accounts Payable Application Identifier
61402  , p_source_90            IN NUMBER
61403 --Business Flow Invoice Distribution Type
61404  , p_source_91            IN VARCHAR2
61405 --Business Flow Invoice Entity Code
61406  , p_source_92            IN VARCHAR2
61407 --Business Flow Invoice Distribution Identifier
61408  , p_source_93            IN NUMBER
61409 --Business Flow Invoice Identifier
61410  , p_source_94            IN NUMBER
61411 --When to Account for Payment Option
61412  , p_source_96            IN VARCHAR2
61413 --Payment Distribution Type
61414  , p_source_97            IN VARCHAR2
61415  , p_source_97_meaning    IN VARCHAR2
61416 --Payment Distribution Amount
61417  , p_source_98            IN NUMBER
61418 --Payment Distribution Identifier
61419  , p_source_103            IN NUMBER
61420 --Payment Supplier Identifier
61421  , p_source_109            IN NUMBER
61422 --Payment Supplier Site Identifier
61423  , p_source_110            IN NUMBER
61424 --Payment Distribution Reversed Identifier
61425  , p_source_111            IN NUMBER
61426 --Payment Identifier
61427  , p_source_112            IN NUMBER
61428 --Payment Maturity Date
61429  , p_source_114            IN DATE
61430 --Payment Distribution (Invoice Rate) Ledger Amount
61431  , p_source_116            IN NUMBER
61432 --Payment Exchange Date
61433  , p_source_117            IN DATE
61434 --Payment Exchange Rate
61435  , p_source_118            IN NUMBER
61436 --Payment Exchange Rate Type
61437  , p_source_119            IN VARCHAR2
61438 --Payment Processing Type
61439  , p_source_123            IN VARCHAR2
61440 --Invoice Distribution Amount of the Payment Distribution
61441  , p_source_124            IN NUMBER
61442 )
61443 IS
61444 
61445 l_component_type              VARCHAR2(80);
61446 l_component_code              VARCHAR2(30);
61447 l_component_type_code         VARCHAR2(1);
61448 l_component_appl_id           INTEGER;
61449 l_amb_context_code            VARCHAR2(30);
61450 l_entity_code                 VARCHAR2(30);
61451 l_event_class_code            VARCHAR2(30);
61452 l_ae_header_id                NUMBER;
61453 l_event_type_code             VARCHAR2(30);
61454 l_line_definition_code        VARCHAR2(30);
61455 l_line_definition_owner_code  VARCHAR2(1);
61456 --
61457 -- adr variables
61458 l_segment                     VARCHAR2(30);
61459 l_ccid                        NUMBER;
61460 l_adr_transaction_coa_id      NUMBER;
61464 l_adr_value_type_code         VARCHAR2(30);
61461 l_adr_accounting_coa_id       NUMBER;
61462 l_adr_flexfield_segment_code  VARCHAR2(30);
61463 l_adr_flex_value_set_id       NUMBER;
61465 l_adr_value_combination_id    NUMBER;
61466 l_adr_value_segment_code      VARCHAR2(30);
61467 
61468 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61469 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61470 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61471 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61472 
61473 -- 4262811 Variables ------------------------------------------------------------------------------------------
61474 l_entered_amt_idx             NUMBER;
61475 l_accted_amt_idx              NUMBER;
61476 l_acc_rev_flag                VARCHAR2(1);
61477 l_accrual_line_num            NUMBER;
61478 l_tmp_amt                     NUMBER;
61479 l_acc_rev_natural_side_code   VARCHAR2(1);
61480 
61481 l_num_entries                 NUMBER;
61482 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61483 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61484 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61485 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61486 l_recog_line_1                NUMBER;
61487 l_recog_line_2                NUMBER;
61488 
61489 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61490 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61491 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61492 
61493 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61494 
61495 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61496 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61497 
61498 ---------------------------------------------------------------------------------------------------------------
61499 
61500 
61501 --
61502 -- bulk performance
61503 --
61504 l_balance_type_code           VARCHAR2(1);
61505 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61506 l_log_module                  VARCHAR2(240);
61507 
61508 --
61509 -- Upgrade strategy
61510 --
61511 l_actual_upg_option           VARCHAR2(1);
61512 l_enc_upg_option           VARCHAR2(1);
61513 
61514 --
61515 BEGIN
61516 --
61517 IF g_log_enabled THEN
61518       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
61519 END IF;
61520 --
61521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61522 
61523       trace
61524          (p_msg      => 'BEGIN of AcctLineType_119'
61525          ,p_level    => C_LEVEL_PROCEDURE
61526          ,p_module   => l_log_module);
61527 
61528 END IF;
61529 --
61530 l_component_type             := 'AMB_JLT';
61531 l_component_code             := 'AP_FUTURE_DATED_PMT_INVXRATE';
61532 l_component_type_code        := 'S';
61533 l_component_appl_id          :=  200;
61534 l_amb_context_code           := 'DEFAULT';
61535 l_entity_code                := 'AP_PAYMENTS';
61536 l_event_class_code           := 'PAYMENTS';
61537 l_event_type_code            := 'PAYMENTS_ALL';
61538 l_line_definition_owner_code := 'S';
61539 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
61540 --
61541 l_balance_type_code          := 'A';
61542 l_segment                     := NULL;
61543 l_ccid                        := NULL;
61544 l_adr_transaction_coa_id      := NULL;
61545 l_adr_accounting_coa_id       := NULL;
61546 l_adr_flexfield_segment_code  := NULL;
61547 l_adr_flex_value_set_id       := NULL;
61548 l_adr_value_type_code         := NULL;
61549 l_adr_value_combination_id    := NULL;
61550 l_adr_value_segment_code      := NULL;
61551 
61552 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61553 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
61554 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61555 l_budgetary_control_flag     := 'N';
61556 
61557 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61558 l_bflow_applied_to_amt       := NULL; -- 5132302
61559 l_entered_amt_idx            := NULL;          -- 4262811
61560 l_accted_amt_idx             := NULL;          -- 4262811
61561 l_acc_rev_flag               := NULL;          -- 4262811
61562 l_accrual_line_num           := NULL;          -- 4262811
61563 l_tmp_amt                    := NULL;          -- 4262811
61564 --
61565  
61566 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61567     l_balance_type_code <> 'B' THEN
61568 IF NVL(p_source_96,'
61569 ') =  'ALWAYS_CLEAR' AND 
61570 NVL(p_source_97,'
61571 ') =  'CASH' AND 
61572 p_source_114 IS NOT NULL AND 
61573 NVL(p_source_123,'
61574 ') <>  'PAYMENTCARD'
61575  THEN 
61576 
61577    --
61578    XLA_AE_LINES_PKG.SetNewLine;
61579 
61580    p_balance_type_code          := l_balance_type_code;
61581    -- set the flag so later we will know whether the gain loss line needs to be created
61582    
61583    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61584      p_actual_flag :='A';
61585    END IF;
61586 
61587    --
61588    -- bulk performance
61589    --
61590    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61594    --
61591                                       p_header_num   => 0); -- 4262811
61592    --
61593    -- set accounting line options
61595    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61596            p_natural_side_code          => 'C'
61597          , p_gain_or_loss_flag          => 'N'
61598          , p_gl_transfer_mode_code      => 'S'
61599          , p_acct_entry_type_code       => 'A'
61600          , p_switch_side_flag           => 'Y'
61601          , p_merge_duplicate_code       => 'A'
61602          );
61603    --
61604    l_acc_rev_natural_side_code := 'D';  -- 4262811
61605    -- 
61606    --
61607    -- set accounting line type info
61608    --
61609    xla_ae_lines_pkg.SetAcctLineType
61610       (p_component_type             => l_component_type
61611       ,p_event_type_code            => l_event_type_code
61612       ,p_line_definition_owner_code => l_line_definition_owner_code
61613       ,p_line_definition_code       => l_line_definition_code
61614       ,p_accounting_line_code       => l_component_code
61615       ,p_accounting_line_type_code  => l_component_type_code
61616       ,p_accounting_line_appl_id    => l_component_appl_id
61617       ,p_amb_context_code           => l_amb_context_code
61618       ,p_entity_code                => l_entity_code
61619       ,p_event_class_code           => l_event_class_code);
61620    --
61621    -- set accounting class
61622    --
61623    xla_ae_lines_pkg.SetAcctClass(
61624            p_accounting_class_code  => 'FUTURE_DATED_PMT'
61625          , p_ae_header_id           => l_ae_header_id
61626          );
61627 
61628    --
61629    -- set rounding class
61630    --
61631    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61632                       'FUTURE_DATED_PMT';
61633 
61634    --
61635    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61636    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61637    --
61638    -- bulk performance
61639    --
61640    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61641 
61642    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61643       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61644 
61645    -- 4955764
61646    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61647       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61648 
61649    -- 4458381 Public Sector Enh
61650    
61651    --
61652    -- set accounting attributes for the line type
61653    --
61654    l_entered_amt_idx := 10;
61655    l_accted_amt_idx  := 15;
61656    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61657    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61658    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
61659    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61660    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
61661    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61662    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
61663    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61664    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
61665    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61666    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
61667    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61668    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
61669    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61670    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
61671    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61672    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
61673    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61674    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
61675    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61676    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
61677    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61678    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
61679    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61680    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
61681    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61682    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
61683    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61684    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
61685    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61686    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
61687    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61688    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
61689    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61690    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
61691    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61692    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
61693    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61694    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
61695    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61699    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61696    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
61697    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61698    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
61700    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
61701    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61702    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
61703    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61704    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
61705 
61706    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61707    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61708 
61709    ---------------------------------------------------------------------------------------------------------------
61710    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61711    ---------------------------------------------------------------------------------------------------------------
61712    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61713 
61714    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61715    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61716 
61717    IF xla_accounting_cache_pkg.GetValueChar
61718          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61719          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61720    AND l_bflow_method_code = 'PRIOR_ENTRY'
61721 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61722    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61723          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61724        )
61725    THEN
61726          xla_ae_lines_pkg.BflowUpgEntry
61727            (p_business_method_code    => l_bflow_method_code
61728            ,p_business_class_code     => l_bflow_class_code
61729            ,p_balance_type            => l_balance_type_code);
61730    ELSE
61731       NULL;
61732 -- No business flow processing for business flow method of NONE.
61733    END IF;
61734 
61735    --
61736    -- call analytical criteria
61737    --
61738    
61739 
61740 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
61741 xla_ae_lines_pkg.SetAnalyticalCriteria(
61742    p_analytical_criterion_name    => 'Check Id'
61743  , p_analytical_criterion_owner   => 'S'
61744  , p_analytical_criterion_code    => 'CHECK_ID'
61745  , p_amb_context_code             => 'DEFAULT'
61746  , p_balancing_flag               => 'N'
61747  
61748  , p_analytical_detail_char_1    =>  NULL
61749  , p_analytical_detail_num_1     =>  p_source_112
61750  , p_analytical_detail_date_1    =>  NULL
61751 
61752  , p_ae_header_id                 => l_ae_header_id
61753 )
61754 ;
61755 --
61756 
61757    --
61758    -- call description
61759    --
61760    -- No description or it is inherited.
61761    --
61762    -- call ADRs
61763    -- Bug 4922099
61764    --
61765    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61766         (NVL(l_actual_upg_option, 'N') = 'O') OR
61767         (NVL(l_enc_upg_option, 'N') = 'O')
61768       )
61769    THEN
61770    NULL;
61771    --
61772    --
61773    
61774   l_ccid := AcctDerRule_31(
61775            p_application_id           => p_application_id
61776          , p_ae_header_id             => l_ae_header_id 
61777 , p_source_15 => p_source_15
61778 , p_source_15_meaning => p_source_15_meaning
61779 , p_source_24 => p_source_24
61780 , p_source_25 => p_source_25
61781 , p_source_25_meaning => p_source_25_meaning
61782 , p_source_26 => p_source_26
61783 , p_source_27 => p_source_27
61784 , p_source_30 => p_source_30
61785          , x_transaction_coa_id       => l_adr_transaction_coa_id
61786          , x_accounting_coa_id        => l_adr_accounting_coa_id
61787          , x_value_type_code          => l_adr_value_type_code
61788          , p_side                     => 'NA'
61789    );
61790 
61791    xla_ae_lines_pkg.set_ccid(
61792     p_code_combination_id          => l_ccid
61793   , p_value_type_code              => l_adr_value_type_code
61794   , p_transaction_coa_id           => l_adr_transaction_coa_id
61795   , p_accounting_coa_id            => l_adr_accounting_coa_id
61796   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
61797   , p_adr_type_code                => 'S'
61798   , p_component_type               => l_component_type
61799   , p_component_code               => l_component_code
61800   , p_component_type_code          => l_component_type_code
61801   , p_component_appl_id            => l_component_appl_id
61802   , p_amb_context_code             => l_amb_context_code
61803   , p_side                         => 'NA'
61804   );
61805 
61806 
61807    l_segment := AcctDerRule_11(
61808            p_application_id           => p_application_id
61809          , p_ae_header_id             => l_ae_header_id 
61810 , p_source_15 => p_source_15
61811 , p_source_15_meaning => p_source_15_meaning
61812 , p_source_24 => p_source_24
61813 , p_source_25 => p_source_25
61814 , p_source_25_meaning => p_source_25_meaning
61818          , x_accounting_coa_id        => l_adr_accounting_coa_id
61815 , p_source_26 => p_source_26
61816 , p_source_27 => p_source_27
61817          , x_transaction_coa_id       => l_adr_transaction_coa_id
61819          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61820          , x_flex_value_set_id        => l_adr_flex_value_set_id
61821          , x_value_type_code          => l_adr_value_type_code
61822          , x_value_combination_id     => l_adr_value_combination_id
61823          , x_value_segment_code       => l_adr_value_segment_code
61824          , p_side                     => 'NA'
61825          , p_override_seg_flag        => 'Y'
61826    );
61827 
61828    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61829 
61830       xla_ae_lines_pkg.set_segment(
61831           p_to_segment_code         => 'GL_ACCOUNT'
61832         , p_segment_value           => l_segment
61833         , p_from_segment_code       => l_adr_value_segment_code
61834         , p_from_combination_id     => l_adr_value_combination_id
61835         , p_value_type_code         => l_adr_value_type_code
61836         , p_transaction_coa_id      => l_adr_transaction_coa_id
61837         , p_accounting_coa_id       => l_adr_accounting_coa_id
61838         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61839         , p_flex_value_set_id       => l_adr_flex_value_set_id
61840         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61841         , p_adr_type_code           => 'S'
61842         , p_component_type          => l_component_type
61843         , p_component_code          => l_component_code
61844         , p_component_type_code     => l_component_type_code
61845         , p_component_appl_id       => l_component_appl_id
61846         , p_amb_context_code        => l_amb_context_code
61847         , p_entity_code             => 'AP_PAYMENTS'
61848         , p_event_class_code        => 'PAYMENTS'
61849         , p_side                    => 'NA'
61850         );
61851 
61852   END IF;
61853 
61854    l_segment := AcctDerRule_22(
61855            p_application_id           => p_application_id
61856          , p_ae_header_id             => l_ae_header_id 
61857 , p_source_15 => p_source_15
61858 , p_source_15_meaning => p_source_15_meaning
61859 , p_source_30 => p_source_30
61860          , x_transaction_coa_id       => l_adr_transaction_coa_id
61861          , x_accounting_coa_id        => l_adr_accounting_coa_id
61862          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61863          , x_flex_value_set_id        => l_adr_flex_value_set_id
61864          , x_value_type_code          => l_adr_value_type_code
61865          , x_value_combination_id     => l_adr_value_combination_id
61866          , x_value_segment_code       => l_adr_value_segment_code
61867          , p_side                     => 'NA'
61868          , p_override_seg_flag        => 'Y'
61869    );
61870 
61871    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61872 
61873       xla_ae_lines_pkg.set_segment(
61874           p_to_segment_code         => 'GL_BALANCING'
61875         , p_segment_value           => l_segment
61876         , p_from_segment_code       => l_adr_value_segment_code
61877         , p_from_combination_id     => l_adr_value_combination_id
61878         , p_value_type_code         => l_adr_value_type_code
61879         , p_transaction_coa_id      => l_adr_transaction_coa_id
61880         , p_accounting_coa_id       => l_adr_accounting_coa_id
61881         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61882         , p_flex_value_set_id       => l_adr_flex_value_set_id
61883         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61884         , p_adr_type_code           => 'S'
61885         , p_component_type          => l_component_type
61886         , p_component_code          => l_component_code
61887         , p_component_type_code     => l_component_type_code
61888         , p_component_appl_id       => l_component_appl_id
61889         , p_amb_context_code        => l_amb_context_code
61890         , p_entity_code             => 'AP_PAYMENTS'
61891         , p_event_class_code        => 'PAYMENTS'
61892         , p_side                    => 'NA'
61893         );
61894 
61895   END IF;
61896 
61897    --
61898    --
61899    END IF;
61900    --
61901    -- Bug 4922099
61902    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61903           (NVL(l_enc_upg_option, 'N') = 'O')
61904         ) AND
61905         (l_bflow_method_code = 'PRIOR_ENTRY')
61906       )
61907    THEN
61908       IF
61909       --
61910       1 = 2
61911       --
61912       THEN
61913       xla_accounting_err_pkg.build_message
61914                                     (p_appli_s_name            => 'XLA'
61915                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61916                                     ,p_token_1                 => 'LINE_NUMBER'
61917                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61918                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61919                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61920                                                                              l_component_type
61921                                                                             ,l_component_code
61922                                                                             ,l_component_type_code
61923                                                                             ,l_component_appl_id
61927                                                                            )
61924                                                                             ,l_amb_context_code
61925                                                                             ,l_entity_code
61926                                                                             ,l_event_class_code
61928                                     ,p_token_3                 => 'OWNER'
61929                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61930                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61931                                                                           ,p_lookup_code    => l_component_type_code
61932                                                                          )
61933                                     ,p_token_4                 => 'PRODUCT_NAME'
61934                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61935                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61936                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61937                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61938                                     ,p_ae_header_id            =>  NULL
61939                                        );
61940 
61941         IF (C_LEVEL_ERROR>= g_log_level) THEN
61942                  trace
61943                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61944                       ,p_level    => C_LEVEL_ERROR
61945                       ,p_module   => l_log_module);
61946         END IF;
61947       END IF;
61948    END IF;
61949    --
61950    --
61951    ------------------------------------------------------------------------------------------------
61952    -- 4219869 Business Flow
61953    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61954    -- Prior Entry.  Currently, the following code is always generated.
61955    ------------------------------------------------------------------------------------------------
61956    XLA_AE_LINES_PKG.ValidateCurrentLine;
61957 
61958    ------------------------------------------------------------------------------------
61959    -- 4219869 Business Flow
61960    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61961    ------------------------------------------------------------------------------------
61962    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61963 
61964    ----------------------------------------------------------------------------------
61965    -- 4219869 Business Flow
61966    -- Update journal entry status -- Need to generate this within IF <condition>
61967    ----------------------------------------------------------------------------------
61968    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61969          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61970          ,p_balance_type_code => l_balance_type_code
61971          );
61972 
61973    -------------------------------------------------------------------------------------------
61974    -- 4262811 - Generate the Accrual Reversal lines
61975    -------------------------------------------------------------------------------------------
61976    BEGIN
61977       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61978                               (g_array_event(p_event_id).array_value_num('header_index'));
61979       IF l_acc_rev_flag IS NULL THEN
61980          l_acc_rev_flag := 'N';
61981       END IF;
61982    EXCEPTION
61983       WHEN OTHERS THEN
61984          l_acc_rev_flag := 'N';
61985    END;
61986    --
61987    IF (l_acc_rev_flag = 'Y') THEN
61988 
61989        -- 4645092  ------------------------------------------------------------------------------
61990        -- To allow MPA report to determine if it should generate report process
61991        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61992        ------------------------------------------------------------------------------------------
61993 
61994        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61995        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61996    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61997    -- call ADRs
61998    -- Bug 4922099
61999    --
62000    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62001         (NVL(l_actual_upg_option, 'N') = 'O') OR
62002         (NVL(l_enc_upg_option, 'N') = 'O')
62003       )
62004    THEN
62005    NULL;
62006    --
62007    --
62008    
62009   l_ccid := AcctDerRule_31(
62010            p_application_id           => p_application_id
62011          , p_ae_header_id             => l_ae_header_id 
62012 , p_source_15 => p_source_15
62013 , p_source_15_meaning => p_source_15_meaning
62014 , p_source_24 => p_source_24
62015 , p_source_25 => p_source_25
62016 , p_source_25_meaning => p_source_25_meaning
62017 , p_source_26 => p_source_26
62018 , p_source_27 => p_source_27
62019 , p_source_30 => p_source_30
62020          , x_transaction_coa_id       => l_adr_transaction_coa_id
62021          , x_accounting_coa_id        => l_adr_accounting_coa_id
62022          , x_value_type_code          => l_adr_value_type_code
62023          , p_side                     => 'NA'
62024    );
62025 
62029   , p_transaction_coa_id           => l_adr_transaction_coa_id
62026    xla_ae_lines_pkg.set_ccid(
62027     p_code_combination_id          => l_ccid
62028   , p_value_type_code              => l_adr_value_type_code
62030   , p_accounting_coa_id            => l_adr_accounting_coa_id
62031   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
62032   , p_adr_type_code                => 'S'
62033   , p_component_type               => l_component_type
62034   , p_component_code               => l_component_code
62035   , p_component_type_code          => l_component_type_code
62036   , p_component_appl_id            => l_component_appl_id
62037   , p_amb_context_code             => l_amb_context_code
62038   , p_side                         => 'NA'
62039   );
62040 
62041 
62042    l_segment := AcctDerRule_11(
62043            p_application_id           => p_application_id
62044          , p_ae_header_id             => l_ae_header_id 
62045 , p_source_15 => p_source_15
62046 , p_source_15_meaning => p_source_15_meaning
62047 , p_source_24 => p_source_24
62048 , p_source_25 => p_source_25
62049 , p_source_25_meaning => p_source_25_meaning
62050 , p_source_26 => p_source_26
62051 , p_source_27 => p_source_27
62052          , x_transaction_coa_id       => l_adr_transaction_coa_id
62053          , x_accounting_coa_id        => l_adr_accounting_coa_id
62054          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62055          , x_flex_value_set_id        => l_adr_flex_value_set_id
62056          , x_value_type_code          => l_adr_value_type_code
62057          , x_value_combination_id     => l_adr_value_combination_id
62058          , x_value_segment_code       => l_adr_value_segment_code
62059          , p_side                     => 'NA'
62060          , p_override_seg_flag        => 'Y'
62061    );
62062 
62063    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62064 
62065       xla_ae_lines_pkg.set_segment(
62066           p_to_segment_code         => 'GL_ACCOUNT'
62067         , p_segment_value           => l_segment
62068         , p_from_segment_code       => l_adr_value_segment_code
62069         , p_from_combination_id     => l_adr_value_combination_id
62070         , p_value_type_code         => l_adr_value_type_code
62071         , p_transaction_coa_id      => l_adr_transaction_coa_id
62072         , p_accounting_coa_id       => l_adr_accounting_coa_id
62073         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62074         , p_flex_value_set_id       => l_adr_flex_value_set_id
62075         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
62076         , p_adr_type_code           => 'S'
62077         , p_component_type          => l_component_type
62078         , p_component_code          => l_component_code
62079         , p_component_type_code     => l_component_type_code
62080         , p_component_appl_id       => l_component_appl_id
62081         , p_amb_context_code        => l_amb_context_code
62082         , p_entity_code             => 'AP_PAYMENTS'
62083         , p_event_class_code        => 'PAYMENTS'
62084         , p_side                    => 'NA'
62085         );
62086 
62087   END IF;
62088 
62089    l_segment := AcctDerRule_22(
62090            p_application_id           => p_application_id
62091          , p_ae_header_id             => l_ae_header_id 
62092 , p_source_15 => p_source_15
62093 , p_source_15_meaning => p_source_15_meaning
62094 , p_source_30 => p_source_30
62095          , x_transaction_coa_id       => l_adr_transaction_coa_id
62096          , x_accounting_coa_id        => l_adr_accounting_coa_id
62097          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
62098          , x_flex_value_set_id        => l_adr_flex_value_set_id
62099          , x_value_type_code          => l_adr_value_type_code
62100          , x_value_combination_id     => l_adr_value_combination_id
62101          , x_value_segment_code       => l_adr_value_segment_code
62102          , p_side                     => 'NA'
62103          , p_override_seg_flag        => 'Y'
62104    );
62105 
62106    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
62107 
62108       xla_ae_lines_pkg.set_segment(
62109           p_to_segment_code         => 'GL_BALANCING'
62110         , p_segment_value           => l_segment
62111         , p_from_segment_code       => l_adr_value_segment_code
62112         , p_from_combination_id     => l_adr_value_combination_id
62113         , p_value_type_code         => l_adr_value_type_code
62114         , p_transaction_coa_id      => l_adr_transaction_coa_id
62115         , p_accounting_coa_id       => l_adr_accounting_coa_id
62116         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
62117         , p_flex_value_set_id       => l_adr_flex_value_set_id
62118         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
62119         , p_adr_type_code           => 'S'
62120         , p_component_type          => l_component_type
62121         , p_component_code          => l_component_code
62122         , p_component_type_code     => l_component_type_code
62123         , p_component_appl_id       => l_component_appl_id
62124         , p_amb_context_code        => l_amb_context_code
62125         , p_entity_code             => 'AP_PAYMENTS'
62126         , p_event_class_code        => 'PAYMENTS'
62127         , p_side                    => 'NA'
62128         );
62129 
62130   END IF;
62131 
62132    --
62133    --
62134    END IF;
62135 
62136        --
62137        -- Update the line information that should be overwritten
62138        --
62142 
62139        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62140                                          p_header_num   => 1);
62141        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62143        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62144 
62145        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62146           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62147        END IF;
62148 
62149       --
62150       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62151       --
62152       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62153           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62154       ELSE
62155           ---------------------------------------------------------------------------------------------------
62156           -- 4262811a Switch Sign
62157           ---------------------------------------------------------------------------------------------------
62158           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62159           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62160                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62161           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62162                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62163           -- 5132302
62164           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62165                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62166 
62167       END IF;
62168 
62169       -- 4955764
62170       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62171       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62172 
62173 
62174       XLA_AE_LINES_PKG.ValidateCurrentLine;
62175       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62176 
62177       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62178                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62179                ,p_balance_type_code => l_balance_type_code);
62180 
62181    END IF;
62182 
62183    -----------------------------------------------------------------------------------------
62184    -- 4262811 Multiperiod Accounting
62185    -----------------------------------------------------------------------------------------
62186      -- No MPA option is assigned.
62187 
62188 
62189 END IF;
62190 END IF;
62191 --
62192 
62193 --
62194 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62195    trace
62196       (p_msg      => 'END of AcctLineType_119'
62197       ,p_level    => C_LEVEL_PROCEDURE
62198       ,p_module   => l_log_module);
62199 END IF;
62200 --
62201 EXCEPTION
62202   WHEN xla_exceptions_pkg.application_exception THEN
62203       RAISE;
62204   WHEN OTHERS THEN
62205        xla_exceptions_pkg.raise_message
62206            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_119');
62207 END AcctLineType_119;
62208 --
62209 
62210 ---------------------------------------
62211 --
62212 -- PRIVATE FUNCTION
62213 --         AcctLineType_120
62214 --
62215 ---------------------------------------
62216 PROCEDURE AcctLineType_120 (
62217   p_application_id        IN NUMBER
62218  ,p_event_id              IN NUMBER
62219  ,p_calculate_acctd_flag  IN VARCHAR2
62220  ,p_calculate_g_l_flag    IN VARCHAR2
62221  ,p_actual_flag           IN OUT VARCHAR2
62222  ,p_balance_type_code     OUT VARCHAR2
62223  ,p_gain_or_loss_ref      OUT VARCHAR2
62224  
62225 --Payment Currency Code
62226  , p_source_13            IN VARCHAR2
62227 --Accounting Reversal Indicator
62228  , p_source_52            IN VARCHAR2
62229 --Distribution Link Type
62230  , p_source_54            IN VARCHAR2
62231 --Override Accounted Amount Indicator
62232  , p_source_79            IN VARCHAR2
62233  , p_source_79_meaning    IN VARCHAR2
62234 --Third Party Type
62235  , p_source_82            IN VARCHAR2
62236 --Business Flow Accounts Payable Application Identifier
62237  , p_source_90            IN NUMBER
62238 --When to Account for Payment Option
62239  , p_source_96            IN VARCHAR2
62240 --Payment Distribution Type
62241  , p_source_97            IN VARCHAR2
62242  , p_source_97_meaning    IN VARCHAR2
62243 --Payment Distribution Amount
62244  , p_source_98            IN NUMBER
62245 --Business Flow Payment Distribution Type
62246  , p_source_99            IN VARCHAR2
62247 --Business Flow Payment Entity Code
62248  , p_source_100            IN VARCHAR2
62249 --Business Flow Payment Distribution Identifier
62250  , p_source_101            IN NUMBER
62251 --Business Flow Payment Identifier
62252  , p_source_102            IN NUMBER
62253 --Payment Distribution Identifier
62254  , p_source_103            IN NUMBER
62255 --Payment Distribution Reversed Identifier
62256  , p_source_111            IN NUMBER
62257 --Payment Maturity Date
62261 )
62258  , p_source_114            IN DATE
62259 --Payment Distribution (Payment Rate) Ledger Amount
62260  , p_source_115            IN NUMBER
62262 IS
62263 
62264 l_component_type              VARCHAR2(80);
62265 l_component_code              VARCHAR2(30);
62266 l_component_type_code         VARCHAR2(1);
62267 l_component_appl_id           INTEGER;
62268 l_amb_context_code            VARCHAR2(30);
62269 l_entity_code                 VARCHAR2(30);
62270 l_event_class_code            VARCHAR2(30);
62271 l_ae_header_id                NUMBER;
62272 l_event_type_code             VARCHAR2(30);
62273 l_line_definition_code        VARCHAR2(30);
62274 l_line_definition_owner_code  VARCHAR2(1);
62275 --
62276 -- adr variables
62277 l_segment                     VARCHAR2(30);
62278 l_ccid                        NUMBER;
62279 l_adr_transaction_coa_id      NUMBER;
62280 l_adr_accounting_coa_id       NUMBER;
62281 l_adr_flexfield_segment_code  VARCHAR2(30);
62282 l_adr_flex_value_set_id       NUMBER;
62283 l_adr_value_type_code         VARCHAR2(30);
62284 l_adr_value_combination_id    NUMBER;
62285 l_adr_value_segment_code      VARCHAR2(30);
62286 
62287 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62288 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62289 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62290 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62291 
62292 -- 4262811 Variables ------------------------------------------------------------------------------------------
62293 l_entered_amt_idx             NUMBER;
62294 l_accted_amt_idx              NUMBER;
62295 l_acc_rev_flag                VARCHAR2(1);
62296 l_accrual_line_num            NUMBER;
62297 l_tmp_amt                     NUMBER;
62298 l_acc_rev_natural_side_code   VARCHAR2(1);
62299 
62300 l_num_entries                 NUMBER;
62301 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62302 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62303 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62304 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62305 l_recog_line_1                NUMBER;
62306 l_recog_line_2                NUMBER;
62307 
62308 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62309 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62310 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62311 
62312 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62313 
62314 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62315 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62316 
62317 ---------------------------------------------------------------------------------------------------------------
62318 
62319 
62320 --
62321 -- bulk performance
62322 --
62323 l_balance_type_code           VARCHAR2(1);
62324 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62325 l_log_module                  VARCHAR2(240);
62326 
62327 --
62328 -- Upgrade strategy
62329 --
62330 l_actual_upg_option           VARCHAR2(1);
62331 l_enc_upg_option           VARCHAR2(1);
62332 
62333 --
62334 BEGIN
62335 --
62336 IF g_log_enabled THEN
62337       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
62338 END IF;
62339 --
62340 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62341 
62342       trace
62343          (p_msg      => 'BEGIN of AcctLineType_120'
62344          ,p_level    => C_LEVEL_PROCEDURE
62345          ,p_module   => l_log_module);
62346 
62347 END IF;
62348 --
62349 l_component_type             := 'AMB_JLT';
62350 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
62351 l_component_type_code        := 'S';
62352 l_component_appl_id          :=  200;
62353 l_amb_context_code           := 'DEFAULT';
62354 l_entity_code                := 'AP_PAYMENTS';
62355 l_event_class_code           := 'FUTURE DATED PAYMENTS';
62356 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
62357 l_line_definition_owner_code := 'S';
62358 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
62359 --
62360 l_balance_type_code          := 'A';
62361 l_segment                     := NULL;
62362 l_ccid                        := NULL;
62363 l_adr_transaction_coa_id      := NULL;
62364 l_adr_accounting_coa_id       := NULL;
62365 l_adr_flexfield_segment_code  := NULL;
62366 l_adr_flex_value_set_id       := NULL;
62367 l_adr_value_type_code         := NULL;
62368 l_adr_value_combination_id    := NULL;
62369 l_adr_value_segment_code      := NULL;
62370 
62371 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
62372 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
62373 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62374 l_budgetary_control_flag     := 'N';
62375 
62376 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62377 l_bflow_applied_to_amt       := NULL; -- 5132302
62378 l_entered_amt_idx            := NULL;          -- 4262811
62379 l_accted_amt_idx             := NULL;          -- 4262811
62380 l_acc_rev_flag               := NULL;          -- 4262811
62381 l_accrual_line_num           := NULL;          -- 4262811
62382 l_tmp_amt                    := NULL;          -- 4262811
62386     l_balance_type_code <> 'B' THEN
62383 --
62384  
62385 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62387 IF NVL(p_source_96,'
62388 ') <>  'CLEAR_CLEAR' AND 
62389 p_source_114 IS NOT NULL AND 
62390 (NVL(p_source_97,'
62391 ') =  'CASH' OR 
62392 NVL(p_source_97,'
62393 ') =  'ROUNDING')
62394  THEN 
62395 
62396    --
62397    XLA_AE_LINES_PKG.SetNewLine;
62398 
62399    p_balance_type_code          := l_balance_type_code;
62400    -- set the flag so later we will know whether the gain loss line needs to be created
62401    
62402    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62403      p_actual_flag :='A';
62404    END IF;
62405 
62406    --
62407    -- bulk performance
62408    --
62409    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62410                                       p_header_num   => 0); -- 4262811
62411    --
62412    -- set accounting line options
62413    --
62414    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62415            p_natural_side_code          => 'D'
62416          , p_gain_or_loss_flag          => 'N'
62417          , p_gl_transfer_mode_code      => 'S'
62418          , p_acct_entry_type_code       => 'A'
62419          , p_switch_side_flag           => 'Y'
62420          , p_merge_duplicate_code       => 'A'
62421          );
62422    --
62423    l_acc_rev_natural_side_code := 'C';  -- 4262811
62424    -- 
62425    --
62426    -- set accounting line type info
62427    --
62428    xla_ae_lines_pkg.SetAcctLineType
62429       (p_component_type             => l_component_type
62430       ,p_event_type_code            => l_event_type_code
62431       ,p_line_definition_owner_code => l_line_definition_owner_code
62432       ,p_line_definition_code       => l_line_definition_code
62433       ,p_accounting_line_code       => l_component_code
62434       ,p_accounting_line_type_code  => l_component_type_code
62435       ,p_accounting_line_appl_id    => l_component_appl_id
62436       ,p_amb_context_code           => l_amb_context_code
62437       ,p_entity_code                => l_entity_code
62438       ,p_event_class_code           => l_event_class_code);
62439    --
62440    -- set accounting class
62441    --
62442    xla_ae_lines_pkg.SetAcctClass(
62443            p_accounting_class_code  => 'FUTURE_DATED_PMT'
62444          , p_ae_header_id           => l_ae_header_id
62445          );
62446 
62447    --
62448    -- set rounding class
62449    --
62450    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62451                       'FUTURE_DATED_PMT';
62452 
62453    --
62454    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62455    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62456    --
62457    -- bulk performance
62458    --
62459    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62460 
62461    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62462       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62463 
62464    -- 4955764
62465    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62466       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62467 
62468    -- 4458381 Public Sector Enh
62469    
62470    --
62471    -- set accounting attributes for the line type
62472    --
62473    l_entered_amt_idx := 9;
62474    l_accted_amt_idx  := 11;
62475    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62476    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62477    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
62478    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
62479    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
62480    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62481    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
62482    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
62483    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
62484    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
62485    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
62486    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62487    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
62488    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
62489    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
62490    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
62491    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
62492    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
62493    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
62494    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
62495    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
62496    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
62497    l_rec_acct_attrs.array_num_value(11)  := p_source_115;
62498    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
62499    l_rec_acct_attrs.array_char_value(12)  := p_source_79;
62500    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
62504    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
62501    l_rec_acct_attrs.array_char_value(13)  := p_source_82;
62502    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
62503    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_111);
62505    l_rec_acct_attrs.array_char_value(15)  := p_source_54;
62506 
62507    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62508    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62509 
62510    ---------------------------------------------------------------------------------------------------------------
62511    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62512    ---------------------------------------------------------------------------------------------------------------
62513    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62514 
62515    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62516    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62517 
62518    IF xla_accounting_cache_pkg.GetValueChar
62519          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62520          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62521    AND l_bflow_method_code = 'PRIOR_ENTRY'
62522 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62523    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62524          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62525        )
62526    THEN
62527          xla_ae_lines_pkg.BflowUpgEntry
62528            (p_business_method_code    => l_bflow_method_code
62529            ,p_business_class_code     => l_bflow_class_code
62530            ,p_balance_type            => l_balance_type_code);
62531    ELSE
62532       NULL;
62533 XLA_AE_LINES_PKG.business_flow_validation(
62534                                 p_business_method_code     => l_bflow_method_code
62535                                ,p_business_class_code      => l_bflow_class_code
62536                                ,p_inherit_description_flag => l_inherit_desc_flag);
62537    END IF;
62538 
62539    --
62540    -- call analytical criteria
62541    --
62542    -- Inherited Analytical Criteria for business flow method of Prior Entry.
62543    --
62544    -- call description
62545    --
62546    -- No description or it is inherited.
62547    --
62548    -- call ADRs
62549    -- Bug 4922099
62550    --
62551    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62552         (NVL(l_actual_upg_option, 'N') = 'O') OR
62553         (NVL(l_enc_upg_option, 'N') = 'O')
62554       )
62555    THEN
62556    NULL;
62557    --
62558    --
62559    
62560    --
62561    --
62562    END IF;
62563    --
62564    -- Bug 4922099
62565    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62566           (NVL(l_enc_upg_option, 'N') = 'O')
62567         ) AND
62568         (l_bflow_method_code = 'PRIOR_ENTRY')
62569       )
62570    THEN
62571       IF
62572       --
62573       1 = 1
62574       --
62575       THEN
62576       xla_accounting_err_pkg.build_message
62577                                     (p_appli_s_name            => 'XLA'
62578                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62579                                     ,p_token_1                 => 'LINE_NUMBER'
62580                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62581                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62582                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62583                                                                              l_component_type
62584                                                                             ,l_component_code
62585                                                                             ,l_component_type_code
62586                                                                             ,l_component_appl_id
62587                                                                             ,l_amb_context_code
62588                                                                             ,l_entity_code
62589                                                                             ,l_event_class_code
62590                                                                            )
62591                                     ,p_token_3                 => 'OWNER'
62592                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62593                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62594                                                                           ,p_lookup_code    => l_component_type_code
62595                                                                          )
62596                                     ,p_token_4                 => 'PRODUCT_NAME'
62597                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62598                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62599                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62600                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62604         IF (C_LEVEL_ERROR>= g_log_level) THEN
62601                                     ,p_ae_header_id            =>  NULL
62602                                        );
62603 
62605                  trace
62606                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62607                       ,p_level    => C_LEVEL_ERROR
62608                       ,p_module   => l_log_module);
62609         END IF;
62610       END IF;
62611    END IF;
62612    --
62613    --
62614    ------------------------------------------------------------------------------------------------
62615    -- 4219869 Business Flow
62616    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62617    -- Prior Entry.  Currently, the following code is always generated.
62618    ------------------------------------------------------------------------------------------------
62619    -- No ValidateCurrentLine for business flow method of Prior Entry
62620 
62621    ------------------------------------------------------------------------------------
62622    -- 4219869 Business Flow
62623    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62624    ------------------------------------------------------------------------------------
62625    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62626 
62627    ----------------------------------------------------------------------------------
62628    -- 4219869 Business Flow
62629    -- Update journal entry status -- Need to generate this within IF <condition>
62630    ----------------------------------------------------------------------------------
62631    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62632          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62633          ,p_balance_type_code => l_balance_type_code
62634          );
62635 
62636    -------------------------------------------------------------------------------------------
62637    -- 4262811 - Generate the Accrual Reversal lines
62638    -------------------------------------------------------------------------------------------
62639    BEGIN
62640       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62641                               (g_array_event(p_event_id).array_value_num('header_index'));
62642       IF l_acc_rev_flag IS NULL THEN
62643          l_acc_rev_flag := 'N';
62644       END IF;
62645    EXCEPTION
62646       WHEN OTHERS THEN
62647          l_acc_rev_flag := 'N';
62648    END;
62649    --
62650    IF (l_acc_rev_flag = 'Y') THEN
62651 
62652        -- 4645092  ------------------------------------------------------------------------------
62653        -- To allow MPA report to determine if it should generate report process
62654        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62655        ------------------------------------------------------------------------------------------
62656 
62657        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62658        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62659    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62660    -- call ADRs
62661    -- Bug 4922099
62662    --
62663    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62664         (NVL(l_actual_upg_option, 'N') = 'O') OR
62665         (NVL(l_enc_upg_option, 'N') = 'O')
62666       )
62667    THEN
62668    NULL;
62669    --
62670    --
62671    
62672    --
62673    --
62674    END IF;
62675 
62676        --
62677        -- Update the line information that should be overwritten
62678        --
62679        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62680                                          p_header_num   => 1);
62681        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62682 
62683        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62684 
62685        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62686           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62687        END IF;
62688 
62689       --
62690       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62691       --
62692       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62693           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62694       ELSE
62695           ---------------------------------------------------------------------------------------------------
62696           -- 4262811a Switch Sign
62697           ---------------------------------------------------------------------------------------------------
62698           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62699           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62700                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62701           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62702                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62703           -- 5132302
62704           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62708 
62705                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62706 
62707       END IF;
62709       -- 4955764
62710       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62711       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62712 
62713 
62714       XLA_AE_LINES_PKG.ValidateCurrentLine;
62715       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62716 
62717       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62718                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62719                ,p_balance_type_code => l_balance_type_code);
62720 
62721    END IF;
62722 
62723    -----------------------------------------------------------------------------------------
62724    -- 4262811 Multiperiod Accounting
62725    -----------------------------------------------------------------------------------------
62726      -- No MPA option is assigned.
62727 
62728 
62729 END IF;
62730 END IF;
62731 --
62732 
62733 --
62734 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62735    trace
62736       (p_msg      => 'END of AcctLineType_120'
62737       ,p_level    => C_LEVEL_PROCEDURE
62738       ,p_module   => l_log_module);
62739 END IF;
62740 --
62741 EXCEPTION
62742   WHEN xla_exceptions_pkg.application_exception THEN
62743       RAISE;
62744   WHEN OTHERS THEN
62745        xla_exceptions_pkg.raise_message
62746            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_120');
62747 END AcctLineType_120;
62748 --
62749 
62750 ---------------------------------------
62751 --
62752 -- PRIVATE FUNCTION
62753 --         AcctLineType_121
62754 --
62755 ---------------------------------------
62756 PROCEDURE AcctLineType_121 (
62757   p_application_id        IN NUMBER
62758  ,p_event_id              IN NUMBER
62759  ,p_calculate_acctd_flag  IN VARCHAR2
62760  ,p_calculate_g_l_flag    IN VARCHAR2
62761  ,p_actual_flag           IN OUT VARCHAR2
62762  ,p_balance_type_code     OUT VARCHAR2
62763  ,p_gain_or_loss_ref      OUT VARCHAR2
62764  
62765 --Payment Currency Code
62766  , p_source_13            IN VARCHAR2
62767 --Automatic Offsets Value
62768  , p_source_15            IN VARCHAR2
62769  , p_source_15_meaning    IN VARCHAR2
62770 --Invoice Distribution Account
62771  , p_source_30            IN NUMBER
62772 --Payables Options Rounding Account
62773  , p_source_48            IN NUMBER
62774 --Accounting Reversal Indicator
62775  , p_source_52            IN VARCHAR2
62776 --Distribution Link Type
62777  , p_source_54            IN VARCHAR2
62778 --Override Accounted Amount Indicator
62779  , p_source_79            IN VARCHAR2
62780  , p_source_79_meaning    IN VARCHAR2
62781 --Third Party Type
62782  , p_source_82            IN VARCHAR2
62783 --Business Flow Accounts Payable Application Identifier
62784  , p_source_90            IN NUMBER
62785 --When to Account for Payment Option
62786  , p_source_96            IN VARCHAR2
62787 --Payment Distribution Type
62788  , p_source_97            IN VARCHAR2
62789  , p_source_97_meaning    IN VARCHAR2
62790 --Payment Distribution Amount
62791  , p_source_98            IN NUMBER
62792 --Business Flow Payment Distribution Type
62793  , p_source_99            IN VARCHAR2
62794 --Business Flow Payment Entity Code
62795  , p_source_100            IN VARCHAR2
62796 --Business Flow Payment Distribution Identifier
62797  , p_source_101            IN NUMBER
62798 --Business Flow Payment Identifier
62799  , p_source_102            IN NUMBER
62800 --Payment Distribution Identifier
62801  , p_source_103            IN NUMBER
62802 --Payment Supplier Identifier
62803  , p_source_109            IN NUMBER
62804 --Payment Supplier Site Identifier
62805  , p_source_110            IN NUMBER
62806 --Payment Distribution Reversed Identifier
62807  , p_source_111            IN NUMBER
62808 --Payment Identifier
62809  , p_source_112            IN NUMBER
62810 --Payment Distribution (Payment Rate) Ledger Amount
62811  , p_source_115            IN NUMBER
62812 --Payment Exchange Date
62813  , p_source_117            IN DATE
62814 --Payment Exchange Rate
62815  , p_source_118            IN NUMBER
62816 --Payment Exchange Rate Type
62817  , p_source_119            IN VARCHAR2
62818 )
62819 IS
62820 
62821 l_component_type              VARCHAR2(80);
62822 l_component_code              VARCHAR2(30);
62823 l_component_type_code         VARCHAR2(1);
62824 l_component_appl_id           INTEGER;
62825 l_amb_context_code            VARCHAR2(30);
62826 l_entity_code                 VARCHAR2(30);
62827 l_event_class_code            VARCHAR2(30);
62828 l_ae_header_id                NUMBER;
62829 l_event_type_code             VARCHAR2(30);
62830 l_line_definition_code        VARCHAR2(30);
62831 l_line_definition_owner_code  VARCHAR2(1);
62832 --
62833 -- adr variables
62834 l_segment                     VARCHAR2(30);
62835 l_ccid                        NUMBER;
62836 l_adr_transaction_coa_id      NUMBER;
62837 l_adr_accounting_coa_id       NUMBER;
62838 l_adr_flexfield_segment_code  VARCHAR2(30);
62839 l_adr_flex_value_set_id       NUMBER;
62840 l_adr_value_type_code         VARCHAR2(30);
62841 l_adr_value_combination_id    NUMBER;
62842 l_adr_value_segment_code      VARCHAR2(30);
62843 
62844 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62848 
62845 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62846 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62847 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62849 -- 4262811 Variables ------------------------------------------------------------------------------------------
62850 l_entered_amt_idx             NUMBER;
62851 l_accted_amt_idx              NUMBER;
62852 l_acc_rev_flag                VARCHAR2(1);
62853 l_accrual_line_num            NUMBER;
62854 l_tmp_amt                     NUMBER;
62855 l_acc_rev_natural_side_code   VARCHAR2(1);
62856 
62857 l_num_entries                 NUMBER;
62858 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62859 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62860 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62861 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62862 l_recog_line_1                NUMBER;
62863 l_recog_line_2                NUMBER;
62864 
62865 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62866 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62867 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62868 
62869 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62870 
62871 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62872 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62873 
62874 ---------------------------------------------------------------------------------------------------------------
62875 
62876 
62877 --
62878 -- bulk performance
62879 --
62880 l_balance_type_code           VARCHAR2(1);
62881 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62882 l_log_module                  VARCHAR2(240);
62883 
62884 --
62885 -- Upgrade strategy
62886 --
62887 l_actual_upg_option           VARCHAR2(1);
62888 l_enc_upg_option           VARCHAR2(1);
62889 
62890 --
62891 BEGIN
62892 --
62893 IF g_log_enabled THEN
62894       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
62895 END IF;
62896 --
62897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62898 
62899       trace
62900          (p_msg      => 'BEGIN of AcctLineType_121'
62901          ,p_level    => C_LEVEL_PROCEDURE
62902          ,p_module   => l_log_module);
62903 
62904 END IF;
62905 --
62906 l_component_type             := 'AMB_JLT';
62907 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
62908 l_component_type_code        := 'S';
62909 l_component_appl_id          :=  200;
62910 l_amb_context_code           := 'DEFAULT';
62911 l_entity_code                := 'AP_PAYMENTS';
62912 l_event_class_code           := 'FUTURE DATED PAYMENTS';
62913 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
62914 l_line_definition_owner_code := 'S';
62915 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
62916 --
62917 l_balance_type_code          := 'A';
62918 l_segment                     := NULL;
62919 l_ccid                        := NULL;
62920 l_adr_transaction_coa_id      := NULL;
62921 l_adr_accounting_coa_id       := NULL;
62922 l_adr_flexfield_segment_code  := NULL;
62923 l_adr_flex_value_set_id       := NULL;
62924 l_adr_value_type_code         := NULL;
62925 l_adr_value_combination_id    := NULL;
62926 l_adr_value_segment_code      := NULL;
62927 
62928 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62929 l_bflow_class_code           := '';    -- 4219869 Business Flow
62930 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62931 l_budgetary_control_flag     := 'N';
62932 
62933 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62934 l_bflow_applied_to_amt       := NULL; -- 5132302
62935 l_entered_amt_idx            := NULL;          -- 4262811
62936 l_accted_amt_idx             := NULL;          -- 4262811
62937 l_acc_rev_flag               := NULL;          -- 4262811
62938 l_accrual_line_num           := NULL;          -- 4262811
62939 l_tmp_amt                    := NULL;          -- 4262811
62940 --
62941  
62942 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62943     l_balance_type_code <> 'B' THEN
62944 IF NVL(p_source_96,'
62945 ') <>  'CLEAR_CLEAR' AND 
62946 NVL(p_source_97,'
62947 ') =  'FUTURE PAYMENT ROUNDING'
62948  THEN 
62949 
62950    --
62951    XLA_AE_LINES_PKG.SetNewLine;
62952 
62953    p_balance_type_code          := l_balance_type_code;
62954    -- set the flag so later we will know whether the gain loss line needs to be created
62955    
62956    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62957      p_actual_flag :='A';
62958    END IF;
62959 
62960    --
62961    -- bulk performance
62962    --
62963    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62964                                       p_header_num   => 0); -- 4262811
62965    --
62966    -- set accounting line options
62967    --
62968    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62969            p_natural_side_code          => 'D'
62970          , p_gain_or_loss_flag          => 'N'
62971          , p_gl_transfer_mode_code      => 'S'
62975          );
62972          , p_acct_entry_type_code       => 'A'
62973          , p_switch_side_flag           => 'Y'
62974          , p_merge_duplicate_code       => 'A'
62976    --
62977    l_acc_rev_natural_side_code := 'C';  -- 4262811
62978    -- 
62979    --
62980    -- set accounting line type info
62981    --
62982    xla_ae_lines_pkg.SetAcctLineType
62983       (p_component_type             => l_component_type
62984       ,p_event_type_code            => l_event_type_code
62985       ,p_line_definition_owner_code => l_line_definition_owner_code
62986       ,p_line_definition_code       => l_line_definition_code
62987       ,p_accounting_line_code       => l_component_code
62988       ,p_accounting_line_type_code  => l_component_type_code
62989       ,p_accounting_line_appl_id    => l_component_appl_id
62990       ,p_amb_context_code           => l_amb_context_code
62991       ,p_entity_code                => l_entity_code
62992       ,p_event_class_code           => l_event_class_code);
62993    --
62994    -- set accounting class
62995    --
62996    xla_ae_lines_pkg.SetAcctClass(
62997            p_accounting_class_code  => 'ROUNDING'
62998          , p_ae_header_id           => l_ae_header_id
62999          );
63000 
63001    --
63002    -- set rounding class
63003    --
63004    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63005                       'ROUNDING';
63006 
63007    --
63008    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63009    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63010    --
63011    -- bulk performance
63012    --
63013    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63014 
63015    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63016       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63017 
63018    -- 4955764
63019    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63020       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63021 
63022    -- 4458381 Public Sector Enh
63023    
63024    --
63025    -- set accounting attributes for the line type
63026    --
63027    l_entered_amt_idx := 9;
63028    l_accted_amt_idx  := 14;
63029    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
63030    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63031    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
63032    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
63033    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
63034    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63035    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
63036    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
63037    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
63038    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
63039    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
63040    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63041    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
63042    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
63043    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
63044    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
63045    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
63046    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
63047    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
63048    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
63049    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
63050    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
63051    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
63052    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
63053    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
63054    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
63055    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
63056    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
63057    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
63058    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
63059    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
63060    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
63061    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
63062    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
63063    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
63064    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
63065    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
63066    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
63067    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
63068    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
63069    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
63070 
63071    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63072    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63073 
63077    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63074    ---------------------------------------------------------------------------------------------------------------
63075    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63076    ---------------------------------------------------------------------------------------------------------------
63078 
63079    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63080    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63081 
63082    IF xla_accounting_cache_pkg.GetValueChar
63083          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63084          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63085    AND l_bflow_method_code = 'PRIOR_ENTRY'
63086 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63087    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63088          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63089        )
63090    THEN
63091          xla_ae_lines_pkg.BflowUpgEntry
63092            (p_business_method_code    => l_bflow_method_code
63093            ,p_business_class_code     => l_bflow_class_code
63094            ,p_balance_type            => l_balance_type_code);
63095    ELSE
63096       NULL;
63097 -- No business flow processing for business flow method of NONE.
63098    END IF;
63099 
63100    --
63101    -- call analytical criteria
63102    --
63103    
63104 
63105 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
63106 xla_ae_lines_pkg.SetAnalyticalCriteria(
63107    p_analytical_criterion_name    => 'Check Id'
63108  , p_analytical_criterion_owner   => 'S'
63109  , p_analytical_criterion_code    => 'CHECK_ID'
63110  , p_amb_context_code             => 'DEFAULT'
63111  , p_balancing_flag               => 'N'
63112  
63113  , p_analytical_detail_char_1    =>  NULL
63114  , p_analytical_detail_num_1     =>  p_source_112
63115  , p_analytical_detail_date_1    =>  NULL
63116 
63117  , p_ae_header_id                 => l_ae_header_id
63118 )
63119 ;
63120 --
63121 
63122    --
63123    -- call description
63124    --
63125    -- No description or it is inherited.
63126    --
63127    -- call ADRs
63128    -- Bug 4922099
63129    --
63130    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63131         (NVL(l_actual_upg_option, 'N') = 'O') OR
63132         (NVL(l_enc_upg_option, 'N') = 'O')
63133       )
63134    THEN
63135    NULL;
63136    --
63137    --
63138    
63139   l_ccid := AcctDerRule_40(
63140            p_application_id           => p_application_id
63141          , p_ae_header_id             => l_ae_header_id 
63142 , p_source_15 => p_source_15
63143 , p_source_15_meaning => p_source_15_meaning
63144 , p_source_30 => p_source_30
63145 , p_source_48 => p_source_48
63146          , x_transaction_coa_id       => l_adr_transaction_coa_id
63147          , x_accounting_coa_id        => l_adr_accounting_coa_id
63148          , x_value_type_code          => l_adr_value_type_code
63149          , p_side                     => 'NA'
63150    );
63151 
63152    xla_ae_lines_pkg.set_ccid(
63153     p_code_combination_id          => l_ccid
63154   , p_value_type_code              => l_adr_value_type_code
63155   , p_transaction_coa_id           => l_adr_transaction_coa_id
63156   , p_accounting_coa_id            => l_adr_accounting_coa_id
63157   , p_adr_code                     => 'AP_ROUNDING'
63158   , p_adr_type_code                => 'S'
63159   , p_component_type               => l_component_type
63160   , p_component_code               => l_component_code
63161   , p_component_type_code          => l_component_type_code
63162   , p_component_appl_id            => l_component_appl_id
63163   , p_amb_context_code             => l_amb_context_code
63164   , p_side                         => 'NA'
63165   );
63166 
63167 
63168    --
63169    --
63170    END IF;
63171    --
63172    -- Bug 4922099
63173    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63174           (NVL(l_enc_upg_option, 'N') = 'O')
63175         ) AND
63176         (l_bflow_method_code = 'PRIOR_ENTRY')
63177       )
63178    THEN
63179       IF
63180       --
63181       1 = 2
63182       --
63183       THEN
63184       xla_accounting_err_pkg.build_message
63185                                     (p_appli_s_name            => 'XLA'
63186                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63187                                     ,p_token_1                 => 'LINE_NUMBER'
63188                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63189                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63190                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63191                                                                              l_component_type
63192                                                                             ,l_component_code
63193                                                                             ,l_component_type_code
63194                                                                             ,l_component_appl_id
63195                                                                             ,l_amb_context_code
63199                                     ,p_token_3                 => 'OWNER'
63196                                                                             ,l_entity_code
63197                                                                             ,l_event_class_code
63198                                                                            )
63200                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63201                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63202                                                                           ,p_lookup_code    => l_component_type_code
63203                                                                          )
63204                                     ,p_token_4                 => 'PRODUCT_NAME'
63205                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63206                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63207                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63208                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63209                                     ,p_ae_header_id            =>  NULL
63210                                        );
63211 
63212         IF (C_LEVEL_ERROR>= g_log_level) THEN
63213                  trace
63214                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63215                       ,p_level    => C_LEVEL_ERROR
63216                       ,p_module   => l_log_module);
63217         END IF;
63218       END IF;
63219    END IF;
63220    --
63221    --
63222    ------------------------------------------------------------------------------------------------
63223    -- 4219869 Business Flow
63224    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63225    -- Prior Entry.  Currently, the following code is always generated.
63226    ------------------------------------------------------------------------------------------------
63227    XLA_AE_LINES_PKG.ValidateCurrentLine;
63228 
63229    ------------------------------------------------------------------------------------
63230    -- 4219869 Business Flow
63231    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63232    ------------------------------------------------------------------------------------
63233    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63234 
63235    ----------------------------------------------------------------------------------
63236    -- 4219869 Business Flow
63237    -- Update journal entry status -- Need to generate this within IF <condition>
63238    ----------------------------------------------------------------------------------
63239    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63240          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63241          ,p_balance_type_code => l_balance_type_code
63242          );
63243 
63244    -------------------------------------------------------------------------------------------
63245    -- 4262811 - Generate the Accrual Reversal lines
63246    -------------------------------------------------------------------------------------------
63247    BEGIN
63248       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63249                               (g_array_event(p_event_id).array_value_num('header_index'));
63250       IF l_acc_rev_flag IS NULL THEN
63251          l_acc_rev_flag := 'N';
63252       END IF;
63253    EXCEPTION
63254       WHEN OTHERS THEN
63255          l_acc_rev_flag := 'N';
63256    END;
63257    --
63258    IF (l_acc_rev_flag = 'Y') THEN
63259 
63260        -- 4645092  ------------------------------------------------------------------------------
63261        -- To allow MPA report to determine if it should generate report process
63262        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63263        ------------------------------------------------------------------------------------------
63264 
63265        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63266        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63267    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63268    -- call ADRs
63269    -- Bug 4922099
63270    --
63271    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63272         (NVL(l_actual_upg_option, 'N') = 'O') OR
63273         (NVL(l_enc_upg_option, 'N') = 'O')
63274       )
63275    THEN
63276    NULL;
63277    --
63278    --
63279    
63280   l_ccid := AcctDerRule_40(
63281            p_application_id           => p_application_id
63282          , p_ae_header_id             => l_ae_header_id 
63283 , p_source_15 => p_source_15
63284 , p_source_15_meaning => p_source_15_meaning
63285 , p_source_30 => p_source_30
63286 , p_source_48 => p_source_48
63287          , x_transaction_coa_id       => l_adr_transaction_coa_id
63288          , x_accounting_coa_id        => l_adr_accounting_coa_id
63289          , x_value_type_code          => l_adr_value_type_code
63290          , p_side                     => 'NA'
63291    );
63292 
63293    xla_ae_lines_pkg.set_ccid(
63294     p_code_combination_id          => l_ccid
63295   , p_value_type_code              => l_adr_value_type_code
63296   , p_transaction_coa_id           => l_adr_transaction_coa_id
63297   , p_accounting_coa_id            => l_adr_accounting_coa_id
63298   , p_adr_code                     => 'AP_ROUNDING'
63302   , p_component_type_code          => l_component_type_code
63299   , p_adr_type_code                => 'S'
63300   , p_component_type               => l_component_type
63301   , p_component_code               => l_component_code
63303   , p_component_appl_id            => l_component_appl_id
63304   , p_amb_context_code             => l_amb_context_code
63305   , p_side                         => 'NA'
63306   );
63307 
63308 
63309    --
63310    --
63311    END IF;
63312 
63313        --
63314        -- Update the line information that should be overwritten
63315        --
63316        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63317                                          p_header_num   => 1);
63318        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63319 
63320        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63321 
63322        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63323           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63324        END IF;
63325 
63326       --
63327       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63328       --
63329       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63330           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63331       ELSE
63332           ---------------------------------------------------------------------------------------------------
63333           -- 4262811a Switch Sign
63334           ---------------------------------------------------------------------------------------------------
63335           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63336           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63337                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63338           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63339                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63340           -- 5132302
63341           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63342                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63343 
63344       END IF;
63345 
63346       -- 4955764
63347       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63348       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63349 
63350 
63351       XLA_AE_LINES_PKG.ValidateCurrentLine;
63352       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63353 
63354       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63355                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63356                ,p_balance_type_code => l_balance_type_code);
63357 
63358    END IF;
63359 
63360    -----------------------------------------------------------------------------------------
63361    -- 4262811 Multiperiod Accounting
63362    -----------------------------------------------------------------------------------------
63363      -- No MPA option is assigned.
63364 
63365 
63366 END IF;
63367 END IF;
63368 --
63369 
63370 --
63371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63372    trace
63373       (p_msg      => 'END of AcctLineType_121'
63374       ,p_level    => C_LEVEL_PROCEDURE
63375       ,p_module   => l_log_module);
63376 END IF;
63377 --
63378 EXCEPTION
63379   WHEN xla_exceptions_pkg.application_exception THEN
63380       RAISE;
63381   WHEN OTHERS THEN
63382        xla_exceptions_pkg.raise_message
63383            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_121');
63384 END AcctLineType_121;
63385 --
63386 
63387 ---------------------------------------
63388 --
63389 -- PRIVATE FUNCTION
63390 --         AcctLineType_122
63391 --
63392 ---------------------------------------
63393 PROCEDURE AcctLineType_122 (
63394   p_application_id        IN NUMBER
63395  ,p_event_id              IN NUMBER
63396  ,p_calculate_acctd_flag  IN VARCHAR2
63397  ,p_calculate_g_l_flag    IN VARCHAR2
63398  ,p_actual_flag           IN OUT VARCHAR2
63399  ,p_balance_type_code     OUT VARCHAR2
63400  ,p_gain_or_loss_ref      OUT VARCHAR2
63401  
63402 --Payment Currency Code
63403  , p_source_13            IN VARCHAR2
63404 --Automatic Offsets Value
63405  , p_source_15            IN VARCHAR2
63406  , p_source_15_meaning    IN VARCHAR2
63407 --Invoice Distribution Account
63408  , p_source_30            IN NUMBER
63409 --Internal Realized Gain Account
63410  , p_source_36            IN NUMBER
63411 --Bank Gain Account
63412  , p_source_37            IN NUMBER
63413 --Accounting Reversal Indicator
63414  , p_source_52            IN VARCHAR2
63415 --Distribution Link Type
63416  , p_source_54            IN VARCHAR2
63417 --Override Accounted Amount Indicator
63418  , p_source_79            IN VARCHAR2
63419  , p_source_79_meaning    IN VARCHAR2
63420 --Third Party Type
63421  , p_source_82            IN VARCHAR2
63422 --Invoice Distribution Tax Line Identifier
63426 --Business Flow Accounts Payable Application Identifier
63423  , p_source_85            IN NUMBER
63424 --Invoice Distribution Summary Tax Line Identifier
63425  , p_source_87            IN NUMBER
63427  , p_source_90            IN NUMBER
63428 --When to Account for Payment Option
63429  , p_source_96            IN VARCHAR2
63430 --Payment Distribution Type
63431  , p_source_97            IN VARCHAR2
63432  , p_source_97_meaning    IN VARCHAR2
63433 --Payment Distribution Amount
63434  , p_source_98            IN NUMBER
63435 --Business Flow Payment Distribution Type
63436  , p_source_99            IN VARCHAR2
63437 --Business Flow Payment Entity Code
63438  , p_source_100            IN VARCHAR2
63439 --Business Flow Payment Distribution Identifier
63440  , p_source_101            IN NUMBER
63441 --Business Flow Payment Identifier
63442  , p_source_102            IN NUMBER
63443 --Payment Distribution Identifier
63444  , p_source_103            IN NUMBER
63445 --Cleared Exchange Date
63446  , p_source_105            IN DATE
63447 --Cleared Exchange Rate
63448  , p_source_106            IN NUMBER
63449 --Cleared Exchange Rate Type
63450  , p_source_107            IN VARCHAR2
63451 --Payment Supplier Identifier
63452  , p_source_109            IN NUMBER
63453 --Payment Supplier Site Identifier
63454  , p_source_110            IN NUMBER
63455 --Payment Distribution Reversed Identifier
63456  , p_source_111            IN NUMBER
63457 --Payment Identifier
63458  , p_source_112            IN NUMBER
63459 --Gain or Loss Indicator between Invoice and Clearing
63460  , p_source_148            IN VARCHAR2
63461 --Invoice/Clearing Ledger Amount Difference
63462  , p_source_149            IN NUMBER
63463 )
63464 IS
63465 
63466 l_component_type              VARCHAR2(80);
63467 l_component_code              VARCHAR2(30);
63468 l_component_type_code         VARCHAR2(1);
63469 l_component_appl_id           INTEGER;
63470 l_amb_context_code            VARCHAR2(30);
63471 l_entity_code                 VARCHAR2(30);
63472 l_event_class_code            VARCHAR2(30);
63473 l_ae_header_id                NUMBER;
63474 l_event_type_code             VARCHAR2(30);
63475 l_line_definition_code        VARCHAR2(30);
63476 l_line_definition_owner_code  VARCHAR2(1);
63477 --
63478 -- adr variables
63479 l_segment                     VARCHAR2(30);
63480 l_ccid                        NUMBER;
63481 l_adr_transaction_coa_id      NUMBER;
63482 l_adr_accounting_coa_id       NUMBER;
63483 l_adr_flexfield_segment_code  VARCHAR2(30);
63484 l_adr_flex_value_set_id       NUMBER;
63485 l_adr_value_type_code         VARCHAR2(30);
63486 l_adr_value_combination_id    NUMBER;
63487 l_adr_value_segment_code      VARCHAR2(30);
63488 
63489 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63490 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63491 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63492 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63493 
63494 -- 4262811 Variables ------------------------------------------------------------------------------------------
63495 l_entered_amt_idx             NUMBER;
63496 l_accted_amt_idx              NUMBER;
63497 l_acc_rev_flag                VARCHAR2(1);
63498 l_accrual_line_num            NUMBER;
63499 l_tmp_amt                     NUMBER;
63500 l_acc_rev_natural_side_code   VARCHAR2(1);
63501 
63502 l_num_entries                 NUMBER;
63503 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63504 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63505 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63506 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63507 l_recog_line_1                NUMBER;
63508 l_recog_line_2                NUMBER;
63509 
63510 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63511 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63512 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63513 
63514 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63515 
63516 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63517 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63518 
63519 ---------------------------------------------------------------------------------------------------------------
63520 
63521 
63522 --
63523 -- bulk performance
63524 --
63525 l_balance_type_code           VARCHAR2(1);
63526 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63527 l_log_module                  VARCHAR2(240);
63528 
63529 --
63530 -- Upgrade strategy
63531 --
63532 l_actual_upg_option           VARCHAR2(1);
63533 l_enc_upg_option           VARCHAR2(1);
63534 
63535 --
63536 BEGIN
63537 --
63538 IF g_log_enabled THEN
63539       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
63540 END IF;
63541 --
63542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63543 
63544       trace
63545          (p_msg      => 'BEGIN of AcctLineType_122'
63546          ,p_level    => C_LEVEL_PROCEDURE
63547          ,p_module   => l_log_module);
63548 
63549 END IF;
63550 --
63551 l_component_type             := 'AMB_JLT';
63552 l_component_code             := 'AP_GAIN_INV_CLEAR_BY_PMT_CLEAR';
63553 l_component_type_code        := 'S';
63557 l_event_class_code           := 'RECONCILED PAYMENTS';
63554 l_component_appl_id          :=  200;
63555 l_amb_context_code           := 'DEFAULT';
63556 l_entity_code                := 'AP_PAYMENTS';
63558 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
63559 l_line_definition_owner_code := 'S';
63560 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
63561 --
63562 l_balance_type_code          := 'A';
63563 l_segment                     := NULL;
63564 l_ccid                        := NULL;
63565 l_adr_transaction_coa_id      := NULL;
63566 l_adr_accounting_coa_id       := NULL;
63567 l_adr_flexfield_segment_code  := NULL;
63568 l_adr_flex_value_set_id       := NULL;
63569 l_adr_value_type_code         := NULL;
63570 l_adr_value_combination_id    := NULL;
63571 l_adr_value_segment_code      := NULL;
63572 
63573 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63574 l_bflow_class_code           := '';    -- 4219869 Business Flow
63575 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63576 l_budgetary_control_flag     := 'N';
63577 
63578 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63579 l_bflow_applied_to_amt       := NULL; -- 5132302
63580 l_entered_amt_idx            := NULL;          -- 4262811
63581 l_accted_amt_idx             := NULL;          -- 4262811
63582 l_acc_rev_flag               := NULL;          -- 4262811
63583 l_accrual_line_num           := NULL;          -- 4262811
63584 l_tmp_amt                    := NULL;          -- 4262811
63585 --
63586 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
63587             (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
63588                return;
63589   END IF;
63590   
63591 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63592     l_balance_type_code <> 'B' THEN
63593 IF (NVL(p_source_96,'
63594 ') =  'CLEAR_CLEAR' OR 
63595 NVL(p_source_96,'
63596 ') =  'ALWAYS_CLEAR') AND 
63597 NVL(p_source_97,'
63598 ') <>  'EXCHANGE RATE VARIANCE' AND 
63599 NVL(p_source_97,'
63600 ') <>  'BANK CHARGE' AND 
63601 NVL(p_source_97,'
63602 ') <>  'BANK ERROR' AND 
63603 NVL(p_source_97,'
63604 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
63605 NVL(p_source_148,'
63606 ') =  'GAIN' AND 
63607 NVL(p_source_97,'
63608 ') <>  'AWT'
63609  THEN 
63610 
63611    --
63612    XLA_AE_LINES_PKG.SetNewLine;
63613 
63614    p_balance_type_code          := l_balance_type_code;
63615    -- set the flag so later we will know whether the gain loss line needs to be created
63616    
63617    IF(l_balance_type_code = 'A' ) THEN
63618      p_actual_flag :='G';
63619    END IF;
63620 
63621    --
63622    -- bulk performance
63623    --
63624    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63625                                       p_header_num   => 0); -- 4262811
63626    --
63627    -- set accounting line options
63628    --
63629    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63630            p_natural_side_code          => 'C'
63631          , p_gain_or_loss_flag          => 'Y'
63632          , p_gl_transfer_mode_code      => 'S'
63633          , p_acct_entry_type_code       => 'A'
63634          , p_switch_side_flag           => 'Y'
63635          , p_merge_duplicate_code       => 'A'
63636          );
63637    --
63638    l_acc_rev_natural_side_code := 'D';  -- 4262811
63639    -- 
63640    --
63641    -- set accounting line type info
63642    --
63643    xla_ae_lines_pkg.SetAcctLineType
63644       (p_component_type             => l_component_type
63645       ,p_event_type_code            => l_event_type_code
63646       ,p_line_definition_owner_code => l_line_definition_owner_code
63647       ,p_line_definition_code       => l_line_definition_code
63648       ,p_accounting_line_code       => l_component_code
63649       ,p_accounting_line_type_code  => l_component_type_code
63650       ,p_accounting_line_appl_id    => l_component_appl_id
63651       ,p_amb_context_code           => l_amb_context_code
63652       ,p_entity_code                => l_entity_code
63653       ,p_event_class_code           => l_event_class_code);
63654    --
63655    -- set accounting class
63656    --
63657    xla_ae_lines_pkg.SetAcctClass(
63658            p_accounting_class_code  => 'GAIN'
63659          , p_ae_header_id           => l_ae_header_id
63660          );
63661 
63662    --
63663    -- set rounding class
63664    --
63665    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63666                       'GAIN';
63667 
63668    --
63669    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63670    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63671    --
63672    -- bulk performance
63673    --
63674    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63675 
63676    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63677       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63678 
63679    -- 4955764
63683    -- 4458381 Public Sector Enh
63680    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63681       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63682 
63684    
63685    --
63686    -- set accounting attributes for the line type
63687    --
63688    l_entered_amt_idx := 10;
63689    l_accted_amt_idx  := 15;
63690    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
63691    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63692    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
63693    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
63694    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
63695    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
63696    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
63697    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63698    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
63699    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
63700    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
63701    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
63702    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
63703    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63704    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
63705    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
63706    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
63707    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
63708    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
63709    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
63710    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
63711    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
63712    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
63713    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
63714    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
63715    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
63716    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
63717    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
63718    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
63719    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
63720    l_rec_acct_attrs.array_num_value(15)  := p_source_149;
63721    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
63722    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
63723    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
63724    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
63725    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
63726    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
63727    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
63728    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
63729    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
63730    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
63731    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
63732    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
63733    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
63734    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
63735    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
63736    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
63737    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
63738    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
63739 
63740    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63741    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63742 
63743    ---------------------------------------------------------------------------------------------------------------
63744    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63745    ---------------------------------------------------------------------------------------------------------------
63746    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63747 
63748    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63749    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63750 
63751    IF xla_accounting_cache_pkg.GetValueChar
63752          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63753          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63754    AND l_bflow_method_code = 'PRIOR_ENTRY'
63755 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63756    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63757          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63758        )
63759    THEN
63760          xla_ae_lines_pkg.BflowUpgEntry
63761            (p_business_method_code    => l_bflow_method_code
63762            ,p_business_class_code     => l_bflow_class_code
63763            ,p_balance_type            => l_balance_type_code);
63764    ELSE
63765       NULL;
63766 -- No business flow processing for business flow method of NONE.
63767    END IF;
63768 
63769    --
63770    -- call analytical criteria
63771    --
63772    
63773 
63777  , p_analytical_criterion_owner   => 'S'
63774 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
63775 xla_ae_lines_pkg.SetAnalyticalCriteria(
63776    p_analytical_criterion_name    => 'Check Id'
63778  , p_analytical_criterion_code    => 'CHECK_ID'
63779  , p_amb_context_code             => 'DEFAULT'
63780  , p_balancing_flag               => 'N'
63781  
63782  , p_analytical_detail_char_1    =>  NULL
63783  , p_analytical_detail_num_1     =>  p_source_112
63784  , p_analytical_detail_date_1    =>  NULL
63785 
63786  , p_ae_header_id                 => l_ae_header_id
63787 )
63788 ;
63789 --
63790 
63791    --
63792    -- call description
63793    --
63794    -- No description or it is inherited.
63795    --
63796    -- call ADRs
63797    -- Bug 4922099
63798    --
63799    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63800         (NVL(l_actual_upg_option, 'N') = 'O') OR
63801         (NVL(l_enc_upg_option, 'N') = 'O')
63802       )
63803    THEN
63804    NULL;
63805    --
63806    --
63807    
63808   l_ccid := AcctDerRule_37(
63809            p_application_id           => p_application_id
63810          , p_ae_header_id             => l_ae_header_id 
63811 , p_source_15 => p_source_15
63812 , p_source_15_meaning => p_source_15_meaning
63813 , p_source_30 => p_source_30
63814 , p_source_36 => p_source_36
63815 , p_source_37 => p_source_37
63816          , x_transaction_coa_id       => l_adr_transaction_coa_id
63817          , x_accounting_coa_id        => l_adr_accounting_coa_id
63818          , x_value_type_code          => l_adr_value_type_code
63819          , p_side                     => 'NA'
63820    );
63821 
63822    xla_ae_lines_pkg.set_ccid(
63823     p_code_combination_id          => l_ccid
63824   , p_value_type_code              => l_adr_value_type_code
63825   , p_transaction_coa_id           => l_adr_transaction_coa_id
63826   , p_accounting_coa_id            => l_adr_accounting_coa_id
63827   , p_adr_code                     => 'AP_REAL_GAIN'
63828   , p_adr_type_code                => 'S'
63829   , p_component_type               => l_component_type
63830   , p_component_code               => l_component_code
63831   , p_component_type_code          => l_component_type_code
63832   , p_component_appl_id            => l_component_appl_id
63833   , p_amb_context_code             => l_amb_context_code
63834   , p_side                         => 'NA'
63835   );
63836 
63837 
63838    l_segment := AcctDerRule_22(
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_30 => p_source_30
63844          , x_transaction_coa_id       => l_adr_transaction_coa_id
63845          , x_accounting_coa_id        => l_adr_accounting_coa_id
63846          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63847          , x_flex_value_set_id        => l_adr_flex_value_set_id
63848          , x_value_type_code          => l_adr_value_type_code
63849          , x_value_combination_id     => l_adr_value_combination_id
63850          , x_value_segment_code       => l_adr_value_segment_code
63851          , p_side                     => 'NA'
63852          , p_override_seg_flag        => 'Y'
63853    );
63854 
63855    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63856 
63857       xla_ae_lines_pkg.set_segment(
63858           p_to_segment_code         => 'GL_BALANCING'
63859         , p_segment_value           => l_segment
63860         , p_from_segment_code       => l_adr_value_segment_code
63861         , p_from_combination_id     => l_adr_value_combination_id
63862         , p_value_type_code         => l_adr_value_type_code
63863         , p_transaction_coa_id      => l_adr_transaction_coa_id
63864         , p_accounting_coa_id       => l_adr_accounting_coa_id
63865         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63866         , p_flex_value_set_id       => l_adr_flex_value_set_id
63867         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
63868         , p_adr_type_code           => 'S'
63869         , p_component_type          => l_component_type
63870         , p_component_code          => l_component_code
63871         , p_component_type_code     => l_component_type_code
63872         , p_component_appl_id       => l_component_appl_id
63873         , p_amb_context_code        => l_amb_context_code
63874         , p_entity_code             => 'AP_PAYMENTS'
63875         , p_event_class_code        => 'RECONCILED PAYMENTS'
63876         , p_side                    => 'NA'
63877         );
63878 
63879   END IF;
63880 
63881    l_segment := AcctDerRule_17(
63882            p_application_id           => p_application_id
63883          , p_ae_header_id             => l_ae_header_id 
63884 , p_source_15 => p_source_15
63885 , p_source_15_meaning => p_source_15_meaning
63886 , p_source_36 => p_source_36
63887 , p_source_37 => p_source_37
63888          , x_transaction_coa_id       => l_adr_transaction_coa_id
63889          , x_accounting_coa_id        => l_adr_accounting_coa_id
63890          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63891          , x_flex_value_set_id        => l_adr_flex_value_set_id
63892          , x_value_type_code          => l_adr_value_type_code
63893          , x_value_combination_id     => l_adr_value_combination_id
63897    );
63894          , x_value_segment_code       => l_adr_value_segment_code
63895          , p_side                     => 'NA'
63896          , p_override_seg_flag        => 'Y'
63898 
63899    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63900 
63901       xla_ae_lines_pkg.set_segment(
63902           p_to_segment_code         => 'GL_ACCOUNT'
63903         , p_segment_value           => l_segment
63904         , p_from_segment_code       => l_adr_value_segment_code
63905         , p_from_combination_id     => l_adr_value_combination_id
63906         , p_value_type_code         => l_adr_value_type_code
63907         , p_transaction_coa_id      => l_adr_transaction_coa_id
63908         , p_accounting_coa_id       => l_adr_accounting_coa_id
63909         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63910         , p_flex_value_set_id       => l_adr_flex_value_set_id
63911         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
63912         , p_adr_type_code           => 'S'
63913         , p_component_type          => l_component_type
63914         , p_component_code          => l_component_code
63915         , p_component_type_code     => l_component_type_code
63916         , p_component_appl_id       => l_component_appl_id
63917         , p_amb_context_code        => l_amb_context_code
63918         , p_entity_code             => 'AP_PAYMENTS'
63919         , p_event_class_code        => 'RECONCILED PAYMENTS'
63920         , p_side                    => 'NA'
63921         );
63922 
63923   END IF;
63924 
63925    --
63926    --
63927    END IF;
63928    --
63929    -- Bug 4922099
63930    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63931           (NVL(l_enc_upg_option, 'N') = 'O')
63932         ) AND
63933         (l_bflow_method_code = 'PRIOR_ENTRY')
63934       )
63935    THEN
63936       IF
63937       --
63938       1 = 2
63939       --
63940       THEN
63941       xla_accounting_err_pkg.build_message
63942                                     (p_appli_s_name            => 'XLA'
63943                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63944                                     ,p_token_1                 => 'LINE_NUMBER'
63945                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63946                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63947                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63948                                                                              l_component_type
63949                                                                             ,l_component_code
63950                                                                             ,l_component_type_code
63951                                                                             ,l_component_appl_id
63952                                                                             ,l_amb_context_code
63953                                                                             ,l_entity_code
63954                                                                             ,l_event_class_code
63955                                                                            )
63956                                     ,p_token_3                 => 'OWNER'
63957                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63958                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63959                                                                           ,p_lookup_code    => l_component_type_code
63960                                                                          )
63961                                     ,p_token_4                 => 'PRODUCT_NAME'
63962                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63963                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63964                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63965                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63966                                     ,p_ae_header_id            =>  NULL
63967                                        );
63968 
63969         IF (C_LEVEL_ERROR>= g_log_level) THEN
63970                  trace
63971                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63972                       ,p_level    => C_LEVEL_ERROR
63973                       ,p_module   => l_log_module);
63974         END IF;
63975       END IF;
63976    END IF;
63977    --
63978    --
63979    ------------------------------------------------------------------------------------------------
63980    -- 4219869 Business Flow
63981    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63982    -- Prior Entry.  Currently, the following code is always generated.
63983    ------------------------------------------------------------------------------------------------
63984    XLA_AE_LINES_PKG.ValidateCurrentLine;
63985 
63986    ------------------------------------------------------------------------------------
63987    -- 4219869 Business Flow
63988    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63989    ------------------------------------------------------------------------------------
63990    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63991 
63995    ----------------------------------------------------------------------------------
63992    ----------------------------------------------------------------------------------
63993    -- 4219869 Business Flow
63994    -- Update journal entry status -- Need to generate this within IF <condition>
63996    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63997          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63998          ,p_balance_type_code => l_balance_type_code
63999          );
64000 
64001    -------------------------------------------------------------------------------------------
64002    -- 4262811 - Generate the Accrual Reversal lines
64003    -------------------------------------------------------------------------------------------
64004    BEGIN
64005       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64006                               (g_array_event(p_event_id).array_value_num('header_index'));
64007       IF l_acc_rev_flag IS NULL THEN
64008          l_acc_rev_flag := 'N';
64009       END IF;
64010    EXCEPTION
64011       WHEN OTHERS THEN
64012          l_acc_rev_flag := 'N';
64013    END;
64014    --
64015    IF (l_acc_rev_flag = 'Y') THEN
64016 
64017        -- 4645092  ------------------------------------------------------------------------------
64018        -- To allow MPA report to determine if it should generate report process
64019        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64020        ------------------------------------------------------------------------------------------
64021 
64022        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64023        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64024    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64025    -- call ADRs
64026    -- Bug 4922099
64027    --
64028    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64029         (NVL(l_actual_upg_option, 'N') = 'O') OR
64030         (NVL(l_enc_upg_option, 'N') = 'O')
64031       )
64032    THEN
64033    NULL;
64034    --
64035    --
64036    
64037   l_ccid := AcctDerRule_37(
64038            p_application_id           => p_application_id
64039          , p_ae_header_id             => l_ae_header_id 
64040 , p_source_15 => p_source_15
64041 , p_source_15_meaning => p_source_15_meaning
64042 , p_source_30 => p_source_30
64043 , p_source_36 => p_source_36
64044 , p_source_37 => p_source_37
64045          , x_transaction_coa_id       => l_adr_transaction_coa_id
64046          , x_accounting_coa_id        => l_adr_accounting_coa_id
64047          , x_value_type_code          => l_adr_value_type_code
64048          , p_side                     => 'NA'
64049    );
64050 
64051    xla_ae_lines_pkg.set_ccid(
64052     p_code_combination_id          => l_ccid
64053   , p_value_type_code              => l_adr_value_type_code
64054   , p_transaction_coa_id           => l_adr_transaction_coa_id
64055   , p_accounting_coa_id            => l_adr_accounting_coa_id
64056   , p_adr_code                     => 'AP_REAL_GAIN'
64057   , p_adr_type_code                => 'S'
64058   , p_component_type               => l_component_type
64059   , p_component_code               => l_component_code
64060   , p_component_type_code          => l_component_type_code
64061   , p_component_appl_id            => l_component_appl_id
64062   , p_amb_context_code             => l_amb_context_code
64063   , p_side                         => 'NA'
64064   );
64065 
64066 
64067    l_segment := AcctDerRule_22(
64068            p_application_id           => p_application_id
64069          , p_ae_header_id             => l_ae_header_id 
64070 , p_source_15 => p_source_15
64071 , p_source_15_meaning => p_source_15_meaning
64072 , p_source_30 => p_source_30
64073          , x_transaction_coa_id       => l_adr_transaction_coa_id
64074          , x_accounting_coa_id        => l_adr_accounting_coa_id
64075          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64076          , x_flex_value_set_id        => l_adr_flex_value_set_id
64077          , x_value_type_code          => l_adr_value_type_code
64078          , x_value_combination_id     => l_adr_value_combination_id
64079          , x_value_segment_code       => l_adr_value_segment_code
64080          , p_side                     => 'NA'
64081          , p_override_seg_flag        => 'Y'
64082    );
64083 
64084    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64085 
64086       xla_ae_lines_pkg.set_segment(
64087           p_to_segment_code         => 'GL_BALANCING'
64088         , p_segment_value           => l_segment
64089         , p_from_segment_code       => l_adr_value_segment_code
64090         , p_from_combination_id     => l_adr_value_combination_id
64091         , p_value_type_code         => l_adr_value_type_code
64092         , p_transaction_coa_id      => l_adr_transaction_coa_id
64093         , p_accounting_coa_id       => l_adr_accounting_coa_id
64094         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64095         , p_flex_value_set_id       => l_adr_flex_value_set_id
64096         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64097         , p_adr_type_code           => 'S'
64098         , p_component_type          => l_component_type
64099         , p_component_code          => l_component_code
64100         , p_component_type_code     => l_component_type_code
64101         , p_component_appl_id       => l_component_appl_id
64105         , p_side                    => 'NA'
64102         , p_amb_context_code        => l_amb_context_code
64103         , p_entity_code             => 'AP_PAYMENTS'
64104         , p_event_class_code        => 'RECONCILED PAYMENTS'
64106         );
64107 
64108   END IF;
64109 
64110    l_segment := AcctDerRule_17(
64111            p_application_id           => p_application_id
64112          , p_ae_header_id             => l_ae_header_id 
64113 , p_source_15 => p_source_15
64114 , p_source_15_meaning => p_source_15_meaning
64115 , p_source_36 => p_source_36
64116 , p_source_37 => p_source_37
64117          , x_transaction_coa_id       => l_adr_transaction_coa_id
64118          , x_accounting_coa_id        => l_adr_accounting_coa_id
64119          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64120          , x_flex_value_set_id        => l_adr_flex_value_set_id
64121          , x_value_type_code          => l_adr_value_type_code
64122          , x_value_combination_id     => l_adr_value_combination_id
64123          , x_value_segment_code       => l_adr_value_segment_code
64124          , p_side                     => 'NA'
64125          , p_override_seg_flag        => 'Y'
64126    );
64127 
64128    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64129 
64130       xla_ae_lines_pkg.set_segment(
64131           p_to_segment_code         => 'GL_ACCOUNT'
64132         , p_segment_value           => l_segment
64133         , p_from_segment_code       => l_adr_value_segment_code
64134         , p_from_combination_id     => l_adr_value_combination_id
64135         , p_value_type_code         => l_adr_value_type_code
64136         , p_transaction_coa_id      => l_adr_transaction_coa_id
64137         , p_accounting_coa_id       => l_adr_accounting_coa_id
64138         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64139         , p_flex_value_set_id       => l_adr_flex_value_set_id
64140         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64141         , p_adr_type_code           => 'S'
64142         , p_component_type          => l_component_type
64143         , p_component_code          => l_component_code
64144         , p_component_type_code     => l_component_type_code
64145         , p_component_appl_id       => l_component_appl_id
64146         , p_amb_context_code        => l_amb_context_code
64147         , p_entity_code             => 'AP_PAYMENTS'
64148         , p_event_class_code        => 'RECONCILED PAYMENTS'
64149         , p_side                    => 'NA'
64150         );
64151 
64152   END IF;
64153 
64154    --
64155    --
64156    END IF;
64157 
64158        --
64159        -- Update the line information that should be overwritten
64160        --
64161        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64162                                          p_header_num   => 1);
64163        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64164 
64165        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64166 
64167        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64168           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64169        END IF;
64170 
64171       --
64172       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64173       --
64174       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64175           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64176       ELSE
64177           ---------------------------------------------------------------------------------------------------
64178           -- 4262811a Switch Sign
64179           ---------------------------------------------------------------------------------------------------
64180           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64181           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64182                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64183           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64184                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64185           -- 5132302
64186           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64187                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64188 
64189       END IF;
64190 
64191       -- 4955764
64192       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64193       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64194 
64195 
64196       XLA_AE_LINES_PKG.ValidateCurrentLine;
64197       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64198 
64199       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64200                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64201                ,p_balance_type_code => l_balance_type_code);
64202 
64203    END IF;
64204 
64205    -----------------------------------------------------------------------------------------
64206    -- 4262811 Multiperiod Accounting
64207    -----------------------------------------------------------------------------------------
64208      -- No MPA option is assigned.
64209 
64213 --
64210 
64211 END IF;
64212 END IF;
64214 
64215 --
64216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64217    trace
64218       (p_msg      => 'END of AcctLineType_122'
64219       ,p_level    => C_LEVEL_PROCEDURE
64220       ,p_module   => l_log_module);
64221 END IF;
64222 --
64223 EXCEPTION
64224   WHEN xla_exceptions_pkg.application_exception THEN
64225       RAISE;
64226   WHEN OTHERS THEN
64227        xla_exceptions_pkg.raise_message
64228            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_122');
64229 END AcctLineType_122;
64230 --
64231 
64232 ---------------------------------------
64233 --
64234 -- PRIVATE FUNCTION
64235 --         AcctLineType_123
64236 --
64237 ---------------------------------------
64238 PROCEDURE AcctLineType_123 (
64239   p_application_id        IN NUMBER
64240  ,p_event_id              IN NUMBER
64241  ,p_calculate_acctd_flag  IN VARCHAR2
64242  ,p_calculate_g_l_flag    IN VARCHAR2
64243  ,p_actual_flag           IN OUT VARCHAR2
64244  ,p_balance_type_code     OUT VARCHAR2
64245  ,p_gain_or_loss_ref      OUT VARCHAR2
64246  
64247 --Automatic Offsets Value
64248  , p_source_15            IN VARCHAR2
64249  , p_source_15_meaning    IN VARCHAR2
64250 --Invoice Distribution Account
64251  , p_source_30            IN NUMBER
64252 --Internal Realized Gain Account
64253  , p_source_36            IN NUMBER
64254 --Bank Gain Account
64255  , p_source_37            IN NUMBER
64256 --Internal Realized Loss Account
64257  , p_source_38            IN NUMBER
64258 --Bank Loss Account
64259  , p_source_39            IN NUMBER
64260 --Accounting Reversal Indicator
64261  , p_source_52            IN VARCHAR2
64262 --Distribution Link Type
64263  , p_source_54            IN VARCHAR2
64264 --Override Accounted Amount Indicator
64265  , p_source_79            IN VARCHAR2
64266  , p_source_79_meaning    IN VARCHAR2
64267 --Third Party Type
64268  , p_source_82            IN VARCHAR2
64269 --Invoice Distribution Tax Line Identifier
64270  , p_source_85            IN NUMBER
64271 --Invoice Distribution Summary Tax Line Identifier
64272  , p_source_87            IN NUMBER
64273 --Business Flow Accounts Payable Application Identifier
64274  , p_source_90            IN NUMBER
64275 --When to Account for Payment Option
64276  , p_source_96            IN VARCHAR2
64277 --Payment Distribution Type
64278  , p_source_97            IN VARCHAR2
64279  , p_source_97_meaning    IN VARCHAR2
64280 --Payment Distribution Amount
64281  , p_source_98            IN NUMBER
64282 --Business Flow Payment Distribution Type
64283  , p_source_99            IN VARCHAR2
64284 --Business Flow Payment Entity Code
64285  , p_source_100            IN VARCHAR2
64286 --Business Flow Payment Distribution Identifier
64287  , p_source_101            IN NUMBER
64288 --Business Flow Payment Identifier
64289  , p_source_102            IN NUMBER
64290 --Payment Distribution Identifier
64291  , p_source_103            IN NUMBER
64292 --Payment Supplier Identifier
64293  , p_source_109            IN NUMBER
64294 --Payment Supplier Site Identifier
64295  , p_source_110            IN NUMBER
64296 --Payment Distribution Reversed Identifier
64297  , p_source_111            IN NUMBER
64298 --Payment Identifier
64299  , p_source_112            IN NUMBER
64300 --Payment Maturity Date
64301  , p_source_114            IN DATE
64302 --Invoice/Clearing Ledger Amount Difference
64303  , p_source_149            IN NUMBER
64304 )
64305 IS
64306 
64307 l_component_type              VARCHAR2(80);
64308 l_component_code              VARCHAR2(30);
64309 l_component_type_code         VARCHAR2(1);
64310 l_component_appl_id           INTEGER;
64311 l_amb_context_code            VARCHAR2(30);
64312 l_entity_code                 VARCHAR2(30);
64313 l_event_class_code            VARCHAR2(30);
64314 l_ae_header_id                NUMBER;
64315 l_event_type_code             VARCHAR2(30);
64316 l_line_definition_code        VARCHAR2(30);
64317 l_line_definition_owner_code  VARCHAR2(1);
64318 --
64319 -- adr variables
64320 l_segment                     VARCHAR2(30);
64321 l_ccid                        NUMBER;
64322 l_adr_transaction_coa_id      NUMBER;
64323 l_adr_accounting_coa_id       NUMBER;
64324 l_adr_flexfield_segment_code  VARCHAR2(30);
64325 l_adr_flex_value_set_id       NUMBER;
64326 l_adr_value_type_code         VARCHAR2(30);
64327 l_adr_value_combination_id    NUMBER;
64328 l_adr_value_segment_code      VARCHAR2(30);
64329 
64330 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64331 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64332 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64333 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64334 
64335 -- 4262811 Variables ------------------------------------------------------------------------------------------
64336 l_entered_amt_idx             NUMBER;
64337 l_accted_amt_idx              NUMBER;
64338 l_acc_rev_flag                VARCHAR2(1);
64339 l_accrual_line_num            NUMBER;
64340 l_tmp_amt                     NUMBER;
64341 l_acc_rev_natural_side_code   VARCHAR2(1);
64342 
64343 l_num_entries                 NUMBER;
64344 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64348 l_recog_line_1                NUMBER;
64345 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64346 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64347 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64349 l_recog_line_2                NUMBER;
64350 
64351 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64352 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64353 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64354 
64355 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64356 
64357 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64358 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64359 
64360 ---------------------------------------------------------------------------------------------------------------
64361 
64362 
64363 --
64364 -- bulk performance
64365 --
64366 l_balance_type_code           VARCHAR2(1);
64367 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64368 l_log_module                  VARCHAR2(240);
64369 
64370 --
64371 -- Upgrade strategy
64372 --
64373 l_actual_upg_option           VARCHAR2(1);
64374 l_enc_upg_option           VARCHAR2(1);
64375 
64376 --
64377 BEGIN
64378 --
64379 IF g_log_enabled THEN
64380       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
64381 END IF;
64382 --
64383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64384 
64385       trace
64386          (p_msg      => 'BEGIN of AcctLineType_123'
64387          ,p_level    => C_LEVEL_PROCEDURE
64388          ,p_module   => l_log_module);
64389 
64390 END IF;
64391 --
64392 l_component_type             := 'AMB_JLT';
64393 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
64394 l_component_type_code        := 'S';
64395 l_component_appl_id          :=  200;
64396 l_amb_context_code           := 'DEFAULT';
64397 l_entity_code                := 'AP_PAYMENTS';
64398 l_event_class_code           := 'RECONCILED PAYMENTS';
64399 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
64400 l_line_definition_owner_code := 'S';
64401 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
64402 --
64403 l_balance_type_code          := 'A';
64404 l_segment                     := NULL;
64405 l_ccid                        := NULL;
64406 l_adr_transaction_coa_id      := NULL;
64407 l_adr_accounting_coa_id       := NULL;
64408 l_adr_flexfield_segment_code  := NULL;
64409 l_adr_flex_value_set_id       := NULL;
64410 l_adr_value_type_code         := NULL;
64411 l_adr_value_combination_id    := NULL;
64412 l_adr_value_segment_code      := NULL;
64413 
64414 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
64415 l_bflow_class_code           := '';    -- 4219869 Business Flow
64416 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64417 l_budgetary_control_flag     := 'N';
64418 
64419 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64420 l_bflow_applied_to_amt       := NULL; -- 5132302
64421 l_entered_amt_idx            := NULL;          -- 4262811
64422 l_accted_amt_idx             := NULL;          -- 4262811
64423 l_acc_rev_flag               := NULL;          -- 4262811
64424 l_accrual_line_num           := NULL;          -- 4262811
64425 l_tmp_amt                    := NULL;          -- 4262811
64426 --
64427 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
64428             (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
64429                return;
64430   END IF;
64431   
64432 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64433     l_balance_type_code <> 'B' THEN
64434 IF (NVL(p_source_96,'
64435 ') =  'CLEAR_CLEAR' OR 
64436 NVL(p_source_96,'
64437 ') =  'ALWAYS_CLEAR' OR 
64438 NVL(p_source_96,'
64439 ') =  'ALWAYS_ALWAYS') AND 
64440 p_source_114 IS NULL AND 
64441 NVL(p_source_97,'
64442 ') <>  'EXCHANGE RATE VARIANCE' AND 
64443 NVL(p_source_97,'
64444 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
64445 NVL(p_source_97,'
64446 ') <>  'BANK CHARGE' AND 
64447 NVL(p_source_97,'
64448 ') <>  'BANK ERROR'
64449  THEN 
64450 
64451    --
64452    XLA_AE_LINES_PKG.SetNewLine;
64453 
64454    p_balance_type_code          := l_balance_type_code;
64455    -- set the flag so later we will know whether the gain loss line needs to be created
64456    
64457    IF(l_balance_type_code = 'A' ) THEN
64458      p_actual_flag :='G';
64459    END IF;
64460 
64461    --
64462    -- bulk performance
64463    --
64464    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64465                                       p_header_num   => 0); -- 4262811
64466    --
64467    -- set accounting line options
64468    --
64469    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64470            p_natural_side_code          => 'G'
64471          , p_gain_or_loss_flag          => 'N'
64472          , p_gl_transfer_mode_code      => 'S'
64473          , p_acct_entry_type_code       => 'A'
64477    --
64474          , p_switch_side_flag           => ''
64475          , p_merge_duplicate_code       => 'A'
64476          );
64478    l_acc_rev_natural_side_code := 'C';  -- 4262811
64479    -- 
64480    --
64481    -- set accounting line type info
64482    --
64483    xla_ae_lines_pkg.SetAcctLineType
64484       (p_component_type             => l_component_type
64485       ,p_event_type_code            => l_event_type_code
64486       ,p_line_definition_owner_code => l_line_definition_owner_code
64487       ,p_line_definition_code       => l_line_definition_code
64488       ,p_accounting_line_code       => l_component_code
64489       ,p_accounting_line_type_code  => l_component_type_code
64490       ,p_accounting_line_appl_id    => l_component_appl_id
64491       ,p_amb_context_code           => l_amb_context_code
64492       ,p_entity_code                => l_entity_code
64493       ,p_event_class_code           => l_event_class_code);
64494    --
64495    -- set accounting class
64496    --
64497    xla_ae_lines_pkg.SetAcctClass(
64498            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
64499          , p_ae_header_id           => l_ae_header_id
64500          );
64501 
64502    --
64503    -- set rounding class
64504    --
64505    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64506                       'EXCHANGE_GAIN_LOSS';
64507 
64508    --
64509    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64510    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64511    --
64512    -- bulk performance
64513    --
64514    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64515 
64516    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64517       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64518 
64519    -- 4955764
64520    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64521       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64522 
64523    -- 4458381 Public Sector Enh
64524    
64525    --
64526    -- set accounting attributes for the line type
64527    --
64528    l_entered_amt_idx := NULL;
64529    l_accted_amt_idx  := 10;
64530    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
64531    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64532    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
64533    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
64534    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
64535    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
64536    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
64537    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64538    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
64539    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
64540    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
64541    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
64542    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
64543    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64544    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
64545    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
64546    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
64547    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
64548    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
64549    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
64550    l_rec_acct_attrs.array_num_value(10)  := p_source_149;
64551    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
64552    l_rec_acct_attrs.array_char_value(11)  := p_source_79;
64553    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
64554    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
64555    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
64556    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
64557    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
64558    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
64559    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
64560    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
64561    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
64562    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
64563    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
64564    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
64565    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
64566    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
64567    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
64568    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
64569 
64570    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64571    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64572 
64573    ---------------------------------------------------------------------------------------------------------------
64574    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64575    ---------------------------------------------------------------------------------------------------------------
64579    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64576    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64577 
64578    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64580 
64581    IF xla_accounting_cache_pkg.GetValueChar
64582          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64583          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64584    AND l_bflow_method_code = 'PRIOR_ENTRY'
64585 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64586    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64587          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64588        )
64589    THEN
64590          xla_ae_lines_pkg.BflowUpgEntry
64591            (p_business_method_code    => l_bflow_method_code
64592            ,p_business_class_code     => l_bflow_class_code
64593            ,p_balance_type            => l_balance_type_code);
64594    ELSE
64595       NULL;
64596 -- No business flow processing for business flow method of NONE.
64597    END IF;
64598 
64599    --
64600    -- call analytical criteria
64601    --
64602    
64603 
64604 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
64605 xla_ae_lines_pkg.SetAnalyticalCriteria(
64606    p_analytical_criterion_name    => 'Check Id'
64607  , p_analytical_criterion_owner   => 'S'
64608  , p_analytical_criterion_code    => 'CHECK_ID'
64609  , p_amb_context_code             => 'DEFAULT'
64610  , p_balancing_flag               => 'N'
64611  
64612  , p_analytical_detail_char_1    =>  NULL
64613  , p_analytical_detail_num_1     =>  p_source_112
64614  , p_analytical_detail_date_1    =>  NULL
64615 
64616  , p_ae_header_id                 => l_ae_header_id
64617 )
64618 ;
64619 --
64620 
64621    --
64622    -- call description
64623    --
64624    -- No description or it is inherited.
64625    --
64626    -- call ADRs
64627    -- Bug 4922099
64628    --
64629    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64630         (NVL(l_actual_upg_option, 'N') = 'O') OR
64631         (NVL(l_enc_upg_option, 'N') = 'O')
64632       )
64633    THEN
64634    NULL;
64635    --
64636    --
64637    
64638   l_ccid := AcctDerRule_37(
64639            p_application_id           => p_application_id
64640          , p_ae_header_id             => l_ae_header_id 
64641 , p_source_15 => p_source_15
64642 , p_source_15_meaning => p_source_15_meaning
64643 , p_source_30 => p_source_30
64644 , p_source_36 => p_source_36
64645 , p_source_37 => p_source_37
64646          , x_transaction_coa_id       => l_adr_transaction_coa_id
64647          , x_accounting_coa_id        => l_adr_accounting_coa_id
64648          , x_value_type_code          => l_adr_value_type_code
64649          , p_side                     => 'CREDIT'
64650    );
64651 
64652    xla_ae_lines_pkg.set_ccid(
64653     p_code_combination_id          => l_ccid
64654   , p_value_type_code              => l_adr_value_type_code
64655   , p_transaction_coa_id           => l_adr_transaction_coa_id
64656   , p_accounting_coa_id            => l_adr_accounting_coa_id
64657   , p_adr_code                     => 'AP_REAL_GAIN'
64658   , p_adr_type_code                => 'S'
64659   , p_component_type               => l_component_type
64660   , p_component_code               => l_component_code
64661   , p_component_type_code          => l_component_type_code
64662   , p_component_appl_id            => l_component_appl_id
64663   , p_amb_context_code             => l_amb_context_code
64664   , p_side                         => 'CREDIT'
64665   );
64666 
64667 
64668   l_ccid := AcctDerRule_38(
64669            p_application_id           => p_application_id
64670          , p_ae_header_id             => l_ae_header_id 
64671 , p_source_15 => p_source_15
64672 , p_source_15_meaning => p_source_15_meaning
64673 , p_source_30 => p_source_30
64674 , p_source_38 => p_source_38
64675 , p_source_39 => p_source_39
64676          , x_transaction_coa_id       => l_adr_transaction_coa_id
64677          , x_accounting_coa_id        => l_adr_accounting_coa_id
64678          , x_value_type_code          => l_adr_value_type_code
64679          , p_side                     => 'DEBIT'
64680    );
64681 
64682    xla_ae_lines_pkg.set_ccid(
64683     p_code_combination_id          => l_ccid
64684   , p_value_type_code              => l_adr_value_type_code
64685   , p_transaction_coa_id           => l_adr_transaction_coa_id
64686   , p_accounting_coa_id            => l_adr_accounting_coa_id
64687   , p_adr_code                     => 'AP_REAL_LOSS'
64688   , p_adr_type_code                => 'S'
64689   , p_component_type               => l_component_type
64690   , p_component_code               => l_component_code
64691   , p_component_type_code          => l_component_type_code
64692   , p_component_appl_id            => l_component_appl_id
64693   , p_amb_context_code             => l_amb_context_code
64694   , p_side                         => 'DEBIT'
64695   );
64696 
64697 
64698    l_segment := AcctDerRule_22(
64699            p_application_id           => p_application_id
64700          , p_ae_header_id             => l_ae_header_id 
64701 , p_source_15 => p_source_15
64702 , p_source_15_meaning => p_source_15_meaning
64703 , p_source_30 => p_source_30
64707          , x_flex_value_set_id        => l_adr_flex_value_set_id
64704          , x_transaction_coa_id       => l_adr_transaction_coa_id
64705          , x_accounting_coa_id        => l_adr_accounting_coa_id
64706          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64708          , x_value_type_code          => l_adr_value_type_code
64709          , x_value_combination_id     => l_adr_value_combination_id
64710          , x_value_segment_code       => l_adr_value_segment_code
64711          , p_side                     => 'ALL'
64712          , p_override_seg_flag        => 'Y'
64713    );
64714 
64715    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64716 
64717       xla_ae_lines_pkg.set_segment(
64718           p_to_segment_code         => 'GL_BALANCING'
64719         , p_segment_value           => l_segment
64720         , p_from_segment_code       => l_adr_value_segment_code
64721         , p_from_combination_id     => l_adr_value_combination_id
64722         , p_value_type_code         => l_adr_value_type_code
64723         , p_transaction_coa_id      => l_adr_transaction_coa_id
64724         , p_accounting_coa_id       => l_adr_accounting_coa_id
64725         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64726         , p_flex_value_set_id       => l_adr_flex_value_set_id
64727         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64728         , p_adr_type_code           => 'S'
64729         , p_component_type          => l_component_type
64730         , p_component_code          => l_component_code
64731         , p_component_type_code     => l_component_type_code
64732         , p_component_appl_id       => l_component_appl_id
64733         , p_amb_context_code        => l_amb_context_code
64734         , p_entity_code             => 'AP_PAYMENTS'
64735         , p_event_class_code        => 'RECONCILED PAYMENTS'
64736         , p_side                    => 'ALL'
64737         );
64738 
64739   END IF;
64740 
64741    l_segment := AcctDerRule_17(
64742            p_application_id           => p_application_id
64743          , p_ae_header_id             => l_ae_header_id 
64744 , p_source_15 => p_source_15
64745 , p_source_15_meaning => p_source_15_meaning
64746 , p_source_36 => p_source_36
64747 , p_source_37 => p_source_37
64748          , x_transaction_coa_id       => l_adr_transaction_coa_id
64749          , x_accounting_coa_id        => l_adr_accounting_coa_id
64750          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64751          , x_flex_value_set_id        => l_adr_flex_value_set_id
64752          , x_value_type_code          => l_adr_value_type_code
64753          , x_value_combination_id     => l_adr_value_combination_id
64754          , x_value_segment_code       => l_adr_value_segment_code
64755          , p_side                     => 'CREDIT'
64756          , p_override_seg_flag        => 'Y'
64757    );
64758 
64759    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64760 
64761       xla_ae_lines_pkg.set_segment(
64762           p_to_segment_code         => 'GL_ACCOUNT'
64763         , p_segment_value           => l_segment
64764         , p_from_segment_code       => l_adr_value_segment_code
64765         , p_from_combination_id     => l_adr_value_combination_id
64766         , p_value_type_code         => l_adr_value_type_code
64767         , p_transaction_coa_id      => l_adr_transaction_coa_id
64768         , p_accounting_coa_id       => l_adr_accounting_coa_id
64769         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64770         , p_flex_value_set_id       => l_adr_flex_value_set_id
64771         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64772         , p_adr_type_code           => 'S'
64773         , p_component_type          => l_component_type
64774         , p_component_code          => l_component_code
64775         , p_component_type_code     => l_component_type_code
64776         , p_component_appl_id       => l_component_appl_id
64777         , p_amb_context_code        => l_amb_context_code
64778         , p_entity_code             => 'AP_PAYMENTS'
64779         , p_event_class_code        => 'RECONCILED PAYMENTS'
64780         , p_side                    => 'CREDIT'
64781         );
64782 
64783   END IF;
64784 
64785    l_segment := AcctDerRule_18(
64786            p_application_id           => p_application_id
64787          , p_ae_header_id             => l_ae_header_id 
64788 , p_source_15 => p_source_15
64789 , p_source_15_meaning => p_source_15_meaning
64790 , p_source_38 => p_source_38
64791 , p_source_39 => p_source_39
64792          , x_transaction_coa_id       => l_adr_transaction_coa_id
64793          , x_accounting_coa_id        => l_adr_accounting_coa_id
64794          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64795          , x_flex_value_set_id        => l_adr_flex_value_set_id
64796          , x_value_type_code          => l_adr_value_type_code
64797          , x_value_combination_id     => l_adr_value_combination_id
64798          , x_value_segment_code       => l_adr_value_segment_code
64799          , p_side                     => 'DEBIT'
64800          , p_override_seg_flag        => 'Y'
64801    );
64802 
64803    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64804 
64805       xla_ae_lines_pkg.set_segment(
64806           p_to_segment_code         => 'GL_ACCOUNT'
64807         , p_segment_value           => l_segment
64808         , p_from_segment_code       => l_adr_value_segment_code
64809         , p_from_combination_id     => l_adr_value_combination_id
64813         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64810         , p_value_type_code         => l_adr_value_type_code
64811         , p_transaction_coa_id      => l_adr_transaction_coa_id
64812         , p_accounting_coa_id       => l_adr_accounting_coa_id
64814         , p_flex_value_set_id       => l_adr_flex_value_set_id
64815         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
64816         , p_adr_type_code           => 'S'
64817         , p_component_type          => l_component_type
64818         , p_component_code          => l_component_code
64819         , p_component_type_code     => l_component_type_code
64820         , p_component_appl_id       => l_component_appl_id
64821         , p_amb_context_code        => l_amb_context_code
64822         , p_entity_code             => 'AP_PAYMENTS'
64823         , p_event_class_code        => 'RECONCILED PAYMENTS'
64824         , p_side                    => 'DEBIT'
64825         );
64826 
64827   END IF;
64828 
64829    --
64830    --
64831    END IF;
64832    --
64833    -- Bug 4922099
64834    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64835           (NVL(l_enc_upg_option, 'N') = 'O')
64836         ) AND
64837         (l_bflow_method_code = 'PRIOR_ENTRY')
64838       )
64839    THEN
64840       IF
64841       --
64842       1 = 2
64843       --
64844       THEN
64845       xla_accounting_err_pkg.build_message
64846                                     (p_appli_s_name            => 'XLA'
64847                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64848                                     ,p_token_1                 => 'LINE_NUMBER'
64849                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64850                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64851                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64852                                                                              l_component_type
64853                                                                             ,l_component_code
64854                                                                             ,l_component_type_code
64855                                                                             ,l_component_appl_id
64856                                                                             ,l_amb_context_code
64857                                                                             ,l_entity_code
64858                                                                             ,l_event_class_code
64859                                                                            )
64860                                     ,p_token_3                 => 'OWNER'
64861                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64862                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64863                                                                           ,p_lookup_code    => l_component_type_code
64864                                                                          )
64865                                     ,p_token_4                 => 'PRODUCT_NAME'
64866                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64867                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64868                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64869                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64870                                     ,p_ae_header_id            =>  NULL
64871                                        );
64872 
64873         IF (C_LEVEL_ERROR>= g_log_level) THEN
64874                  trace
64875                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64876                       ,p_level    => C_LEVEL_ERROR
64877                       ,p_module   => l_log_module);
64878         END IF;
64879       END IF;
64880    END IF;
64881    --
64882    --
64883    ------------------------------------------------------------------------------------------------
64884    -- 4219869 Business Flow
64885    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64886    -- Prior Entry.  Currently, the following code is always generated.
64887    ------------------------------------------------------------------------------------------------
64888    XLA_AE_LINES_PKG.ValidateCurrentLine;
64889 
64890    ------------------------------------------------------------------------------------
64891    -- 4219869 Business Flow
64892    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64893    ------------------------------------------------------------------------------------
64894    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64895 
64896    ----------------------------------------------------------------------------------
64897    -- 4219869 Business Flow
64898    -- Update journal entry status -- Need to generate this within IF <condition>
64899    ----------------------------------------------------------------------------------
64900    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64901          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64902          ,p_balance_type_code => l_balance_type_code
64903          );
64904 
64908    BEGIN
64905    -------------------------------------------------------------------------------------------
64906    -- 4262811 - Generate the Accrual Reversal lines
64907    -------------------------------------------------------------------------------------------
64909       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64910                               (g_array_event(p_event_id).array_value_num('header_index'));
64911       IF l_acc_rev_flag IS NULL THEN
64912          l_acc_rev_flag := 'N';
64913       END IF;
64914    EXCEPTION
64915       WHEN OTHERS THEN
64916          l_acc_rev_flag := 'N';
64917    END;
64918    --
64919    IF (l_acc_rev_flag = 'Y') THEN
64920 
64921        -- 4645092  ------------------------------------------------------------------------------
64922        -- To allow MPA report to determine if it should generate report process
64923        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64924        ------------------------------------------------------------------------------------------
64925 
64926        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64927        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64928    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64929    -- call ADRs
64930    -- Bug 4922099
64931    --
64932    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64933         (NVL(l_actual_upg_option, 'N') = 'O') OR
64934         (NVL(l_enc_upg_option, 'N') = 'O')
64935       )
64936    THEN
64937    NULL;
64938    --
64939    --
64940    
64941   l_ccid := AcctDerRule_37(
64942            p_application_id           => p_application_id
64943          , p_ae_header_id             => l_ae_header_id 
64944 , p_source_15 => p_source_15
64945 , p_source_15_meaning => p_source_15_meaning
64946 , p_source_30 => p_source_30
64947 , p_source_36 => p_source_36
64948 , p_source_37 => p_source_37
64949          , x_transaction_coa_id       => l_adr_transaction_coa_id
64950          , x_accounting_coa_id        => l_adr_accounting_coa_id
64951          , x_value_type_code          => l_adr_value_type_code
64952          , p_side                     => 'CREDIT'
64953    );
64954 
64955    xla_ae_lines_pkg.set_ccid(
64956     p_code_combination_id          => l_ccid
64957   , p_value_type_code              => l_adr_value_type_code
64958   , p_transaction_coa_id           => l_adr_transaction_coa_id
64959   , p_accounting_coa_id            => l_adr_accounting_coa_id
64960   , p_adr_code                     => 'AP_REAL_GAIN'
64961   , p_adr_type_code                => 'S'
64962   , p_component_type               => l_component_type
64963   , p_component_code               => l_component_code
64964   , p_component_type_code          => l_component_type_code
64965   , p_component_appl_id            => l_component_appl_id
64966   , p_amb_context_code             => l_amb_context_code
64967   , p_side                         => 'CREDIT'
64968   );
64969 
64970 
64971   l_ccid := AcctDerRule_38(
64972            p_application_id           => p_application_id
64973          , p_ae_header_id             => l_ae_header_id 
64974 , p_source_15 => p_source_15
64975 , p_source_15_meaning => p_source_15_meaning
64976 , p_source_30 => p_source_30
64977 , p_source_38 => p_source_38
64978 , p_source_39 => p_source_39
64979          , x_transaction_coa_id       => l_adr_transaction_coa_id
64980          , x_accounting_coa_id        => l_adr_accounting_coa_id
64981          , x_value_type_code          => l_adr_value_type_code
64982          , p_side                     => 'DEBIT'
64983    );
64984 
64985    xla_ae_lines_pkg.set_ccid(
64986     p_code_combination_id          => l_ccid
64987   , p_value_type_code              => l_adr_value_type_code
64988   , p_transaction_coa_id           => l_adr_transaction_coa_id
64989   , p_accounting_coa_id            => l_adr_accounting_coa_id
64990   , p_adr_code                     => 'AP_REAL_LOSS'
64991   , p_adr_type_code                => 'S'
64992   , p_component_type               => l_component_type
64993   , p_component_code               => l_component_code
64994   , p_component_type_code          => l_component_type_code
64995   , p_component_appl_id            => l_component_appl_id
64996   , p_amb_context_code             => l_amb_context_code
64997   , p_side                         => 'DEBIT'
64998   );
64999 
65000 
65001    l_segment := AcctDerRule_22(
65002            p_application_id           => p_application_id
65003          , p_ae_header_id             => l_ae_header_id 
65004 , p_source_15 => p_source_15
65005 , p_source_15_meaning => p_source_15_meaning
65006 , p_source_30 => p_source_30
65007          , x_transaction_coa_id       => l_adr_transaction_coa_id
65008          , x_accounting_coa_id        => l_adr_accounting_coa_id
65009          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65010          , x_flex_value_set_id        => l_adr_flex_value_set_id
65011          , x_value_type_code          => l_adr_value_type_code
65012          , x_value_combination_id     => l_adr_value_combination_id
65013          , x_value_segment_code       => l_adr_value_segment_code
65014          , p_side                     => 'ALL'
65015          , p_override_seg_flag        => 'Y'
65016    );
65017 
65018    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65019 
65020       xla_ae_lines_pkg.set_segment(
65021           p_to_segment_code         => 'GL_BALANCING'
65025         , p_value_type_code         => l_adr_value_type_code
65022         , p_segment_value           => l_segment
65023         , p_from_segment_code       => l_adr_value_segment_code
65024         , p_from_combination_id     => l_adr_value_combination_id
65026         , p_transaction_coa_id      => l_adr_transaction_coa_id
65027         , p_accounting_coa_id       => l_adr_accounting_coa_id
65028         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65029         , p_flex_value_set_id       => l_adr_flex_value_set_id
65030         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65031         , p_adr_type_code           => 'S'
65032         , p_component_type          => l_component_type
65033         , p_component_code          => l_component_code
65034         , p_component_type_code     => l_component_type_code
65035         , p_component_appl_id       => l_component_appl_id
65036         , p_amb_context_code        => l_amb_context_code
65037         , p_entity_code             => 'AP_PAYMENTS'
65038         , p_event_class_code        => 'RECONCILED PAYMENTS'
65039         , p_side                    => 'ALL'
65040         );
65041 
65042   END IF;
65043 
65044    l_segment := AcctDerRule_17(
65045            p_application_id           => p_application_id
65046          , p_ae_header_id             => l_ae_header_id 
65047 , p_source_15 => p_source_15
65048 , p_source_15_meaning => p_source_15_meaning
65049 , p_source_36 => p_source_36
65050 , p_source_37 => p_source_37
65051          , x_transaction_coa_id       => l_adr_transaction_coa_id
65052          , x_accounting_coa_id        => l_adr_accounting_coa_id
65053          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65054          , x_flex_value_set_id        => l_adr_flex_value_set_id
65055          , x_value_type_code          => l_adr_value_type_code
65056          , x_value_combination_id     => l_adr_value_combination_id
65057          , x_value_segment_code       => l_adr_value_segment_code
65058          , p_side                     => 'CREDIT'
65059          , p_override_seg_flag        => 'Y'
65060    );
65061 
65062    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65063 
65064       xla_ae_lines_pkg.set_segment(
65065           p_to_segment_code         => 'GL_ACCOUNT'
65066         , p_segment_value           => l_segment
65067         , p_from_segment_code       => l_adr_value_segment_code
65068         , p_from_combination_id     => l_adr_value_combination_id
65069         , p_value_type_code         => l_adr_value_type_code
65070         , p_transaction_coa_id      => l_adr_transaction_coa_id
65071         , p_accounting_coa_id       => l_adr_accounting_coa_id
65072         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65073         , p_flex_value_set_id       => l_adr_flex_value_set_id
65074         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65075         , p_adr_type_code           => 'S'
65076         , p_component_type          => l_component_type
65077         , p_component_code          => l_component_code
65078         , p_component_type_code     => l_component_type_code
65079         , p_component_appl_id       => l_component_appl_id
65080         , p_amb_context_code        => l_amb_context_code
65081         , p_entity_code             => 'AP_PAYMENTS'
65082         , p_event_class_code        => 'RECONCILED PAYMENTS'
65083         , p_side                    => 'CREDIT'
65084         );
65085 
65086   END IF;
65087 
65088    l_segment := AcctDerRule_18(
65089            p_application_id           => p_application_id
65090          , p_ae_header_id             => l_ae_header_id 
65091 , p_source_15 => p_source_15
65092 , p_source_15_meaning => p_source_15_meaning
65093 , p_source_38 => p_source_38
65094 , p_source_39 => p_source_39
65095          , x_transaction_coa_id       => l_adr_transaction_coa_id
65096          , x_accounting_coa_id        => l_adr_accounting_coa_id
65097          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65098          , x_flex_value_set_id        => l_adr_flex_value_set_id
65099          , x_value_type_code          => l_adr_value_type_code
65100          , x_value_combination_id     => l_adr_value_combination_id
65101          , x_value_segment_code       => l_adr_value_segment_code
65102          , p_side                     => 'DEBIT'
65103          , p_override_seg_flag        => 'Y'
65104    );
65105 
65106    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65107 
65108       xla_ae_lines_pkg.set_segment(
65109           p_to_segment_code         => 'GL_ACCOUNT'
65110         , p_segment_value           => l_segment
65111         , p_from_segment_code       => l_adr_value_segment_code
65112         , p_from_combination_id     => l_adr_value_combination_id
65113         , p_value_type_code         => l_adr_value_type_code
65114         , p_transaction_coa_id      => l_adr_transaction_coa_id
65115         , p_accounting_coa_id       => l_adr_accounting_coa_id
65116         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65117         , p_flex_value_set_id       => l_adr_flex_value_set_id
65118         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65119         , p_adr_type_code           => 'S'
65120         , p_component_type          => l_component_type
65121         , p_component_code          => l_component_code
65122         , p_component_type_code     => l_component_type_code
65123         , p_component_appl_id       => l_component_appl_id
65124         , p_amb_context_code        => l_amb_context_code
65128         );
65125         , p_entity_code             => 'AP_PAYMENTS'
65126         , p_event_class_code        => 'RECONCILED PAYMENTS'
65127         , p_side                    => 'DEBIT'
65129 
65130   END IF;
65131 
65132    --
65133    --
65134    END IF;
65135 
65136        --
65137        -- Update the line information that should be overwritten
65138        --
65139        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65140                                          p_header_num   => 1);
65141        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65142 
65143        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65144 
65145        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65146           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65147        END IF;
65148 
65149       --
65150       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65151       --
65152       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65153           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65154       ELSE
65155           ---------------------------------------------------------------------------------------------------
65156           -- 4262811a Switch Sign
65157           ---------------------------------------------------------------------------------------------------
65158           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65159           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65160                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65161           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65162                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65163           -- 5132302
65164           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65165                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65166 
65167       END IF;
65168 
65169       -- 4955764
65170       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65171       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65172 
65173 
65174       XLA_AE_LINES_PKG.ValidateCurrentLine;
65175       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65176 
65177       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65178                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65179                ,p_balance_type_code => l_balance_type_code);
65180 
65181    END IF;
65182 
65183    -----------------------------------------------------------------------------------------
65184    -- 4262811 Multiperiod Accounting
65185    -----------------------------------------------------------------------------------------
65186      -- No MPA option is assigned.
65187 
65188 
65189 END IF;
65190 END IF;
65191 --
65192 
65193 --
65194 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65195    trace
65196       (p_msg      => 'END of AcctLineType_123'
65197       ,p_level    => C_LEVEL_PROCEDURE
65198       ,p_module   => l_log_module);
65199 END IF;
65200 --
65201 EXCEPTION
65202   WHEN xla_exceptions_pkg.application_exception THEN
65203       RAISE;
65204   WHEN OTHERS THEN
65205        xla_exceptions_pkg.raise_message
65206            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_123');
65207 END AcctLineType_123;
65208 --
65209 
65210 ---------------------------------------
65211 --
65212 -- PRIVATE FUNCTION
65213 --         AcctLineType_124
65214 --
65215 ---------------------------------------
65216 PROCEDURE AcctLineType_124 (
65217   p_application_id        IN NUMBER
65218  ,p_event_id              IN NUMBER
65219  ,p_calculate_acctd_flag  IN VARCHAR2
65220  ,p_calculate_g_l_flag    IN VARCHAR2
65221  ,p_actual_flag           IN OUT VARCHAR2
65222  ,p_balance_type_code     OUT VARCHAR2
65223  ,p_gain_or_loss_ref      OUT VARCHAR2
65224  
65225 --Automatic Offsets Value
65226  , p_source_15            IN VARCHAR2
65227  , p_source_15_meaning    IN VARCHAR2
65228 --Invoice Distribution Account
65229  , p_source_30            IN NUMBER
65230 --Internal Realized Gain Account
65231  , p_source_36            IN NUMBER
65232 --Bank Gain Account
65233  , p_source_37            IN NUMBER
65234 --Internal Realized Loss Account
65235  , p_source_38            IN NUMBER
65236 --Bank Loss Account
65237  , p_source_39            IN NUMBER
65238 --Accounting Reversal Indicator
65239  , p_source_52            IN VARCHAR2
65240 --Distribution Link Type
65241  , p_source_54            IN VARCHAR2
65242 --Override Accounted Amount Indicator
65243  , p_source_79            IN VARCHAR2
65244  , p_source_79_meaning    IN VARCHAR2
65245 --Third Party Type
65246  , p_source_82            IN VARCHAR2
65247 --Invoice Distribution Tax Line Identifier
65248  , p_source_85            IN NUMBER
65249 --Invoice Distribution Tax Distribution Identifier from Tax
65250  , p_source_86            IN NUMBER
65251 --Invoice Distribution Summary Tax Line Identifier
65255 --Business Flow Invoice Distribution Type
65252  , p_source_87            IN NUMBER
65253 --Business Flow Accounts Payable Application Identifier
65254  , p_source_90            IN NUMBER
65256  , p_source_91            IN VARCHAR2
65257 --Business Flow Invoice Entity Code
65258  , p_source_92            IN VARCHAR2
65259 --Business Flow Invoice Distribution Identifier
65260  , p_source_93            IN NUMBER
65261 --Business Flow Invoice Identifier
65262  , p_source_94            IN NUMBER
65263 --When to Account for Payment Option
65264  , p_source_96            IN VARCHAR2
65265 --Payment Distribution Type
65266  , p_source_97            IN VARCHAR2
65267  , p_source_97_meaning    IN VARCHAR2
65268 --Payment Distribution Identifier
65269  , p_source_103            IN NUMBER
65270 --Payment Supplier Identifier
65271  , p_source_109            IN NUMBER
65272 --Payment Supplier Site Identifier
65273  , p_source_110            IN NUMBER
65274 --Payment Distribution Reversed Identifier
65275  , p_source_111            IN NUMBER
65276 --Payment Identifier
65277  , p_source_112            IN NUMBER
65278 --Payment Type
65279  , p_source_122            IN VARCHAR2
65280  , p_source_122_meaning    IN VARCHAR2
65281 --Invoice Distribution Amount of the Payment Distribution
65282  , p_source_124            IN NUMBER
65283 --Invoice/Payment Ledger Amount Difference
65284  , p_source_150            IN NUMBER
65285 )
65286 IS
65287 
65288 l_component_type              VARCHAR2(80);
65289 l_component_code              VARCHAR2(30);
65290 l_component_type_code         VARCHAR2(1);
65291 l_component_appl_id           INTEGER;
65292 l_amb_context_code            VARCHAR2(30);
65293 l_entity_code                 VARCHAR2(30);
65294 l_event_class_code            VARCHAR2(30);
65295 l_ae_header_id                NUMBER;
65296 l_event_type_code             VARCHAR2(30);
65297 l_line_definition_code        VARCHAR2(30);
65298 l_line_definition_owner_code  VARCHAR2(1);
65299 --
65300 -- adr variables
65301 l_segment                     VARCHAR2(30);
65302 l_ccid                        NUMBER;
65303 l_adr_transaction_coa_id      NUMBER;
65304 l_adr_accounting_coa_id       NUMBER;
65305 l_adr_flexfield_segment_code  VARCHAR2(30);
65306 l_adr_flex_value_set_id       NUMBER;
65307 l_adr_value_type_code         VARCHAR2(30);
65308 l_adr_value_combination_id    NUMBER;
65309 l_adr_value_segment_code      VARCHAR2(30);
65310 
65311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65315 
65316 -- 4262811 Variables ------------------------------------------------------------------------------------------
65317 l_entered_amt_idx             NUMBER;
65318 l_accted_amt_idx              NUMBER;
65319 l_acc_rev_flag                VARCHAR2(1);
65320 l_accrual_line_num            NUMBER;
65321 l_tmp_amt                     NUMBER;
65322 l_acc_rev_natural_side_code   VARCHAR2(1);
65323 
65324 l_num_entries                 NUMBER;
65325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65329 l_recog_line_1                NUMBER;
65330 l_recog_line_2                NUMBER;
65331 
65332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65335 
65336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65337 
65338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65340 
65341 ---------------------------------------------------------------------------------------------------------------
65342 
65343 
65344 --
65345 -- bulk performance
65346 --
65347 l_balance_type_code           VARCHAR2(1);
65348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65349 l_log_module                  VARCHAR2(240);
65350 
65351 --
65352 -- Upgrade strategy
65353 --
65354 l_actual_upg_option           VARCHAR2(1);
65355 l_enc_upg_option           VARCHAR2(1);
65356 
65357 --
65358 BEGIN
65359 --
65360 IF g_log_enabled THEN
65361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
65362 END IF;
65363 --
65364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65365 
65366       trace
65367          (p_msg      => 'BEGIN of AcctLineType_124'
65368          ,p_level    => C_LEVEL_PROCEDURE
65369          ,p_module   => l_log_module);
65370 
65371 END IF;
65372 --
65373 l_component_type             := 'AMB_JLT';
65374 l_component_code             := 'AP_GAIN_LOSS_PMT';
65375 l_component_type_code        := 'S';
65376 l_component_appl_id          :=  200;
65377 l_amb_context_code           := 'DEFAULT';
65378 l_entity_code                := 'AP_PAYMENTS';
65379 l_event_class_code           := 'PAYMENTS';
65380 l_event_type_code            := 'PAYMENTS_ALL';
65384 l_balance_type_code          := 'A';
65381 l_line_definition_owner_code := 'S';
65382 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
65383 --
65385 l_segment                     := NULL;
65386 l_ccid                        := NULL;
65387 l_adr_transaction_coa_id      := NULL;
65388 l_adr_accounting_coa_id       := NULL;
65389 l_adr_flexfield_segment_code  := NULL;
65390 l_adr_flex_value_set_id       := NULL;
65391 l_adr_value_type_code         := NULL;
65392 l_adr_value_combination_id    := NULL;
65393 l_adr_value_segment_code      := NULL;
65394 
65395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65396 l_bflow_class_code           := '';    -- 4219869 Business Flow
65397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65398 l_budgetary_control_flag     := 'N';
65399 
65400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65401 l_bflow_applied_to_amt       := NULL; -- 5132302
65402 l_entered_amt_idx            := NULL;          -- 4262811
65403 l_accted_amt_idx             := NULL;          -- 4262811
65404 l_acc_rev_flag               := NULL;          -- 4262811
65405 l_accrual_line_num           := NULL;          -- 4262811
65406 l_tmp_amt                    := NULL;          -- 4262811
65407 --
65408 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65409             (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
65410                return;
65411   END IF;
65412   
65413 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65414     l_balance_type_code <> 'B' THEN
65415 IF (NVL(p_source_96,'
65416 ') <>  'CLEAR_CLEAR' AND 
65417 NVL(p_source_96,'
65418 ') <>  'ALWAYS_CLEAR') AND 
65419 NVL(p_source_97,'
65420 ') <>  'EXCHANGE RATE VARIANCE' AND 
65421 NVL(p_source_97,'
65422 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
65423 NVL(p_source_97,'
65424 ') <>  'BANK CHARGE' AND 
65425 NVL(p_source_97,'
65426 ') <>  'BANK ERROR' AND 
65427 NVL(p_source_122,'
65428 ') <>  'R'
65429  THEN 
65430 
65431    --
65432    XLA_AE_LINES_PKG.SetNewLine;
65433 
65434    p_balance_type_code          := l_balance_type_code;
65435    -- set the flag so later we will know whether the gain loss line needs to be created
65436    
65437    IF(l_balance_type_code = 'A' ) THEN
65438      p_actual_flag :='G';
65439    END IF;
65440 
65441    --
65442    -- bulk performance
65443    --
65444    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65445                                       p_header_num   => 0); -- 4262811
65446    --
65447    -- set accounting line options
65448    --
65449    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65450            p_natural_side_code          => 'G'
65451          , p_gain_or_loss_flag          => 'N'
65452          , p_gl_transfer_mode_code      => 'S'
65453          , p_acct_entry_type_code       => 'A'
65454          , p_switch_side_flag           => ''
65455          , p_merge_duplicate_code       => 'A'
65456          );
65457    --
65458    l_acc_rev_natural_side_code := 'C';  -- 4262811
65459    -- 
65460    --
65461    -- set accounting line type info
65462    --
65463    xla_ae_lines_pkg.SetAcctLineType
65464       (p_component_type             => l_component_type
65465       ,p_event_type_code            => l_event_type_code
65466       ,p_line_definition_owner_code => l_line_definition_owner_code
65467       ,p_line_definition_code       => l_line_definition_code
65468       ,p_accounting_line_code       => l_component_code
65469       ,p_accounting_line_type_code  => l_component_type_code
65470       ,p_accounting_line_appl_id    => l_component_appl_id
65471       ,p_amb_context_code           => l_amb_context_code
65472       ,p_entity_code                => l_entity_code
65473       ,p_event_class_code           => l_event_class_code);
65474    --
65475    -- set accounting class
65476    --
65477    xla_ae_lines_pkg.SetAcctClass(
65478            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
65479          , p_ae_header_id           => l_ae_header_id
65480          );
65481 
65482    --
65483    -- set rounding class
65484    --
65485    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65486                       'EXCHANGE_GAIN_LOSS';
65487 
65488    --
65489    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65490    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65491    --
65492    -- bulk performance
65493    --
65494    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65495 
65496    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65497       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65498 
65499    -- 4955764
65500    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65501       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65502 
65503    -- 4458381 Public Sector Enh
65504    
65505    --
65506    -- set accounting attributes for the line type
65507    --
65508    l_entered_amt_idx := NULL;
65512    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
65509    l_accted_amt_idx  := 10;
65510    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
65511    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65513    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
65514    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
65515    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
65516    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
65517    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65518    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
65519    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
65520    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
65521    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
65522    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
65523    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65524    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
65525    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
65526    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
65527    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
65528    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
65529    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
65530    l_rec_acct_attrs.array_num_value(10)  := p_source_150;
65531    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
65532    l_rec_acct_attrs.array_char_value(11)  := p_source_79;
65533    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
65534    l_rec_acct_attrs.array_num_value(12)  := p_source_109;
65535    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
65536    l_rec_acct_attrs.array_num_value(13)  := p_source_110;
65537    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
65538    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
65539    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
65540    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
65541    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
65542    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
65543    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
65544    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
65545    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
65546    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
65547    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
65548    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
65549 
65550    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65551    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65552 
65553    ---------------------------------------------------------------------------------------------------------------
65554    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65555    ---------------------------------------------------------------------------------------------------------------
65556    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65557 
65558    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65559    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65560 
65561    IF xla_accounting_cache_pkg.GetValueChar
65562          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65563          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65564    AND l_bflow_method_code = 'PRIOR_ENTRY'
65565 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65566    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65567          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65568        )
65569    THEN
65570          xla_ae_lines_pkg.BflowUpgEntry
65571            (p_business_method_code    => l_bflow_method_code
65572            ,p_business_class_code     => l_bflow_class_code
65573            ,p_balance_type            => l_balance_type_code);
65574    ELSE
65575       NULL;
65576 -- No business flow processing for business flow method of NONE.
65577    END IF;
65578 
65579    --
65580    -- call analytical criteria
65581    --
65582    
65583 
65584 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
65585 xla_ae_lines_pkg.SetAnalyticalCriteria(
65586    p_analytical_criterion_name    => 'Check Id'
65587  , p_analytical_criterion_owner   => 'S'
65588  , p_analytical_criterion_code    => 'CHECK_ID'
65589  , p_amb_context_code             => 'DEFAULT'
65590  , p_balancing_flag               => 'N'
65591  
65592  , p_analytical_detail_char_1    =>  NULL
65593  , p_analytical_detail_num_1     =>  p_source_112
65594  , p_analytical_detail_date_1    =>  NULL
65595 
65596  , p_ae_header_id                 => l_ae_header_id
65597 )
65598 ;
65599 --
65600 
65601    --
65602    -- call description
65603    --
65604    -- No description or it is inherited.
65605    --
65606    -- call ADRs
65607    -- Bug 4922099
65608    --
65609    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65610         (NVL(l_actual_upg_option, 'N') = 'O') OR
65611         (NVL(l_enc_upg_option, 'N') = 'O')
65612       )
65613    THEN
65617    
65614    NULL;
65615    --
65616    --
65618   l_ccid := AcctDerRule_37(
65619            p_application_id           => p_application_id
65620          , p_ae_header_id             => l_ae_header_id 
65621 , p_source_15 => p_source_15
65622 , p_source_15_meaning => p_source_15_meaning
65623 , p_source_30 => p_source_30
65624 , p_source_36 => p_source_36
65625 , p_source_37 => p_source_37
65626          , x_transaction_coa_id       => l_adr_transaction_coa_id
65627          , x_accounting_coa_id        => l_adr_accounting_coa_id
65628          , x_value_type_code          => l_adr_value_type_code
65629          , p_side                     => 'CREDIT'
65630    );
65631 
65632    xla_ae_lines_pkg.set_ccid(
65633     p_code_combination_id          => l_ccid
65634   , p_value_type_code              => l_adr_value_type_code
65635   , p_transaction_coa_id           => l_adr_transaction_coa_id
65636   , p_accounting_coa_id            => l_adr_accounting_coa_id
65637   , p_adr_code                     => 'AP_REAL_GAIN'
65638   , p_adr_type_code                => 'S'
65639   , p_component_type               => l_component_type
65640   , p_component_code               => l_component_code
65641   , p_component_type_code          => l_component_type_code
65642   , p_component_appl_id            => l_component_appl_id
65643   , p_amb_context_code             => l_amb_context_code
65644   , p_side                         => 'CREDIT'
65645   );
65646 
65647 
65648   l_ccid := AcctDerRule_38(
65649            p_application_id           => p_application_id
65650          , p_ae_header_id             => l_ae_header_id 
65651 , p_source_15 => p_source_15
65652 , p_source_15_meaning => p_source_15_meaning
65653 , p_source_30 => p_source_30
65654 , p_source_38 => p_source_38
65655 , p_source_39 => p_source_39
65656          , x_transaction_coa_id       => l_adr_transaction_coa_id
65657          , x_accounting_coa_id        => l_adr_accounting_coa_id
65658          , x_value_type_code          => l_adr_value_type_code
65659          , p_side                     => 'DEBIT'
65660    );
65661 
65662    xla_ae_lines_pkg.set_ccid(
65663     p_code_combination_id          => l_ccid
65664   , p_value_type_code              => l_adr_value_type_code
65665   , p_transaction_coa_id           => l_adr_transaction_coa_id
65666   , p_accounting_coa_id            => l_adr_accounting_coa_id
65667   , p_adr_code                     => 'AP_REAL_LOSS'
65668   , p_adr_type_code                => 'S'
65669   , p_component_type               => l_component_type
65670   , p_component_code               => l_component_code
65671   , p_component_type_code          => l_component_type_code
65672   , p_component_appl_id            => l_component_appl_id
65673   , p_amb_context_code             => l_amb_context_code
65674   , p_side                         => 'DEBIT'
65675   );
65676 
65677 
65678    l_segment := AcctDerRule_22(
65679            p_application_id           => p_application_id
65680          , p_ae_header_id             => l_ae_header_id 
65681 , p_source_15 => p_source_15
65682 , p_source_15_meaning => p_source_15_meaning
65683 , p_source_30 => p_source_30
65684          , x_transaction_coa_id       => l_adr_transaction_coa_id
65685          , x_accounting_coa_id        => l_adr_accounting_coa_id
65686          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65687          , x_flex_value_set_id        => l_adr_flex_value_set_id
65688          , x_value_type_code          => l_adr_value_type_code
65689          , x_value_combination_id     => l_adr_value_combination_id
65690          , x_value_segment_code       => l_adr_value_segment_code
65691          , p_side                     => 'ALL'
65692          , p_override_seg_flag        => 'Y'
65693    );
65694 
65695    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65696 
65697       xla_ae_lines_pkg.set_segment(
65698           p_to_segment_code         => 'GL_BALANCING'
65699         , p_segment_value           => l_segment
65700         , p_from_segment_code       => l_adr_value_segment_code
65701         , p_from_combination_id     => l_adr_value_combination_id
65702         , p_value_type_code         => l_adr_value_type_code
65703         , p_transaction_coa_id      => l_adr_transaction_coa_id
65704         , p_accounting_coa_id       => l_adr_accounting_coa_id
65705         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65706         , p_flex_value_set_id       => l_adr_flex_value_set_id
65707         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65708         , p_adr_type_code           => 'S'
65709         , p_component_type          => l_component_type
65710         , p_component_code          => l_component_code
65711         , p_component_type_code     => l_component_type_code
65712         , p_component_appl_id       => l_component_appl_id
65713         , p_amb_context_code        => l_amb_context_code
65714         , p_entity_code             => 'AP_PAYMENTS'
65715         , p_event_class_code        => 'PAYMENTS'
65716         , p_side                    => 'ALL'
65717         );
65718 
65719   END IF;
65720 
65721    l_segment := AcctDerRule_17(
65722            p_application_id           => p_application_id
65723          , p_ae_header_id             => l_ae_header_id 
65724 , p_source_15 => p_source_15
65725 , p_source_15_meaning => p_source_15_meaning
65726 , p_source_36 => p_source_36
65727 , p_source_37 => p_source_37
65731          , x_flex_value_set_id        => l_adr_flex_value_set_id
65728          , x_transaction_coa_id       => l_adr_transaction_coa_id
65729          , x_accounting_coa_id        => l_adr_accounting_coa_id
65730          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65732          , x_value_type_code          => l_adr_value_type_code
65733          , x_value_combination_id     => l_adr_value_combination_id
65734          , x_value_segment_code       => l_adr_value_segment_code
65735          , p_side                     => 'CREDIT'
65736          , p_override_seg_flag        => 'Y'
65737    );
65738 
65739    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65740 
65741       xla_ae_lines_pkg.set_segment(
65742           p_to_segment_code         => 'GL_ACCOUNT'
65743         , p_segment_value           => l_segment
65744         , p_from_segment_code       => l_adr_value_segment_code
65745         , p_from_combination_id     => l_adr_value_combination_id
65746         , p_value_type_code         => l_adr_value_type_code
65747         , p_transaction_coa_id      => l_adr_transaction_coa_id
65748         , p_accounting_coa_id       => l_adr_accounting_coa_id
65749         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65750         , p_flex_value_set_id       => l_adr_flex_value_set_id
65751         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65752         , p_adr_type_code           => 'S'
65753         , p_component_type          => l_component_type
65754         , p_component_code          => l_component_code
65755         , p_component_type_code     => l_component_type_code
65756         , p_component_appl_id       => l_component_appl_id
65757         , p_amb_context_code        => l_amb_context_code
65758         , p_entity_code             => 'AP_PAYMENTS'
65759         , p_event_class_code        => 'PAYMENTS'
65760         , p_side                    => 'CREDIT'
65761         );
65762 
65763   END IF;
65764 
65765    l_segment := AcctDerRule_18(
65766            p_application_id           => p_application_id
65767          , p_ae_header_id             => l_ae_header_id 
65768 , p_source_15 => p_source_15
65769 , p_source_15_meaning => p_source_15_meaning
65770 , p_source_38 => p_source_38
65771 , p_source_39 => p_source_39
65772          , x_transaction_coa_id       => l_adr_transaction_coa_id
65773          , x_accounting_coa_id        => l_adr_accounting_coa_id
65774          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65775          , x_flex_value_set_id        => l_adr_flex_value_set_id
65776          , x_value_type_code          => l_adr_value_type_code
65777          , x_value_combination_id     => l_adr_value_combination_id
65778          , x_value_segment_code       => l_adr_value_segment_code
65779          , p_side                     => 'DEBIT'
65780          , p_override_seg_flag        => 'Y'
65781    );
65782 
65783    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65784 
65785       xla_ae_lines_pkg.set_segment(
65786           p_to_segment_code         => 'GL_ACCOUNT'
65787         , p_segment_value           => l_segment
65788         , p_from_segment_code       => l_adr_value_segment_code
65789         , p_from_combination_id     => l_adr_value_combination_id
65790         , p_value_type_code         => l_adr_value_type_code
65791         , p_transaction_coa_id      => l_adr_transaction_coa_id
65792         , p_accounting_coa_id       => l_adr_accounting_coa_id
65793         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65794         , p_flex_value_set_id       => l_adr_flex_value_set_id
65795         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65796         , p_adr_type_code           => 'S'
65797         , p_component_type          => l_component_type
65798         , p_component_code          => l_component_code
65799         , p_component_type_code     => l_component_type_code
65800         , p_component_appl_id       => l_component_appl_id
65801         , p_amb_context_code        => l_amb_context_code
65802         , p_entity_code             => 'AP_PAYMENTS'
65803         , p_event_class_code        => 'PAYMENTS'
65804         , p_side                    => 'DEBIT'
65805         );
65806 
65807   END IF;
65808 
65809    --
65810    --
65811    END IF;
65812    --
65813    -- Bug 4922099
65814    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65815           (NVL(l_enc_upg_option, 'N') = 'O')
65816         ) AND
65817         (l_bflow_method_code = 'PRIOR_ENTRY')
65818       )
65819    THEN
65820       IF
65821       --
65822       1 = 2
65823       --
65824       THEN
65825       xla_accounting_err_pkg.build_message
65826                                     (p_appli_s_name            => 'XLA'
65827                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65828                                     ,p_token_1                 => 'LINE_NUMBER'
65829                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65830                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65831                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65832                                                                              l_component_type
65833                                                                             ,l_component_code
65834                                                                             ,l_component_type_code
65838                                                                             ,l_event_class_code
65835                                                                             ,l_component_appl_id
65836                                                                             ,l_amb_context_code
65837                                                                             ,l_entity_code
65839                                                                            )
65840                                     ,p_token_3                 => 'OWNER'
65841                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65842                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65843                                                                           ,p_lookup_code    => l_component_type_code
65844                                                                          )
65845                                     ,p_token_4                 => 'PRODUCT_NAME'
65846                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65847                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65848                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65849                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65850                                     ,p_ae_header_id            =>  NULL
65851                                        );
65852 
65853         IF (C_LEVEL_ERROR>= g_log_level) THEN
65854                  trace
65855                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65856                       ,p_level    => C_LEVEL_ERROR
65857                       ,p_module   => l_log_module);
65858         END IF;
65859       END IF;
65860    END IF;
65861    --
65862    --
65863    ------------------------------------------------------------------------------------------------
65864    -- 4219869 Business Flow
65865    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65866    -- Prior Entry.  Currently, the following code is always generated.
65867    ------------------------------------------------------------------------------------------------
65868    XLA_AE_LINES_PKG.ValidateCurrentLine;
65869 
65870    ------------------------------------------------------------------------------------
65871    -- 4219869 Business Flow
65872    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65873    ------------------------------------------------------------------------------------
65874    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65875 
65876    ----------------------------------------------------------------------------------
65877    -- 4219869 Business Flow
65878    -- Update journal entry status -- Need to generate this within IF <condition>
65879    ----------------------------------------------------------------------------------
65880    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65881          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65882          ,p_balance_type_code => l_balance_type_code
65883          );
65884 
65885    -------------------------------------------------------------------------------------------
65886    -- 4262811 - Generate the Accrual Reversal lines
65887    -------------------------------------------------------------------------------------------
65888    BEGIN
65889       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65890                               (g_array_event(p_event_id).array_value_num('header_index'));
65891       IF l_acc_rev_flag IS NULL THEN
65892          l_acc_rev_flag := 'N';
65893       END IF;
65894    EXCEPTION
65895       WHEN OTHERS THEN
65896          l_acc_rev_flag := 'N';
65897    END;
65898    --
65899    IF (l_acc_rev_flag = 'Y') THEN
65900 
65901        -- 4645092  ------------------------------------------------------------------------------
65902        -- To allow MPA report to determine if it should generate report process
65903        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65904        ------------------------------------------------------------------------------------------
65905 
65906        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65907        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65908    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65909    -- call ADRs
65910    -- Bug 4922099
65911    --
65912    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65913         (NVL(l_actual_upg_option, 'N') = 'O') OR
65914         (NVL(l_enc_upg_option, 'N') = 'O')
65915       )
65916    THEN
65917    NULL;
65918    --
65919    --
65920    
65921   l_ccid := AcctDerRule_37(
65922            p_application_id           => p_application_id
65923          , p_ae_header_id             => l_ae_header_id 
65924 , p_source_15 => p_source_15
65925 , p_source_15_meaning => p_source_15_meaning
65926 , p_source_30 => p_source_30
65927 , p_source_36 => p_source_36
65928 , p_source_37 => p_source_37
65929          , x_transaction_coa_id       => l_adr_transaction_coa_id
65930          , x_accounting_coa_id        => l_adr_accounting_coa_id
65931          , x_value_type_code          => l_adr_value_type_code
65932          , p_side                     => 'CREDIT'
65933    );
65934 
65935    xla_ae_lines_pkg.set_ccid(
65936     p_code_combination_id          => l_ccid
65940   , p_adr_code                     => 'AP_REAL_GAIN'
65937   , p_value_type_code              => l_adr_value_type_code
65938   , p_transaction_coa_id           => l_adr_transaction_coa_id
65939   , p_accounting_coa_id            => l_adr_accounting_coa_id
65941   , p_adr_type_code                => 'S'
65942   , p_component_type               => l_component_type
65943   , p_component_code               => l_component_code
65944   , p_component_type_code          => l_component_type_code
65945   , p_component_appl_id            => l_component_appl_id
65946   , p_amb_context_code             => l_amb_context_code
65947   , p_side                         => 'CREDIT'
65948   );
65949 
65950 
65951   l_ccid := AcctDerRule_38(
65952            p_application_id           => p_application_id
65953          , p_ae_header_id             => l_ae_header_id 
65954 , p_source_15 => p_source_15
65955 , p_source_15_meaning => p_source_15_meaning
65956 , p_source_30 => p_source_30
65957 , p_source_38 => p_source_38
65958 , p_source_39 => p_source_39
65959          , x_transaction_coa_id       => l_adr_transaction_coa_id
65960          , x_accounting_coa_id        => l_adr_accounting_coa_id
65961          , x_value_type_code          => l_adr_value_type_code
65962          , p_side                     => 'DEBIT'
65963    );
65964 
65965    xla_ae_lines_pkg.set_ccid(
65966     p_code_combination_id          => l_ccid
65967   , p_value_type_code              => l_adr_value_type_code
65968   , p_transaction_coa_id           => l_adr_transaction_coa_id
65969   , p_accounting_coa_id            => l_adr_accounting_coa_id
65970   , p_adr_code                     => 'AP_REAL_LOSS'
65971   , p_adr_type_code                => 'S'
65972   , p_component_type               => l_component_type
65973   , p_component_code               => l_component_code
65974   , p_component_type_code          => l_component_type_code
65975   , p_component_appl_id            => l_component_appl_id
65976   , p_amb_context_code             => l_amb_context_code
65977   , p_side                         => 'DEBIT'
65978   );
65979 
65980 
65981    l_segment := AcctDerRule_22(
65982            p_application_id           => p_application_id
65983          , p_ae_header_id             => l_ae_header_id 
65984 , p_source_15 => p_source_15
65985 , p_source_15_meaning => p_source_15_meaning
65986 , p_source_30 => p_source_30
65987          , x_transaction_coa_id       => l_adr_transaction_coa_id
65988          , x_accounting_coa_id        => l_adr_accounting_coa_id
65989          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65990          , x_flex_value_set_id        => l_adr_flex_value_set_id
65991          , x_value_type_code          => l_adr_value_type_code
65992          , x_value_combination_id     => l_adr_value_combination_id
65993          , x_value_segment_code       => l_adr_value_segment_code
65994          , p_side                     => 'ALL'
65995          , p_override_seg_flag        => 'Y'
65996    );
65997 
65998    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65999 
66000       xla_ae_lines_pkg.set_segment(
66001           p_to_segment_code         => 'GL_BALANCING'
66002         , p_segment_value           => l_segment
66003         , p_from_segment_code       => l_adr_value_segment_code
66004         , p_from_combination_id     => l_adr_value_combination_id
66005         , p_value_type_code         => l_adr_value_type_code
66006         , p_transaction_coa_id      => l_adr_transaction_coa_id
66007         , p_accounting_coa_id       => l_adr_accounting_coa_id
66008         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66009         , p_flex_value_set_id       => l_adr_flex_value_set_id
66010         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66011         , p_adr_type_code           => 'S'
66012         , p_component_type          => l_component_type
66013         , p_component_code          => l_component_code
66014         , p_component_type_code     => l_component_type_code
66015         , p_component_appl_id       => l_component_appl_id
66016         , p_amb_context_code        => l_amb_context_code
66017         , p_entity_code             => 'AP_PAYMENTS'
66018         , p_event_class_code        => 'PAYMENTS'
66019         , p_side                    => 'ALL'
66020         );
66021 
66022   END IF;
66023 
66024    l_segment := AcctDerRule_17(
66025            p_application_id           => p_application_id
66026          , p_ae_header_id             => l_ae_header_id 
66027 , p_source_15 => p_source_15
66028 , p_source_15_meaning => p_source_15_meaning
66029 , p_source_36 => p_source_36
66030 , p_source_37 => p_source_37
66031          , x_transaction_coa_id       => l_adr_transaction_coa_id
66032          , x_accounting_coa_id        => l_adr_accounting_coa_id
66033          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66034          , x_flex_value_set_id        => l_adr_flex_value_set_id
66035          , x_value_type_code          => l_adr_value_type_code
66036          , x_value_combination_id     => l_adr_value_combination_id
66037          , x_value_segment_code       => l_adr_value_segment_code
66038          , p_side                     => 'CREDIT'
66039          , p_override_seg_flag        => 'Y'
66040    );
66041 
66042    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66043 
66044       xla_ae_lines_pkg.set_segment(
66045           p_to_segment_code         => 'GL_ACCOUNT'
66046         , p_segment_value           => l_segment
66050         , p_transaction_coa_id      => l_adr_transaction_coa_id
66047         , p_from_segment_code       => l_adr_value_segment_code
66048         , p_from_combination_id     => l_adr_value_combination_id
66049         , p_value_type_code         => l_adr_value_type_code
66051         , p_accounting_coa_id       => l_adr_accounting_coa_id
66052         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66053         , p_flex_value_set_id       => l_adr_flex_value_set_id
66054         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66055         , p_adr_type_code           => 'S'
66056         , p_component_type          => l_component_type
66057         , p_component_code          => l_component_code
66058         , p_component_type_code     => l_component_type_code
66059         , p_component_appl_id       => l_component_appl_id
66060         , p_amb_context_code        => l_amb_context_code
66061         , p_entity_code             => 'AP_PAYMENTS'
66062         , p_event_class_code        => 'PAYMENTS'
66063         , p_side                    => 'CREDIT'
66064         );
66065 
66066   END IF;
66067 
66068    l_segment := AcctDerRule_18(
66069            p_application_id           => p_application_id
66070          , p_ae_header_id             => l_ae_header_id 
66071 , p_source_15 => p_source_15
66072 , p_source_15_meaning => p_source_15_meaning
66073 , p_source_38 => p_source_38
66074 , p_source_39 => p_source_39
66075          , x_transaction_coa_id       => l_adr_transaction_coa_id
66076          , x_accounting_coa_id        => l_adr_accounting_coa_id
66077          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66078          , x_flex_value_set_id        => l_adr_flex_value_set_id
66079          , x_value_type_code          => l_adr_value_type_code
66080          , x_value_combination_id     => l_adr_value_combination_id
66081          , x_value_segment_code       => l_adr_value_segment_code
66082          , p_side                     => 'DEBIT'
66083          , p_override_seg_flag        => 'Y'
66084    );
66085 
66086    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66087 
66088       xla_ae_lines_pkg.set_segment(
66089           p_to_segment_code         => 'GL_ACCOUNT'
66090         , p_segment_value           => l_segment
66091         , p_from_segment_code       => l_adr_value_segment_code
66092         , p_from_combination_id     => l_adr_value_combination_id
66093         , p_value_type_code         => l_adr_value_type_code
66094         , p_transaction_coa_id      => l_adr_transaction_coa_id
66095         , p_accounting_coa_id       => l_adr_accounting_coa_id
66096         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66097         , p_flex_value_set_id       => l_adr_flex_value_set_id
66098         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66099         , p_adr_type_code           => 'S'
66100         , p_component_type          => l_component_type
66101         , p_component_code          => l_component_code
66102         , p_component_type_code     => l_component_type_code
66103         , p_component_appl_id       => l_component_appl_id
66104         , p_amb_context_code        => l_amb_context_code
66105         , p_entity_code             => 'AP_PAYMENTS'
66106         , p_event_class_code        => 'PAYMENTS'
66107         , p_side                    => 'DEBIT'
66108         );
66109 
66110   END IF;
66111 
66112    --
66113    --
66114    END IF;
66115 
66116        --
66117        -- Update the line information that should be overwritten
66118        --
66119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66120                                          p_header_num   => 1);
66121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66122 
66123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66124 
66125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66127        END IF;
66128 
66129       --
66130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66131       --
66132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66134       ELSE
66135           ---------------------------------------------------------------------------------------------------
66136           -- 4262811a Switch Sign
66137           ---------------------------------------------------------------------------------------------------
66138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66143           -- 5132302
66144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66146 
66147       END IF;
66148 
66149       -- 4955764
66150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66154       XLA_AE_LINES_PKG.ValidateCurrentLine;
66151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66152 
66153 
66155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66156 
66157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66159                ,p_balance_type_code => l_balance_type_code);
66160 
66161    END IF;
66162 
66163    -----------------------------------------------------------------------------------------
66164    -- 4262811 Multiperiod Accounting
66165    -----------------------------------------------------------------------------------------
66166      -- No MPA option is assigned.
66167 
66168 
66169 END IF;
66170 END IF;
66171 --
66172 
66173 --
66174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66175    trace
66176       (p_msg      => 'END of AcctLineType_124'
66177       ,p_level    => C_LEVEL_PROCEDURE
66178       ,p_module   => l_log_module);
66179 END IF;
66180 --
66181 EXCEPTION
66182   WHEN xla_exceptions_pkg.application_exception THEN
66183       RAISE;
66184   WHEN OTHERS THEN
66185        xla_exceptions_pkg.raise_message
66186            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_124');
66187 END AcctLineType_124;
66188 --
66189 
66190 ---------------------------------------
66191 --
66192 -- PRIVATE FUNCTION
66193 --         AcctLineType_125
66194 --
66195 ---------------------------------------
66196 PROCEDURE AcctLineType_125 (
66197   p_application_id        IN NUMBER
66198  ,p_event_id              IN NUMBER
66199  ,p_calculate_acctd_flag  IN VARCHAR2
66200  ,p_calculate_g_l_flag    IN VARCHAR2
66201  ,p_actual_flag           IN OUT VARCHAR2
66202  ,p_balance_type_code     OUT VARCHAR2
66203  ,p_gain_or_loss_ref      OUT VARCHAR2
66204  
66205 --Automatic Offsets Value
66206  , p_source_15            IN VARCHAR2
66207  , p_source_15_meaning    IN VARCHAR2
66208 --Invoice Distribution Account
66209  , p_source_30            IN NUMBER
66210 --Internal Realized Gain Account
66211  , p_source_36            IN NUMBER
66212 --Bank Gain Account
66213  , p_source_37            IN NUMBER
66214 --Internal Realized Loss Account
66215  , p_source_38            IN NUMBER
66216 --Bank Loss Account
66217  , p_source_39            IN NUMBER
66218 --Accounting Reversal Indicator
66219  , p_source_52            IN VARCHAR2
66220 --Distribution Link Type
66221  , p_source_54            IN VARCHAR2
66222 --Override Accounted Amount Indicator
66223  , p_source_79            IN VARCHAR2
66224  , p_source_79_meaning    IN VARCHAR2
66225 --Third Party Type
66226  , p_source_82            IN VARCHAR2
66227 --Business Flow Accounts Payable Application Identifier
66228  , p_source_90            IN NUMBER
66229 --When to Account for Payment Option
66230  , p_source_96            IN VARCHAR2
66231 --Payment Distribution Type
66232  , p_source_97            IN VARCHAR2
66233  , p_source_97_meaning    IN VARCHAR2
66234 --Business Flow Payment Distribution Type
66235  , p_source_99            IN VARCHAR2
66236 --Business Flow Payment Entity Code
66237  , p_source_100            IN VARCHAR2
66238 --Business Flow Payment Distribution Identifier
66239  , p_source_101            IN NUMBER
66240 --Business Flow Payment Identifier
66241  , p_source_102            IN NUMBER
66242 --Payment Distribution Identifier
66243  , p_source_103            IN NUMBER
66244 --Payment Supplier Identifier
66245  , p_source_109            IN NUMBER
66246 --Payment Supplier Site Identifier
66247  , p_source_110            IN NUMBER
66248 --Payment Distribution Reversed Identifier
66249  , p_source_111            IN NUMBER
66250 --Payment Identifier
66251  , p_source_112            IN NUMBER
66252 --Payment Maturity Date
66253  , p_source_114            IN DATE
66254 --Payment/Maturity Ledger Amount Difference
66255  , p_source_151            IN NUMBER
66256 )
66257 IS
66258 
66259 l_component_type              VARCHAR2(80);
66260 l_component_code              VARCHAR2(30);
66261 l_component_type_code         VARCHAR2(1);
66262 l_component_appl_id           INTEGER;
66263 l_amb_context_code            VARCHAR2(30);
66264 l_entity_code                 VARCHAR2(30);
66265 l_event_class_code            VARCHAR2(30);
66266 l_ae_header_id                NUMBER;
66267 l_event_type_code             VARCHAR2(30);
66268 l_line_definition_code        VARCHAR2(30);
66269 l_line_definition_owner_code  VARCHAR2(1);
66270 --
66271 -- adr variables
66272 l_segment                     VARCHAR2(30);
66273 l_ccid                        NUMBER;
66274 l_adr_transaction_coa_id      NUMBER;
66275 l_adr_accounting_coa_id       NUMBER;
66276 l_adr_flexfield_segment_code  VARCHAR2(30);
66277 l_adr_flex_value_set_id       NUMBER;
66278 l_adr_value_type_code         VARCHAR2(30);
66279 l_adr_value_combination_id    NUMBER;
66280 l_adr_value_segment_code      VARCHAR2(30);
66281 
66282 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66283 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66284 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66285 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66286 
66290 l_acc_rev_flag                VARCHAR2(1);
66287 -- 4262811 Variables ------------------------------------------------------------------------------------------
66288 l_entered_amt_idx             NUMBER;
66289 l_accted_amt_idx              NUMBER;
66291 l_accrual_line_num            NUMBER;
66292 l_tmp_amt                     NUMBER;
66293 l_acc_rev_natural_side_code   VARCHAR2(1);
66294 
66295 l_num_entries                 NUMBER;
66296 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66297 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66298 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66299 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66300 l_recog_line_1                NUMBER;
66301 l_recog_line_2                NUMBER;
66302 
66303 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66304 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66305 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66306 
66307 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66308 
66309 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66310 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66311 
66312 ---------------------------------------------------------------------------------------------------------------
66313 
66314 
66315 --
66316 -- bulk performance
66317 --
66318 l_balance_type_code           VARCHAR2(1);
66319 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66320 l_log_module                  VARCHAR2(240);
66321 
66322 --
66323 -- Upgrade strategy
66324 --
66325 l_actual_upg_option           VARCHAR2(1);
66326 l_enc_upg_option           VARCHAR2(1);
66327 
66328 --
66329 BEGIN
66330 --
66331 IF g_log_enabled THEN
66332       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
66333 END IF;
66334 --
66335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66336 
66337       trace
66338          (p_msg      => 'BEGIN of AcctLineType_125'
66339          ,p_level    => C_LEVEL_PROCEDURE
66340          ,p_module   => l_log_module);
66341 
66342 END IF;
66343 --
66344 l_component_type             := 'AMB_JLT';
66345 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
66346 l_component_type_code        := 'S';
66347 l_component_appl_id          :=  200;
66348 l_amb_context_code           := 'DEFAULT';
66349 l_entity_code                := 'AP_PAYMENTS';
66350 l_event_class_code           := 'FUTURE DATED PAYMENTS';
66351 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
66352 l_line_definition_owner_code := 'S';
66353 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
66354 --
66355 l_balance_type_code          := 'A';
66356 l_segment                     := NULL;
66357 l_ccid                        := NULL;
66358 l_adr_transaction_coa_id      := NULL;
66359 l_adr_accounting_coa_id       := NULL;
66360 l_adr_flexfield_segment_code  := NULL;
66361 l_adr_flex_value_set_id       := NULL;
66362 l_adr_value_type_code         := NULL;
66363 l_adr_value_combination_id    := NULL;
66364 l_adr_value_segment_code      := NULL;
66365 
66366 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66367 l_bflow_class_code           := '';    -- 4219869 Business Flow
66368 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66369 l_budgetary_control_flag     := 'N';
66370 
66371 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66372 l_bflow_applied_to_amt       := NULL; -- 5132302
66373 l_entered_amt_idx            := NULL;          -- 4262811
66374 l_accted_amt_idx             := NULL;          -- 4262811
66375 l_acc_rev_flag               := NULL;          -- 4262811
66376 l_accrual_line_num           := NULL;          -- 4262811
66377 l_tmp_amt                    := NULL;          -- 4262811
66378 --
66379 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66380             (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
66381                return;
66382   END IF;
66383   
66384 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66385     l_balance_type_code <> 'B' THEN
66386 IF (NVL(p_source_96,'
66387 ') =  'ALWAYS_ALWAYS' OR 
66388 NVL(p_source_96,'
66389 ') =  'ALWAYS_ISSUE') AND 
66390 p_source_114 IS NOT NULL AND 
66391 NVL(p_source_97,'
66392 ') <>  'EXCHANGE RATE VARIANCE' AND 
66393 NVL(p_source_97,'
66394 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
66395 NVL(p_source_97,'
66396 ') <>  'BANK CHARGE' AND 
66397 NVL(p_source_97,'
66398 ') <>  'BANK ERROR'
66399  THEN 
66400 
66401    --
66402    XLA_AE_LINES_PKG.SetNewLine;
66403 
66404    p_balance_type_code          := l_balance_type_code;
66405    -- set the flag so later we will know whether the gain loss line needs to be created
66406    
66407    IF(l_balance_type_code = 'A' ) THEN
66408      p_actual_flag :='G';
66409    END IF;
66410 
66411    --
66412    -- bulk performance
66413    --
66414    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66418    --
66415                                       p_header_num   => 0); -- 4262811
66416    --
66417    -- set accounting line options
66419    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66420            p_natural_side_code          => 'G'
66421          , p_gain_or_loss_flag          => 'N'
66422          , p_gl_transfer_mode_code      => 'S'
66423          , p_acct_entry_type_code       => 'A'
66424          , p_switch_side_flag           => ''
66425          , p_merge_duplicate_code       => 'A'
66426          );
66427    --
66428    l_acc_rev_natural_side_code := 'C';  -- 4262811
66429    -- 
66430    --
66431    -- set accounting line type info
66432    --
66433    xla_ae_lines_pkg.SetAcctLineType
66434       (p_component_type             => l_component_type
66435       ,p_event_type_code            => l_event_type_code
66436       ,p_line_definition_owner_code => l_line_definition_owner_code
66437       ,p_line_definition_code       => l_line_definition_code
66438       ,p_accounting_line_code       => l_component_code
66439       ,p_accounting_line_type_code  => l_component_type_code
66440       ,p_accounting_line_appl_id    => l_component_appl_id
66441       ,p_amb_context_code           => l_amb_context_code
66442       ,p_entity_code                => l_entity_code
66443       ,p_event_class_code           => l_event_class_code);
66444    --
66445    -- set accounting class
66446    --
66447    xla_ae_lines_pkg.SetAcctClass(
66448            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
66449          , p_ae_header_id           => l_ae_header_id
66450          );
66451 
66452    --
66453    -- set rounding class
66454    --
66455    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66456                       'EXCHANGE_GAIN_LOSS';
66457 
66458    --
66459    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66460    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66461    --
66462    -- bulk performance
66463    --
66464    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66465 
66466    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66467       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66468 
66469    -- 4955764
66470    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66471       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66472 
66473    -- 4458381 Public Sector Enh
66474    
66475    --
66476    -- set accounting attributes for the line type
66477    --
66478    l_entered_amt_idx := NULL;
66479    l_accted_amt_idx  := 9;
66480    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
66481    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66482    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
66483    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
66484    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
66485    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66486    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
66487    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
66488    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
66489    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
66490    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
66491    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66492    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
66493    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
66494    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
66495    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
66496    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
66497    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
66498    l_rec_acct_attrs.array_num_value(9)  := p_source_151;
66499    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
66500    l_rec_acct_attrs.array_char_value(10)  := p_source_79;
66501    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
66502    l_rec_acct_attrs.array_num_value(11)  := p_source_109;
66503    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
66504    l_rec_acct_attrs.array_num_value(12)  := p_source_110;
66505    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
66506    l_rec_acct_attrs.array_char_value(13)  := p_source_82;
66507    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
66508    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_111);
66509    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
66510    l_rec_acct_attrs.array_char_value(15)  := p_source_54;
66511 
66512    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66513    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66514 
66515    ---------------------------------------------------------------------------------------------------------------
66516    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66517    ---------------------------------------------------------------------------------------------------------------
66518    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66519 
66523    IF xla_accounting_cache_pkg.GetValueChar
66520    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66521    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66522 
66524          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66525          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66526    AND l_bflow_method_code = 'PRIOR_ENTRY'
66527 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66528    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66529          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66530        )
66531    THEN
66532          xla_ae_lines_pkg.BflowUpgEntry
66533            (p_business_method_code    => l_bflow_method_code
66534            ,p_business_class_code     => l_bflow_class_code
66535            ,p_balance_type            => l_balance_type_code);
66536    ELSE
66537       NULL;
66538 -- No business flow processing for business flow method of NONE.
66539    END IF;
66540 
66541    --
66542    -- call analytical criteria
66543    --
66544    
66545 
66546 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
66547 xla_ae_lines_pkg.SetAnalyticalCriteria(
66548    p_analytical_criterion_name    => 'Check Id'
66549  , p_analytical_criterion_owner   => 'S'
66550  , p_analytical_criterion_code    => 'CHECK_ID'
66551  , p_amb_context_code             => 'DEFAULT'
66552  , p_balancing_flag               => 'N'
66553  
66554  , p_analytical_detail_char_1    =>  NULL
66555  , p_analytical_detail_num_1     =>  p_source_112
66556  , p_analytical_detail_date_1    =>  NULL
66557 
66558  , p_ae_header_id                 => l_ae_header_id
66559 )
66560 ;
66561 --
66562 
66563    --
66564    -- call description
66565    --
66566    -- No description or it is inherited.
66567    --
66568    -- call ADRs
66569    -- Bug 4922099
66570    --
66571    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66572         (NVL(l_actual_upg_option, 'N') = 'O') OR
66573         (NVL(l_enc_upg_option, 'N') = 'O')
66574       )
66575    THEN
66576    NULL;
66577    --
66578    --
66579    
66580   l_ccid := AcctDerRule_37(
66581            p_application_id           => p_application_id
66582          , p_ae_header_id             => l_ae_header_id 
66583 , p_source_15 => p_source_15
66584 , p_source_15_meaning => p_source_15_meaning
66585 , p_source_30 => p_source_30
66586 , p_source_36 => p_source_36
66587 , p_source_37 => p_source_37
66588          , x_transaction_coa_id       => l_adr_transaction_coa_id
66589          , x_accounting_coa_id        => l_adr_accounting_coa_id
66590          , x_value_type_code          => l_adr_value_type_code
66591          , p_side                     => 'CREDIT'
66592    );
66593 
66594    xla_ae_lines_pkg.set_ccid(
66595     p_code_combination_id          => l_ccid
66596   , p_value_type_code              => l_adr_value_type_code
66597   , p_transaction_coa_id           => l_adr_transaction_coa_id
66598   , p_accounting_coa_id            => l_adr_accounting_coa_id
66599   , p_adr_code                     => 'AP_REAL_GAIN'
66600   , p_adr_type_code                => 'S'
66601   , p_component_type               => l_component_type
66602   , p_component_code               => l_component_code
66603   , p_component_type_code          => l_component_type_code
66604   , p_component_appl_id            => l_component_appl_id
66605   , p_amb_context_code             => l_amb_context_code
66606   , p_side                         => 'CREDIT'
66607   );
66608 
66609 
66610   l_ccid := AcctDerRule_38(
66611            p_application_id           => p_application_id
66612          , p_ae_header_id             => l_ae_header_id 
66613 , p_source_15 => p_source_15
66614 , p_source_15_meaning => p_source_15_meaning
66615 , p_source_30 => p_source_30
66616 , p_source_38 => p_source_38
66617 , p_source_39 => p_source_39
66618          , x_transaction_coa_id       => l_adr_transaction_coa_id
66619          , x_accounting_coa_id        => l_adr_accounting_coa_id
66620          , x_value_type_code          => l_adr_value_type_code
66621          , p_side                     => 'DEBIT'
66622    );
66623 
66624    xla_ae_lines_pkg.set_ccid(
66625     p_code_combination_id          => l_ccid
66626   , p_value_type_code              => l_adr_value_type_code
66627   , p_transaction_coa_id           => l_adr_transaction_coa_id
66628   , p_accounting_coa_id            => l_adr_accounting_coa_id
66629   , p_adr_code                     => 'AP_REAL_LOSS'
66630   , p_adr_type_code                => 'S'
66631   , p_component_type               => l_component_type
66632   , p_component_code               => l_component_code
66633   , p_component_type_code          => l_component_type_code
66634   , p_component_appl_id            => l_component_appl_id
66635   , p_amb_context_code             => l_amb_context_code
66636   , p_side                         => 'DEBIT'
66637   );
66638 
66639 
66640    l_segment := AcctDerRule_22(
66641            p_application_id           => p_application_id
66642          , p_ae_header_id             => l_ae_header_id 
66643 , p_source_15 => p_source_15
66644 , p_source_15_meaning => p_source_15_meaning
66645 , p_source_30 => p_source_30
66646          , x_transaction_coa_id       => l_adr_transaction_coa_id
66647          , x_accounting_coa_id        => l_adr_accounting_coa_id
66651          , x_value_combination_id     => l_adr_value_combination_id
66648          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66649          , x_flex_value_set_id        => l_adr_flex_value_set_id
66650          , x_value_type_code          => l_adr_value_type_code
66652          , x_value_segment_code       => l_adr_value_segment_code
66653          , p_side                     => 'ALL'
66654          , p_override_seg_flag        => 'Y'
66655    );
66656 
66657    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66658 
66659       xla_ae_lines_pkg.set_segment(
66660           p_to_segment_code         => 'GL_BALANCING'
66661         , p_segment_value           => l_segment
66662         , p_from_segment_code       => l_adr_value_segment_code
66663         , p_from_combination_id     => l_adr_value_combination_id
66664         , p_value_type_code         => l_adr_value_type_code
66665         , p_transaction_coa_id      => l_adr_transaction_coa_id
66666         , p_accounting_coa_id       => l_adr_accounting_coa_id
66667         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66668         , p_flex_value_set_id       => l_adr_flex_value_set_id
66669         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66670         , p_adr_type_code           => 'S'
66671         , p_component_type          => l_component_type
66672         , p_component_code          => l_component_code
66673         , p_component_type_code     => l_component_type_code
66674         , p_component_appl_id       => l_component_appl_id
66675         , p_amb_context_code        => l_amb_context_code
66676         , p_entity_code             => 'AP_PAYMENTS'
66677         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66678         , p_side                    => 'ALL'
66679         );
66680 
66681   END IF;
66682 
66683    l_segment := AcctDerRule_17(
66684            p_application_id           => p_application_id
66685          , p_ae_header_id             => l_ae_header_id 
66686 , p_source_15 => p_source_15
66687 , p_source_15_meaning => p_source_15_meaning
66688 , p_source_36 => p_source_36
66689 , p_source_37 => p_source_37
66690          , x_transaction_coa_id       => l_adr_transaction_coa_id
66691          , x_accounting_coa_id        => l_adr_accounting_coa_id
66692          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66693          , x_flex_value_set_id        => l_adr_flex_value_set_id
66694          , x_value_type_code          => l_adr_value_type_code
66695          , x_value_combination_id     => l_adr_value_combination_id
66696          , x_value_segment_code       => l_adr_value_segment_code
66697          , p_side                     => 'CREDIT'
66698          , p_override_seg_flag        => 'Y'
66699    );
66700 
66701    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66702 
66703       xla_ae_lines_pkg.set_segment(
66704           p_to_segment_code         => 'GL_ACCOUNT'
66705         , p_segment_value           => l_segment
66706         , p_from_segment_code       => l_adr_value_segment_code
66707         , p_from_combination_id     => l_adr_value_combination_id
66708         , p_value_type_code         => l_adr_value_type_code
66709         , p_transaction_coa_id      => l_adr_transaction_coa_id
66710         , p_accounting_coa_id       => l_adr_accounting_coa_id
66711         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66712         , p_flex_value_set_id       => l_adr_flex_value_set_id
66713         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66714         , p_adr_type_code           => 'S'
66715         , p_component_type          => l_component_type
66716         , p_component_code          => l_component_code
66717         , p_component_type_code     => l_component_type_code
66718         , p_component_appl_id       => l_component_appl_id
66719         , p_amb_context_code        => l_amb_context_code
66720         , p_entity_code             => 'AP_PAYMENTS'
66721         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66722         , p_side                    => 'CREDIT'
66723         );
66724 
66725   END IF;
66726 
66727    l_segment := AcctDerRule_18(
66728            p_application_id           => p_application_id
66729          , p_ae_header_id             => l_ae_header_id 
66730 , p_source_15 => p_source_15
66731 , p_source_15_meaning => p_source_15_meaning
66732 , p_source_38 => p_source_38
66733 , p_source_39 => p_source_39
66734          , x_transaction_coa_id       => l_adr_transaction_coa_id
66735          , x_accounting_coa_id        => l_adr_accounting_coa_id
66736          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66737          , x_flex_value_set_id        => l_adr_flex_value_set_id
66738          , x_value_type_code          => l_adr_value_type_code
66739          , x_value_combination_id     => l_adr_value_combination_id
66740          , x_value_segment_code       => l_adr_value_segment_code
66741          , p_side                     => 'DEBIT'
66742          , p_override_seg_flag        => 'Y'
66743    );
66744 
66745    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66746 
66747       xla_ae_lines_pkg.set_segment(
66748           p_to_segment_code         => 'GL_ACCOUNT'
66749         , p_segment_value           => l_segment
66750         , p_from_segment_code       => l_adr_value_segment_code
66751         , p_from_combination_id     => l_adr_value_combination_id
66752         , p_value_type_code         => l_adr_value_type_code
66753         , p_transaction_coa_id      => l_adr_transaction_coa_id
66757         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66754         , p_accounting_coa_id       => l_adr_accounting_coa_id
66755         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66756         , p_flex_value_set_id       => l_adr_flex_value_set_id
66758         , p_adr_type_code           => 'S'
66759         , p_component_type          => l_component_type
66760         , p_component_code          => l_component_code
66761         , p_component_type_code     => l_component_type_code
66762         , p_component_appl_id       => l_component_appl_id
66763         , p_amb_context_code        => l_amb_context_code
66764         , p_entity_code             => 'AP_PAYMENTS'
66765         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66766         , p_side                    => 'DEBIT'
66767         );
66768 
66769   END IF;
66770 
66771    --
66772    --
66773    END IF;
66774    --
66775    -- Bug 4922099
66776    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66777           (NVL(l_enc_upg_option, 'N') = 'O')
66778         ) AND
66779         (l_bflow_method_code = 'PRIOR_ENTRY')
66780       )
66781    THEN
66782       IF
66783       --
66784       1 = 2
66785       --
66786       THEN
66787       xla_accounting_err_pkg.build_message
66788                                     (p_appli_s_name            => 'XLA'
66789                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66790                                     ,p_token_1                 => 'LINE_NUMBER'
66791                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66792                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66793                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66794                                                                              l_component_type
66795                                                                             ,l_component_code
66796                                                                             ,l_component_type_code
66797                                                                             ,l_component_appl_id
66798                                                                             ,l_amb_context_code
66799                                                                             ,l_entity_code
66800                                                                             ,l_event_class_code
66801                                                                            )
66802                                     ,p_token_3                 => 'OWNER'
66803                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66804                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66805                                                                           ,p_lookup_code    => l_component_type_code
66806                                                                          )
66807                                     ,p_token_4                 => 'PRODUCT_NAME'
66808                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66809                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66810                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66811                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66812                                     ,p_ae_header_id            =>  NULL
66813                                        );
66814 
66815         IF (C_LEVEL_ERROR>= g_log_level) THEN
66816                  trace
66817                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66818                       ,p_level    => C_LEVEL_ERROR
66819                       ,p_module   => l_log_module);
66820         END IF;
66821       END IF;
66822    END IF;
66823    --
66824    --
66825    ------------------------------------------------------------------------------------------------
66826    -- 4219869 Business Flow
66827    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66828    -- Prior Entry.  Currently, the following code is always generated.
66829    ------------------------------------------------------------------------------------------------
66830    XLA_AE_LINES_PKG.ValidateCurrentLine;
66831 
66832    ------------------------------------------------------------------------------------
66833    -- 4219869 Business Flow
66834    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66835    ------------------------------------------------------------------------------------
66836    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66837 
66838    ----------------------------------------------------------------------------------
66839    -- 4219869 Business Flow
66840    -- Update journal entry status -- Need to generate this within IF <condition>
66841    ----------------------------------------------------------------------------------
66842    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66843          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66844          ,p_balance_type_code => l_balance_type_code
66845          );
66846 
66847    -------------------------------------------------------------------------------------------
66848    -- 4262811 - Generate the Accrual Reversal lines
66849    -------------------------------------------------------------------------------------------
66853       IF l_acc_rev_flag IS NULL THEN
66850    BEGIN
66851       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66852                               (g_array_event(p_event_id).array_value_num('header_index'));
66854          l_acc_rev_flag := 'N';
66855       END IF;
66856    EXCEPTION
66857       WHEN OTHERS THEN
66858          l_acc_rev_flag := 'N';
66859    END;
66860    --
66861    IF (l_acc_rev_flag = 'Y') THEN
66862 
66863        -- 4645092  ------------------------------------------------------------------------------
66864        -- To allow MPA report to determine if it should generate report process
66865        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66866        ------------------------------------------------------------------------------------------
66867 
66868        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66869        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66870    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66871    -- call ADRs
66872    -- Bug 4922099
66873    --
66874    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66875         (NVL(l_actual_upg_option, 'N') = 'O') OR
66876         (NVL(l_enc_upg_option, 'N') = 'O')
66877       )
66878    THEN
66879    NULL;
66880    --
66881    --
66882    
66883   l_ccid := AcctDerRule_37(
66884            p_application_id           => p_application_id
66885          , p_ae_header_id             => l_ae_header_id 
66886 , p_source_15 => p_source_15
66887 , p_source_15_meaning => p_source_15_meaning
66888 , p_source_30 => p_source_30
66889 , p_source_36 => p_source_36
66890 , p_source_37 => p_source_37
66891          , x_transaction_coa_id       => l_adr_transaction_coa_id
66892          , x_accounting_coa_id        => l_adr_accounting_coa_id
66893          , x_value_type_code          => l_adr_value_type_code
66894          , p_side                     => 'CREDIT'
66895    );
66896 
66897    xla_ae_lines_pkg.set_ccid(
66898     p_code_combination_id          => l_ccid
66899   , p_value_type_code              => l_adr_value_type_code
66900   , p_transaction_coa_id           => l_adr_transaction_coa_id
66901   , p_accounting_coa_id            => l_adr_accounting_coa_id
66902   , p_adr_code                     => 'AP_REAL_GAIN'
66903   , p_adr_type_code                => 'S'
66904   , p_component_type               => l_component_type
66905   , p_component_code               => l_component_code
66906   , p_component_type_code          => l_component_type_code
66907   , p_component_appl_id            => l_component_appl_id
66908   , p_amb_context_code             => l_amb_context_code
66909   , p_side                         => 'CREDIT'
66910   );
66911 
66912 
66913   l_ccid := AcctDerRule_38(
66914            p_application_id           => p_application_id
66915          , p_ae_header_id             => l_ae_header_id 
66916 , p_source_15 => p_source_15
66917 , p_source_15_meaning => p_source_15_meaning
66918 , p_source_30 => p_source_30
66919 , p_source_38 => p_source_38
66920 , p_source_39 => p_source_39
66921          , x_transaction_coa_id       => l_adr_transaction_coa_id
66922          , x_accounting_coa_id        => l_adr_accounting_coa_id
66923          , x_value_type_code          => l_adr_value_type_code
66924          , p_side                     => 'DEBIT'
66925    );
66926 
66927    xla_ae_lines_pkg.set_ccid(
66928     p_code_combination_id          => l_ccid
66929   , p_value_type_code              => l_adr_value_type_code
66930   , p_transaction_coa_id           => l_adr_transaction_coa_id
66931   , p_accounting_coa_id            => l_adr_accounting_coa_id
66932   , p_adr_code                     => 'AP_REAL_LOSS'
66933   , p_adr_type_code                => 'S'
66934   , p_component_type               => l_component_type
66935   , p_component_code               => l_component_code
66936   , p_component_type_code          => l_component_type_code
66937   , p_component_appl_id            => l_component_appl_id
66938   , p_amb_context_code             => l_amb_context_code
66939   , p_side                         => 'DEBIT'
66940   );
66941 
66942 
66943    l_segment := AcctDerRule_22(
66944            p_application_id           => p_application_id
66945          , p_ae_header_id             => l_ae_header_id 
66946 , p_source_15 => p_source_15
66947 , p_source_15_meaning => p_source_15_meaning
66948 , p_source_30 => p_source_30
66949          , x_transaction_coa_id       => l_adr_transaction_coa_id
66950          , x_accounting_coa_id        => l_adr_accounting_coa_id
66951          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66952          , x_flex_value_set_id        => l_adr_flex_value_set_id
66953          , x_value_type_code          => l_adr_value_type_code
66954          , x_value_combination_id     => l_adr_value_combination_id
66955          , x_value_segment_code       => l_adr_value_segment_code
66956          , p_side                     => 'ALL'
66957          , p_override_seg_flag        => 'Y'
66958    );
66959 
66960    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66961 
66962       xla_ae_lines_pkg.set_segment(
66963           p_to_segment_code         => 'GL_BALANCING'
66964         , p_segment_value           => l_segment
66965         , p_from_segment_code       => l_adr_value_segment_code
66966         , p_from_combination_id     => l_adr_value_combination_id
66970         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66967         , p_value_type_code         => l_adr_value_type_code
66968         , p_transaction_coa_id      => l_adr_transaction_coa_id
66969         , p_accounting_coa_id       => l_adr_accounting_coa_id
66971         , p_flex_value_set_id       => l_adr_flex_value_set_id
66972         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66973         , p_adr_type_code           => 'S'
66974         , p_component_type          => l_component_type
66975         , p_component_code          => l_component_code
66976         , p_component_type_code     => l_component_type_code
66977         , p_component_appl_id       => l_component_appl_id
66978         , p_amb_context_code        => l_amb_context_code
66979         , p_entity_code             => 'AP_PAYMENTS'
66980         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66981         , p_side                    => 'ALL'
66982         );
66983 
66984   END IF;
66985 
66986    l_segment := AcctDerRule_17(
66987            p_application_id           => p_application_id
66988          , p_ae_header_id             => l_ae_header_id 
66989 , p_source_15 => p_source_15
66990 , p_source_15_meaning => p_source_15_meaning
66991 , p_source_36 => p_source_36
66992 , p_source_37 => p_source_37
66993          , x_transaction_coa_id       => l_adr_transaction_coa_id
66994          , x_accounting_coa_id        => l_adr_accounting_coa_id
66995          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66996          , x_flex_value_set_id        => l_adr_flex_value_set_id
66997          , x_value_type_code          => l_adr_value_type_code
66998          , x_value_combination_id     => l_adr_value_combination_id
66999          , x_value_segment_code       => l_adr_value_segment_code
67000          , p_side                     => 'CREDIT'
67001          , p_override_seg_flag        => 'Y'
67002    );
67003 
67004    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67005 
67006       xla_ae_lines_pkg.set_segment(
67007           p_to_segment_code         => 'GL_ACCOUNT'
67008         , p_segment_value           => l_segment
67009         , p_from_segment_code       => l_adr_value_segment_code
67010         , p_from_combination_id     => l_adr_value_combination_id
67011         , p_value_type_code         => l_adr_value_type_code
67012         , p_transaction_coa_id      => l_adr_transaction_coa_id
67013         , p_accounting_coa_id       => l_adr_accounting_coa_id
67014         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67015         , p_flex_value_set_id       => l_adr_flex_value_set_id
67016         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67017         , p_adr_type_code           => 'S'
67018         , p_component_type          => l_component_type
67019         , p_component_code          => l_component_code
67020         , p_component_type_code     => l_component_type_code
67021         , p_component_appl_id       => l_component_appl_id
67022         , p_amb_context_code        => l_amb_context_code
67023         , p_entity_code             => 'AP_PAYMENTS'
67024         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67025         , p_side                    => 'CREDIT'
67026         );
67027 
67028   END IF;
67029 
67030    l_segment := AcctDerRule_18(
67031            p_application_id           => p_application_id
67032          , p_ae_header_id             => l_ae_header_id 
67033 , p_source_15 => p_source_15
67034 , p_source_15_meaning => p_source_15_meaning
67035 , p_source_38 => p_source_38
67036 , p_source_39 => p_source_39
67037          , x_transaction_coa_id       => l_adr_transaction_coa_id
67038          , x_accounting_coa_id        => l_adr_accounting_coa_id
67039          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67040          , x_flex_value_set_id        => l_adr_flex_value_set_id
67041          , x_value_type_code          => l_adr_value_type_code
67042          , x_value_combination_id     => l_adr_value_combination_id
67043          , x_value_segment_code       => l_adr_value_segment_code
67044          , p_side                     => 'DEBIT'
67045          , p_override_seg_flag        => 'Y'
67046    );
67047 
67048    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67049 
67050       xla_ae_lines_pkg.set_segment(
67051           p_to_segment_code         => 'GL_ACCOUNT'
67052         , p_segment_value           => l_segment
67053         , p_from_segment_code       => l_adr_value_segment_code
67054         , p_from_combination_id     => l_adr_value_combination_id
67055         , p_value_type_code         => l_adr_value_type_code
67056         , p_transaction_coa_id      => l_adr_transaction_coa_id
67057         , p_accounting_coa_id       => l_adr_accounting_coa_id
67058         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67059         , p_flex_value_set_id       => l_adr_flex_value_set_id
67060         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67061         , p_adr_type_code           => 'S'
67062         , p_component_type          => l_component_type
67063         , p_component_code          => l_component_code
67064         , p_component_type_code     => l_component_type_code
67065         , p_component_appl_id       => l_component_appl_id
67066         , p_amb_context_code        => l_amb_context_code
67067         , p_entity_code             => 'AP_PAYMENTS'
67068         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
67069         , p_side                    => 'DEBIT'
67073 
67070         );
67071 
67072   END IF;
67074    --
67075    --
67076    END IF;
67077 
67078        --
67079        -- Update the line information that should be overwritten
67080        --
67081        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67082                                          p_header_num   => 1);
67083        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67084 
67085        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67086 
67087        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67088           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67089        END IF;
67090 
67091       --
67092       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67093       --
67094       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67095           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67096       ELSE
67097           ---------------------------------------------------------------------------------------------------
67098           -- 4262811a Switch Sign
67099           ---------------------------------------------------------------------------------------------------
67100           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67101           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67102                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67103           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67104                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67105           -- 5132302
67106           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67107                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67108 
67109       END IF;
67110 
67111       -- 4955764
67112       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67113       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67114 
67115 
67116       XLA_AE_LINES_PKG.ValidateCurrentLine;
67117       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67118 
67119       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67120                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67121                ,p_balance_type_code => l_balance_type_code);
67122 
67123    END IF;
67124 
67125    -----------------------------------------------------------------------------------------
67126    -- 4262811 Multiperiod Accounting
67127    -----------------------------------------------------------------------------------------
67128      -- No MPA option is assigned.
67129 
67130 
67131 END IF;
67132 END IF;
67133 --
67134 
67135 --
67136 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67137    trace
67138       (p_msg      => 'END of AcctLineType_125'
67139       ,p_level    => C_LEVEL_PROCEDURE
67140       ,p_module   => l_log_module);
67141 END IF;
67142 --
67143 EXCEPTION
67144   WHEN xla_exceptions_pkg.application_exception THEN
67145       RAISE;
67146   WHEN OTHERS THEN
67147        xla_exceptions_pkg.raise_message
67148            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_125');
67149 END AcctLineType_125;
67150 --
67151 
67152 ---------------------------------------
67153 --
67154 -- PRIVATE FUNCTION
67155 --         AcctLineType_126
67156 --
67157 ---------------------------------------
67158 PROCEDURE AcctLineType_126 (
67159   p_application_id        IN NUMBER
67160  ,p_event_id              IN NUMBER
67161  ,p_calculate_acctd_flag  IN VARCHAR2
67162  ,p_calculate_g_l_flag    IN VARCHAR2
67163  ,p_actual_flag           IN OUT VARCHAR2
67164  ,p_balance_type_code     OUT VARCHAR2
67165  ,p_gain_or_loss_ref      OUT VARCHAR2
67166  
67167 --Automatic Offsets Value
67168  , p_source_15            IN VARCHAR2
67169  , p_source_15_meaning    IN VARCHAR2
67170 --Invoice Distribution Account
67171  , p_source_30            IN NUMBER
67172 --Internal Realized Gain Account
67173  , p_source_36            IN NUMBER
67174 --Bank Gain Account
67175  , p_source_37            IN NUMBER
67176 --Internal Realized Loss Account
67177  , p_source_38            IN NUMBER
67178 --Bank Loss Account
67179  , p_source_39            IN NUMBER
67180 --Accounting Reversal Indicator
67181  , p_source_52            IN VARCHAR2
67182 --Distribution Link Type
67183  , p_source_54            IN VARCHAR2
67184 --Invoice Identifier
67185  , p_source_57            IN NUMBER
67186 --Payables Encumbrance Upgrade Credit Account
67187  , p_source_64            IN NUMBER
67188 --Payables Encumbrance Upgrade Credit Amount
67189  , p_source_65            IN NUMBER
67190 --Invoice Currency Code
67191  , p_source_66            IN VARCHAR2
67192 --Payables Encumbrance Upgrade Credit Base Amount
67193  , p_source_67            IN NUMBER
67194 --Payables Encumbrance Upgrade Debit Account
67195  , p_source_68            IN NUMBER
67196 --Payables Encumbrance Upgrade Debit Amount
67197  , p_source_69            IN NUMBER
67201  , p_source_71            IN VARCHAR2
67198 --Payables Encumbrance Upgrade Debit Base Amount
67199  , p_source_70            IN NUMBER
67200 --Payables Encumbrance Upgrade Option
67202 --Deferred Accounting End Date
67203  , p_source_76            IN DATE
67204 --Deferred Accounting Option
67205  , p_source_77            IN VARCHAR2
67206 --Deferred Accounting Start Date
67207  , p_source_78            IN DATE
67208 --Override Accounted Amount Indicator
67209  , p_source_79            IN VARCHAR2
67210  , p_source_79_meaning    IN VARCHAR2
67211 --Invoice Supplier Identifier
67212  , p_source_80            IN NUMBER
67213 --Invoice Supplier Site Identifier
67214  , p_source_81            IN NUMBER
67215 --Third Party Type
67216  , p_source_82            IN VARCHAR2
67217 --Invoice Distribution Tax Line Identifier
67218  , p_source_85            IN NUMBER
67219 --Invoice Distribution Tax Distribution Identifier from Tax
67220  , p_source_86            IN NUMBER
67221 --Invoice Distribution Summary Tax Line Identifier
67222  , p_source_87            IN NUMBER
67223 --Payables Upgrade Credit Encumbrance Type Identifier
67224  , p_source_88            IN NUMBER
67225 --Payables Upgrade Debit Encumbrance Type Identifier
67226  , p_source_89            IN NUMBER
67227 --Business Flow Accounts Payable Application Identifier
67228  , p_source_90            IN NUMBER
67229 --Prepayment Application Distribution Identifier
67230  , p_source_127            IN NUMBER
67231 --Upgrade Encumbrance Credit Account Class
67232  , p_source_130            IN VARCHAR2
67233 --Upgrade Encumbrance Debit Account Class
67234  , p_source_131            IN VARCHAR2
67235 --Identifier of the Prepayment Application Reversed
67236  , p_source_134            IN NUMBER
67237 --Business Flow Prepayment Invoice Distribution Type
67238  , p_source_139            IN VARCHAR2
67239 --Business Flow Prepayment Invoice Entity Code
67240  , p_source_140            IN VARCHAR2
67241 --Business Flow Prepayment Invoice Distribution Identifier
67242  , p_source_141            IN NUMBER
67243 --Business Flow Prepayment Invoice Identifier
67244  , p_source_142            IN NUMBER
67245 --Prepayment Distribution Type
67246  , p_source_143            IN VARCHAR2
67247 --Prepayment/Invoice Ledger Amount Difference
67248  , p_source_152            IN NUMBER
67249 )
67250 IS
67251 
67252 l_component_type              VARCHAR2(80);
67253 l_component_code              VARCHAR2(30);
67254 l_component_type_code         VARCHAR2(1);
67255 l_component_appl_id           INTEGER;
67256 l_amb_context_code            VARCHAR2(30);
67257 l_entity_code                 VARCHAR2(30);
67258 l_event_class_code            VARCHAR2(30);
67259 l_ae_header_id                NUMBER;
67260 l_event_type_code             VARCHAR2(30);
67261 l_line_definition_code        VARCHAR2(30);
67262 l_line_definition_owner_code  VARCHAR2(1);
67263 --
67264 -- adr variables
67265 l_segment                     VARCHAR2(30);
67266 l_ccid                        NUMBER;
67267 l_adr_transaction_coa_id      NUMBER;
67268 l_adr_accounting_coa_id       NUMBER;
67269 l_adr_flexfield_segment_code  VARCHAR2(30);
67270 l_adr_flex_value_set_id       NUMBER;
67271 l_adr_value_type_code         VARCHAR2(30);
67272 l_adr_value_combination_id    NUMBER;
67273 l_adr_value_segment_code      VARCHAR2(30);
67274 
67275 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67276 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67277 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67278 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67279 
67280 -- 4262811 Variables ------------------------------------------------------------------------------------------
67281 l_entered_amt_idx             NUMBER;
67282 l_accted_amt_idx              NUMBER;
67283 l_acc_rev_flag                VARCHAR2(1);
67284 l_accrual_line_num            NUMBER;
67285 l_tmp_amt                     NUMBER;
67286 l_acc_rev_natural_side_code   VARCHAR2(1);
67287 
67288 l_num_entries                 NUMBER;
67289 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67290 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67291 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67292 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67293 l_recog_line_1                NUMBER;
67294 l_recog_line_2                NUMBER;
67295 
67296 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67297 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67298 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67299 
67300 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67301 
67302 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67303 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67304 
67305 ---------------------------------------------------------------------------------------------------------------
67306 
67307 
67308 --
67309 -- bulk performance
67310 --
67311 l_balance_type_code           VARCHAR2(1);
67312 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67313 l_log_module                  VARCHAR2(240);
67314 
67315 --
67316 -- Upgrade strategy
67317 --
67318 l_actual_upg_option           VARCHAR2(1);
67319 l_enc_upg_option           VARCHAR2(1);
67320 
67321 --
67325       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
67322 BEGIN
67323 --
67324 IF g_log_enabled THEN
67326 END IF;
67327 --
67328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67329 
67330       trace
67331          (p_msg      => 'BEGIN of AcctLineType_126'
67332          ,p_level    => C_LEVEL_PROCEDURE
67333          ,p_module   => l_log_module);
67334 
67335 END IF;
67336 --
67337 l_component_type             := 'AMB_JLT';
67338 l_component_code             := 'AP_GAIN_LOSS_PREPAY_APP';
67339 l_component_type_code        := 'S';
67340 l_component_appl_id          :=  200;
67341 l_amb_context_code           := 'DEFAULT';
67342 l_entity_code                := 'AP_INVOICES';
67343 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
67344 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
67345 l_line_definition_owner_code := 'S';
67346 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
67347 --
67348 l_balance_type_code          := 'A';
67349 l_segment                     := NULL;
67350 l_ccid                        := NULL;
67351 l_adr_transaction_coa_id      := NULL;
67352 l_adr_accounting_coa_id       := NULL;
67353 l_adr_flexfield_segment_code  := NULL;
67354 l_adr_flex_value_set_id       := NULL;
67355 l_adr_value_type_code         := NULL;
67356 l_adr_value_combination_id    := NULL;
67357 l_adr_value_segment_code      := NULL;
67358 
67359 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67360 l_bflow_class_code           := '';    -- 4219869 Business Flow
67361 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67362 l_budgetary_control_flag     := 'N';
67363 
67364 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67365 l_bflow_applied_to_amt       := NULL; -- 5132302
67366 l_entered_amt_idx            := NULL;          -- 4262811
67367 l_accted_amt_idx             := NULL;          -- 4262811
67368 l_acc_rev_flag               := NULL;          -- 4262811
67369 l_accrual_line_num           := NULL;          -- 4262811
67370 l_tmp_amt                    := NULL;          -- 4262811
67371 --
67372 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67373             (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
67374                return;
67375   END IF;
67376   
67377 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67378     l_balance_type_code <> 'B' THEN
67379 IF NVL(p_source_143,'
67380 ') =  'PREPAY APPL'
67381  THEN 
67382 
67383    --
67384    XLA_AE_LINES_PKG.SetNewLine;
67385 
67386    p_balance_type_code          := l_balance_type_code;
67387    -- set the flag so later we will know whether the gain loss line needs to be created
67388    
67389    IF(l_balance_type_code = 'A' ) THEN
67390      p_actual_flag :='G';
67391    END IF;
67392 
67393    --
67394    -- bulk performance
67395    --
67396    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67397                                       p_header_num   => 0); -- 4262811
67398    --
67399    -- set accounting line options
67400    --
67401    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67402            p_natural_side_code          => 'G'
67403          , p_gain_or_loss_flag          => 'N'
67404          , p_gl_transfer_mode_code      => 'S'
67405          , p_acct_entry_type_code       => 'A'
67406          , p_switch_side_flag           => ''
67407          , p_merge_duplicate_code       => 'A'
67408          );
67409    --
67410    l_acc_rev_natural_side_code := 'C';  -- 4262811
67411    -- 
67412    --
67413    -- set accounting line type info
67414    --
67415    xla_ae_lines_pkg.SetAcctLineType
67416       (p_component_type             => l_component_type
67417       ,p_event_type_code            => l_event_type_code
67418       ,p_line_definition_owner_code => l_line_definition_owner_code
67419       ,p_line_definition_code       => l_line_definition_code
67420       ,p_accounting_line_code       => l_component_code
67421       ,p_accounting_line_type_code  => l_component_type_code
67422       ,p_accounting_line_appl_id    => l_component_appl_id
67423       ,p_amb_context_code           => l_amb_context_code
67424       ,p_entity_code                => l_entity_code
67425       ,p_event_class_code           => l_event_class_code);
67426    --
67427    -- set accounting class
67428    --
67429    xla_ae_lines_pkg.SetAcctClass(
67430            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
67431          , p_ae_header_id           => l_ae_header_id
67432          );
67433 
67434    --
67435    -- set rounding class
67436    --
67437    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67438                       'EXCHANGE_GAIN_LOSS';
67439 
67440    --
67441    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67442    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67443    --
67444    -- bulk performance
67445    --
67446    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67447 
67451    -- 4955764
67448    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67449       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67450 
67452    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67453       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67454 
67455    -- 4458381 Public Sector Enh
67456    
67457    --
67458    -- set accounting attributes for the line type
67459    --
67460    l_entered_amt_idx := NULL;
67461    l_accted_amt_idx  := 25;
67462    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67463    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67464    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
67465    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
67466    l_rec_acct_attrs.array_num_value(2)  := 
67467 xla_ae_sources_pkg.GetSystemSourceNum(
67468    p_source_code           => 'XLA_EVENT_APPL_ID'
67469  , p_source_type_code      => 'Y'
67470  , p_source_application_id =>  602
67471 );
67472    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
67473    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
67474    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
67475    l_rec_acct_attrs.array_char_value(4)  := 
67476 xla_ae_sources_pkg.GetSystemSourceChar(
67477    p_source_code           => 'XLA_ENTITY_CODE'
67478  , p_source_type_code      => 'Y'
67479  , p_source_application_id =>  602
67480 );
67481    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
67482    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
67483    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
67484    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
67485    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
67486    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
67487    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67488    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
67489    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
67490    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
67491    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
67492    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
67493    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67494    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
67495    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
67496    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
67497    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
67498    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
67499    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
67500    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
67501    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
67502    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
67503    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
67504    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
67505    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
67506    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
67507    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
67508    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
67509    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
67510    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
67511    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
67512    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
67513    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
67514    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
67515    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
67516    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
67517    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
67518    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
67519    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
67520    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
67521    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
67522    l_rec_acct_attrs.array_num_value(25)  := p_source_152;
67523    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
67524    l_rec_acct_attrs.array_date_value(26)  := p_source_76;
67525    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
67526    l_rec_acct_attrs.array_char_value(27)  := p_source_77;
67527    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
67528    l_rec_acct_attrs.array_date_value(28)  := p_source_78;
67529    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
67530    l_rec_acct_attrs.array_char_value(29)  := p_source_79;
67531    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
67532    l_rec_acct_attrs.array_num_value(30)  := p_source_80;
67533    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
67534    l_rec_acct_attrs.array_num_value(31)  := p_source_81;
67535    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
67536    l_rec_acct_attrs.array_char_value(32)  := p_source_82;
67537    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
67538    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_134);
67542    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
67539    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
67540    l_rec_acct_attrs.array_char_value(34)  := p_source_54;
67541    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
67543    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
67544    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
67545    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
67546    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
67547    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
67548    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
67549    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
67550    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
67551 
67552    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67553    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67554 
67555    ---------------------------------------------------------------------------------------------------------------
67556    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67557    ---------------------------------------------------------------------------------------------------------------
67558    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67559 
67560    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67561    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67562 
67563    IF xla_accounting_cache_pkg.GetValueChar
67564          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67565          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67566    AND l_bflow_method_code = 'PRIOR_ENTRY'
67567 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67568    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67569          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67570        )
67571    THEN
67572          xla_ae_lines_pkg.BflowUpgEntry
67573            (p_business_method_code    => l_bflow_method_code
67574            ,p_business_class_code     => l_bflow_class_code
67575            ,p_balance_type            => l_balance_type_code);
67576    ELSE
67577       NULL;
67578 -- No business flow processing for business flow method of NONE.
67579    END IF;
67580 
67581    --
67582    -- call analytical criteria
67583    --
67584    
67585    --
67586    -- call description
67587    --
67588    -- No description or it is inherited.
67589    --
67590    -- call ADRs
67591    -- Bug 4922099
67592    --
67593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67594         (NVL(l_actual_upg_option, 'N') = 'O') OR
67595         (NVL(l_enc_upg_option, 'N') = 'O')
67596       )
67597    THEN
67598    NULL;
67599    --
67600    --
67601    
67602   l_ccid := AcctDerRule_37(
67603            p_application_id           => p_application_id
67604          , p_ae_header_id             => l_ae_header_id 
67605 , p_source_15 => p_source_15
67606 , p_source_15_meaning => p_source_15_meaning
67607 , p_source_30 => p_source_30
67608 , p_source_36 => p_source_36
67609 , p_source_37 => p_source_37
67610          , x_transaction_coa_id       => l_adr_transaction_coa_id
67611          , x_accounting_coa_id        => l_adr_accounting_coa_id
67612          , x_value_type_code          => l_adr_value_type_code
67613          , p_side                     => 'CREDIT'
67614    );
67615 
67616    xla_ae_lines_pkg.set_ccid(
67617     p_code_combination_id          => l_ccid
67618   , p_value_type_code              => l_adr_value_type_code
67619   , p_transaction_coa_id           => l_adr_transaction_coa_id
67620   , p_accounting_coa_id            => l_adr_accounting_coa_id
67621   , p_adr_code                     => 'AP_REAL_GAIN'
67622   , p_adr_type_code                => 'S'
67623   , p_component_type               => l_component_type
67624   , p_component_code               => l_component_code
67625   , p_component_type_code          => l_component_type_code
67626   , p_component_appl_id            => l_component_appl_id
67627   , p_amb_context_code             => l_amb_context_code
67628   , p_side                         => 'CREDIT'
67629   );
67630 
67631 
67632   l_ccid := AcctDerRule_38(
67633            p_application_id           => p_application_id
67634          , p_ae_header_id             => l_ae_header_id 
67635 , p_source_15 => p_source_15
67636 , p_source_15_meaning => p_source_15_meaning
67637 , p_source_30 => p_source_30
67638 , p_source_38 => p_source_38
67639 , p_source_39 => p_source_39
67640          , x_transaction_coa_id       => l_adr_transaction_coa_id
67641          , x_accounting_coa_id        => l_adr_accounting_coa_id
67642          , x_value_type_code          => l_adr_value_type_code
67643          , p_side                     => 'DEBIT'
67644    );
67645 
67646    xla_ae_lines_pkg.set_ccid(
67647     p_code_combination_id          => l_ccid
67648   , p_value_type_code              => l_adr_value_type_code
67649   , p_transaction_coa_id           => l_adr_transaction_coa_id
67650   , p_accounting_coa_id            => l_adr_accounting_coa_id
67651   , p_adr_code                     => 'AP_REAL_LOSS'
67652   , p_adr_type_code                => 'S'
67656   , p_component_appl_id            => l_component_appl_id
67653   , p_component_type               => l_component_type
67654   , p_component_code               => l_component_code
67655   , p_component_type_code          => l_component_type_code
67657   , p_amb_context_code             => l_amb_context_code
67658   , p_side                         => 'DEBIT'
67659   );
67660 
67661 
67662    l_segment := AcctDerRule_22(
67663            p_application_id           => p_application_id
67664          , p_ae_header_id             => l_ae_header_id 
67665 , p_source_15 => p_source_15
67666 , p_source_15_meaning => p_source_15_meaning
67667 , p_source_30 => p_source_30
67668          , x_transaction_coa_id       => l_adr_transaction_coa_id
67669          , x_accounting_coa_id        => l_adr_accounting_coa_id
67670          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67671          , x_flex_value_set_id        => l_adr_flex_value_set_id
67672          , x_value_type_code          => l_adr_value_type_code
67673          , x_value_combination_id     => l_adr_value_combination_id
67674          , x_value_segment_code       => l_adr_value_segment_code
67675          , p_side                     => 'ALL'
67676          , p_override_seg_flag        => 'Y'
67677    );
67678 
67679    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67680 
67681       xla_ae_lines_pkg.set_segment(
67682           p_to_segment_code         => 'GL_BALANCING'
67683         , p_segment_value           => l_segment
67684         , p_from_segment_code       => l_adr_value_segment_code
67685         , p_from_combination_id     => l_adr_value_combination_id
67686         , p_value_type_code         => l_adr_value_type_code
67687         , p_transaction_coa_id      => l_adr_transaction_coa_id
67688         , p_accounting_coa_id       => l_adr_accounting_coa_id
67689         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67690         , p_flex_value_set_id       => l_adr_flex_value_set_id
67691         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67692         , p_adr_type_code           => 'S'
67693         , p_component_type          => l_component_type
67694         , p_component_code          => l_component_code
67695         , p_component_type_code     => l_component_type_code
67696         , p_component_appl_id       => l_component_appl_id
67697         , p_amb_context_code        => l_amb_context_code
67698         , p_entity_code             => 'AP_INVOICES'
67699         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67700         , p_side                    => 'ALL'
67701         );
67702 
67703   END IF;
67704 
67705    l_segment := AcctDerRule_17(
67706            p_application_id           => p_application_id
67707          , p_ae_header_id             => l_ae_header_id 
67708 , p_source_15 => p_source_15
67709 , p_source_15_meaning => p_source_15_meaning
67710 , p_source_36 => p_source_36
67711 , p_source_37 => p_source_37
67712          , x_transaction_coa_id       => l_adr_transaction_coa_id
67713          , x_accounting_coa_id        => l_adr_accounting_coa_id
67714          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67715          , x_flex_value_set_id        => l_adr_flex_value_set_id
67716          , x_value_type_code          => l_adr_value_type_code
67717          , x_value_combination_id     => l_adr_value_combination_id
67718          , x_value_segment_code       => l_adr_value_segment_code
67719          , p_side                     => 'CREDIT'
67720          , p_override_seg_flag        => 'Y'
67721    );
67722 
67723    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67724 
67725       xla_ae_lines_pkg.set_segment(
67726           p_to_segment_code         => 'GL_ACCOUNT'
67727         , p_segment_value           => l_segment
67728         , p_from_segment_code       => l_adr_value_segment_code
67729         , p_from_combination_id     => l_adr_value_combination_id
67730         , p_value_type_code         => l_adr_value_type_code
67731         , p_transaction_coa_id      => l_adr_transaction_coa_id
67732         , p_accounting_coa_id       => l_adr_accounting_coa_id
67733         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67734         , p_flex_value_set_id       => l_adr_flex_value_set_id
67735         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67736         , p_adr_type_code           => 'S'
67737         , p_component_type          => l_component_type
67738         , p_component_code          => l_component_code
67739         , p_component_type_code     => l_component_type_code
67740         , p_component_appl_id       => l_component_appl_id
67741         , p_amb_context_code        => l_amb_context_code
67742         , p_entity_code             => 'AP_INVOICES'
67743         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67744         , p_side                    => 'CREDIT'
67745         );
67746 
67747   END IF;
67748 
67749    l_segment := AcctDerRule_18(
67750            p_application_id           => p_application_id
67751          , p_ae_header_id             => l_ae_header_id 
67752 , p_source_15 => p_source_15
67753 , p_source_15_meaning => p_source_15_meaning
67754 , p_source_38 => p_source_38
67755 , p_source_39 => p_source_39
67756          , x_transaction_coa_id       => l_adr_transaction_coa_id
67757          , x_accounting_coa_id        => l_adr_accounting_coa_id
67758          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67759          , x_flex_value_set_id        => l_adr_flex_value_set_id
67760          , x_value_type_code          => l_adr_value_type_code
67764          , p_override_seg_flag        => 'Y'
67761          , x_value_combination_id     => l_adr_value_combination_id
67762          , x_value_segment_code       => l_adr_value_segment_code
67763          , p_side                     => 'DEBIT'
67765    );
67766 
67767    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67768 
67769       xla_ae_lines_pkg.set_segment(
67770           p_to_segment_code         => 'GL_ACCOUNT'
67771         , p_segment_value           => l_segment
67772         , p_from_segment_code       => l_adr_value_segment_code
67773         , p_from_combination_id     => l_adr_value_combination_id
67774         , p_value_type_code         => l_adr_value_type_code
67775         , p_transaction_coa_id      => l_adr_transaction_coa_id
67776         , p_accounting_coa_id       => l_adr_accounting_coa_id
67777         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67778         , p_flex_value_set_id       => l_adr_flex_value_set_id
67779         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67780         , p_adr_type_code           => 'S'
67781         , p_component_type          => l_component_type
67782         , p_component_code          => l_component_code
67783         , p_component_type_code     => l_component_type_code
67784         , p_component_appl_id       => l_component_appl_id
67785         , p_amb_context_code        => l_amb_context_code
67786         , p_entity_code             => 'AP_INVOICES'
67787         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67788         , p_side                    => 'DEBIT'
67789         );
67790 
67791   END IF;
67792 
67793    --
67794    --
67795    END IF;
67796    --
67797    -- Bug 4922099
67798    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67799           (NVL(l_enc_upg_option, 'N') = 'O')
67800         ) AND
67801         (l_bflow_method_code = 'PRIOR_ENTRY')
67802       )
67803    THEN
67804       IF
67805       --
67806       1 = 2
67807       --
67808       THEN
67809       xla_accounting_err_pkg.build_message
67810                                     (p_appli_s_name            => 'XLA'
67811                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67812                                     ,p_token_1                 => 'LINE_NUMBER'
67813                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67814                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67815                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67816                                                                              l_component_type
67817                                                                             ,l_component_code
67818                                                                             ,l_component_type_code
67819                                                                             ,l_component_appl_id
67820                                                                             ,l_amb_context_code
67821                                                                             ,l_entity_code
67822                                                                             ,l_event_class_code
67823                                                                            )
67824                                     ,p_token_3                 => 'OWNER'
67825                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67826                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67827                                                                           ,p_lookup_code    => l_component_type_code
67828                                                                          )
67829                                     ,p_token_4                 => 'PRODUCT_NAME'
67830                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67831                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67832                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67833                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67834                                     ,p_ae_header_id            =>  NULL
67835                                        );
67836 
67837         IF (C_LEVEL_ERROR>= g_log_level) THEN
67838                  trace
67839                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67840                       ,p_level    => C_LEVEL_ERROR
67841                       ,p_module   => l_log_module);
67842         END IF;
67843       END IF;
67844    END IF;
67845    --
67846    --
67847    ------------------------------------------------------------------------------------------------
67848    -- 4219869 Business Flow
67849    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67850    -- Prior Entry.  Currently, the following code is always generated.
67851    ------------------------------------------------------------------------------------------------
67852    XLA_AE_LINES_PKG.ValidateCurrentLine;
67853 
67854    ------------------------------------------------------------------------------------
67855    -- 4219869 Business Flow
67856    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67857    ------------------------------------------------------------------------------------
67858    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67859 
67863    ----------------------------------------------------------------------------------
67860    ----------------------------------------------------------------------------------
67861    -- 4219869 Business Flow
67862    -- Update journal entry status -- Need to generate this within IF <condition>
67864    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67865          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67866          ,p_balance_type_code => l_balance_type_code
67867          );
67868 
67869    -------------------------------------------------------------------------------------------
67870    -- 4262811 - Generate the Accrual Reversal lines
67871    -------------------------------------------------------------------------------------------
67872    BEGIN
67873       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67874                               (g_array_event(p_event_id).array_value_num('header_index'));
67875       IF l_acc_rev_flag IS NULL THEN
67876          l_acc_rev_flag := 'N';
67877       END IF;
67878    EXCEPTION
67879       WHEN OTHERS THEN
67880          l_acc_rev_flag := 'N';
67881    END;
67882    --
67883    IF (l_acc_rev_flag = 'Y') THEN
67884 
67885        -- 4645092  ------------------------------------------------------------------------------
67886        -- To allow MPA report to determine if it should generate report process
67887        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67888        ------------------------------------------------------------------------------------------
67889 
67890        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67891        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67892    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67893    -- call ADRs
67894    -- Bug 4922099
67895    --
67896    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67897         (NVL(l_actual_upg_option, 'N') = 'O') OR
67898         (NVL(l_enc_upg_option, 'N') = 'O')
67899       )
67900    THEN
67901    NULL;
67902    --
67903    --
67904    
67905   l_ccid := AcctDerRule_37(
67906            p_application_id           => p_application_id
67907          , p_ae_header_id             => l_ae_header_id 
67908 , p_source_15 => p_source_15
67909 , p_source_15_meaning => p_source_15_meaning
67910 , p_source_30 => p_source_30
67911 , p_source_36 => p_source_36
67912 , p_source_37 => p_source_37
67913          , x_transaction_coa_id       => l_adr_transaction_coa_id
67914          , x_accounting_coa_id        => l_adr_accounting_coa_id
67915          , x_value_type_code          => l_adr_value_type_code
67916          , p_side                     => 'CREDIT'
67917    );
67918 
67919    xla_ae_lines_pkg.set_ccid(
67920     p_code_combination_id          => l_ccid
67921   , p_value_type_code              => l_adr_value_type_code
67922   , p_transaction_coa_id           => l_adr_transaction_coa_id
67923   , p_accounting_coa_id            => l_adr_accounting_coa_id
67924   , p_adr_code                     => 'AP_REAL_GAIN'
67925   , p_adr_type_code                => 'S'
67926   , p_component_type               => l_component_type
67927   , p_component_code               => l_component_code
67928   , p_component_type_code          => l_component_type_code
67929   , p_component_appl_id            => l_component_appl_id
67930   , p_amb_context_code             => l_amb_context_code
67931   , p_side                         => 'CREDIT'
67932   );
67933 
67934 
67935   l_ccid := AcctDerRule_38(
67936            p_application_id           => p_application_id
67937          , p_ae_header_id             => l_ae_header_id 
67938 , p_source_15 => p_source_15
67939 , p_source_15_meaning => p_source_15_meaning
67940 , p_source_30 => p_source_30
67941 , p_source_38 => p_source_38
67942 , p_source_39 => p_source_39
67943          , x_transaction_coa_id       => l_adr_transaction_coa_id
67944          , x_accounting_coa_id        => l_adr_accounting_coa_id
67945          , x_value_type_code          => l_adr_value_type_code
67946          , p_side                     => 'DEBIT'
67947    );
67948 
67949    xla_ae_lines_pkg.set_ccid(
67950     p_code_combination_id          => l_ccid
67951   , p_value_type_code              => l_adr_value_type_code
67952   , p_transaction_coa_id           => l_adr_transaction_coa_id
67953   , p_accounting_coa_id            => l_adr_accounting_coa_id
67954   , p_adr_code                     => 'AP_REAL_LOSS'
67955   , p_adr_type_code                => 'S'
67956   , p_component_type               => l_component_type
67957   , p_component_code               => l_component_code
67958   , p_component_type_code          => l_component_type_code
67959   , p_component_appl_id            => l_component_appl_id
67960   , p_amb_context_code             => l_amb_context_code
67961   , p_side                         => 'DEBIT'
67962   );
67963 
67964 
67965    l_segment := AcctDerRule_22(
67966            p_application_id           => p_application_id
67967          , p_ae_header_id             => l_ae_header_id 
67968 , p_source_15 => p_source_15
67969 , p_source_15_meaning => p_source_15_meaning
67970 , p_source_30 => p_source_30
67971          , x_transaction_coa_id       => l_adr_transaction_coa_id
67972          , x_accounting_coa_id        => l_adr_accounting_coa_id
67973          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67974          , x_flex_value_set_id        => l_adr_flex_value_set_id
67978          , p_side                     => 'ALL'
67975          , x_value_type_code          => l_adr_value_type_code
67976          , x_value_combination_id     => l_adr_value_combination_id
67977          , x_value_segment_code       => l_adr_value_segment_code
67979          , p_override_seg_flag        => 'Y'
67980    );
67981 
67982    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67983 
67984       xla_ae_lines_pkg.set_segment(
67985           p_to_segment_code         => 'GL_BALANCING'
67986         , p_segment_value           => l_segment
67987         , p_from_segment_code       => l_adr_value_segment_code
67988         , p_from_combination_id     => l_adr_value_combination_id
67989         , p_value_type_code         => l_adr_value_type_code
67990         , p_transaction_coa_id      => l_adr_transaction_coa_id
67991         , p_accounting_coa_id       => l_adr_accounting_coa_id
67992         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67993         , p_flex_value_set_id       => l_adr_flex_value_set_id
67994         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67995         , p_adr_type_code           => 'S'
67996         , p_component_type          => l_component_type
67997         , p_component_code          => l_component_code
67998         , p_component_type_code     => l_component_type_code
67999         , p_component_appl_id       => l_component_appl_id
68000         , p_amb_context_code        => l_amb_context_code
68001         , p_entity_code             => 'AP_INVOICES'
68002         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68003         , p_side                    => 'ALL'
68004         );
68005 
68006   END IF;
68007 
68008    l_segment := AcctDerRule_17(
68009            p_application_id           => p_application_id
68010          , p_ae_header_id             => l_ae_header_id 
68011 , p_source_15 => p_source_15
68012 , p_source_15_meaning => p_source_15_meaning
68013 , p_source_36 => p_source_36
68014 , p_source_37 => p_source_37
68015          , x_transaction_coa_id       => l_adr_transaction_coa_id
68016          , x_accounting_coa_id        => l_adr_accounting_coa_id
68017          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68018          , x_flex_value_set_id        => l_adr_flex_value_set_id
68019          , x_value_type_code          => l_adr_value_type_code
68020          , x_value_combination_id     => l_adr_value_combination_id
68021          , x_value_segment_code       => l_adr_value_segment_code
68022          , p_side                     => 'CREDIT'
68023          , p_override_seg_flag        => 'Y'
68024    );
68025 
68026    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68027 
68028       xla_ae_lines_pkg.set_segment(
68029           p_to_segment_code         => 'GL_ACCOUNT'
68030         , p_segment_value           => l_segment
68031         , p_from_segment_code       => l_adr_value_segment_code
68032         , p_from_combination_id     => l_adr_value_combination_id
68033         , p_value_type_code         => l_adr_value_type_code
68034         , p_transaction_coa_id      => l_adr_transaction_coa_id
68035         , p_accounting_coa_id       => l_adr_accounting_coa_id
68036         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68037         , p_flex_value_set_id       => l_adr_flex_value_set_id
68038         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68039         , p_adr_type_code           => 'S'
68040         , p_component_type          => l_component_type
68041         , p_component_code          => l_component_code
68042         , p_component_type_code     => l_component_type_code
68043         , p_component_appl_id       => l_component_appl_id
68044         , p_amb_context_code        => l_amb_context_code
68045         , p_entity_code             => 'AP_INVOICES'
68046         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68047         , p_side                    => 'CREDIT'
68048         );
68049 
68050   END IF;
68051 
68052    l_segment := AcctDerRule_18(
68053            p_application_id           => p_application_id
68054          , p_ae_header_id             => l_ae_header_id 
68055 , p_source_15 => p_source_15
68056 , p_source_15_meaning => p_source_15_meaning
68057 , p_source_38 => p_source_38
68058 , p_source_39 => p_source_39
68059          , x_transaction_coa_id       => l_adr_transaction_coa_id
68060          , x_accounting_coa_id        => l_adr_accounting_coa_id
68061          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68062          , x_flex_value_set_id        => l_adr_flex_value_set_id
68063          , x_value_type_code          => l_adr_value_type_code
68064          , x_value_combination_id     => l_adr_value_combination_id
68065          , x_value_segment_code       => l_adr_value_segment_code
68066          , p_side                     => 'DEBIT'
68067          , p_override_seg_flag        => 'Y'
68068    );
68069 
68070    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68071 
68072       xla_ae_lines_pkg.set_segment(
68073           p_to_segment_code         => 'GL_ACCOUNT'
68074         , p_segment_value           => l_segment
68075         , p_from_segment_code       => l_adr_value_segment_code
68076         , p_from_combination_id     => l_adr_value_combination_id
68077         , p_value_type_code         => l_adr_value_type_code
68078         , p_transaction_coa_id      => l_adr_transaction_coa_id
68079         , p_accounting_coa_id       => l_adr_accounting_coa_id
68080         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68084         , p_component_type          => l_component_type
68081         , p_flex_value_set_id       => l_adr_flex_value_set_id
68082         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68083         , p_adr_type_code           => 'S'
68085         , p_component_code          => l_component_code
68086         , p_component_type_code     => l_component_type_code
68087         , p_component_appl_id       => l_component_appl_id
68088         , p_amb_context_code        => l_amb_context_code
68089         , p_entity_code             => 'AP_INVOICES'
68090         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
68091         , p_side                    => 'DEBIT'
68092         );
68093 
68094   END IF;
68095 
68096    --
68097    --
68098    END IF;
68099 
68100        --
68101        -- Update the line information that should be overwritten
68102        --
68103        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68104                                          p_header_num   => 1);
68105        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68106 
68107        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68108 
68109        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68110           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68111        END IF;
68112 
68113       --
68114       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68115       --
68116       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68117           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68118       ELSE
68119           ---------------------------------------------------------------------------------------------------
68120           -- 4262811a Switch Sign
68121           ---------------------------------------------------------------------------------------------------
68122           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68123           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68124                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68125           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68126                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68127           -- 5132302
68128           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68129                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68130 
68131       END IF;
68132 
68133       -- 4955764
68134       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68135       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68136 
68137 
68138       XLA_AE_LINES_PKG.ValidateCurrentLine;
68139       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68140 
68141       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68142                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68143                ,p_balance_type_code => l_balance_type_code);
68144 
68145    END IF;
68146 
68147    -----------------------------------------------------------------------------------------
68148    -- 4262811 Multiperiod Accounting
68149    -----------------------------------------------------------------------------------------
68150      -- No MPA option is assigned.
68151 
68152 
68153 END IF;
68154 END IF;
68155 --
68156 
68157 --
68158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68159    trace
68160       (p_msg      => 'END of AcctLineType_126'
68161       ,p_level    => C_LEVEL_PROCEDURE
68162       ,p_module   => l_log_module);
68163 END IF;
68164 --
68165 EXCEPTION
68166   WHEN xla_exceptions_pkg.application_exception THEN
68167       RAISE;
68168   WHEN OTHERS THEN
68169        xla_exceptions_pkg.raise_message
68170            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_126');
68171 END AcctLineType_126;
68172 --
68173 
68174 ---------------------------------------
68175 --
68176 -- PRIVATE FUNCTION
68177 --         AcctLineType_127
68178 --
68179 ---------------------------------------
68180 PROCEDURE AcctLineType_127 (
68181   p_application_id        IN NUMBER
68182  ,p_event_id              IN NUMBER
68183  ,p_calculate_acctd_flag  IN VARCHAR2
68184  ,p_calculate_g_l_flag    IN VARCHAR2
68185  ,p_actual_flag           IN OUT VARCHAR2
68186  ,p_balance_type_code     OUT VARCHAR2
68187  ,p_gain_or_loss_ref      OUT VARCHAR2
68188  
68189 --Automatic Offsets Value
68190  , p_source_15            IN VARCHAR2
68191  , p_source_15_meaning    IN VARCHAR2
68192 --Invoice Distribution Account
68193  , p_source_30            IN NUMBER
68194 --Internal Realized Gain Account
68195  , p_source_36            IN NUMBER
68196 --Bank Gain Account
68197  , p_source_37            IN NUMBER
68198 --Internal Realized Loss Account
68199  , p_source_38            IN NUMBER
68200 --Bank Loss Account
68201  , p_source_39            IN NUMBER
68202 --Accounting Reversal Indicator
68206 --Override Accounted Amount Indicator
68203  , p_source_52            IN VARCHAR2
68204 --Distribution Link Type
68205  , p_source_54            IN VARCHAR2
68207  , p_source_79            IN VARCHAR2
68208  , p_source_79_meaning    IN VARCHAR2
68209 --Third Party Type
68210  , p_source_82            IN VARCHAR2
68211 --Invoice Distribution Tax Line Identifier
68212  , p_source_85            IN NUMBER
68213 --Invoice Distribution Tax Distribution Identifier from Tax
68214  , p_source_86            IN NUMBER
68215 --Invoice Distribution Summary Tax Line Identifier
68216  , p_source_87            IN NUMBER
68217 --Business Flow Accounts Payable Application Identifier
68218  , p_source_90            IN NUMBER
68219 --Business Flow Invoice Distribution Type
68220  , p_source_91            IN VARCHAR2
68221 --Business Flow Invoice Entity Code
68222  , p_source_92            IN VARCHAR2
68223 --Business Flow Invoice Distribution Identifier
68224  , p_source_93            IN NUMBER
68225 --Business Flow Invoice Identifier
68226  , p_source_94            IN NUMBER
68227 --When to Account for Payment Option
68228  , p_source_96            IN VARCHAR2
68229 --Payment Distribution Type
68230  , p_source_97            IN VARCHAR2
68231  , p_source_97_meaning    IN VARCHAR2
68232 --Payment Distribution Identifier
68233  , p_source_103            IN NUMBER
68234 --Payment Supplier Identifier
68235  , p_source_109            IN NUMBER
68236 --Payment Supplier Site Identifier
68237  , p_source_110            IN NUMBER
68238 --Payment Distribution Reversed Identifier
68239  , p_source_111            IN NUMBER
68240 --Payment Identifier
68241  , p_source_112            IN NUMBER
68242 --Payment Type
68243  , p_source_122            IN VARCHAR2
68244  , p_source_122_meaning    IN VARCHAR2
68245 --Invoice/Payment Ledger Amount Difference
68246  , p_source_150            IN NUMBER
68247 )
68248 IS
68249 
68250 l_component_type              VARCHAR2(80);
68251 l_component_code              VARCHAR2(30);
68252 l_component_type_code         VARCHAR2(1);
68253 l_component_appl_id           INTEGER;
68254 l_amb_context_code            VARCHAR2(30);
68255 l_entity_code                 VARCHAR2(30);
68256 l_event_class_code            VARCHAR2(30);
68257 l_ae_header_id                NUMBER;
68258 l_event_type_code             VARCHAR2(30);
68259 l_line_definition_code        VARCHAR2(30);
68260 l_line_definition_owner_code  VARCHAR2(1);
68261 --
68262 -- adr variables
68263 l_segment                     VARCHAR2(30);
68264 l_ccid                        NUMBER;
68265 l_adr_transaction_coa_id      NUMBER;
68266 l_adr_accounting_coa_id       NUMBER;
68267 l_adr_flexfield_segment_code  VARCHAR2(30);
68268 l_adr_flex_value_set_id       NUMBER;
68269 l_adr_value_type_code         VARCHAR2(30);
68270 l_adr_value_combination_id    NUMBER;
68271 l_adr_value_segment_code      VARCHAR2(30);
68272 
68273 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68274 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68275 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68276 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68277 
68278 -- 4262811 Variables ------------------------------------------------------------------------------------------
68279 l_entered_amt_idx             NUMBER;
68280 l_accted_amt_idx              NUMBER;
68281 l_acc_rev_flag                VARCHAR2(1);
68282 l_accrual_line_num            NUMBER;
68283 l_tmp_amt                     NUMBER;
68284 l_acc_rev_natural_side_code   VARCHAR2(1);
68285 
68286 l_num_entries                 NUMBER;
68287 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68288 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68289 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68290 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68291 l_recog_line_1                NUMBER;
68292 l_recog_line_2                NUMBER;
68293 
68294 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68295 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68296 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68297 
68298 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68299 
68300 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68301 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68302 
68303 ---------------------------------------------------------------------------------------------------------------
68304 
68305 
68306 --
68307 -- bulk performance
68308 --
68309 l_balance_type_code           VARCHAR2(1);
68310 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68311 l_log_module                  VARCHAR2(240);
68312 
68313 --
68314 -- Upgrade strategy
68315 --
68316 l_actual_upg_option           VARCHAR2(1);
68317 l_enc_upg_option           VARCHAR2(1);
68318 
68319 --
68320 BEGIN
68321 --
68322 IF g_log_enabled THEN
68323       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
68324 END IF;
68325 --
68326 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68327 
68328       trace
68329          (p_msg      => 'BEGIN of AcctLineType_127'
68330          ,p_level    => C_LEVEL_PROCEDURE
68331          ,p_module   => l_log_module);
68332 
68333 END IF;
68337 l_component_type_code        := 'S';
68334 --
68335 l_component_type             := 'AMB_JLT';
68336 l_component_code             := 'AP_GAIN_LOSS_REF';
68338 l_component_appl_id          :=  200;
68339 l_amb_context_code           := 'DEFAULT';
68340 l_entity_code                := 'AP_PAYMENTS';
68341 l_event_class_code           := 'REFUNDS';
68342 l_event_type_code            := 'REFUNDS_ALL';
68343 l_line_definition_owner_code := 'S';
68344 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
68345 --
68346 l_balance_type_code          := 'A';
68347 l_segment                     := NULL;
68348 l_ccid                        := NULL;
68349 l_adr_transaction_coa_id      := NULL;
68350 l_adr_accounting_coa_id       := NULL;
68351 l_adr_flexfield_segment_code  := NULL;
68352 l_adr_flex_value_set_id       := NULL;
68353 l_adr_value_type_code         := NULL;
68354 l_adr_value_combination_id    := NULL;
68355 l_adr_value_segment_code      := NULL;
68356 
68357 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68358 l_bflow_class_code           := '';    -- 4219869 Business Flow
68359 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68360 l_budgetary_control_flag     := 'N';
68361 
68362 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68363 l_bflow_applied_to_amt       := NULL; -- 5132302
68364 l_entered_amt_idx            := NULL;          -- 4262811
68365 l_accted_amt_idx             := NULL;          -- 4262811
68366 l_acc_rev_flag               := NULL;          -- 4262811
68367 l_accrual_line_num           := NULL;          -- 4262811
68368 l_tmp_amt                    := NULL;          -- 4262811
68369 --
68370 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68371             (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
68372                return;
68373   END IF;
68374   
68375 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68376     l_balance_type_code <> 'B' THEN
68377 IF (NVL(p_source_96,'
68378 ') <>  'CLEAR_CLEAR' AND 
68379 NVL(p_source_96,'
68380 ') <>  'ALWAYS_CLEAR') AND 
68381 NVL(p_source_122,'
68382 ') =  'R' AND 
68383 NVL(p_source_97,'
68384 ') <>  'EXCHANGE RATE VARIANCE' AND 
68385 NVL(p_source_97,'
68386 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
68387 NVL(p_source_97,'
68388 ') <>  'BANK CHARGE' AND 
68389 NVL(p_source_97,'
68390 ') <>  'BANK ERROR'
68391  THEN 
68392 
68393    --
68394    XLA_AE_LINES_PKG.SetNewLine;
68395 
68396    p_balance_type_code          := l_balance_type_code;
68397    -- set the flag so later we will know whether the gain loss line needs to be created
68398    
68399    IF(l_balance_type_code = 'A' ) THEN
68400      p_actual_flag :='G';
68401    END IF;
68402 
68403    --
68404    -- bulk performance
68405    --
68406    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68407                                       p_header_num   => 0); -- 4262811
68408    --
68409    -- set accounting line options
68410    --
68411    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68412            p_natural_side_code          => 'G'
68413          , p_gain_or_loss_flag          => 'N'
68414          , p_gl_transfer_mode_code      => 'S'
68415          , p_acct_entry_type_code       => 'A'
68416          , p_switch_side_flag           => ''
68417          , p_merge_duplicate_code       => 'A'
68418          );
68419    --
68420    l_acc_rev_natural_side_code := 'C';  -- 4262811
68421    -- 
68422    --
68423    -- set accounting line type info
68424    --
68425    xla_ae_lines_pkg.SetAcctLineType
68426       (p_component_type             => l_component_type
68427       ,p_event_type_code            => l_event_type_code
68428       ,p_line_definition_owner_code => l_line_definition_owner_code
68429       ,p_line_definition_code       => l_line_definition_code
68430       ,p_accounting_line_code       => l_component_code
68431       ,p_accounting_line_type_code  => l_component_type_code
68432       ,p_accounting_line_appl_id    => l_component_appl_id
68433       ,p_amb_context_code           => l_amb_context_code
68434       ,p_entity_code                => l_entity_code
68435       ,p_event_class_code           => l_event_class_code);
68436    --
68437    -- set accounting class
68438    --
68439    xla_ae_lines_pkg.SetAcctClass(
68440            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
68441          , p_ae_header_id           => l_ae_header_id
68442          );
68443 
68444    --
68445    -- set rounding class
68446    --
68447    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68448                       'EXCHANGE_GAIN_LOSS';
68449 
68450    --
68451    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68452    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68453    --
68454    -- bulk performance
68455    --
68456    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68457 
68458    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68459       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68460 
68461    -- 4955764
68465    -- 4458381 Public Sector Enh
68462    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68463       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68464 
68466    
68467    --
68468    -- set accounting attributes for the line type
68469    --
68470    l_entered_amt_idx := NULL;
68471    l_accted_amt_idx  := 9;
68472    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
68473    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68474    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
68475    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
68476    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
68477    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68478    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
68479    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
68480    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
68481    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
68482    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
68483    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68484    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
68485    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
68486    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
68487    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
68488    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
68489    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
68490    l_rec_acct_attrs.array_num_value(9)  := p_source_150;
68491    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
68492    l_rec_acct_attrs.array_char_value(10)  := p_source_79;
68493    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
68494    l_rec_acct_attrs.array_num_value(11)  := p_source_109;
68495    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
68496    l_rec_acct_attrs.array_num_value(12)  := p_source_110;
68497    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
68498    l_rec_acct_attrs.array_char_value(13)  := p_source_82;
68499    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
68500    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_111);
68501    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
68502    l_rec_acct_attrs.array_char_value(15)  := p_source_54;
68503    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
68504    l_rec_acct_attrs.array_num_value(16)  := p_source_85;
68505    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
68506    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
68507    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
68508    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
68509 
68510    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68511    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68512 
68513    ---------------------------------------------------------------------------------------------------------------
68514    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68515    ---------------------------------------------------------------------------------------------------------------
68516    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68517 
68518    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68519    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68520 
68521    IF xla_accounting_cache_pkg.GetValueChar
68522          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68523          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68524    AND l_bflow_method_code = 'PRIOR_ENTRY'
68525 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68526    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68527          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68528        )
68529    THEN
68530          xla_ae_lines_pkg.BflowUpgEntry
68531            (p_business_method_code    => l_bflow_method_code
68532            ,p_business_class_code     => l_bflow_class_code
68533            ,p_balance_type            => l_balance_type_code);
68534    ELSE
68535       NULL;
68536 -- No business flow processing for business flow method of NONE.
68537    END IF;
68538 
68539    --
68540    -- call analytical criteria
68541    --
68542    
68543 
68544 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
68545 xla_ae_lines_pkg.SetAnalyticalCriteria(
68546    p_analytical_criterion_name    => 'Check Id'
68547  , p_analytical_criterion_owner   => 'S'
68548  , p_analytical_criterion_code    => 'CHECK_ID'
68549  , p_amb_context_code             => 'DEFAULT'
68550  , p_balancing_flag               => 'N'
68551  
68552  , p_analytical_detail_char_1    =>  NULL
68553  , p_analytical_detail_num_1     =>  p_source_112
68554  , p_analytical_detail_date_1    =>  NULL
68555 
68556  , p_ae_header_id                 => l_ae_header_id
68557 )
68558 ;
68559 --
68560 
68561    --
68562    -- call description
68563    --
68564    -- No description or it is inherited.
68565    --
68566    -- call ADRs
68567    -- Bug 4922099
68568    --
68572       )
68569    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68570         (NVL(l_actual_upg_option, 'N') = 'O') OR
68571         (NVL(l_enc_upg_option, 'N') = 'O')
68573    THEN
68574    NULL;
68575    --
68576    --
68577    
68578   l_ccid := AcctDerRule_37(
68579            p_application_id           => p_application_id
68580          , p_ae_header_id             => l_ae_header_id 
68581 , p_source_15 => p_source_15
68582 , p_source_15_meaning => p_source_15_meaning
68583 , p_source_30 => p_source_30
68584 , p_source_36 => p_source_36
68585 , p_source_37 => p_source_37
68586          , x_transaction_coa_id       => l_adr_transaction_coa_id
68587          , x_accounting_coa_id        => l_adr_accounting_coa_id
68588          , x_value_type_code          => l_adr_value_type_code
68589          , p_side                     => 'CREDIT'
68590    );
68591 
68592    xla_ae_lines_pkg.set_ccid(
68593     p_code_combination_id          => l_ccid
68594   , p_value_type_code              => l_adr_value_type_code
68595   , p_transaction_coa_id           => l_adr_transaction_coa_id
68596   , p_accounting_coa_id            => l_adr_accounting_coa_id
68597   , p_adr_code                     => 'AP_REAL_GAIN'
68598   , p_adr_type_code                => 'S'
68599   , p_component_type               => l_component_type
68600   , p_component_code               => l_component_code
68601   , p_component_type_code          => l_component_type_code
68602   , p_component_appl_id            => l_component_appl_id
68603   , p_amb_context_code             => l_amb_context_code
68604   , p_side                         => 'CREDIT'
68605   );
68606 
68607 
68608   l_ccid := AcctDerRule_38(
68609            p_application_id           => p_application_id
68610          , p_ae_header_id             => l_ae_header_id 
68611 , p_source_15 => p_source_15
68612 , p_source_15_meaning => p_source_15_meaning
68613 , p_source_30 => p_source_30
68614 , p_source_38 => p_source_38
68615 , p_source_39 => p_source_39
68616          , x_transaction_coa_id       => l_adr_transaction_coa_id
68617          , x_accounting_coa_id        => l_adr_accounting_coa_id
68618          , x_value_type_code          => l_adr_value_type_code
68619          , p_side                     => 'DEBIT'
68620    );
68621 
68622    xla_ae_lines_pkg.set_ccid(
68623     p_code_combination_id          => l_ccid
68624   , p_value_type_code              => l_adr_value_type_code
68625   , p_transaction_coa_id           => l_adr_transaction_coa_id
68626   , p_accounting_coa_id            => l_adr_accounting_coa_id
68627   , p_adr_code                     => 'AP_REAL_LOSS'
68628   , p_adr_type_code                => 'S'
68629   , p_component_type               => l_component_type
68630   , p_component_code               => l_component_code
68631   , p_component_type_code          => l_component_type_code
68632   , p_component_appl_id            => l_component_appl_id
68633   , p_amb_context_code             => l_amb_context_code
68634   , p_side                         => 'DEBIT'
68635   );
68636 
68637 
68638    l_segment := AcctDerRule_22(
68639            p_application_id           => p_application_id
68640          , p_ae_header_id             => l_ae_header_id 
68641 , p_source_15 => p_source_15
68642 , p_source_15_meaning => p_source_15_meaning
68643 , p_source_30 => p_source_30
68644          , x_transaction_coa_id       => l_adr_transaction_coa_id
68645          , x_accounting_coa_id        => l_adr_accounting_coa_id
68646          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68647          , x_flex_value_set_id        => l_adr_flex_value_set_id
68648          , x_value_type_code          => l_adr_value_type_code
68649          , x_value_combination_id     => l_adr_value_combination_id
68650          , x_value_segment_code       => l_adr_value_segment_code
68651          , p_side                     => 'ALL'
68652          , p_override_seg_flag        => 'Y'
68653    );
68654 
68655    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68656 
68657       xla_ae_lines_pkg.set_segment(
68658           p_to_segment_code         => 'GL_BALANCING'
68659         , p_segment_value           => l_segment
68660         , p_from_segment_code       => l_adr_value_segment_code
68661         , p_from_combination_id     => l_adr_value_combination_id
68662         , p_value_type_code         => l_adr_value_type_code
68663         , p_transaction_coa_id      => l_adr_transaction_coa_id
68664         , p_accounting_coa_id       => l_adr_accounting_coa_id
68665         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68666         , p_flex_value_set_id       => l_adr_flex_value_set_id
68667         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68668         , p_adr_type_code           => 'S'
68669         , p_component_type          => l_component_type
68670         , p_component_code          => l_component_code
68671         , p_component_type_code     => l_component_type_code
68672         , p_component_appl_id       => l_component_appl_id
68673         , p_amb_context_code        => l_amb_context_code
68674         , p_entity_code             => 'AP_PAYMENTS'
68675         , p_event_class_code        => 'REFUNDS'
68676         , p_side                    => 'ALL'
68677         );
68678 
68679   END IF;
68680 
68681    l_segment := AcctDerRule_17(
68682            p_application_id           => p_application_id
68683          , p_ae_header_id             => l_ae_header_id 
68687 , p_source_37 => p_source_37
68684 , p_source_15 => p_source_15
68685 , p_source_15_meaning => p_source_15_meaning
68686 , p_source_36 => p_source_36
68688          , x_transaction_coa_id       => l_adr_transaction_coa_id
68689          , x_accounting_coa_id        => l_adr_accounting_coa_id
68690          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68691          , x_flex_value_set_id        => l_adr_flex_value_set_id
68692          , x_value_type_code          => l_adr_value_type_code
68693          , x_value_combination_id     => l_adr_value_combination_id
68694          , x_value_segment_code       => l_adr_value_segment_code
68695          , p_side                     => 'CREDIT'
68696          , p_override_seg_flag        => 'Y'
68697    );
68698 
68699    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68700 
68701       xla_ae_lines_pkg.set_segment(
68702           p_to_segment_code         => 'GL_ACCOUNT'
68703         , p_segment_value           => l_segment
68704         , p_from_segment_code       => l_adr_value_segment_code
68705         , p_from_combination_id     => l_adr_value_combination_id
68706         , p_value_type_code         => l_adr_value_type_code
68707         , p_transaction_coa_id      => l_adr_transaction_coa_id
68708         , p_accounting_coa_id       => l_adr_accounting_coa_id
68709         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68710         , p_flex_value_set_id       => l_adr_flex_value_set_id
68711         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68712         , p_adr_type_code           => 'S'
68713         , p_component_type          => l_component_type
68714         , p_component_code          => l_component_code
68715         , p_component_type_code     => l_component_type_code
68716         , p_component_appl_id       => l_component_appl_id
68717         , p_amb_context_code        => l_amb_context_code
68718         , p_entity_code             => 'AP_PAYMENTS'
68719         , p_event_class_code        => 'REFUNDS'
68720         , p_side                    => 'CREDIT'
68721         );
68722 
68723   END IF;
68724 
68725    l_segment := AcctDerRule_18(
68726            p_application_id           => p_application_id
68727          , p_ae_header_id             => l_ae_header_id 
68728 , p_source_15 => p_source_15
68729 , p_source_15_meaning => p_source_15_meaning
68730 , p_source_38 => p_source_38
68731 , p_source_39 => p_source_39
68732          , x_transaction_coa_id       => l_adr_transaction_coa_id
68733          , x_accounting_coa_id        => l_adr_accounting_coa_id
68734          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68735          , x_flex_value_set_id        => l_adr_flex_value_set_id
68736          , x_value_type_code          => l_adr_value_type_code
68737          , x_value_combination_id     => l_adr_value_combination_id
68738          , x_value_segment_code       => l_adr_value_segment_code
68739          , p_side                     => 'DEBIT'
68740          , p_override_seg_flag        => 'Y'
68741    );
68742 
68743    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68744 
68745       xla_ae_lines_pkg.set_segment(
68746           p_to_segment_code         => 'GL_ACCOUNT'
68747         , p_segment_value           => l_segment
68748         , p_from_segment_code       => l_adr_value_segment_code
68749         , p_from_combination_id     => l_adr_value_combination_id
68750         , p_value_type_code         => l_adr_value_type_code
68751         , p_transaction_coa_id      => l_adr_transaction_coa_id
68752         , p_accounting_coa_id       => l_adr_accounting_coa_id
68753         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68754         , p_flex_value_set_id       => l_adr_flex_value_set_id
68755         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68756         , p_adr_type_code           => 'S'
68757         , p_component_type          => l_component_type
68758         , p_component_code          => l_component_code
68759         , p_component_type_code     => l_component_type_code
68760         , p_component_appl_id       => l_component_appl_id
68761         , p_amb_context_code        => l_amb_context_code
68762         , p_entity_code             => 'AP_PAYMENTS'
68763         , p_event_class_code        => 'REFUNDS'
68764         , p_side                    => 'DEBIT'
68765         );
68766 
68767   END IF;
68768 
68769    --
68770    --
68771    END IF;
68772    --
68773    -- Bug 4922099
68774    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68775           (NVL(l_enc_upg_option, 'N') = 'O')
68776         ) AND
68777         (l_bflow_method_code = 'PRIOR_ENTRY')
68778       )
68779    THEN
68780       IF
68781       --
68782       1 = 2
68783       --
68784       THEN
68785       xla_accounting_err_pkg.build_message
68786                                     (p_appli_s_name            => 'XLA'
68787                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68788                                     ,p_token_1                 => 'LINE_NUMBER'
68789                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68790                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68791                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68792                                                                              l_component_type
68796                                                                             ,l_amb_context_code
68793                                                                             ,l_component_code
68794                                                                             ,l_component_type_code
68795                                                                             ,l_component_appl_id
68797                                                                             ,l_entity_code
68798                                                                             ,l_event_class_code
68799                                                                            )
68800                                     ,p_token_3                 => 'OWNER'
68801                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68802                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68803                                                                           ,p_lookup_code    => l_component_type_code
68804                                                                          )
68805                                     ,p_token_4                 => 'PRODUCT_NAME'
68806                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68807                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68808                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68809                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68810                                     ,p_ae_header_id            =>  NULL
68811                                        );
68812 
68813         IF (C_LEVEL_ERROR>= g_log_level) THEN
68814                  trace
68815                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68816                       ,p_level    => C_LEVEL_ERROR
68817                       ,p_module   => l_log_module);
68818         END IF;
68819       END IF;
68820    END IF;
68821    --
68822    --
68823    ------------------------------------------------------------------------------------------------
68824    -- 4219869 Business Flow
68825    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68826    -- Prior Entry.  Currently, the following code is always generated.
68827    ------------------------------------------------------------------------------------------------
68828    XLA_AE_LINES_PKG.ValidateCurrentLine;
68829 
68830    ------------------------------------------------------------------------------------
68831    -- 4219869 Business Flow
68832    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68833    ------------------------------------------------------------------------------------
68834    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68835 
68836    ----------------------------------------------------------------------------------
68837    -- 4219869 Business Flow
68838    -- Update journal entry status -- Need to generate this within IF <condition>
68839    ----------------------------------------------------------------------------------
68840    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68841          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68842          ,p_balance_type_code => l_balance_type_code
68843          );
68844 
68845    -------------------------------------------------------------------------------------------
68846    -- 4262811 - Generate the Accrual Reversal lines
68847    -------------------------------------------------------------------------------------------
68848    BEGIN
68849       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68850                               (g_array_event(p_event_id).array_value_num('header_index'));
68851       IF l_acc_rev_flag IS NULL THEN
68852          l_acc_rev_flag := 'N';
68853       END IF;
68854    EXCEPTION
68855       WHEN OTHERS THEN
68856          l_acc_rev_flag := 'N';
68857    END;
68858    --
68859    IF (l_acc_rev_flag = 'Y') THEN
68860 
68861        -- 4645092  ------------------------------------------------------------------------------
68862        -- To allow MPA report to determine if it should generate report process
68863        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68864        ------------------------------------------------------------------------------------------
68865 
68866        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68867        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68868    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68869    -- call ADRs
68870    -- Bug 4922099
68871    --
68872    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68873         (NVL(l_actual_upg_option, 'N') = 'O') OR
68874         (NVL(l_enc_upg_option, 'N') = 'O')
68875       )
68876    THEN
68877    NULL;
68878    --
68879    --
68880    
68881   l_ccid := AcctDerRule_37(
68882            p_application_id           => p_application_id
68883          , p_ae_header_id             => l_ae_header_id 
68884 , p_source_15 => p_source_15
68885 , p_source_15_meaning => p_source_15_meaning
68886 , p_source_30 => p_source_30
68887 , p_source_36 => p_source_36
68888 , p_source_37 => p_source_37
68889          , x_transaction_coa_id       => l_adr_transaction_coa_id
68890          , x_accounting_coa_id        => l_adr_accounting_coa_id
68891          , x_value_type_code          => l_adr_value_type_code
68895    xla_ae_lines_pkg.set_ccid(
68892          , p_side                     => 'CREDIT'
68893    );
68894 
68896     p_code_combination_id          => l_ccid
68897   , p_value_type_code              => l_adr_value_type_code
68898   , p_transaction_coa_id           => l_adr_transaction_coa_id
68899   , p_accounting_coa_id            => l_adr_accounting_coa_id
68900   , p_adr_code                     => 'AP_REAL_GAIN'
68901   , p_adr_type_code                => 'S'
68902   , p_component_type               => l_component_type
68903   , p_component_code               => l_component_code
68904   , p_component_type_code          => l_component_type_code
68905   , p_component_appl_id            => l_component_appl_id
68906   , p_amb_context_code             => l_amb_context_code
68907   , p_side                         => 'CREDIT'
68908   );
68909 
68910 
68911   l_ccid := AcctDerRule_38(
68912            p_application_id           => p_application_id
68913          , p_ae_header_id             => l_ae_header_id 
68914 , p_source_15 => p_source_15
68915 , p_source_15_meaning => p_source_15_meaning
68916 , p_source_30 => p_source_30
68917 , p_source_38 => p_source_38
68918 , p_source_39 => p_source_39
68919          , x_transaction_coa_id       => l_adr_transaction_coa_id
68920          , x_accounting_coa_id        => l_adr_accounting_coa_id
68921          , x_value_type_code          => l_adr_value_type_code
68922          , p_side                     => 'DEBIT'
68923    );
68924 
68925    xla_ae_lines_pkg.set_ccid(
68926     p_code_combination_id          => l_ccid
68927   , p_value_type_code              => l_adr_value_type_code
68928   , p_transaction_coa_id           => l_adr_transaction_coa_id
68929   , p_accounting_coa_id            => l_adr_accounting_coa_id
68930   , p_adr_code                     => 'AP_REAL_LOSS'
68931   , p_adr_type_code                => 'S'
68932   , p_component_type               => l_component_type
68933   , p_component_code               => l_component_code
68934   , p_component_type_code          => l_component_type_code
68935   , p_component_appl_id            => l_component_appl_id
68936   , p_amb_context_code             => l_amb_context_code
68937   , p_side                         => 'DEBIT'
68938   );
68939 
68940 
68941    l_segment := AcctDerRule_22(
68942            p_application_id           => p_application_id
68943          , p_ae_header_id             => l_ae_header_id 
68944 , p_source_15 => p_source_15
68945 , p_source_15_meaning => p_source_15_meaning
68946 , p_source_30 => p_source_30
68947          , x_transaction_coa_id       => l_adr_transaction_coa_id
68948          , x_accounting_coa_id        => l_adr_accounting_coa_id
68949          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68950          , x_flex_value_set_id        => l_adr_flex_value_set_id
68951          , x_value_type_code          => l_adr_value_type_code
68952          , x_value_combination_id     => l_adr_value_combination_id
68953          , x_value_segment_code       => l_adr_value_segment_code
68954          , p_side                     => 'ALL'
68955          , p_override_seg_flag        => 'Y'
68956    );
68957 
68958    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68959 
68960       xla_ae_lines_pkg.set_segment(
68961           p_to_segment_code         => 'GL_BALANCING'
68962         , p_segment_value           => l_segment
68963         , p_from_segment_code       => l_adr_value_segment_code
68964         , p_from_combination_id     => l_adr_value_combination_id
68965         , p_value_type_code         => l_adr_value_type_code
68966         , p_transaction_coa_id      => l_adr_transaction_coa_id
68967         , p_accounting_coa_id       => l_adr_accounting_coa_id
68968         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68969         , p_flex_value_set_id       => l_adr_flex_value_set_id
68970         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68971         , p_adr_type_code           => 'S'
68972         , p_component_type          => l_component_type
68973         , p_component_code          => l_component_code
68974         , p_component_type_code     => l_component_type_code
68975         , p_component_appl_id       => l_component_appl_id
68976         , p_amb_context_code        => l_amb_context_code
68977         , p_entity_code             => 'AP_PAYMENTS'
68978         , p_event_class_code        => 'REFUNDS'
68979         , p_side                    => 'ALL'
68980         );
68981 
68982   END IF;
68983 
68984    l_segment := AcctDerRule_17(
68985            p_application_id           => p_application_id
68986          , p_ae_header_id             => l_ae_header_id 
68987 , p_source_15 => p_source_15
68988 , p_source_15_meaning => p_source_15_meaning
68989 , p_source_36 => p_source_36
68990 , p_source_37 => p_source_37
68991          , x_transaction_coa_id       => l_adr_transaction_coa_id
68992          , x_accounting_coa_id        => l_adr_accounting_coa_id
68993          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68994          , x_flex_value_set_id        => l_adr_flex_value_set_id
68995          , x_value_type_code          => l_adr_value_type_code
68996          , x_value_combination_id     => l_adr_value_combination_id
68997          , x_value_segment_code       => l_adr_value_segment_code
68998          , p_side                     => 'CREDIT'
68999          , p_override_seg_flag        => 'Y'
69000    );
69001 
69002    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69003 
69004       xla_ae_lines_pkg.set_segment(
69005           p_to_segment_code         => 'GL_ACCOUNT'
69009         , p_value_type_code         => l_adr_value_type_code
69006         , p_segment_value           => l_segment
69007         , p_from_segment_code       => l_adr_value_segment_code
69008         , p_from_combination_id     => l_adr_value_combination_id
69010         , p_transaction_coa_id      => l_adr_transaction_coa_id
69011         , p_accounting_coa_id       => l_adr_accounting_coa_id
69012         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69013         , p_flex_value_set_id       => l_adr_flex_value_set_id
69014         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69015         , p_adr_type_code           => 'S'
69016         , p_component_type          => l_component_type
69017         , p_component_code          => l_component_code
69018         , p_component_type_code     => l_component_type_code
69019         , p_component_appl_id       => l_component_appl_id
69020         , p_amb_context_code        => l_amb_context_code
69021         , p_entity_code             => 'AP_PAYMENTS'
69022         , p_event_class_code        => 'REFUNDS'
69023         , p_side                    => 'CREDIT'
69024         );
69025 
69026   END IF;
69027 
69028    l_segment := AcctDerRule_18(
69029            p_application_id           => p_application_id
69030          , p_ae_header_id             => l_ae_header_id 
69031 , p_source_15 => p_source_15
69032 , p_source_15_meaning => p_source_15_meaning
69033 , p_source_38 => p_source_38
69034 , p_source_39 => p_source_39
69035          , x_transaction_coa_id       => l_adr_transaction_coa_id
69036          , x_accounting_coa_id        => l_adr_accounting_coa_id
69037          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69038          , x_flex_value_set_id        => l_adr_flex_value_set_id
69039          , x_value_type_code          => l_adr_value_type_code
69040          , x_value_combination_id     => l_adr_value_combination_id
69041          , x_value_segment_code       => l_adr_value_segment_code
69042          , p_side                     => 'DEBIT'
69043          , p_override_seg_flag        => 'Y'
69044    );
69045 
69046    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69047 
69048       xla_ae_lines_pkg.set_segment(
69049           p_to_segment_code         => 'GL_ACCOUNT'
69050         , p_segment_value           => l_segment
69051         , p_from_segment_code       => l_adr_value_segment_code
69052         , p_from_combination_id     => l_adr_value_combination_id
69053         , p_value_type_code         => l_adr_value_type_code
69054         , p_transaction_coa_id      => l_adr_transaction_coa_id
69055         , p_accounting_coa_id       => l_adr_accounting_coa_id
69056         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69057         , p_flex_value_set_id       => l_adr_flex_value_set_id
69058         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
69059         , p_adr_type_code           => 'S'
69060         , p_component_type          => l_component_type
69061         , p_component_code          => l_component_code
69062         , p_component_type_code     => l_component_type_code
69063         , p_component_appl_id       => l_component_appl_id
69064         , p_amb_context_code        => l_amb_context_code
69065         , p_entity_code             => 'AP_PAYMENTS'
69066         , p_event_class_code        => 'REFUNDS'
69067         , p_side                    => 'DEBIT'
69068         );
69069 
69070   END IF;
69071 
69072    --
69073    --
69074    END IF;
69075 
69076        --
69077        -- Update the line information that should be overwritten
69078        --
69079        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69080                                          p_header_num   => 1);
69081        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69082 
69083        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69084 
69085        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69086           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69087        END IF;
69088 
69089       --
69090       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69091       --
69092       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69093           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69094       ELSE
69095           ---------------------------------------------------------------------------------------------------
69096           -- 4262811a Switch Sign
69097           ---------------------------------------------------------------------------------------------------
69098           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69099           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69100                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69101           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69102                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69103           -- 5132302
69104           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69105                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69106 
69107       END IF;
69108 
69109       -- 4955764
69113 
69110       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69111       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69112 
69114       XLA_AE_LINES_PKG.ValidateCurrentLine;
69115       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69116 
69117       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69118                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69119                ,p_balance_type_code => l_balance_type_code);
69120 
69121    END IF;
69122 
69123    -----------------------------------------------------------------------------------------
69124    -- 4262811 Multiperiod Accounting
69125    -----------------------------------------------------------------------------------------
69126      -- No MPA option is assigned.
69127 
69128 
69129 END IF;
69130 END IF;
69131 --
69132 
69133 --
69134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69135    trace
69136       (p_msg      => 'END of AcctLineType_127'
69137       ,p_level    => C_LEVEL_PROCEDURE
69138       ,p_module   => l_log_module);
69139 END IF;
69140 --
69141 EXCEPTION
69142   WHEN xla_exceptions_pkg.application_exception THEN
69143       RAISE;
69144   WHEN OTHERS THEN
69145        xla_exceptions_pkg.raise_message
69146            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_127');
69147 END AcctLineType_127;
69148 --
69149 
69150 ---------------------------------------
69151 --
69152 -- PRIVATE FUNCTION
69153 --         AcctLineType_128
69154 --
69155 ---------------------------------------
69156 PROCEDURE AcctLineType_128 (
69157   p_application_id        IN NUMBER
69158  ,p_event_id              IN NUMBER
69159  ,p_calculate_acctd_flag  IN VARCHAR2
69160  ,p_calculate_g_l_flag    IN VARCHAR2
69161  ,p_actual_flag           IN OUT VARCHAR2
69162  ,p_balance_type_code     OUT VARCHAR2
69163  ,p_gain_or_loss_ref      OUT VARCHAR2
69164  
69165 --Payment Currency Code
69166  , p_source_13            IN VARCHAR2
69167 --Automatic Offsets Value
69168  , p_source_15            IN VARCHAR2
69169  , p_source_15_meaning    IN VARCHAR2
69170 --Invoice Distribution Account
69171  , p_source_30            IN NUMBER
69172 --Internal Realized Gain Account
69173  , p_source_36            IN NUMBER
69174 --Bank Gain Account
69175  , p_source_37            IN NUMBER
69176 --Accounting Reversal Indicator
69177  , p_source_52            IN VARCHAR2
69178 --Distribution Link Type
69179  , p_source_54            IN VARCHAR2
69180 --Override Accounted Amount Indicator
69181  , p_source_79            IN VARCHAR2
69182  , p_source_79_meaning    IN VARCHAR2
69183 --Third Party Type
69184  , p_source_82            IN VARCHAR2
69185 --Invoice Distribution Tax Line Identifier
69186  , p_source_85            IN NUMBER
69187 --Invoice Distribution Summary Tax Line Identifier
69188  , p_source_87            IN NUMBER
69189 --Business Flow Accounts Payable Application Identifier
69190  , p_source_90            IN NUMBER
69191 --When to Account for Payment Option
69192  , p_source_96            IN VARCHAR2
69193 --Payment Distribution Type
69194  , p_source_97            IN VARCHAR2
69195  , p_source_97_meaning    IN VARCHAR2
69196 --Payment Distribution Amount
69197  , p_source_98            IN NUMBER
69198 --Business Flow Payment Distribution Type
69199  , p_source_99            IN VARCHAR2
69200 --Business Flow Payment Entity Code
69201  , p_source_100            IN VARCHAR2
69202 --Business Flow Payment Distribution Identifier
69203  , p_source_101            IN NUMBER
69204 --Business Flow Payment Identifier
69205  , p_source_102            IN NUMBER
69206 --Payment Distribution Identifier
69207  , p_source_103            IN NUMBER
69208 --Cleared Exchange Date
69209  , p_source_105            IN DATE
69210 --Cleared Exchange Rate
69211  , p_source_106            IN NUMBER
69212 --Cleared Exchange Rate Type
69213  , p_source_107            IN VARCHAR2
69214 --Payment Supplier Identifier
69215  , p_source_109            IN NUMBER
69216 --Payment Supplier Site Identifier
69217  , p_source_110            IN NUMBER
69218 --Payment Distribution Reversed Identifier
69219  , p_source_111            IN NUMBER
69220 --Payment Identifier
69221  , p_source_112            IN NUMBER
69222 --Payment Maturity Date
69223  , p_source_114            IN DATE
69224 --Gain or Loss Indicator between Maturity and Clearing
69225  , p_source_153            IN VARCHAR2
69226 --Maturity/Clearing Ledger Amount Difference
69227  , p_source_154            IN NUMBER
69228 )
69229 IS
69230 
69231 l_component_type              VARCHAR2(80);
69232 l_component_code              VARCHAR2(30);
69233 l_component_type_code         VARCHAR2(1);
69234 l_component_appl_id           INTEGER;
69235 l_amb_context_code            VARCHAR2(30);
69236 l_entity_code                 VARCHAR2(30);
69237 l_event_class_code            VARCHAR2(30);
69238 l_ae_header_id                NUMBER;
69239 l_event_type_code             VARCHAR2(30);
69240 l_line_definition_code        VARCHAR2(30);
69241 l_line_definition_owner_code  VARCHAR2(1);
69242 --
69243 -- adr variables
69244 l_segment                     VARCHAR2(30);
69245 l_ccid                        NUMBER;
69246 l_adr_transaction_coa_id      NUMBER;
69247 l_adr_accounting_coa_id       NUMBER;
69248 l_adr_flexfield_segment_code  VARCHAR2(30);
69249 l_adr_flex_value_set_id       NUMBER;
69253 
69250 l_adr_value_type_code         VARCHAR2(30);
69251 l_adr_value_combination_id    NUMBER;
69252 l_adr_value_segment_code      VARCHAR2(30);
69254 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69255 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69256 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69257 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69258 
69259 -- 4262811 Variables ------------------------------------------------------------------------------------------
69260 l_entered_amt_idx             NUMBER;
69261 l_accted_amt_idx              NUMBER;
69262 l_acc_rev_flag                VARCHAR2(1);
69263 l_accrual_line_num            NUMBER;
69264 l_tmp_amt                     NUMBER;
69265 l_acc_rev_natural_side_code   VARCHAR2(1);
69266 
69267 l_num_entries                 NUMBER;
69268 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69269 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69270 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69271 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69272 l_recog_line_1                NUMBER;
69273 l_recog_line_2                NUMBER;
69274 
69275 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69276 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69277 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69278 
69279 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69280 
69281 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69282 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69283 
69284 ---------------------------------------------------------------------------------------------------------------
69285 
69286 
69287 --
69288 -- bulk performance
69289 --
69290 l_balance_type_code           VARCHAR2(1);
69291 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69292 l_log_module                  VARCHAR2(240);
69293 
69294 --
69295 -- Upgrade strategy
69296 --
69297 l_actual_upg_option           VARCHAR2(1);
69298 l_enc_upg_option           VARCHAR2(1);
69299 
69300 --
69301 BEGIN
69302 --
69303 IF g_log_enabled THEN
69304       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
69305 END IF;
69306 --
69307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69308 
69309       trace
69310          (p_msg      => 'BEGIN of AcctLineType_128'
69311          ,p_level    => C_LEVEL_PROCEDURE
69312          ,p_module   => l_log_module);
69313 
69314 END IF;
69315 --
69316 l_component_type             := 'AMB_JLT';
69317 l_component_code             := 'AP_GAIN_MAT_CLEAR';
69318 l_component_type_code        := 'S';
69319 l_component_appl_id          :=  200;
69320 l_amb_context_code           := 'DEFAULT';
69321 l_entity_code                := 'AP_PAYMENTS';
69322 l_event_class_code           := 'RECONCILED PAYMENTS';
69323 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
69324 l_line_definition_owner_code := 'S';
69325 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
69326 --
69327 l_balance_type_code          := 'A';
69328 l_segment                     := NULL;
69329 l_ccid                        := NULL;
69330 l_adr_transaction_coa_id      := NULL;
69331 l_adr_accounting_coa_id       := NULL;
69332 l_adr_flexfield_segment_code  := NULL;
69333 l_adr_flex_value_set_id       := NULL;
69334 l_adr_value_type_code         := NULL;
69335 l_adr_value_combination_id    := NULL;
69336 l_adr_value_segment_code      := NULL;
69337 
69338 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69339 l_bflow_class_code           := '';    -- 4219869 Business Flow
69340 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69341 l_budgetary_control_flag     := 'N';
69342 
69343 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69344 l_bflow_applied_to_amt       := NULL; -- 5132302
69345 l_entered_amt_idx            := NULL;          -- 4262811
69346 l_accted_amt_idx             := NULL;          -- 4262811
69347 l_acc_rev_flag               := NULL;          -- 4262811
69348 l_accrual_line_num           := NULL;          -- 4262811
69349 l_tmp_amt                    := NULL;          -- 4262811
69350 --
69351 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
69352             (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
69353                return;
69354   END IF;
69355   
69356 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69357     l_balance_type_code <> 'B' THEN
69358 IF NVL(p_source_96,'
69359 ') =  'ALWAYS_ALWAYS' AND 
69360 p_source_114 IS NOT NULL AND 
69361 NVL(p_source_153,'
69362 ') =  'GAIN' AND 
69363 NVL(p_source_97,'
69364 ') <>  'EXCHANGE RATE VARIANCE' AND 
69365 NVL(p_source_97,'
69366 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
69367 NVL(p_source_97,'
69368 ') <>  'BANK CHARGE' AND 
69369 NVL(p_source_97,'
69370 ') <>  'BANK ERROR'
69371  THEN 
69372 
69373    --
69374    XLA_AE_LINES_PKG.SetNewLine;
69378    
69375 
69376    p_balance_type_code          := l_balance_type_code;
69377    -- set the flag so later we will know whether the gain loss line needs to be created
69379    IF(l_balance_type_code = 'A' ) THEN
69380      p_actual_flag :='G';
69381    END IF;
69382 
69383    --
69384    -- bulk performance
69385    --
69386    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69387                                       p_header_num   => 0); -- 4262811
69388    --
69389    -- set accounting line options
69390    --
69391    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69392            p_natural_side_code          => 'C'
69393          , p_gain_or_loss_flag          => 'Y'
69394          , p_gl_transfer_mode_code      => 'S'
69395          , p_acct_entry_type_code       => 'A'
69396          , p_switch_side_flag           => 'Y'
69397          , p_merge_duplicate_code       => 'A'
69398          );
69399    --
69400    l_acc_rev_natural_side_code := 'D';  -- 4262811
69401    -- 
69402    --
69403    -- set accounting line type info
69404    --
69405    xla_ae_lines_pkg.SetAcctLineType
69406       (p_component_type             => l_component_type
69407       ,p_event_type_code            => l_event_type_code
69408       ,p_line_definition_owner_code => l_line_definition_owner_code
69409       ,p_line_definition_code       => l_line_definition_code
69410       ,p_accounting_line_code       => l_component_code
69411       ,p_accounting_line_type_code  => l_component_type_code
69412       ,p_accounting_line_appl_id    => l_component_appl_id
69413       ,p_amb_context_code           => l_amb_context_code
69414       ,p_entity_code                => l_entity_code
69415       ,p_event_class_code           => l_event_class_code);
69416    --
69417    -- set accounting class
69418    --
69419    xla_ae_lines_pkg.SetAcctClass(
69420            p_accounting_class_code  => 'GAIN'
69421          , p_ae_header_id           => l_ae_header_id
69422          );
69423 
69424    --
69425    -- set rounding class
69426    --
69427    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69428                       'GAIN';
69429 
69430    --
69431    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69432    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69433    --
69434    -- bulk performance
69435    --
69436    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69437 
69438    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69439       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69440 
69441    -- 4955764
69442    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69444 
69445    -- 4458381 Public Sector Enh
69446    
69447    --
69448    -- set accounting attributes for the line type
69449    --
69450    l_entered_amt_idx := 10;
69451    l_accted_amt_idx  := 15;
69452    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
69453    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69454    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
69455    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69456    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
69457    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69458    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
69459    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69460    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
69461    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69462    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
69463    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69464    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
69465    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69466    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
69467    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69468    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
69469    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69470    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
69471    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69472    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
69473    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69474    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
69475    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
69476    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
69477    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
69478    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
69479    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
69480    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
69481    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
69482    l_rec_acct_attrs.array_num_value(15)  := p_source_154;
69483    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
69484    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
69488    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
69485    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
69486    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
69487    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
69489    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
69490    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
69491    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
69492    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
69493    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
69494    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
69495    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
69496    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
69497    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
69498    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
69499    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
69500    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
69501 
69502    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69503    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69504 
69505    ---------------------------------------------------------------------------------------------------------------
69506    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69507    ---------------------------------------------------------------------------------------------------------------
69508    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69509 
69510    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69511    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69512 
69513    IF xla_accounting_cache_pkg.GetValueChar
69514          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69515          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69516    AND l_bflow_method_code = 'PRIOR_ENTRY'
69517 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69518    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69519          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69520        )
69521    THEN
69522          xla_ae_lines_pkg.BflowUpgEntry
69523            (p_business_method_code    => l_bflow_method_code
69524            ,p_business_class_code     => l_bflow_class_code
69525            ,p_balance_type            => l_balance_type_code);
69526    ELSE
69527       NULL;
69528 -- No business flow processing for business flow method of NONE.
69529    END IF;
69530 
69531    --
69532    -- call analytical criteria
69533    --
69534    
69535 
69536 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
69537 xla_ae_lines_pkg.SetAnalyticalCriteria(
69538    p_analytical_criterion_name    => 'Check Id'
69539  , p_analytical_criterion_owner   => 'S'
69540  , p_analytical_criterion_code    => 'CHECK_ID'
69541  , p_amb_context_code             => 'DEFAULT'
69542  , p_balancing_flag               => 'N'
69543  
69544  , p_analytical_detail_char_1    =>  NULL
69545  , p_analytical_detail_num_1     =>  p_source_112
69546  , p_analytical_detail_date_1    =>  NULL
69547 
69548  , p_ae_header_id                 => l_ae_header_id
69549 )
69550 ;
69551 --
69552 
69553    --
69554    -- call description
69555    --
69556    -- No description or it is inherited.
69557    --
69558    -- call ADRs
69559    -- Bug 4922099
69560    --
69561    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69562         (NVL(l_actual_upg_option, 'N') = 'O') OR
69563         (NVL(l_enc_upg_option, 'N') = 'O')
69564       )
69565    THEN
69566    NULL;
69567    --
69568    --
69569    
69570   l_ccid := AcctDerRule_37(
69571            p_application_id           => p_application_id
69572          , p_ae_header_id             => l_ae_header_id 
69573 , p_source_15 => p_source_15
69574 , p_source_15_meaning => p_source_15_meaning
69575 , p_source_30 => p_source_30
69576 , p_source_36 => p_source_36
69577 , p_source_37 => p_source_37
69578          , x_transaction_coa_id       => l_adr_transaction_coa_id
69579          , x_accounting_coa_id        => l_adr_accounting_coa_id
69580          , x_value_type_code          => l_adr_value_type_code
69581          , p_side                     => 'NA'
69582    );
69583 
69584    xla_ae_lines_pkg.set_ccid(
69585     p_code_combination_id          => l_ccid
69586   , p_value_type_code              => l_adr_value_type_code
69587   , p_transaction_coa_id           => l_adr_transaction_coa_id
69588   , p_accounting_coa_id            => l_adr_accounting_coa_id
69589   , p_adr_code                     => 'AP_REAL_GAIN'
69590   , p_adr_type_code                => 'S'
69591   , p_component_type               => l_component_type
69592   , p_component_code               => l_component_code
69593   , p_component_type_code          => l_component_type_code
69594   , p_component_appl_id            => l_component_appl_id
69595   , p_amb_context_code             => l_amb_context_code
69596   , p_side                         => 'NA'
69597   );
69598 
69599 
69600    l_segment := AcctDerRule_22(
69601            p_application_id           => p_application_id
69605 , p_source_30 => p_source_30
69602          , p_ae_header_id             => l_ae_header_id 
69603 , p_source_15 => p_source_15
69604 , p_source_15_meaning => p_source_15_meaning
69606          , x_transaction_coa_id       => l_adr_transaction_coa_id
69607          , x_accounting_coa_id        => l_adr_accounting_coa_id
69608          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69609          , x_flex_value_set_id        => l_adr_flex_value_set_id
69610          , x_value_type_code          => l_adr_value_type_code
69611          , x_value_combination_id     => l_adr_value_combination_id
69612          , x_value_segment_code       => l_adr_value_segment_code
69613          , p_side                     => 'NA'
69614          , p_override_seg_flag        => 'Y'
69615    );
69616 
69617    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69618 
69619       xla_ae_lines_pkg.set_segment(
69620           p_to_segment_code         => 'GL_BALANCING'
69621         , p_segment_value           => l_segment
69622         , p_from_segment_code       => l_adr_value_segment_code
69623         , p_from_combination_id     => l_adr_value_combination_id
69624         , p_value_type_code         => l_adr_value_type_code
69625         , p_transaction_coa_id      => l_adr_transaction_coa_id
69626         , p_accounting_coa_id       => l_adr_accounting_coa_id
69627         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69628         , p_flex_value_set_id       => l_adr_flex_value_set_id
69629         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69630         , p_adr_type_code           => 'S'
69631         , p_component_type          => l_component_type
69632         , p_component_code          => l_component_code
69633         , p_component_type_code     => l_component_type_code
69634         , p_component_appl_id       => l_component_appl_id
69635         , p_amb_context_code        => l_amb_context_code
69636         , p_entity_code             => 'AP_PAYMENTS'
69637         , p_event_class_code        => 'RECONCILED PAYMENTS'
69638         , p_side                    => 'NA'
69639         );
69640 
69641   END IF;
69642 
69643    l_segment := AcctDerRule_17(
69644            p_application_id           => p_application_id
69645          , p_ae_header_id             => l_ae_header_id 
69646 , p_source_15 => p_source_15
69647 , p_source_15_meaning => p_source_15_meaning
69648 , p_source_36 => p_source_36
69649 , p_source_37 => p_source_37
69650          , x_transaction_coa_id       => l_adr_transaction_coa_id
69651          , x_accounting_coa_id        => l_adr_accounting_coa_id
69652          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69653          , x_flex_value_set_id        => l_adr_flex_value_set_id
69654          , x_value_type_code          => l_adr_value_type_code
69655          , x_value_combination_id     => l_adr_value_combination_id
69656          , x_value_segment_code       => l_adr_value_segment_code
69657          , p_side                     => 'NA'
69658          , p_override_seg_flag        => 'Y'
69659    );
69660 
69661    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69662 
69663       xla_ae_lines_pkg.set_segment(
69664           p_to_segment_code         => 'GL_ACCOUNT'
69665         , p_segment_value           => l_segment
69666         , p_from_segment_code       => l_adr_value_segment_code
69667         , p_from_combination_id     => l_adr_value_combination_id
69668         , p_value_type_code         => l_adr_value_type_code
69669         , p_transaction_coa_id      => l_adr_transaction_coa_id
69670         , p_accounting_coa_id       => l_adr_accounting_coa_id
69671         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69672         , p_flex_value_set_id       => l_adr_flex_value_set_id
69673         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69674         , p_adr_type_code           => 'S'
69675         , p_component_type          => l_component_type
69676         , p_component_code          => l_component_code
69677         , p_component_type_code     => l_component_type_code
69678         , p_component_appl_id       => l_component_appl_id
69679         , p_amb_context_code        => l_amb_context_code
69680         , p_entity_code             => 'AP_PAYMENTS'
69681         , p_event_class_code        => 'RECONCILED PAYMENTS'
69682         , p_side                    => 'NA'
69683         );
69684 
69685   END IF;
69686 
69687    --
69688    --
69689    END IF;
69690    --
69691    -- Bug 4922099
69692    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69693           (NVL(l_enc_upg_option, 'N') = 'O')
69694         ) AND
69695         (l_bflow_method_code = 'PRIOR_ENTRY')
69696       )
69697    THEN
69698       IF
69699       --
69700       1 = 2
69701       --
69702       THEN
69703       xla_accounting_err_pkg.build_message
69704                                     (p_appli_s_name            => 'XLA'
69705                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69706                                     ,p_token_1                 => 'LINE_NUMBER'
69707                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69708                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69709                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69710                                                                              l_component_type
69714                                                                             ,l_amb_context_code
69711                                                                             ,l_component_code
69712                                                                             ,l_component_type_code
69713                                                                             ,l_component_appl_id
69715                                                                             ,l_entity_code
69716                                                                             ,l_event_class_code
69717                                                                            )
69718                                     ,p_token_3                 => 'OWNER'
69719                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69720                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69721                                                                           ,p_lookup_code    => l_component_type_code
69722                                                                          )
69723                                     ,p_token_4                 => 'PRODUCT_NAME'
69724                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69725                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69726                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69727                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69728                                     ,p_ae_header_id            =>  NULL
69729                                        );
69730 
69731         IF (C_LEVEL_ERROR>= g_log_level) THEN
69732                  trace
69733                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69734                       ,p_level    => C_LEVEL_ERROR
69735                       ,p_module   => l_log_module);
69736         END IF;
69737       END IF;
69738    END IF;
69739    --
69740    --
69741    ------------------------------------------------------------------------------------------------
69742    -- 4219869 Business Flow
69743    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69744    -- Prior Entry.  Currently, the following code is always generated.
69745    ------------------------------------------------------------------------------------------------
69746    XLA_AE_LINES_PKG.ValidateCurrentLine;
69747 
69748    ------------------------------------------------------------------------------------
69749    -- 4219869 Business Flow
69750    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69751    ------------------------------------------------------------------------------------
69752    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69753 
69754    ----------------------------------------------------------------------------------
69755    -- 4219869 Business Flow
69756    -- Update journal entry status -- Need to generate this within IF <condition>
69757    ----------------------------------------------------------------------------------
69758    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69759          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69760          ,p_balance_type_code => l_balance_type_code
69761          );
69762 
69763    -------------------------------------------------------------------------------------------
69764    -- 4262811 - Generate the Accrual Reversal lines
69765    -------------------------------------------------------------------------------------------
69766    BEGIN
69767       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69768                               (g_array_event(p_event_id).array_value_num('header_index'));
69769       IF l_acc_rev_flag IS NULL THEN
69770          l_acc_rev_flag := 'N';
69771       END IF;
69772    EXCEPTION
69773       WHEN OTHERS THEN
69774          l_acc_rev_flag := 'N';
69775    END;
69776    --
69777    IF (l_acc_rev_flag = 'Y') THEN
69778 
69779        -- 4645092  ------------------------------------------------------------------------------
69780        -- To allow MPA report to determine if it should generate report process
69781        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69782        ------------------------------------------------------------------------------------------
69783 
69784        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69785        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69786    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69787    -- call ADRs
69788    -- Bug 4922099
69789    --
69790    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69791         (NVL(l_actual_upg_option, 'N') = 'O') OR
69792         (NVL(l_enc_upg_option, 'N') = 'O')
69793       )
69794    THEN
69795    NULL;
69796    --
69797    --
69798    
69799   l_ccid := AcctDerRule_37(
69800            p_application_id           => p_application_id
69801          , p_ae_header_id             => l_ae_header_id 
69802 , p_source_15 => p_source_15
69803 , p_source_15_meaning => p_source_15_meaning
69804 , p_source_30 => p_source_30
69805 , p_source_36 => p_source_36
69806 , p_source_37 => p_source_37
69807          , x_transaction_coa_id       => l_adr_transaction_coa_id
69808          , x_accounting_coa_id        => l_adr_accounting_coa_id
69809          , x_value_type_code          => l_adr_value_type_code
69810          , p_side                     => 'NA'
69811    );
69815   , p_value_type_code              => l_adr_value_type_code
69812 
69813    xla_ae_lines_pkg.set_ccid(
69814     p_code_combination_id          => l_ccid
69816   , p_transaction_coa_id           => l_adr_transaction_coa_id
69817   , p_accounting_coa_id            => l_adr_accounting_coa_id
69818   , p_adr_code                     => 'AP_REAL_GAIN'
69819   , p_adr_type_code                => 'S'
69820   , p_component_type               => l_component_type
69821   , p_component_code               => l_component_code
69822   , p_component_type_code          => l_component_type_code
69823   , p_component_appl_id            => l_component_appl_id
69824   , p_amb_context_code             => l_amb_context_code
69825   , p_side                         => 'NA'
69826   );
69827 
69828 
69829    l_segment := AcctDerRule_22(
69830            p_application_id           => p_application_id
69831          , p_ae_header_id             => l_ae_header_id 
69832 , p_source_15 => p_source_15
69833 , p_source_15_meaning => p_source_15_meaning
69834 , p_source_30 => p_source_30
69835          , x_transaction_coa_id       => l_adr_transaction_coa_id
69836          , x_accounting_coa_id        => l_adr_accounting_coa_id
69837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69838          , x_flex_value_set_id        => l_adr_flex_value_set_id
69839          , x_value_type_code          => l_adr_value_type_code
69840          , x_value_combination_id     => l_adr_value_combination_id
69841          , x_value_segment_code       => l_adr_value_segment_code
69842          , p_side                     => 'NA'
69843          , p_override_seg_flag        => 'Y'
69844    );
69845 
69846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69847 
69848       xla_ae_lines_pkg.set_segment(
69849           p_to_segment_code         => 'GL_BALANCING'
69850         , p_segment_value           => l_segment
69851         , p_from_segment_code       => l_adr_value_segment_code
69852         , p_from_combination_id     => l_adr_value_combination_id
69853         , p_value_type_code         => l_adr_value_type_code
69854         , p_transaction_coa_id      => l_adr_transaction_coa_id
69855         , p_accounting_coa_id       => l_adr_accounting_coa_id
69856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69857         , p_flex_value_set_id       => l_adr_flex_value_set_id
69858         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69859         , p_adr_type_code           => 'S'
69860         , p_component_type          => l_component_type
69861         , p_component_code          => l_component_code
69862         , p_component_type_code     => l_component_type_code
69863         , p_component_appl_id       => l_component_appl_id
69864         , p_amb_context_code        => l_amb_context_code
69865         , p_entity_code             => 'AP_PAYMENTS'
69866         , p_event_class_code        => 'RECONCILED PAYMENTS'
69867         , p_side                    => 'NA'
69868         );
69869 
69870   END IF;
69871 
69872    l_segment := AcctDerRule_17(
69873            p_application_id           => p_application_id
69874          , p_ae_header_id             => l_ae_header_id 
69875 , p_source_15 => p_source_15
69876 , p_source_15_meaning => p_source_15_meaning
69877 , p_source_36 => p_source_36
69878 , p_source_37 => p_source_37
69879          , x_transaction_coa_id       => l_adr_transaction_coa_id
69880          , x_accounting_coa_id        => l_adr_accounting_coa_id
69881          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69882          , x_flex_value_set_id        => l_adr_flex_value_set_id
69883          , x_value_type_code          => l_adr_value_type_code
69884          , x_value_combination_id     => l_adr_value_combination_id
69885          , x_value_segment_code       => l_adr_value_segment_code
69886          , p_side                     => 'NA'
69887          , p_override_seg_flag        => 'Y'
69888    );
69889 
69890    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69891 
69892       xla_ae_lines_pkg.set_segment(
69893           p_to_segment_code         => 'GL_ACCOUNT'
69894         , p_segment_value           => l_segment
69895         , p_from_segment_code       => l_adr_value_segment_code
69896         , p_from_combination_id     => l_adr_value_combination_id
69897         , p_value_type_code         => l_adr_value_type_code
69898         , p_transaction_coa_id      => l_adr_transaction_coa_id
69899         , p_accounting_coa_id       => l_adr_accounting_coa_id
69900         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69901         , p_flex_value_set_id       => l_adr_flex_value_set_id
69902         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69903         , p_adr_type_code           => 'S'
69904         , p_component_type          => l_component_type
69905         , p_component_code          => l_component_code
69906         , p_component_type_code     => l_component_type_code
69907         , p_component_appl_id       => l_component_appl_id
69908         , p_amb_context_code        => l_amb_context_code
69909         , p_entity_code             => 'AP_PAYMENTS'
69910         , p_event_class_code        => 'RECONCILED PAYMENTS'
69911         , p_side                    => 'NA'
69912         );
69913 
69914   END IF;
69915 
69916    --
69917    --
69918    END IF;
69919 
69920        --
69921        -- Update the line information that should be overwritten
69922        --
69926 
69923        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69924                                          p_header_num   => 1);
69925        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69927        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69928 
69929        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69930           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69931        END IF;
69932 
69933       --
69934       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69935       --
69936       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69937           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69938       ELSE
69939           ---------------------------------------------------------------------------------------------------
69940           -- 4262811a Switch Sign
69941           ---------------------------------------------------------------------------------------------------
69942           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69943           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69944                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69945           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69946                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69947           -- 5132302
69948           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69949                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69950 
69951       END IF;
69952 
69953       -- 4955764
69954       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69955       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69956 
69957 
69958       XLA_AE_LINES_PKG.ValidateCurrentLine;
69959       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69960 
69961       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69962                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69963                ,p_balance_type_code => l_balance_type_code);
69964 
69965    END IF;
69966 
69967    -----------------------------------------------------------------------------------------
69968    -- 4262811 Multiperiod Accounting
69969    -----------------------------------------------------------------------------------------
69970      -- No MPA option is assigned.
69971 
69972 
69973 END IF;
69974 END IF;
69975 --
69976 
69977 --
69978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69979    trace
69980       (p_msg      => 'END of AcctLineType_128'
69981       ,p_level    => C_LEVEL_PROCEDURE
69982       ,p_module   => l_log_module);
69983 END IF;
69984 --
69985 EXCEPTION
69986   WHEN xla_exceptions_pkg.application_exception THEN
69987       RAISE;
69988   WHEN OTHERS THEN
69989        xla_exceptions_pkg.raise_message
69990            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_128');
69991 END AcctLineType_128;
69992 --
69993 
69994 ---------------------------------------
69995 --
69996 -- PRIVATE FUNCTION
69997 --         AcctLineType_129
69998 --
69999 ---------------------------------------
70000 PROCEDURE AcctLineType_129 (
70001   p_application_id        IN NUMBER
70002  ,p_event_id              IN NUMBER
70003  ,p_calculate_acctd_flag  IN VARCHAR2
70004  ,p_calculate_g_l_flag    IN VARCHAR2
70005  ,p_actual_flag           IN OUT VARCHAR2
70006  ,p_balance_type_code     OUT VARCHAR2
70007  ,p_gain_or_loss_ref      OUT VARCHAR2
70008  
70009 --Payment Currency Code
70010  , p_source_13            IN VARCHAR2
70011 --Automatic Offsets Value
70012  , p_source_15            IN VARCHAR2
70013  , p_source_15_meaning    IN VARCHAR2
70014 --Invoice Distribution Account
70015  , p_source_30            IN NUMBER
70016 --Internal Realized Gain Account
70017  , p_source_36            IN NUMBER
70018 --Bank Gain Account
70019  , p_source_37            IN NUMBER
70020 --Accounting Reversal Indicator
70021  , p_source_52            IN VARCHAR2
70022 --Distribution Link Type
70023  , p_source_54            IN VARCHAR2
70024 --Override Accounted Amount Indicator
70025  , p_source_79            IN VARCHAR2
70026  , p_source_79_meaning    IN VARCHAR2
70027 --Third Party Type
70028  , p_source_82            IN VARCHAR2
70029 --Invoice Distribution Tax Line Identifier
70030  , p_source_85            IN NUMBER
70031 --Invoice Distribution Tax Distribution Identifier from Tax
70032  , p_source_86            IN NUMBER
70033 --Invoice Distribution Summary Tax Line Identifier
70034  , p_source_87            IN NUMBER
70035 --Business Flow Accounts Payable Application Identifier
70036  , p_source_90            IN NUMBER
70037 --Business Flow Invoice Distribution Type
70038  , p_source_91            IN VARCHAR2
70039 --Business Flow Invoice Entity Code
70040  , p_source_92            IN VARCHAR2
70041 --Business Flow Invoice Distribution Identifier
70045 --When to Account for Payment Option
70042  , p_source_93            IN NUMBER
70043 --Business Flow Invoice Identifier
70044  , p_source_94            IN NUMBER
70046  , p_source_96            IN VARCHAR2
70047 --Payment Distribution Type
70048  , p_source_97            IN VARCHAR2
70049  , p_source_97_meaning    IN VARCHAR2
70050 --Payment Distribution Amount
70051  , p_source_98            IN NUMBER
70052 --Payment Distribution Identifier
70053  , p_source_103            IN NUMBER
70054 --Payment Supplier Identifier
70055  , p_source_109            IN NUMBER
70056 --Payment Supplier Site Identifier
70057  , p_source_110            IN NUMBER
70058 --Payment Distribution Reversed Identifier
70059  , p_source_111            IN NUMBER
70060 --Payment Identifier
70061  , p_source_112            IN NUMBER
70062 --Payment Exchange Date
70063  , p_source_117            IN DATE
70064 --Payment Exchange Rate
70065  , p_source_118            IN NUMBER
70066 --Payment Exchange Rate Type
70067  , p_source_119            IN VARCHAR2
70068 --Payment Type
70069  , p_source_122            IN VARCHAR2
70070  , p_source_122_meaning    IN VARCHAR2
70071 --Invoice Distribution Amount of the Payment Distribution
70072  , p_source_124            IN NUMBER
70073 --Invoice/Payment Ledger Amount Difference
70074  , p_source_150            IN NUMBER
70075 --Gain or Loss Indicator between Invoice and Payment
70076  , p_source_155            IN VARCHAR2
70077 )
70078 IS
70079 
70080 l_component_type              VARCHAR2(80);
70081 l_component_code              VARCHAR2(30);
70082 l_component_type_code         VARCHAR2(1);
70083 l_component_appl_id           INTEGER;
70084 l_amb_context_code            VARCHAR2(30);
70085 l_entity_code                 VARCHAR2(30);
70086 l_event_class_code            VARCHAR2(30);
70087 l_ae_header_id                NUMBER;
70088 l_event_type_code             VARCHAR2(30);
70089 l_line_definition_code        VARCHAR2(30);
70090 l_line_definition_owner_code  VARCHAR2(1);
70091 --
70092 -- adr variables
70093 l_segment                     VARCHAR2(30);
70094 l_ccid                        NUMBER;
70095 l_adr_transaction_coa_id      NUMBER;
70096 l_adr_accounting_coa_id       NUMBER;
70097 l_adr_flexfield_segment_code  VARCHAR2(30);
70098 l_adr_flex_value_set_id       NUMBER;
70099 l_adr_value_type_code         VARCHAR2(30);
70100 l_adr_value_combination_id    NUMBER;
70101 l_adr_value_segment_code      VARCHAR2(30);
70102 
70103 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70104 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70105 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70106 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70107 
70108 -- 4262811 Variables ------------------------------------------------------------------------------------------
70109 l_entered_amt_idx             NUMBER;
70110 l_accted_amt_idx              NUMBER;
70111 l_acc_rev_flag                VARCHAR2(1);
70112 l_accrual_line_num            NUMBER;
70113 l_tmp_amt                     NUMBER;
70114 l_acc_rev_natural_side_code   VARCHAR2(1);
70115 
70116 l_num_entries                 NUMBER;
70117 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70118 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70119 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70120 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70121 l_recog_line_1                NUMBER;
70122 l_recog_line_2                NUMBER;
70123 
70124 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70125 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70126 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70127 
70128 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70129 
70130 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70131 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70132 
70133 ---------------------------------------------------------------------------------------------------------------
70134 
70135 
70136 --
70137 -- bulk performance
70138 --
70139 l_balance_type_code           VARCHAR2(1);
70140 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70141 l_log_module                  VARCHAR2(240);
70142 
70143 --
70144 -- Upgrade strategy
70145 --
70146 l_actual_upg_option           VARCHAR2(1);
70147 l_enc_upg_option           VARCHAR2(1);
70148 
70149 --
70150 BEGIN
70151 --
70152 IF g_log_enabled THEN
70153       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
70154 END IF;
70155 --
70156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70157 
70158       trace
70159          (p_msg      => 'BEGIN of AcctLineType_129'
70160          ,p_level    => C_LEVEL_PROCEDURE
70161          ,p_module   => l_log_module);
70162 
70163 END IF;
70164 --
70165 l_component_type             := 'AMB_JLT';
70166 l_component_code             := 'AP_GAIN_PMT';
70167 l_component_type_code        := 'S';
70168 l_component_appl_id          :=  200;
70169 l_amb_context_code           := 'DEFAULT';
70170 l_entity_code                := 'AP_PAYMENTS';
70171 l_event_class_code           := 'PAYMENTS';
70175 --
70172 l_event_type_code            := 'PAYMENTS_ALL';
70173 l_line_definition_owner_code := 'S';
70174 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
70176 l_balance_type_code          := 'A';
70177 l_segment                     := NULL;
70178 l_ccid                        := NULL;
70179 l_adr_transaction_coa_id      := NULL;
70180 l_adr_accounting_coa_id       := NULL;
70181 l_adr_flexfield_segment_code  := NULL;
70182 l_adr_flex_value_set_id       := NULL;
70183 l_adr_value_type_code         := NULL;
70184 l_adr_value_combination_id    := NULL;
70185 l_adr_value_segment_code      := NULL;
70186 
70187 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70188 l_bflow_class_code           := '';    -- 4219869 Business Flow
70189 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70190 l_budgetary_control_flag     := 'N';
70191 
70192 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70193 l_bflow_applied_to_amt       := NULL; -- 5132302
70194 l_entered_amt_idx            := NULL;          -- 4262811
70195 l_accted_amt_idx             := NULL;          -- 4262811
70196 l_acc_rev_flag               := NULL;          -- 4262811
70197 l_accrual_line_num           := NULL;          -- 4262811
70198 l_tmp_amt                    := NULL;          -- 4262811
70199 --
70200 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70201             (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
70202                return;
70203   END IF;
70204   
70205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70206     l_balance_type_code <> 'B' THEN
70207 IF (NVL(p_source_96,'
70208 ') <>  'CLEAR_CLEAR' AND 
70209 NVL(p_source_96,'
70210 ') <>  'ALWAYS_CLEAR') AND 
70211 NVL(p_source_155,'
70212 ') =  'GAIN' AND 
70213 NVL(p_source_97,'
70214 ') <>  'EXCHANGE RATE VARIANCE' AND 
70215 NVL(p_source_97,'
70216 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
70217 NVL(p_source_97,'
70218 ') <>  'BANK ERROR' AND 
70219 NVL(p_source_97,'
70220 ') <>  'BANK CHARGE' AND 
70221 NVL(p_source_97,'
70222 ') <>  'AWT' AND 
70223 NVL(p_source_122,'
70224 ') <>  'R'
70225  THEN 
70226 
70227    --
70228    XLA_AE_LINES_PKG.SetNewLine;
70229 
70230    p_balance_type_code          := l_balance_type_code;
70231    -- set the flag so later we will know whether the gain loss line needs to be created
70232    
70233    IF(l_balance_type_code = 'A' ) THEN
70234      p_actual_flag :='G';
70235    END IF;
70236 
70237    --
70238    -- bulk performance
70239    --
70240    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70241                                       p_header_num   => 0); -- 4262811
70242    --
70243    -- set accounting line options
70244    --
70245    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70246            p_natural_side_code          => 'C'
70247          , p_gain_or_loss_flag          => 'Y'
70248          , p_gl_transfer_mode_code      => 'S'
70249          , p_acct_entry_type_code       => 'A'
70250          , p_switch_side_flag           => 'Y'
70251          , p_merge_duplicate_code       => 'A'
70252          );
70253    --
70254    l_acc_rev_natural_side_code := 'D';  -- 4262811
70255    -- 
70256    --
70257    -- set accounting line type info
70258    --
70259    xla_ae_lines_pkg.SetAcctLineType
70260       (p_component_type             => l_component_type
70261       ,p_event_type_code            => l_event_type_code
70262       ,p_line_definition_owner_code => l_line_definition_owner_code
70263       ,p_line_definition_code       => l_line_definition_code
70264       ,p_accounting_line_code       => l_component_code
70265       ,p_accounting_line_type_code  => l_component_type_code
70266       ,p_accounting_line_appl_id    => l_component_appl_id
70267       ,p_amb_context_code           => l_amb_context_code
70268       ,p_entity_code                => l_entity_code
70269       ,p_event_class_code           => l_event_class_code);
70270    --
70271    -- set accounting class
70272    --
70273    xla_ae_lines_pkg.SetAcctClass(
70274            p_accounting_class_code  => 'GAIN'
70275          , p_ae_header_id           => l_ae_header_id
70276          );
70277 
70278    --
70279    -- set rounding class
70280    --
70281    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70282                       'GAIN';
70283 
70284    --
70285    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70286    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70287    --
70288    -- bulk performance
70289    --
70290    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70291 
70292    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70293       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70294 
70295    -- 4955764
70296    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70297       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70298 
70299    -- 4458381 Public Sector Enh
70300    
70301    --
70302    -- set accounting attributes for the line type
70306    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
70303    --
70304    l_entered_amt_idx := 10;
70305    l_accted_amt_idx  := 15;
70307    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70308    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
70309    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70310    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
70311    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70312    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
70313    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70314    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
70315    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70316    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
70317    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70318    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
70319    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70320    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
70321    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70322    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
70323    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70324    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
70325    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70326    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
70327    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70328    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
70329    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
70330    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
70331    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
70332    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
70333    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
70334    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
70335    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
70336    l_rec_acct_attrs.array_num_value(15)  := p_source_150;
70337    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
70338    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
70339    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
70340    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
70341    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
70342    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
70343    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
70344    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
70345    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
70346    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
70347    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
70348    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
70349    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
70350    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
70351    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
70352    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
70353    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
70354    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
70355 
70356    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70357    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70358 
70359    ---------------------------------------------------------------------------------------------------------------
70360    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70361    ---------------------------------------------------------------------------------------------------------------
70362    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70363 
70364    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70365    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70366 
70367    IF xla_accounting_cache_pkg.GetValueChar
70368          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70369          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70370    AND l_bflow_method_code = 'PRIOR_ENTRY'
70371 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70372    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70373          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70374        )
70375    THEN
70376          xla_ae_lines_pkg.BflowUpgEntry
70377            (p_business_method_code    => l_bflow_method_code
70378            ,p_business_class_code     => l_bflow_class_code
70379            ,p_balance_type            => l_balance_type_code);
70380    ELSE
70381       NULL;
70382 -- No business flow processing for business flow method of NONE.
70383    END IF;
70384 
70385    --
70386    -- call analytical criteria
70387    --
70388    
70389 
70390 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
70391 xla_ae_lines_pkg.SetAnalyticalCriteria(
70392    p_analytical_criterion_name    => 'Check Id'
70393  , p_analytical_criterion_owner   => 'S'
70394  , p_analytical_criterion_code    => 'CHECK_ID'
70395  , p_amb_context_code             => 'DEFAULT'
70396  , p_balancing_flag               => 'N'
70397  
70401 
70398  , p_analytical_detail_char_1    =>  NULL
70399  , p_analytical_detail_num_1     =>  p_source_112
70400  , p_analytical_detail_date_1    =>  NULL
70402  , p_ae_header_id                 => l_ae_header_id
70403 )
70404 ;
70405 --
70406 
70407    --
70408    -- call description
70409    --
70410    -- No description or it is inherited.
70411    --
70412    -- call ADRs
70413    -- Bug 4922099
70414    --
70415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70416         (NVL(l_actual_upg_option, 'N') = 'O') OR
70417         (NVL(l_enc_upg_option, 'N') = 'O')
70418       )
70419    THEN
70420    NULL;
70421    --
70422    --
70423    
70424   l_ccid := AcctDerRule_37(
70425            p_application_id           => p_application_id
70426          , p_ae_header_id             => l_ae_header_id 
70427 , p_source_15 => p_source_15
70428 , p_source_15_meaning => p_source_15_meaning
70429 , p_source_30 => p_source_30
70430 , p_source_36 => p_source_36
70431 , p_source_37 => p_source_37
70432          , x_transaction_coa_id       => l_adr_transaction_coa_id
70433          , x_accounting_coa_id        => l_adr_accounting_coa_id
70434          , x_value_type_code          => l_adr_value_type_code
70435          , p_side                     => 'NA'
70436    );
70437 
70438    xla_ae_lines_pkg.set_ccid(
70439     p_code_combination_id          => l_ccid
70440   , p_value_type_code              => l_adr_value_type_code
70441   , p_transaction_coa_id           => l_adr_transaction_coa_id
70442   , p_accounting_coa_id            => l_adr_accounting_coa_id
70443   , p_adr_code                     => 'AP_REAL_GAIN'
70444   , p_adr_type_code                => 'S'
70445   , p_component_type               => l_component_type
70446   , p_component_code               => l_component_code
70447   , p_component_type_code          => l_component_type_code
70448   , p_component_appl_id            => l_component_appl_id
70449   , p_amb_context_code             => l_amb_context_code
70450   , p_side                         => 'NA'
70451   );
70452 
70453 
70454    l_segment := AcctDerRule_22(
70455            p_application_id           => p_application_id
70456          , p_ae_header_id             => l_ae_header_id 
70457 , p_source_15 => p_source_15
70458 , p_source_15_meaning => p_source_15_meaning
70459 , p_source_30 => p_source_30
70460          , x_transaction_coa_id       => l_adr_transaction_coa_id
70461          , x_accounting_coa_id        => l_adr_accounting_coa_id
70462          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70463          , x_flex_value_set_id        => l_adr_flex_value_set_id
70464          , x_value_type_code          => l_adr_value_type_code
70465          , x_value_combination_id     => l_adr_value_combination_id
70466          , x_value_segment_code       => l_adr_value_segment_code
70467          , p_side                     => 'NA'
70468          , p_override_seg_flag        => 'Y'
70469    );
70470 
70471    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70472 
70473       xla_ae_lines_pkg.set_segment(
70474           p_to_segment_code         => 'GL_BALANCING'
70475         , p_segment_value           => l_segment
70476         , p_from_segment_code       => l_adr_value_segment_code
70477         , p_from_combination_id     => l_adr_value_combination_id
70478         , p_value_type_code         => l_adr_value_type_code
70479         , p_transaction_coa_id      => l_adr_transaction_coa_id
70480         , p_accounting_coa_id       => l_adr_accounting_coa_id
70481         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70482         , p_flex_value_set_id       => l_adr_flex_value_set_id
70483         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70484         , p_adr_type_code           => 'S'
70485         , p_component_type          => l_component_type
70486         , p_component_code          => l_component_code
70487         , p_component_type_code     => l_component_type_code
70488         , p_component_appl_id       => l_component_appl_id
70489         , p_amb_context_code        => l_amb_context_code
70490         , p_entity_code             => 'AP_PAYMENTS'
70491         , p_event_class_code        => 'PAYMENTS'
70492         , p_side                    => 'NA'
70493         );
70494 
70495   END IF;
70496 
70497    l_segment := AcctDerRule_17(
70498            p_application_id           => p_application_id
70499          , p_ae_header_id             => l_ae_header_id 
70500 , p_source_15 => p_source_15
70501 , p_source_15_meaning => p_source_15_meaning
70502 , p_source_36 => p_source_36
70503 , p_source_37 => p_source_37
70504          , x_transaction_coa_id       => l_adr_transaction_coa_id
70505          , x_accounting_coa_id        => l_adr_accounting_coa_id
70506          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70507          , x_flex_value_set_id        => l_adr_flex_value_set_id
70508          , x_value_type_code          => l_adr_value_type_code
70509          , x_value_combination_id     => l_adr_value_combination_id
70510          , x_value_segment_code       => l_adr_value_segment_code
70511          , p_side                     => 'NA'
70512          , p_override_seg_flag        => 'Y'
70513    );
70514 
70515    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70516 
70517       xla_ae_lines_pkg.set_segment(
70518           p_to_segment_code         => 'GL_ACCOUNT'
70522         , p_value_type_code         => l_adr_value_type_code
70519         , p_segment_value           => l_segment
70520         , p_from_segment_code       => l_adr_value_segment_code
70521         , p_from_combination_id     => l_adr_value_combination_id
70523         , p_transaction_coa_id      => l_adr_transaction_coa_id
70524         , p_accounting_coa_id       => l_adr_accounting_coa_id
70525         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70526         , p_flex_value_set_id       => l_adr_flex_value_set_id
70527         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70528         , p_adr_type_code           => 'S'
70529         , p_component_type          => l_component_type
70530         , p_component_code          => l_component_code
70531         , p_component_type_code     => l_component_type_code
70532         , p_component_appl_id       => l_component_appl_id
70533         , p_amb_context_code        => l_amb_context_code
70534         , p_entity_code             => 'AP_PAYMENTS'
70535         , p_event_class_code        => 'PAYMENTS'
70536         , p_side                    => 'NA'
70537         );
70538 
70539   END IF;
70540 
70541    --
70542    --
70543    END IF;
70544    --
70545    -- Bug 4922099
70546    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70547           (NVL(l_enc_upg_option, 'N') = 'O')
70548         ) AND
70549         (l_bflow_method_code = 'PRIOR_ENTRY')
70550       )
70551    THEN
70552       IF
70553       --
70554       1 = 2
70555       --
70556       THEN
70557       xla_accounting_err_pkg.build_message
70558                                     (p_appli_s_name            => 'XLA'
70559                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70560                                     ,p_token_1                 => 'LINE_NUMBER'
70561                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70562                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70563                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70564                                                                              l_component_type
70565                                                                             ,l_component_code
70566                                                                             ,l_component_type_code
70567                                                                             ,l_component_appl_id
70568                                                                             ,l_amb_context_code
70569                                                                             ,l_entity_code
70570                                                                             ,l_event_class_code
70571                                                                            )
70572                                     ,p_token_3                 => 'OWNER'
70573                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70574                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70575                                                                           ,p_lookup_code    => l_component_type_code
70576                                                                          )
70577                                     ,p_token_4                 => 'PRODUCT_NAME'
70578                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70579                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70580                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70581                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70582                                     ,p_ae_header_id            =>  NULL
70583                                        );
70584 
70585         IF (C_LEVEL_ERROR>= g_log_level) THEN
70586                  trace
70587                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70588                       ,p_level    => C_LEVEL_ERROR
70589                       ,p_module   => l_log_module);
70590         END IF;
70591       END IF;
70592    END IF;
70593    --
70594    --
70595    ------------------------------------------------------------------------------------------------
70596    -- 4219869 Business Flow
70597    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70598    -- Prior Entry.  Currently, the following code is always generated.
70599    ------------------------------------------------------------------------------------------------
70600    XLA_AE_LINES_PKG.ValidateCurrentLine;
70601 
70602    ------------------------------------------------------------------------------------
70603    -- 4219869 Business Flow
70604    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70605    ------------------------------------------------------------------------------------
70606    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70607 
70608    ----------------------------------------------------------------------------------
70609    -- 4219869 Business Flow
70610    -- Update journal entry status -- Need to generate this within IF <condition>
70611    ----------------------------------------------------------------------------------
70612    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70616 
70613          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70614          ,p_balance_type_code => l_balance_type_code
70615          );
70617    -------------------------------------------------------------------------------------------
70618    -- 4262811 - Generate the Accrual Reversal lines
70619    -------------------------------------------------------------------------------------------
70620    BEGIN
70621       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70622                               (g_array_event(p_event_id).array_value_num('header_index'));
70623       IF l_acc_rev_flag IS NULL THEN
70624          l_acc_rev_flag := 'N';
70625       END IF;
70626    EXCEPTION
70627       WHEN OTHERS THEN
70628          l_acc_rev_flag := 'N';
70629    END;
70630    --
70631    IF (l_acc_rev_flag = 'Y') THEN
70632 
70633        -- 4645092  ------------------------------------------------------------------------------
70634        -- To allow MPA report to determine if it should generate report process
70635        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70636        ------------------------------------------------------------------------------------------
70637 
70638        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70639        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70640    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70641    -- call ADRs
70642    -- Bug 4922099
70643    --
70644    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70645         (NVL(l_actual_upg_option, 'N') = 'O') OR
70646         (NVL(l_enc_upg_option, 'N') = 'O')
70647       )
70648    THEN
70649    NULL;
70650    --
70651    --
70652    
70653   l_ccid := AcctDerRule_37(
70654            p_application_id           => p_application_id
70655          , p_ae_header_id             => l_ae_header_id 
70656 , p_source_15 => p_source_15
70657 , p_source_15_meaning => p_source_15_meaning
70658 , p_source_30 => p_source_30
70659 , p_source_36 => p_source_36
70660 , p_source_37 => p_source_37
70661          , x_transaction_coa_id       => l_adr_transaction_coa_id
70662          , x_accounting_coa_id        => l_adr_accounting_coa_id
70663          , x_value_type_code          => l_adr_value_type_code
70664          , p_side                     => 'NA'
70665    );
70666 
70667    xla_ae_lines_pkg.set_ccid(
70668     p_code_combination_id          => l_ccid
70669   , p_value_type_code              => l_adr_value_type_code
70670   , p_transaction_coa_id           => l_adr_transaction_coa_id
70671   , p_accounting_coa_id            => l_adr_accounting_coa_id
70672   , p_adr_code                     => 'AP_REAL_GAIN'
70673   , p_adr_type_code                => 'S'
70674   , p_component_type               => l_component_type
70675   , p_component_code               => l_component_code
70676   , p_component_type_code          => l_component_type_code
70677   , p_component_appl_id            => l_component_appl_id
70678   , p_amb_context_code             => l_amb_context_code
70679   , p_side                         => 'NA'
70680   );
70681 
70682 
70683    l_segment := AcctDerRule_22(
70684            p_application_id           => p_application_id
70685          , p_ae_header_id             => l_ae_header_id 
70686 , p_source_15 => p_source_15
70687 , p_source_15_meaning => p_source_15_meaning
70688 , p_source_30 => p_source_30
70689          , x_transaction_coa_id       => l_adr_transaction_coa_id
70690          , x_accounting_coa_id        => l_adr_accounting_coa_id
70691          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70692          , x_flex_value_set_id        => l_adr_flex_value_set_id
70693          , x_value_type_code          => l_adr_value_type_code
70694          , x_value_combination_id     => l_adr_value_combination_id
70695          , x_value_segment_code       => l_adr_value_segment_code
70696          , p_side                     => 'NA'
70697          , p_override_seg_flag        => 'Y'
70698    );
70699 
70700    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70701 
70702       xla_ae_lines_pkg.set_segment(
70703           p_to_segment_code         => 'GL_BALANCING'
70704         , p_segment_value           => l_segment
70705         , p_from_segment_code       => l_adr_value_segment_code
70706         , p_from_combination_id     => l_adr_value_combination_id
70707         , p_value_type_code         => l_adr_value_type_code
70708         , p_transaction_coa_id      => l_adr_transaction_coa_id
70709         , p_accounting_coa_id       => l_adr_accounting_coa_id
70710         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70711         , p_flex_value_set_id       => l_adr_flex_value_set_id
70712         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70713         , p_adr_type_code           => 'S'
70714         , p_component_type          => l_component_type
70715         , p_component_code          => l_component_code
70716         , p_component_type_code     => l_component_type_code
70717         , p_component_appl_id       => l_component_appl_id
70718         , p_amb_context_code        => l_amb_context_code
70719         , p_entity_code             => 'AP_PAYMENTS'
70720         , p_event_class_code        => 'PAYMENTS'
70721         , p_side                    => 'NA'
70722         );
70723 
70724   END IF;
70725 
70726    l_segment := AcctDerRule_17(
70727            p_application_id           => p_application_id
70728          , p_ae_header_id             => l_ae_header_id 
70732 , p_source_37 => p_source_37
70729 , p_source_15 => p_source_15
70730 , p_source_15_meaning => p_source_15_meaning
70731 , p_source_36 => p_source_36
70733          , x_transaction_coa_id       => l_adr_transaction_coa_id
70734          , x_accounting_coa_id        => l_adr_accounting_coa_id
70735          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70736          , x_flex_value_set_id        => l_adr_flex_value_set_id
70737          , x_value_type_code          => l_adr_value_type_code
70738          , x_value_combination_id     => l_adr_value_combination_id
70739          , x_value_segment_code       => l_adr_value_segment_code
70740          , p_side                     => 'NA'
70741          , p_override_seg_flag        => 'Y'
70742    );
70743 
70744    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70745 
70746       xla_ae_lines_pkg.set_segment(
70747           p_to_segment_code         => 'GL_ACCOUNT'
70748         , p_segment_value           => l_segment
70749         , p_from_segment_code       => l_adr_value_segment_code
70750         , p_from_combination_id     => l_adr_value_combination_id
70751         , p_value_type_code         => l_adr_value_type_code
70752         , p_transaction_coa_id      => l_adr_transaction_coa_id
70753         , p_accounting_coa_id       => l_adr_accounting_coa_id
70754         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70755         , p_flex_value_set_id       => l_adr_flex_value_set_id
70756         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70757         , p_adr_type_code           => 'S'
70758         , p_component_type          => l_component_type
70759         , p_component_code          => l_component_code
70760         , p_component_type_code     => l_component_type_code
70761         , p_component_appl_id       => l_component_appl_id
70762         , p_amb_context_code        => l_amb_context_code
70763         , p_entity_code             => 'AP_PAYMENTS'
70764         , p_event_class_code        => 'PAYMENTS'
70765         , p_side                    => 'NA'
70766         );
70767 
70768   END IF;
70769 
70770    --
70771    --
70772    END IF;
70773 
70774        --
70775        -- Update the line information that should be overwritten
70776        --
70777        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70778                                          p_header_num   => 1);
70779        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70780 
70781        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70782 
70783        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70784           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70785        END IF;
70786 
70787       --
70788       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70789       --
70790       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70791           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70792       ELSE
70793           ---------------------------------------------------------------------------------------------------
70794           -- 4262811a Switch Sign
70795           ---------------------------------------------------------------------------------------------------
70796           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70797           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70798                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70799           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70800                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70801           -- 5132302
70802           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70803                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70804 
70805       END IF;
70806 
70807       -- 4955764
70808       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70809       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70810 
70811 
70812       XLA_AE_LINES_PKG.ValidateCurrentLine;
70813       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70814 
70815       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70816                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70817                ,p_balance_type_code => l_balance_type_code);
70818 
70819    END IF;
70820 
70821    -----------------------------------------------------------------------------------------
70822    -- 4262811 Multiperiod Accounting
70823    -----------------------------------------------------------------------------------------
70824      -- No MPA option is assigned.
70825 
70826 
70827 END IF;
70828 END IF;
70829 --
70830 
70831 --
70832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70833    trace
70834       (p_msg      => 'END of AcctLineType_129'
70835       ,p_level    => C_LEVEL_PROCEDURE
70836       ,p_module   => l_log_module);
70837 END IF;
70838 --
70839 EXCEPTION
70840   WHEN xla_exceptions_pkg.application_exception THEN
70844            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_129');
70841       RAISE;
70842   WHEN OTHERS THEN
70843        xla_exceptions_pkg.raise_message
70845 END AcctLineType_129;
70846 --
70847 
70848 ---------------------------------------
70849 --
70850 -- PRIVATE FUNCTION
70851 --         AcctLineType_130
70852 --
70853 ---------------------------------------
70854 PROCEDURE AcctLineType_130 (
70855   p_application_id        IN NUMBER
70856  ,p_event_id              IN NUMBER
70857  ,p_calculate_acctd_flag  IN VARCHAR2
70858  ,p_calculate_g_l_flag    IN VARCHAR2
70859  ,p_actual_flag           IN OUT VARCHAR2
70860  ,p_balance_type_code     OUT VARCHAR2
70861  ,p_gain_or_loss_ref      OUT VARCHAR2
70862  
70863 --Payment Currency Code
70864  , p_source_13            IN VARCHAR2
70865 --Automatic Offsets Value
70866  , p_source_15            IN VARCHAR2
70867  , p_source_15_meaning    IN VARCHAR2
70868 --Invoice Distribution Account
70869  , p_source_30            IN NUMBER
70870 --Internal Realized Gain Account
70871  , p_source_36            IN NUMBER
70872 --Bank Gain Account
70873  , p_source_37            IN NUMBER
70874 --Accounting Reversal Indicator
70875  , p_source_52            IN VARCHAR2
70876 --Distribution Link Type
70877  , p_source_54            IN VARCHAR2
70878 --Override Accounted Amount Indicator
70879  , p_source_79            IN VARCHAR2
70880  , p_source_79_meaning    IN VARCHAR2
70881 --Third Party Type
70882  , p_source_82            IN VARCHAR2
70883 --Invoice Distribution Tax Line Identifier
70884  , p_source_85            IN NUMBER
70885 --Invoice Distribution Summary Tax Line Identifier
70886  , p_source_87            IN NUMBER
70887 --Business Flow Accounts Payable Application Identifier
70888  , p_source_90            IN NUMBER
70889 --When to Account for Payment Option
70890  , p_source_96            IN VARCHAR2
70891 --Payment Distribution Type
70892  , p_source_97            IN VARCHAR2
70893  , p_source_97_meaning    IN VARCHAR2
70894 --Payment Distribution Amount
70895  , p_source_98            IN NUMBER
70896 --Business Flow Payment Distribution Type
70897  , p_source_99            IN VARCHAR2
70898 --Business Flow Payment Entity Code
70899  , p_source_100            IN VARCHAR2
70900 --Business Flow Payment Distribution Identifier
70901  , p_source_101            IN NUMBER
70902 --Business Flow Payment Identifier
70903  , p_source_102            IN NUMBER
70904 --Payment Distribution Identifier
70905  , p_source_103            IN NUMBER
70906 --Cleared Exchange Date
70907  , p_source_105            IN DATE
70908 --Cleared Exchange Rate
70909  , p_source_106            IN NUMBER
70910 --Cleared Exchange Rate Type
70911  , p_source_107            IN VARCHAR2
70912 --Payment Supplier Identifier
70913  , p_source_109            IN NUMBER
70914 --Payment Supplier Site Identifier
70915  , p_source_110            IN NUMBER
70916 --Payment Distribution Reversed Identifier
70917  , p_source_111            IN NUMBER
70918 --Payment Identifier
70919  , p_source_112            IN NUMBER
70920 --Payment Maturity Date
70921  , p_source_114            IN DATE
70922 --Gain or Loss Indicator between Payment and Clearing
70923  , p_source_156            IN VARCHAR2
70924 --Payment/Clearing Ledger Amount Difference
70925  , p_source_157            IN NUMBER
70926 )
70927 IS
70928 
70929 l_component_type              VARCHAR2(80);
70930 l_component_code              VARCHAR2(30);
70931 l_component_type_code         VARCHAR2(1);
70932 l_component_appl_id           INTEGER;
70933 l_amb_context_code            VARCHAR2(30);
70934 l_entity_code                 VARCHAR2(30);
70935 l_event_class_code            VARCHAR2(30);
70936 l_ae_header_id                NUMBER;
70937 l_event_type_code             VARCHAR2(30);
70938 l_line_definition_code        VARCHAR2(30);
70939 l_line_definition_owner_code  VARCHAR2(1);
70940 --
70941 -- adr variables
70942 l_segment                     VARCHAR2(30);
70943 l_ccid                        NUMBER;
70944 l_adr_transaction_coa_id      NUMBER;
70945 l_adr_accounting_coa_id       NUMBER;
70946 l_adr_flexfield_segment_code  VARCHAR2(30);
70947 l_adr_flex_value_set_id       NUMBER;
70948 l_adr_value_type_code         VARCHAR2(30);
70949 l_adr_value_combination_id    NUMBER;
70950 l_adr_value_segment_code      VARCHAR2(30);
70951 
70952 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70953 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70954 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70955 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70956 
70957 -- 4262811 Variables ------------------------------------------------------------------------------------------
70958 l_entered_amt_idx             NUMBER;
70959 l_accted_amt_idx              NUMBER;
70960 l_acc_rev_flag                VARCHAR2(1);
70961 l_accrual_line_num            NUMBER;
70962 l_tmp_amt                     NUMBER;
70963 l_acc_rev_natural_side_code   VARCHAR2(1);
70964 
70965 l_num_entries                 NUMBER;
70966 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70967 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70968 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70969 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70970 l_recog_line_1                NUMBER;
70971 l_recog_line_2                NUMBER;
70972 
70976 
70973 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70974 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70975 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70977 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70978 
70979 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70980 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70981 
70982 ---------------------------------------------------------------------------------------------------------------
70983 
70984 
70985 --
70986 -- bulk performance
70987 --
70988 l_balance_type_code           VARCHAR2(1);
70989 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70990 l_log_module                  VARCHAR2(240);
70991 
70992 --
70993 -- Upgrade strategy
70994 --
70995 l_actual_upg_option           VARCHAR2(1);
70996 l_enc_upg_option           VARCHAR2(1);
70997 
70998 --
70999 BEGIN
71000 --
71001 IF g_log_enabled THEN
71002       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
71003 END IF;
71004 --
71005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71006 
71007       trace
71008          (p_msg      => 'BEGIN of AcctLineType_130'
71009          ,p_level    => C_LEVEL_PROCEDURE
71010          ,p_module   => l_log_module);
71011 
71012 END IF;
71013 --
71014 l_component_type             := 'AMB_JLT';
71015 l_component_code             := 'AP_GAIN_PMT_CLEAR';
71016 l_component_type_code        := 'S';
71017 l_component_appl_id          :=  200;
71018 l_amb_context_code           := 'DEFAULT';
71019 l_entity_code                := 'AP_PAYMENTS';
71020 l_event_class_code           := 'RECONCILED PAYMENTS';
71021 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
71022 l_line_definition_owner_code := 'S';
71023 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
71024 --
71025 l_balance_type_code          := 'A';
71026 l_segment                     := NULL;
71027 l_ccid                        := NULL;
71028 l_adr_transaction_coa_id      := NULL;
71029 l_adr_accounting_coa_id       := NULL;
71030 l_adr_flexfield_segment_code  := NULL;
71031 l_adr_flex_value_set_id       := NULL;
71032 l_adr_value_type_code         := NULL;
71033 l_adr_value_combination_id    := NULL;
71034 l_adr_value_segment_code      := NULL;
71035 
71036 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71037 l_bflow_class_code           := '';    -- 4219869 Business Flow
71038 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71039 l_budgetary_control_flag     := 'N';
71040 
71041 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71042 l_bflow_applied_to_amt       := NULL; -- 5132302
71043 l_entered_amt_idx            := NULL;          -- 4262811
71044 l_accted_amt_idx             := NULL;          -- 4262811
71045 l_acc_rev_flag               := NULL;          -- 4262811
71046 l_accrual_line_num           := NULL;          -- 4262811
71047 l_tmp_amt                    := NULL;          -- 4262811
71048 --
71049 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71050             (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
71051                return;
71052   END IF;
71053   
71054 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71055     l_balance_type_code <> 'B' THEN
71056 IF NVL(p_source_96,'
71057 ') =  'ALWAYS_ALWAYS' AND 
71058 p_source_114 IS NULL AND 
71059 NVL(p_source_156,'
71060 ') =  'GAIN' AND 
71061 NVL(p_source_97,'
71062 ') <>  'EXCHANGE RATE VARIANCE' AND 
71063 NVL(p_source_97,'
71064 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
71065 NVL(p_source_97,'
71066 ') <>  'BANK CHARGE' AND 
71067 NVL(p_source_97,'
71068 ') <>  'BANK ERROR' AND 
71069 NVL(p_source_97,'
71070 ') <>  'AWT'
71071  THEN 
71072 
71073    --
71074    XLA_AE_LINES_PKG.SetNewLine;
71075 
71076    p_balance_type_code          := l_balance_type_code;
71077    -- set the flag so later we will know whether the gain loss line needs to be created
71078    
71079    IF(l_balance_type_code = 'A' ) THEN
71080      p_actual_flag :='G';
71081    END IF;
71082 
71083    --
71084    -- bulk performance
71085    --
71086    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71087                                       p_header_num   => 0); -- 4262811
71088    --
71089    -- set accounting line options
71090    --
71091    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71092            p_natural_side_code          => 'C'
71093          , p_gain_or_loss_flag          => 'Y'
71094          , p_gl_transfer_mode_code      => 'S'
71095          , p_acct_entry_type_code       => 'A'
71096          , p_switch_side_flag           => 'Y'
71097          , p_merge_duplicate_code       => 'A'
71098          );
71099    --
71100    l_acc_rev_natural_side_code := 'D';  -- 4262811
71101    -- 
71102    --
71103    -- set accounting line type info
71104    --
71105    xla_ae_lines_pkg.SetAcctLineType
71106       (p_component_type             => l_component_type
71110       ,p_accounting_line_code       => l_component_code
71107       ,p_event_type_code            => l_event_type_code
71108       ,p_line_definition_owner_code => l_line_definition_owner_code
71109       ,p_line_definition_code       => l_line_definition_code
71111       ,p_accounting_line_type_code  => l_component_type_code
71112       ,p_accounting_line_appl_id    => l_component_appl_id
71113       ,p_amb_context_code           => l_amb_context_code
71114       ,p_entity_code                => l_entity_code
71115       ,p_event_class_code           => l_event_class_code);
71116    --
71117    -- set accounting class
71118    --
71119    xla_ae_lines_pkg.SetAcctClass(
71120            p_accounting_class_code  => 'GAIN'
71121          , p_ae_header_id           => l_ae_header_id
71122          );
71123 
71124    --
71125    -- set rounding class
71126    --
71127    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71128                       'GAIN';
71129 
71130    --
71131    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71132    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71133    --
71134    -- bulk performance
71135    --
71136    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71137 
71138    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71139       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71140 
71141    -- 4955764
71142    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71143       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71144 
71145    -- 4458381 Public Sector Enh
71146    
71147    --
71148    -- set accounting attributes for the line type
71149    --
71150    l_entered_amt_idx := 10;
71151    l_accted_amt_idx  := 15;
71152    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
71153    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71154    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
71155    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
71156    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
71157    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
71158    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
71159    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71160    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
71161    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
71162    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
71163    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
71164    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
71165    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71166    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
71167    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
71168    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
71169    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
71170    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
71171    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
71172    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
71173    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
71174    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
71175    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
71176    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
71177    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
71178    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
71179    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
71180    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
71181    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
71182    l_rec_acct_attrs.array_num_value(15)  := p_source_157;
71183    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
71184    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
71185    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
71186    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
71187    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
71188    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
71189    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
71190    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
71191    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
71192    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
71193    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
71194    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
71195    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
71196    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
71197    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
71198    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
71199    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
71200    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
71201 
71202    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71203    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71204 
71208    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71205    ---------------------------------------------------------------------------------------------------------------
71206    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71207    ---------------------------------------------------------------------------------------------------------------
71209 
71210    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71211    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71212 
71213    IF xla_accounting_cache_pkg.GetValueChar
71214          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71215          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71216    AND l_bflow_method_code = 'PRIOR_ENTRY'
71217 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71218    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71219          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71220        )
71221    THEN
71222          xla_ae_lines_pkg.BflowUpgEntry
71223            (p_business_method_code    => l_bflow_method_code
71224            ,p_business_class_code     => l_bflow_class_code
71225            ,p_balance_type            => l_balance_type_code);
71226    ELSE
71227       NULL;
71228 -- No business flow processing for business flow method of NONE.
71229    END IF;
71230 
71231    --
71232    -- call analytical criteria
71233    --
71234    
71235 
71236 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
71237 xla_ae_lines_pkg.SetAnalyticalCriteria(
71238    p_analytical_criterion_name    => 'Check Id'
71239  , p_analytical_criterion_owner   => 'S'
71240  , p_analytical_criterion_code    => 'CHECK_ID'
71241  , p_amb_context_code             => 'DEFAULT'
71242  , p_balancing_flag               => 'N'
71243  
71244  , p_analytical_detail_char_1    =>  NULL
71245  , p_analytical_detail_num_1     =>  p_source_112
71246  , p_analytical_detail_date_1    =>  NULL
71247 
71248  , p_ae_header_id                 => l_ae_header_id
71249 )
71250 ;
71251 --
71252 
71253    --
71254    -- call description
71255    --
71256    -- No description or it is inherited.
71257    --
71258    -- call ADRs
71259    -- Bug 4922099
71260    --
71261    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71262         (NVL(l_actual_upg_option, 'N') = 'O') OR
71263         (NVL(l_enc_upg_option, 'N') = 'O')
71264       )
71265    THEN
71266    NULL;
71267    --
71268    --
71269    
71270   l_ccid := AcctDerRule_37(
71271            p_application_id           => p_application_id
71272          , p_ae_header_id             => l_ae_header_id 
71273 , p_source_15 => p_source_15
71274 , p_source_15_meaning => p_source_15_meaning
71275 , p_source_30 => p_source_30
71276 , p_source_36 => p_source_36
71277 , p_source_37 => p_source_37
71278          , x_transaction_coa_id       => l_adr_transaction_coa_id
71279          , x_accounting_coa_id        => l_adr_accounting_coa_id
71280          , x_value_type_code          => l_adr_value_type_code
71281          , p_side                     => 'NA'
71282    );
71283 
71284    xla_ae_lines_pkg.set_ccid(
71285     p_code_combination_id          => l_ccid
71286   , p_value_type_code              => l_adr_value_type_code
71287   , p_transaction_coa_id           => l_adr_transaction_coa_id
71288   , p_accounting_coa_id            => l_adr_accounting_coa_id
71289   , p_adr_code                     => 'AP_REAL_GAIN'
71290   , p_adr_type_code                => 'S'
71291   , p_component_type               => l_component_type
71292   , p_component_code               => l_component_code
71293   , p_component_type_code          => l_component_type_code
71294   , p_component_appl_id            => l_component_appl_id
71295   , p_amb_context_code             => l_amb_context_code
71296   , p_side                         => 'NA'
71297   );
71298 
71299 
71300    l_segment := AcctDerRule_22(
71301            p_application_id           => p_application_id
71302          , p_ae_header_id             => l_ae_header_id 
71303 , p_source_15 => p_source_15
71304 , p_source_15_meaning => p_source_15_meaning
71305 , p_source_30 => p_source_30
71306          , x_transaction_coa_id       => l_adr_transaction_coa_id
71307          , x_accounting_coa_id        => l_adr_accounting_coa_id
71308          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71309          , x_flex_value_set_id        => l_adr_flex_value_set_id
71310          , x_value_type_code          => l_adr_value_type_code
71311          , x_value_combination_id     => l_adr_value_combination_id
71312          , x_value_segment_code       => l_adr_value_segment_code
71313          , p_side                     => 'NA'
71314          , p_override_seg_flag        => 'Y'
71315    );
71316 
71317    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71318 
71319       xla_ae_lines_pkg.set_segment(
71320           p_to_segment_code         => 'GL_BALANCING'
71321         , p_segment_value           => l_segment
71322         , p_from_segment_code       => l_adr_value_segment_code
71323         , p_from_combination_id     => l_adr_value_combination_id
71327         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71324         , p_value_type_code         => l_adr_value_type_code
71325         , p_transaction_coa_id      => l_adr_transaction_coa_id
71326         , p_accounting_coa_id       => l_adr_accounting_coa_id
71328         , p_flex_value_set_id       => l_adr_flex_value_set_id
71329         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71330         , p_adr_type_code           => 'S'
71331         , p_component_type          => l_component_type
71332         , p_component_code          => l_component_code
71333         , p_component_type_code     => l_component_type_code
71334         , p_component_appl_id       => l_component_appl_id
71335         , p_amb_context_code        => l_amb_context_code
71336         , p_entity_code             => 'AP_PAYMENTS'
71337         , p_event_class_code        => 'RECONCILED PAYMENTS'
71338         , p_side                    => 'NA'
71339         );
71340 
71341   END IF;
71342 
71343    l_segment := AcctDerRule_17(
71344            p_application_id           => p_application_id
71345          , p_ae_header_id             => l_ae_header_id 
71346 , p_source_15 => p_source_15
71347 , p_source_15_meaning => p_source_15_meaning
71348 , p_source_36 => p_source_36
71349 , p_source_37 => p_source_37
71350          , x_transaction_coa_id       => l_adr_transaction_coa_id
71351          , x_accounting_coa_id        => l_adr_accounting_coa_id
71352          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71353          , x_flex_value_set_id        => l_adr_flex_value_set_id
71354          , x_value_type_code          => l_adr_value_type_code
71355          , x_value_combination_id     => l_adr_value_combination_id
71356          , x_value_segment_code       => l_adr_value_segment_code
71357          , p_side                     => 'NA'
71358          , p_override_seg_flag        => 'Y'
71359    );
71360 
71361    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71362 
71363       xla_ae_lines_pkg.set_segment(
71364           p_to_segment_code         => 'GL_ACCOUNT'
71365         , p_segment_value           => l_segment
71366         , p_from_segment_code       => l_adr_value_segment_code
71367         , p_from_combination_id     => l_adr_value_combination_id
71368         , p_value_type_code         => l_adr_value_type_code
71369         , p_transaction_coa_id      => l_adr_transaction_coa_id
71370         , p_accounting_coa_id       => l_adr_accounting_coa_id
71371         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71372         , p_flex_value_set_id       => l_adr_flex_value_set_id
71373         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71374         , p_adr_type_code           => 'S'
71375         , p_component_type          => l_component_type
71376         , p_component_code          => l_component_code
71377         , p_component_type_code     => l_component_type_code
71378         , p_component_appl_id       => l_component_appl_id
71379         , p_amb_context_code        => l_amb_context_code
71380         , p_entity_code             => 'AP_PAYMENTS'
71381         , p_event_class_code        => 'RECONCILED PAYMENTS'
71382         , p_side                    => 'NA'
71383         );
71384 
71385   END IF;
71386 
71387    --
71388    --
71389    END IF;
71390    --
71391    -- Bug 4922099
71392    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71393           (NVL(l_enc_upg_option, 'N') = 'O')
71394         ) AND
71395         (l_bflow_method_code = 'PRIOR_ENTRY')
71396       )
71397    THEN
71398       IF
71399       --
71400       1 = 2
71401       --
71402       THEN
71403       xla_accounting_err_pkg.build_message
71404                                     (p_appli_s_name            => 'XLA'
71405                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71406                                     ,p_token_1                 => 'LINE_NUMBER'
71407                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71408                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71409                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71410                                                                              l_component_type
71411                                                                             ,l_component_code
71412                                                                             ,l_component_type_code
71413                                                                             ,l_component_appl_id
71414                                                                             ,l_amb_context_code
71415                                                                             ,l_entity_code
71416                                                                             ,l_event_class_code
71417                                                                            )
71418                                     ,p_token_3                 => 'OWNER'
71419                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71420                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71421                                                                           ,p_lookup_code    => l_component_type_code
71422                                                                          )
71423                                     ,p_token_4                 => 'PRODUCT_NAME'
71424                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71428                                     ,p_ae_header_id            =>  NULL
71425                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71426                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71427                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71429                                        );
71430 
71431         IF (C_LEVEL_ERROR>= g_log_level) THEN
71432                  trace
71433                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71434                       ,p_level    => C_LEVEL_ERROR
71435                       ,p_module   => l_log_module);
71436         END IF;
71437       END IF;
71438    END IF;
71439    --
71440    --
71441    ------------------------------------------------------------------------------------------------
71442    -- 4219869 Business Flow
71443    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71444    -- Prior Entry.  Currently, the following code is always generated.
71445    ------------------------------------------------------------------------------------------------
71446    XLA_AE_LINES_PKG.ValidateCurrentLine;
71447 
71448    ------------------------------------------------------------------------------------
71449    -- 4219869 Business Flow
71450    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71451    ------------------------------------------------------------------------------------
71452    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71453 
71454    ----------------------------------------------------------------------------------
71455    -- 4219869 Business Flow
71456    -- Update journal entry status -- Need to generate this within IF <condition>
71457    ----------------------------------------------------------------------------------
71458    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71459          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71460          ,p_balance_type_code => l_balance_type_code
71461          );
71462 
71463    -------------------------------------------------------------------------------------------
71464    -- 4262811 - Generate the Accrual Reversal lines
71465    -------------------------------------------------------------------------------------------
71466    BEGIN
71467       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71468                               (g_array_event(p_event_id).array_value_num('header_index'));
71469       IF l_acc_rev_flag IS NULL THEN
71470          l_acc_rev_flag := 'N';
71471       END IF;
71472    EXCEPTION
71473       WHEN OTHERS THEN
71474          l_acc_rev_flag := 'N';
71475    END;
71476    --
71477    IF (l_acc_rev_flag = 'Y') THEN
71478 
71479        -- 4645092  ------------------------------------------------------------------------------
71480        -- To allow MPA report to determine if it should generate report process
71481        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71482        ------------------------------------------------------------------------------------------
71483 
71484        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71485        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71486    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71487    -- call ADRs
71488    -- Bug 4922099
71489    --
71490    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71491         (NVL(l_actual_upg_option, 'N') = 'O') OR
71492         (NVL(l_enc_upg_option, 'N') = 'O')
71493       )
71494    THEN
71495    NULL;
71496    --
71497    --
71498    
71499   l_ccid := AcctDerRule_37(
71500            p_application_id           => p_application_id
71501          , p_ae_header_id             => l_ae_header_id 
71502 , p_source_15 => p_source_15
71503 , p_source_15_meaning => p_source_15_meaning
71504 , p_source_30 => p_source_30
71505 , p_source_36 => p_source_36
71506 , p_source_37 => p_source_37
71507          , x_transaction_coa_id       => l_adr_transaction_coa_id
71508          , x_accounting_coa_id        => l_adr_accounting_coa_id
71509          , x_value_type_code          => l_adr_value_type_code
71510          , p_side                     => 'NA'
71511    );
71512 
71513    xla_ae_lines_pkg.set_ccid(
71514     p_code_combination_id          => l_ccid
71515   , p_value_type_code              => l_adr_value_type_code
71516   , p_transaction_coa_id           => l_adr_transaction_coa_id
71517   , p_accounting_coa_id            => l_adr_accounting_coa_id
71518   , p_adr_code                     => 'AP_REAL_GAIN'
71519   , p_adr_type_code                => 'S'
71520   , p_component_type               => l_component_type
71521   , p_component_code               => l_component_code
71522   , p_component_type_code          => l_component_type_code
71523   , p_component_appl_id            => l_component_appl_id
71524   , p_amb_context_code             => l_amb_context_code
71525   , p_side                         => 'NA'
71526   );
71527 
71528 
71529    l_segment := AcctDerRule_22(
71530            p_application_id           => p_application_id
71531          , p_ae_header_id             => l_ae_header_id 
71532 , p_source_15 => p_source_15
71533 , p_source_15_meaning => p_source_15_meaning
71534 , p_source_30 => p_source_30
71535          , x_transaction_coa_id       => l_adr_transaction_coa_id
71536          , x_accounting_coa_id        => l_adr_accounting_coa_id
71540          , x_value_combination_id     => l_adr_value_combination_id
71537          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71538          , x_flex_value_set_id        => l_adr_flex_value_set_id
71539          , x_value_type_code          => l_adr_value_type_code
71541          , x_value_segment_code       => l_adr_value_segment_code
71542          , p_side                     => 'NA'
71543          , p_override_seg_flag        => 'Y'
71544    );
71545 
71546    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71547 
71548       xla_ae_lines_pkg.set_segment(
71549           p_to_segment_code         => 'GL_BALANCING'
71550         , p_segment_value           => l_segment
71551         , p_from_segment_code       => l_adr_value_segment_code
71552         , p_from_combination_id     => l_adr_value_combination_id
71553         , p_value_type_code         => l_adr_value_type_code
71554         , p_transaction_coa_id      => l_adr_transaction_coa_id
71555         , p_accounting_coa_id       => l_adr_accounting_coa_id
71556         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71557         , p_flex_value_set_id       => l_adr_flex_value_set_id
71558         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71559         , p_adr_type_code           => 'S'
71560         , p_component_type          => l_component_type
71561         , p_component_code          => l_component_code
71562         , p_component_type_code     => l_component_type_code
71563         , p_component_appl_id       => l_component_appl_id
71564         , p_amb_context_code        => l_amb_context_code
71565         , p_entity_code             => 'AP_PAYMENTS'
71566         , p_event_class_code        => 'RECONCILED PAYMENTS'
71567         , p_side                    => 'NA'
71568         );
71569 
71570   END IF;
71571 
71572    l_segment := AcctDerRule_17(
71573            p_application_id           => p_application_id
71574          , p_ae_header_id             => l_ae_header_id 
71575 , p_source_15 => p_source_15
71576 , p_source_15_meaning => p_source_15_meaning
71577 , p_source_36 => p_source_36
71578 , p_source_37 => p_source_37
71579          , x_transaction_coa_id       => l_adr_transaction_coa_id
71580          , x_accounting_coa_id        => l_adr_accounting_coa_id
71581          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71582          , x_flex_value_set_id        => l_adr_flex_value_set_id
71583          , x_value_type_code          => l_adr_value_type_code
71584          , x_value_combination_id     => l_adr_value_combination_id
71585          , x_value_segment_code       => l_adr_value_segment_code
71586          , p_side                     => 'NA'
71587          , p_override_seg_flag        => 'Y'
71588    );
71589 
71590    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71591 
71592       xla_ae_lines_pkg.set_segment(
71593           p_to_segment_code         => 'GL_ACCOUNT'
71594         , p_segment_value           => l_segment
71595         , p_from_segment_code       => l_adr_value_segment_code
71596         , p_from_combination_id     => l_adr_value_combination_id
71597         , p_value_type_code         => l_adr_value_type_code
71598         , p_transaction_coa_id      => l_adr_transaction_coa_id
71599         , p_accounting_coa_id       => l_adr_accounting_coa_id
71600         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71601         , p_flex_value_set_id       => l_adr_flex_value_set_id
71602         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71603         , p_adr_type_code           => 'S'
71604         , p_component_type          => l_component_type
71605         , p_component_code          => l_component_code
71606         , p_component_type_code     => l_component_type_code
71607         , p_component_appl_id       => l_component_appl_id
71608         , p_amb_context_code        => l_amb_context_code
71609         , p_entity_code             => 'AP_PAYMENTS'
71610         , p_event_class_code        => 'RECONCILED PAYMENTS'
71611         , p_side                    => 'NA'
71612         );
71613 
71614   END IF;
71615 
71616    --
71617    --
71618    END IF;
71619 
71620        --
71621        -- Update the line information that should be overwritten
71622        --
71623        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71624                                          p_header_num   => 1);
71625        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71626 
71627        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71628 
71629        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71630           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71631        END IF;
71632 
71633       --
71634       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71635       --
71636       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71637           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71638       ELSE
71639           ---------------------------------------------------------------------------------------------------
71640           -- 4262811a Switch Sign
71641           ---------------------------------------------------------------------------------------------------
71642           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71646                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71643           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71644                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71645           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71647           -- 5132302
71648           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71649                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71650 
71651       END IF;
71652 
71653       -- 4955764
71654       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71655       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71656 
71657 
71658       XLA_AE_LINES_PKG.ValidateCurrentLine;
71659       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71660 
71661       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71662                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71663                ,p_balance_type_code => l_balance_type_code);
71664 
71665    END IF;
71666 
71667    -----------------------------------------------------------------------------------------
71668    -- 4262811 Multiperiod Accounting
71669    -----------------------------------------------------------------------------------------
71670      -- No MPA option is assigned.
71671 
71672 
71673 END IF;
71674 END IF;
71675 --
71676 
71677 --
71678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71679    trace
71680       (p_msg      => 'END of AcctLineType_130'
71681       ,p_level    => C_LEVEL_PROCEDURE
71682       ,p_module   => l_log_module);
71683 END IF;
71684 --
71685 EXCEPTION
71686   WHEN xla_exceptions_pkg.application_exception THEN
71687       RAISE;
71688   WHEN OTHERS THEN
71689        xla_exceptions_pkg.raise_message
71690            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_130');
71691 END AcctLineType_130;
71692 --
71693 
71694 ---------------------------------------
71695 --
71696 -- PRIVATE FUNCTION
71697 --         AcctLineType_131
71698 --
71699 ---------------------------------------
71700 PROCEDURE AcctLineType_131 (
71701   p_application_id        IN NUMBER
71702  ,p_event_id              IN NUMBER
71703  ,p_calculate_acctd_flag  IN VARCHAR2
71704  ,p_calculate_g_l_flag    IN VARCHAR2
71705  ,p_actual_flag           IN OUT VARCHAR2
71706  ,p_balance_type_code     OUT VARCHAR2
71707  ,p_gain_or_loss_ref      OUT VARCHAR2
71708  
71709 --Payment Currency Code
71710  , p_source_13            IN VARCHAR2
71711 --Automatic Offsets Value
71712  , p_source_15            IN VARCHAR2
71713  , p_source_15_meaning    IN VARCHAR2
71714 --Invoice Distribution Account
71715  , p_source_30            IN NUMBER
71716 --Internal Realized Gain Account
71717  , p_source_36            IN NUMBER
71718 --Bank Gain Account
71719  , p_source_37            IN NUMBER
71720 --Accounting Reversal Indicator
71721  , p_source_52            IN VARCHAR2
71722 --Distribution Link Type
71723  , p_source_54            IN VARCHAR2
71724 --Override Accounted Amount Indicator
71725  , p_source_79            IN VARCHAR2
71726  , p_source_79_meaning    IN VARCHAR2
71727 --Third Party Type
71728  , p_source_82            IN VARCHAR2
71729 --Business Flow Accounts Payable Application Identifier
71730  , p_source_90            IN NUMBER
71731 --When to Account for Payment Option
71732  , p_source_96            IN VARCHAR2
71733 --Payment Distribution Type
71734  , p_source_97            IN VARCHAR2
71735  , p_source_97_meaning    IN VARCHAR2
71736 --Payment Distribution Amount
71737  , p_source_98            IN NUMBER
71738 --Business Flow Payment Distribution Type
71739  , p_source_99            IN VARCHAR2
71740 --Business Flow Payment Entity Code
71741  , p_source_100            IN VARCHAR2
71742 --Business Flow Payment Distribution Identifier
71743  , p_source_101            IN NUMBER
71744 --Business Flow Payment Identifier
71745  , p_source_102            IN NUMBER
71746 --Payment Distribution Identifier
71747  , p_source_103            IN NUMBER
71748 --Payment Supplier Identifier
71749  , p_source_109            IN NUMBER
71750 --Payment Supplier Site Identifier
71751  , p_source_110            IN NUMBER
71752 --Payment Distribution Reversed Identifier
71753  , p_source_111            IN NUMBER
71754 --Payment Identifier
71755  , p_source_112            IN NUMBER
71756 --Payment Maturity Date
71757  , p_source_114            IN DATE
71758 --Payment Exchange Date
71759  , p_source_117            IN DATE
71760 --Payment Exchange Rate
71761  , p_source_118            IN NUMBER
71762 --Payment Exchange Rate Type
71763  , p_source_119            IN VARCHAR2
71764 --Payment/Maturity Ledger Amount Difference
71765  , p_source_151            IN NUMBER
71766 --Gain or Loss Indicator between Payment and Maturity
71767  , p_source_158            IN VARCHAR2
71768 )
71769 IS
71770 
71771 l_component_type              VARCHAR2(80);
71772 l_component_code              VARCHAR2(30);
71773 l_component_type_code         VARCHAR2(1);
71774 l_component_appl_id           INTEGER;
71775 l_amb_context_code            VARCHAR2(30);
71776 l_entity_code                 VARCHAR2(30);
71780 l_line_definition_code        VARCHAR2(30);
71777 l_event_class_code            VARCHAR2(30);
71778 l_ae_header_id                NUMBER;
71779 l_event_type_code             VARCHAR2(30);
71781 l_line_definition_owner_code  VARCHAR2(1);
71782 --
71783 -- adr variables
71784 l_segment                     VARCHAR2(30);
71785 l_ccid                        NUMBER;
71786 l_adr_transaction_coa_id      NUMBER;
71787 l_adr_accounting_coa_id       NUMBER;
71788 l_adr_flexfield_segment_code  VARCHAR2(30);
71789 l_adr_flex_value_set_id       NUMBER;
71790 l_adr_value_type_code         VARCHAR2(30);
71791 l_adr_value_combination_id    NUMBER;
71792 l_adr_value_segment_code      VARCHAR2(30);
71793 
71794 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71795 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71796 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71797 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71798 
71799 -- 4262811 Variables ------------------------------------------------------------------------------------------
71800 l_entered_amt_idx             NUMBER;
71801 l_accted_amt_idx              NUMBER;
71802 l_acc_rev_flag                VARCHAR2(1);
71803 l_accrual_line_num            NUMBER;
71804 l_tmp_amt                     NUMBER;
71805 l_acc_rev_natural_side_code   VARCHAR2(1);
71806 
71807 l_num_entries                 NUMBER;
71808 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71809 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71810 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71811 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71812 l_recog_line_1                NUMBER;
71813 l_recog_line_2                NUMBER;
71814 
71815 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71816 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71817 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71818 
71819 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71820 
71821 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71822 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71823 
71824 ---------------------------------------------------------------------------------------------------------------
71825 
71826 
71827 --
71828 -- bulk performance
71829 --
71830 l_balance_type_code           VARCHAR2(1);
71831 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71832 l_log_module                  VARCHAR2(240);
71833 
71834 --
71835 -- Upgrade strategy
71836 --
71837 l_actual_upg_option           VARCHAR2(1);
71838 l_enc_upg_option           VARCHAR2(1);
71839 
71840 --
71841 BEGIN
71842 --
71843 IF g_log_enabled THEN
71844       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
71845 END IF;
71846 --
71847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71848 
71849       trace
71850          (p_msg      => 'BEGIN of AcctLineType_131'
71851          ,p_level    => C_LEVEL_PROCEDURE
71852          ,p_module   => l_log_module);
71853 
71854 END IF;
71855 --
71856 l_component_type             := 'AMB_JLT';
71857 l_component_code             := 'AP_GAIN_PMT_MAT';
71858 l_component_type_code        := 'S';
71859 l_component_appl_id          :=  200;
71860 l_amb_context_code           := 'DEFAULT';
71861 l_entity_code                := 'AP_PAYMENTS';
71862 l_event_class_code           := 'FUTURE DATED PAYMENTS';
71863 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
71864 l_line_definition_owner_code := 'S';
71865 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
71866 --
71867 l_balance_type_code          := 'A';
71868 l_segment                     := NULL;
71869 l_ccid                        := NULL;
71870 l_adr_transaction_coa_id      := NULL;
71871 l_adr_accounting_coa_id       := NULL;
71872 l_adr_flexfield_segment_code  := NULL;
71873 l_adr_flex_value_set_id       := NULL;
71874 l_adr_value_type_code         := NULL;
71875 l_adr_value_combination_id    := NULL;
71876 l_adr_value_segment_code      := NULL;
71877 
71878 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71879 l_bflow_class_code           := '';    -- 4219869 Business Flow
71880 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71881 l_budgetary_control_flag     := 'N';
71882 
71883 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71884 l_bflow_applied_to_amt       := NULL; -- 5132302
71885 l_entered_amt_idx            := NULL;          -- 4262811
71886 l_accted_amt_idx             := NULL;          -- 4262811
71887 l_acc_rev_flag               := NULL;          -- 4262811
71888 l_accrual_line_num           := NULL;          -- 4262811
71889 l_tmp_amt                    := NULL;          -- 4262811
71890 --
71891 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71892             (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
71893                return;
71894   END IF;
71895   
71899 ') =  'ALWAYS_ALWAYS' OR 
71896 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71897     l_balance_type_code <> 'B' THEN
71898 IF (NVL(p_source_96,'
71900 NVL(p_source_96,'
71901 ') =  'ISSUE_ISSUE') AND 
71902 p_source_114 IS NOT NULL AND 
71903 NVL(p_source_158,'
71904 ') =  'GAIN' AND 
71905 NVL(p_source_97,'
71906 ') <>  'EXCHANGE RATE VARIANCE' AND 
71907 NVL(p_source_97,'
71908 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
71909 NVL(p_source_97,'
71910 ') <>  'BANK CHARGE' AND 
71911 NVL(p_source_97,'
71912 ') <>  'BANK ERROR' AND 
71913 NVL(p_source_97,'
71914 ') <>  'AWT'
71915  THEN 
71916 
71917    --
71918    XLA_AE_LINES_PKG.SetNewLine;
71919 
71920    p_balance_type_code          := l_balance_type_code;
71921    -- set the flag so later we will know whether the gain loss line needs to be created
71922    
71923    IF(l_balance_type_code = 'A' ) THEN
71924      p_actual_flag :='G';
71925    END IF;
71926 
71927    --
71928    -- bulk performance
71929    --
71930    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71931                                       p_header_num   => 0); -- 4262811
71932    --
71933    -- set accounting line options
71934    --
71935    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71936            p_natural_side_code          => 'C'
71937          , p_gain_or_loss_flag          => 'Y'
71938          , p_gl_transfer_mode_code      => 'S'
71939          , p_acct_entry_type_code       => 'A'
71940          , p_switch_side_flag           => 'Y'
71941          , p_merge_duplicate_code       => 'A'
71942          );
71943    --
71944    l_acc_rev_natural_side_code := 'D';  -- 4262811
71945    -- 
71946    --
71947    -- set accounting line type info
71948    --
71949    xla_ae_lines_pkg.SetAcctLineType
71950       (p_component_type             => l_component_type
71951       ,p_event_type_code            => l_event_type_code
71952       ,p_line_definition_owner_code => l_line_definition_owner_code
71953       ,p_line_definition_code       => l_line_definition_code
71954       ,p_accounting_line_code       => l_component_code
71955       ,p_accounting_line_type_code  => l_component_type_code
71956       ,p_accounting_line_appl_id    => l_component_appl_id
71957       ,p_amb_context_code           => l_amb_context_code
71958       ,p_entity_code                => l_entity_code
71959       ,p_event_class_code           => l_event_class_code);
71960    --
71961    -- set accounting class
71962    --
71963    xla_ae_lines_pkg.SetAcctClass(
71964            p_accounting_class_code  => 'GAIN'
71965          , p_ae_header_id           => l_ae_header_id
71966          );
71967 
71968    --
71969    -- set rounding class
71970    --
71971    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71972                       'GAIN';
71973 
71974    --
71975    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71976    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71977    --
71978    -- bulk performance
71979    --
71980    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71981 
71982    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71983       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71984 
71985    -- 4955764
71986    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71987       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71988 
71989    -- 4458381 Public Sector Enh
71990    
71991    --
71992    -- set accounting attributes for the line type
71993    --
71994    l_entered_amt_idx := 9;
71995    l_accted_amt_idx  := 14;
71996    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
71997    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71998    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
71999    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
72000    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
72001    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72002    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
72003    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
72004    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
72005    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
72006    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
72007    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72008    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
72009    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
72010    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
72011    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
72012    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
72013    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
72014    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
72015    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
72016    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
72020    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
72017    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
72018    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
72019    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
72021    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
72022    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
72023    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
72024    l_rec_acct_attrs.array_num_value(14)  := p_source_151;
72025    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
72026    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
72027    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
72028    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
72029    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
72030    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
72031    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
72032    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
72033    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
72034    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
72035    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
72036    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
72037 
72038    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72039    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72040 
72041    ---------------------------------------------------------------------------------------------------------------
72042    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72043    ---------------------------------------------------------------------------------------------------------------
72044    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72045 
72046    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72047    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72048 
72049    IF xla_accounting_cache_pkg.GetValueChar
72050          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72051          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72052    AND l_bflow_method_code = 'PRIOR_ENTRY'
72053 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72054    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72055          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72056        )
72057    THEN
72058          xla_ae_lines_pkg.BflowUpgEntry
72059            (p_business_method_code    => l_bflow_method_code
72060            ,p_business_class_code     => l_bflow_class_code
72061            ,p_balance_type            => l_balance_type_code);
72062    ELSE
72063       NULL;
72064 -- No business flow processing for business flow method of NONE.
72065    END IF;
72066 
72067    --
72068    -- call analytical criteria
72069    --
72070    
72071 
72072 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
72073 xla_ae_lines_pkg.SetAnalyticalCriteria(
72074    p_analytical_criterion_name    => 'Check Id'
72075  , p_analytical_criterion_owner   => 'S'
72076  , p_analytical_criterion_code    => 'CHECK_ID'
72077  , p_amb_context_code             => 'DEFAULT'
72078  , p_balancing_flag               => 'N'
72079  
72080  , p_analytical_detail_char_1    =>  NULL
72081  , p_analytical_detail_num_1     =>  p_source_112
72082  , p_analytical_detail_date_1    =>  NULL
72083 
72084  , p_ae_header_id                 => l_ae_header_id
72085 )
72086 ;
72087 --
72088 
72089    --
72090    -- call description
72091    --
72092    -- No description or it is inherited.
72093    --
72094    -- call ADRs
72095    -- Bug 4922099
72096    --
72097    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72098         (NVL(l_actual_upg_option, 'N') = 'O') OR
72099         (NVL(l_enc_upg_option, 'N') = 'O')
72100       )
72101    THEN
72102    NULL;
72103    --
72104    --
72105    
72106   l_ccid := AcctDerRule_37(
72107            p_application_id           => p_application_id
72108          , p_ae_header_id             => l_ae_header_id 
72109 , p_source_15 => p_source_15
72110 , p_source_15_meaning => p_source_15_meaning
72111 , p_source_30 => p_source_30
72112 , p_source_36 => p_source_36
72113 , p_source_37 => p_source_37
72114          , x_transaction_coa_id       => l_adr_transaction_coa_id
72115          , x_accounting_coa_id        => l_adr_accounting_coa_id
72116          , x_value_type_code          => l_adr_value_type_code
72117          , p_side                     => 'NA'
72118    );
72119 
72120    xla_ae_lines_pkg.set_ccid(
72121     p_code_combination_id          => l_ccid
72122   , p_value_type_code              => l_adr_value_type_code
72123   , p_transaction_coa_id           => l_adr_transaction_coa_id
72124   , p_accounting_coa_id            => l_adr_accounting_coa_id
72125   , p_adr_code                     => 'AP_REAL_GAIN'
72126   , p_adr_type_code                => 'S'
72127   , p_component_type               => l_component_type
72128   , p_component_code               => l_component_code
72129   , p_component_type_code          => l_component_type_code
72130   , p_component_appl_id            => l_component_appl_id
72131   , p_amb_context_code             => l_amb_context_code
72135 
72132   , p_side                         => 'NA'
72133   );
72134 
72136    l_segment := AcctDerRule_22(
72137            p_application_id           => p_application_id
72138          , p_ae_header_id             => l_ae_header_id 
72139 , p_source_15 => p_source_15
72140 , p_source_15_meaning => p_source_15_meaning
72141 , p_source_30 => p_source_30
72142          , x_transaction_coa_id       => l_adr_transaction_coa_id
72143          , x_accounting_coa_id        => l_adr_accounting_coa_id
72144          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72145          , x_flex_value_set_id        => l_adr_flex_value_set_id
72146          , x_value_type_code          => l_adr_value_type_code
72147          , x_value_combination_id     => l_adr_value_combination_id
72148          , x_value_segment_code       => l_adr_value_segment_code
72149          , p_side                     => 'NA'
72150          , p_override_seg_flag        => 'Y'
72151    );
72152 
72153    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72154 
72155       xla_ae_lines_pkg.set_segment(
72156           p_to_segment_code         => 'GL_BALANCING'
72157         , p_segment_value           => l_segment
72158         , p_from_segment_code       => l_adr_value_segment_code
72159         , p_from_combination_id     => l_adr_value_combination_id
72160         , p_value_type_code         => l_adr_value_type_code
72161         , p_transaction_coa_id      => l_adr_transaction_coa_id
72162         , p_accounting_coa_id       => l_adr_accounting_coa_id
72163         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72164         , p_flex_value_set_id       => l_adr_flex_value_set_id
72165         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72166         , p_adr_type_code           => 'S'
72167         , p_component_type          => l_component_type
72168         , p_component_code          => l_component_code
72169         , p_component_type_code     => l_component_type_code
72170         , p_component_appl_id       => l_component_appl_id
72171         , p_amb_context_code        => l_amb_context_code
72172         , p_entity_code             => 'AP_PAYMENTS'
72173         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72174         , p_side                    => 'NA'
72175         );
72176 
72177   END IF;
72178 
72179    l_segment := AcctDerRule_17(
72180            p_application_id           => p_application_id
72181          , p_ae_header_id             => l_ae_header_id 
72182 , p_source_15 => p_source_15
72183 , p_source_15_meaning => p_source_15_meaning
72184 , p_source_36 => p_source_36
72185 , p_source_37 => p_source_37
72186          , x_transaction_coa_id       => l_adr_transaction_coa_id
72187          , x_accounting_coa_id        => l_adr_accounting_coa_id
72188          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72189          , x_flex_value_set_id        => l_adr_flex_value_set_id
72190          , x_value_type_code          => l_adr_value_type_code
72191          , x_value_combination_id     => l_adr_value_combination_id
72192          , x_value_segment_code       => l_adr_value_segment_code
72193          , p_side                     => 'NA'
72194          , p_override_seg_flag        => 'Y'
72195    );
72196 
72197    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72198 
72199       xla_ae_lines_pkg.set_segment(
72200           p_to_segment_code         => 'GL_ACCOUNT'
72201         , p_segment_value           => l_segment
72202         , p_from_segment_code       => l_adr_value_segment_code
72203         , p_from_combination_id     => l_adr_value_combination_id
72204         , p_value_type_code         => l_adr_value_type_code
72205         , p_transaction_coa_id      => l_adr_transaction_coa_id
72206         , p_accounting_coa_id       => l_adr_accounting_coa_id
72207         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72208         , p_flex_value_set_id       => l_adr_flex_value_set_id
72209         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72210         , p_adr_type_code           => 'S'
72211         , p_component_type          => l_component_type
72212         , p_component_code          => l_component_code
72213         , p_component_type_code     => l_component_type_code
72214         , p_component_appl_id       => l_component_appl_id
72215         , p_amb_context_code        => l_amb_context_code
72216         , p_entity_code             => 'AP_PAYMENTS'
72217         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72218         , p_side                    => 'NA'
72219         );
72220 
72221   END IF;
72222 
72223    --
72224    --
72225    END IF;
72226    --
72227    -- Bug 4922099
72228    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72229           (NVL(l_enc_upg_option, 'N') = 'O')
72230         ) AND
72231         (l_bflow_method_code = 'PRIOR_ENTRY')
72232       )
72233    THEN
72234       IF
72235       --
72236       1 = 2
72237       --
72238       THEN
72239       xla_accounting_err_pkg.build_message
72240                                     (p_appli_s_name            => 'XLA'
72241                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72242                                     ,p_token_1                 => 'LINE_NUMBER'
72243                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72244                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72248                                                                             ,l_component_type_code
72245                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72246                                                                              l_component_type
72247                                                                             ,l_component_code
72249                                                                             ,l_component_appl_id
72250                                                                             ,l_amb_context_code
72251                                                                             ,l_entity_code
72252                                                                             ,l_event_class_code
72253                                                                            )
72254                                     ,p_token_3                 => 'OWNER'
72255                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72256                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72257                                                                           ,p_lookup_code    => l_component_type_code
72258                                                                          )
72259                                     ,p_token_4                 => 'PRODUCT_NAME'
72260                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72261                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72262                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72263                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72264                                     ,p_ae_header_id            =>  NULL
72265                                        );
72266 
72267         IF (C_LEVEL_ERROR>= g_log_level) THEN
72268                  trace
72269                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72270                       ,p_level    => C_LEVEL_ERROR
72271                       ,p_module   => l_log_module);
72272         END IF;
72273       END IF;
72274    END IF;
72275    --
72276    --
72277    ------------------------------------------------------------------------------------------------
72278    -- 4219869 Business Flow
72279    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72280    -- Prior Entry.  Currently, the following code is always generated.
72281    ------------------------------------------------------------------------------------------------
72282    XLA_AE_LINES_PKG.ValidateCurrentLine;
72283 
72284    ------------------------------------------------------------------------------------
72285    -- 4219869 Business Flow
72286    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72287    ------------------------------------------------------------------------------------
72288    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72289 
72290    ----------------------------------------------------------------------------------
72291    -- 4219869 Business Flow
72292    -- Update journal entry status -- Need to generate this within IF <condition>
72293    ----------------------------------------------------------------------------------
72294    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72295          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72296          ,p_balance_type_code => l_balance_type_code
72297          );
72298 
72299    -------------------------------------------------------------------------------------------
72300    -- 4262811 - Generate the Accrual Reversal lines
72301    -------------------------------------------------------------------------------------------
72302    BEGIN
72303       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72304                               (g_array_event(p_event_id).array_value_num('header_index'));
72305       IF l_acc_rev_flag IS NULL THEN
72306          l_acc_rev_flag := 'N';
72307       END IF;
72308    EXCEPTION
72309       WHEN OTHERS THEN
72310          l_acc_rev_flag := 'N';
72311    END;
72312    --
72313    IF (l_acc_rev_flag = 'Y') THEN
72314 
72315        -- 4645092  ------------------------------------------------------------------------------
72316        -- To allow MPA report to determine if it should generate report process
72317        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72318        ------------------------------------------------------------------------------------------
72319 
72320        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72321        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72322    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
72323    -- call ADRs
72324    -- Bug 4922099
72325    --
72326    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72327         (NVL(l_actual_upg_option, 'N') = 'O') OR
72328         (NVL(l_enc_upg_option, 'N') = 'O')
72329       )
72330    THEN
72331    NULL;
72332    --
72333    --
72334    
72335   l_ccid := AcctDerRule_37(
72336            p_application_id           => p_application_id
72337          , p_ae_header_id             => l_ae_header_id 
72338 , p_source_15 => p_source_15
72339 , p_source_15_meaning => p_source_15_meaning
72340 , p_source_30 => p_source_30
72341 , p_source_36 => p_source_36
72342 , p_source_37 => p_source_37
72343          , x_transaction_coa_id       => l_adr_transaction_coa_id
72347    );
72344          , x_accounting_coa_id        => l_adr_accounting_coa_id
72345          , x_value_type_code          => l_adr_value_type_code
72346          , p_side                     => 'NA'
72348 
72349    xla_ae_lines_pkg.set_ccid(
72350     p_code_combination_id          => l_ccid
72351   , p_value_type_code              => l_adr_value_type_code
72352   , p_transaction_coa_id           => l_adr_transaction_coa_id
72353   , p_accounting_coa_id            => l_adr_accounting_coa_id
72354   , p_adr_code                     => 'AP_REAL_GAIN'
72355   , p_adr_type_code                => 'S'
72356   , p_component_type               => l_component_type
72357   , p_component_code               => l_component_code
72358   , p_component_type_code          => l_component_type_code
72359   , p_component_appl_id            => l_component_appl_id
72360   , p_amb_context_code             => l_amb_context_code
72361   , p_side                         => 'NA'
72362   );
72363 
72364 
72365    l_segment := AcctDerRule_22(
72366            p_application_id           => p_application_id
72367          , p_ae_header_id             => l_ae_header_id 
72368 , p_source_15 => p_source_15
72369 , p_source_15_meaning => p_source_15_meaning
72370 , p_source_30 => p_source_30
72371          , x_transaction_coa_id       => l_adr_transaction_coa_id
72372          , x_accounting_coa_id        => l_adr_accounting_coa_id
72373          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72374          , x_flex_value_set_id        => l_adr_flex_value_set_id
72375          , x_value_type_code          => l_adr_value_type_code
72376          , x_value_combination_id     => l_adr_value_combination_id
72377          , x_value_segment_code       => l_adr_value_segment_code
72378          , p_side                     => 'NA'
72379          , p_override_seg_flag        => 'Y'
72380    );
72381 
72382    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72383 
72384       xla_ae_lines_pkg.set_segment(
72385           p_to_segment_code         => 'GL_BALANCING'
72386         , p_segment_value           => l_segment
72387         , p_from_segment_code       => l_adr_value_segment_code
72388         , p_from_combination_id     => l_adr_value_combination_id
72389         , p_value_type_code         => l_adr_value_type_code
72390         , p_transaction_coa_id      => l_adr_transaction_coa_id
72391         , p_accounting_coa_id       => l_adr_accounting_coa_id
72392         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72393         , p_flex_value_set_id       => l_adr_flex_value_set_id
72394         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72395         , p_adr_type_code           => 'S'
72396         , p_component_type          => l_component_type
72397         , p_component_code          => l_component_code
72398         , p_component_type_code     => l_component_type_code
72399         , p_component_appl_id       => l_component_appl_id
72400         , p_amb_context_code        => l_amb_context_code
72401         , p_entity_code             => 'AP_PAYMENTS'
72402         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72403         , p_side                    => 'NA'
72404         );
72405 
72406   END IF;
72407 
72408    l_segment := AcctDerRule_17(
72409            p_application_id           => p_application_id
72410          , p_ae_header_id             => l_ae_header_id 
72411 , p_source_15 => p_source_15
72412 , p_source_15_meaning => p_source_15_meaning
72413 , p_source_36 => p_source_36
72414 , p_source_37 => p_source_37
72415          , x_transaction_coa_id       => l_adr_transaction_coa_id
72416          , x_accounting_coa_id        => l_adr_accounting_coa_id
72417          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72418          , x_flex_value_set_id        => l_adr_flex_value_set_id
72419          , x_value_type_code          => l_adr_value_type_code
72420          , x_value_combination_id     => l_adr_value_combination_id
72421          , x_value_segment_code       => l_adr_value_segment_code
72422          , p_side                     => 'NA'
72423          , p_override_seg_flag        => 'Y'
72424    );
72425 
72426    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72427 
72428       xla_ae_lines_pkg.set_segment(
72429           p_to_segment_code         => 'GL_ACCOUNT'
72430         , p_segment_value           => l_segment
72431         , p_from_segment_code       => l_adr_value_segment_code
72432         , p_from_combination_id     => l_adr_value_combination_id
72433         , p_value_type_code         => l_adr_value_type_code
72434         , p_transaction_coa_id      => l_adr_transaction_coa_id
72435         , p_accounting_coa_id       => l_adr_accounting_coa_id
72436         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72437         , p_flex_value_set_id       => l_adr_flex_value_set_id
72438         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72439         , p_adr_type_code           => 'S'
72440         , p_component_type          => l_component_type
72441         , p_component_code          => l_component_code
72442         , p_component_type_code     => l_component_type_code
72443         , p_component_appl_id       => l_component_appl_id
72444         , p_amb_context_code        => l_amb_context_code
72445         , p_entity_code             => 'AP_PAYMENTS'
72446         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72447         , p_side                    => 'NA'
72448         );
72449 
72450   END IF;
72451 
72452    --
72456        --
72453    --
72454    END IF;
72455 
72457        -- Update the line information that should be overwritten
72458        --
72459        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72460                                          p_header_num   => 1);
72461        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72462 
72463        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72464 
72465        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72466           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72467        END IF;
72468 
72469       --
72470       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72471       --
72472       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72473           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72474       ELSE
72475           ---------------------------------------------------------------------------------------------------
72476           -- 4262811a Switch Sign
72477           ---------------------------------------------------------------------------------------------------
72478           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72479           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72480                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72481           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72482                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72483           -- 5132302
72484           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72485                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72486 
72487       END IF;
72488 
72489       -- 4955764
72490       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72491       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72492 
72493 
72494       XLA_AE_LINES_PKG.ValidateCurrentLine;
72495       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72496 
72497       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72498                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72499                ,p_balance_type_code => l_balance_type_code);
72500 
72501    END IF;
72502 
72503    -----------------------------------------------------------------------------------------
72504    -- 4262811 Multiperiod Accounting
72505    -----------------------------------------------------------------------------------------
72506      -- No MPA option is assigned.
72507 
72508 
72509 END IF;
72510 END IF;
72511 --
72512 
72513 --
72514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72515    trace
72516       (p_msg      => 'END of AcctLineType_131'
72517       ,p_level    => C_LEVEL_PROCEDURE
72518       ,p_module   => l_log_module);
72519 END IF;
72520 --
72521 EXCEPTION
72522   WHEN xla_exceptions_pkg.application_exception THEN
72523       RAISE;
72524   WHEN OTHERS THEN
72525        xla_exceptions_pkg.raise_message
72526            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_131');
72527 END AcctLineType_131;
72528 --
72529 
72530 ---------------------------------------
72531 --
72532 -- PRIVATE FUNCTION
72533 --         AcctLineType_132
72534 --
72535 ---------------------------------------
72536 PROCEDURE AcctLineType_132 (
72537   p_application_id        IN NUMBER
72538  ,p_event_id              IN NUMBER
72539  ,p_calculate_acctd_flag  IN VARCHAR2
72540  ,p_calculate_g_l_flag    IN VARCHAR2
72541  ,p_actual_flag           IN OUT VARCHAR2
72542  ,p_balance_type_code     OUT VARCHAR2
72543  ,p_gain_or_loss_ref      OUT VARCHAR2
72544  
72545 --Automatic Offsets Value
72546  , p_source_15            IN VARCHAR2
72547  , p_source_15_meaning    IN VARCHAR2
72548 --Invoice Distribution Account
72549  , p_source_30            IN NUMBER
72550 --Internal Realized Gain Account
72551  , p_source_36            IN NUMBER
72552 --Bank Gain Account
72553  , p_source_37            IN NUMBER
72554 --Accounting Reversal Indicator
72555  , p_source_52            IN VARCHAR2
72556 --Distribution Link Type
72557  , p_source_54            IN VARCHAR2
72558 --Invoice Identifier
72559  , p_source_57            IN NUMBER
72560 --Payables Encumbrance Upgrade Credit Account
72561  , p_source_64            IN NUMBER
72562 --Payables Encumbrance Upgrade Credit Amount
72563  , p_source_65            IN NUMBER
72564 --Invoice Currency Code
72565  , p_source_66            IN VARCHAR2
72566 --Payables Encumbrance Upgrade Credit Base Amount
72567  , p_source_67            IN NUMBER
72568 --Payables Encumbrance Upgrade Debit Account
72569  , p_source_68            IN NUMBER
72570 --Payables Encumbrance Upgrade Debit Amount
72571  , p_source_69            IN NUMBER
72572 --Payables Encumbrance Upgrade Debit Base Amount
72573  , p_source_70            IN NUMBER
72574 --Payables Encumbrance Upgrade Option
72578 --Deferred Accounting Option
72575  , p_source_71            IN VARCHAR2
72576 --Deferred Accounting End Date
72577  , p_source_76            IN DATE
72579  , p_source_77            IN VARCHAR2
72580 --Deferred Accounting Start Date
72581  , p_source_78            IN DATE
72582 --Override Accounted Amount Indicator
72583  , p_source_79            IN VARCHAR2
72584  , p_source_79_meaning    IN VARCHAR2
72585 --Invoice Supplier Identifier
72586  , p_source_80            IN NUMBER
72587 --Invoice Supplier Site Identifier
72588  , p_source_81            IN NUMBER
72589 --Third Party Type
72590  , p_source_82            IN VARCHAR2
72591 --Invoice Distribution Tax Line Identifier
72592  , p_source_85            IN NUMBER
72593 --Invoice Distribution Tax Distribution Identifier from Tax
72594  , p_source_86            IN NUMBER
72595 --Invoice Distribution Summary Tax Line Identifier
72596  , p_source_87            IN NUMBER
72597 --Payables Upgrade Credit Encumbrance Type Identifier
72598  , p_source_88            IN NUMBER
72599 --Payables Upgrade Debit Encumbrance Type Identifier
72600  , p_source_89            IN NUMBER
72601 --Business Flow Accounts Payable Application Identifier
72602  , p_source_90            IN NUMBER
72603 --Prepayment Application Distribution Identifier
72604  , p_source_127            IN NUMBER
72605 --Upgrade Encumbrance Credit Account Class
72606  , p_source_130            IN VARCHAR2
72607 --Upgrade Encumbrance Debit Account Class
72608  , p_source_131            IN VARCHAR2
72609 --Prepayment Distribution Amount
72610  , p_source_132            IN NUMBER
72611 --Identifier of the Prepayment Application Reversed
72612  , p_source_134            IN NUMBER
72613 --Invoice Exchange Date
72614  , p_source_136            IN DATE
72615 --Invoice Exchange Rate
72616  , p_source_137            IN NUMBER
72617 --Invoice Exchange Rate Type
72618  , p_source_138            IN VARCHAR2
72619 --Business Flow Prepayment Invoice Distribution Type
72620  , p_source_139            IN VARCHAR2
72621 --Business Flow Prepayment Invoice Entity Code
72622  , p_source_140            IN VARCHAR2
72623 --Business Flow Prepayment Invoice Distribution Identifier
72624  , p_source_141            IN NUMBER
72625 --Business Flow Prepayment Invoice Identifier
72626  , p_source_142            IN NUMBER
72627 --Prepayment Distribution Type
72628  , p_source_143            IN VARCHAR2
72629 --Prepayment/Invoice Ledger Amount Difference
72630  , p_source_152            IN NUMBER
72631 --Gain or Loss Indicator between Prepayment and Invoice
72632  , p_source_159            IN VARCHAR2
72633 )
72634 IS
72635 
72636 l_component_type              VARCHAR2(80);
72637 l_component_code              VARCHAR2(30);
72638 l_component_type_code         VARCHAR2(1);
72639 l_component_appl_id           INTEGER;
72640 l_amb_context_code            VARCHAR2(30);
72641 l_entity_code                 VARCHAR2(30);
72642 l_event_class_code            VARCHAR2(30);
72643 l_ae_header_id                NUMBER;
72644 l_event_type_code             VARCHAR2(30);
72645 l_line_definition_code        VARCHAR2(30);
72646 l_line_definition_owner_code  VARCHAR2(1);
72647 --
72648 -- adr variables
72649 l_segment                     VARCHAR2(30);
72650 l_ccid                        NUMBER;
72651 l_adr_transaction_coa_id      NUMBER;
72652 l_adr_accounting_coa_id       NUMBER;
72653 l_adr_flexfield_segment_code  VARCHAR2(30);
72654 l_adr_flex_value_set_id       NUMBER;
72655 l_adr_value_type_code         VARCHAR2(30);
72656 l_adr_value_combination_id    NUMBER;
72657 l_adr_value_segment_code      VARCHAR2(30);
72658 
72659 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72660 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72661 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72662 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72663 
72664 -- 4262811 Variables ------------------------------------------------------------------------------------------
72665 l_entered_amt_idx             NUMBER;
72666 l_accted_amt_idx              NUMBER;
72667 l_acc_rev_flag                VARCHAR2(1);
72668 l_accrual_line_num            NUMBER;
72669 l_tmp_amt                     NUMBER;
72670 l_acc_rev_natural_side_code   VARCHAR2(1);
72671 
72672 l_num_entries                 NUMBER;
72673 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72674 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72675 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72676 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72677 l_recog_line_1                NUMBER;
72678 l_recog_line_2                NUMBER;
72679 
72680 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72681 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72682 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72683 
72684 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72685 
72686 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72687 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72688 
72689 ---------------------------------------------------------------------------------------------------------------
72690 
72691 
72692 --
72693 -- bulk performance
72694 --
72698 
72695 l_balance_type_code           VARCHAR2(1);
72696 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72697 l_log_module                  VARCHAR2(240);
72699 --
72700 -- Upgrade strategy
72701 --
72702 l_actual_upg_option           VARCHAR2(1);
72703 l_enc_upg_option           VARCHAR2(1);
72704 
72705 --
72706 BEGIN
72707 --
72708 IF g_log_enabled THEN
72709       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
72710 END IF;
72711 --
72712 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72713 
72714       trace
72715          (p_msg      => 'BEGIN of AcctLineType_132'
72716          ,p_level    => C_LEVEL_PROCEDURE
72717          ,p_module   => l_log_module);
72718 
72719 END IF;
72720 --
72721 l_component_type             := 'AMB_JLT';
72722 l_component_code             := 'AP_GAIN_PREPAY_APP';
72723 l_component_type_code        := 'S';
72724 l_component_appl_id          :=  200;
72725 l_amb_context_code           := 'DEFAULT';
72726 l_entity_code                := 'AP_INVOICES';
72727 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
72728 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
72729 l_line_definition_owner_code := 'S';
72730 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
72731 --
72732 l_balance_type_code          := 'A';
72733 l_segment                     := NULL;
72734 l_ccid                        := NULL;
72735 l_adr_transaction_coa_id      := NULL;
72736 l_adr_accounting_coa_id       := NULL;
72737 l_adr_flexfield_segment_code  := NULL;
72738 l_adr_flex_value_set_id       := NULL;
72739 l_adr_value_type_code         := NULL;
72740 l_adr_value_combination_id    := NULL;
72741 l_adr_value_segment_code      := NULL;
72742 
72743 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72744 l_bflow_class_code           := '';    -- 4219869 Business Flow
72745 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72746 l_budgetary_control_flag     := 'N';
72747 
72748 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72749 l_bflow_applied_to_amt       := NULL; -- 5132302
72750 l_entered_amt_idx            := NULL;          -- 4262811
72751 l_accted_amt_idx             := NULL;          -- 4262811
72752 l_acc_rev_flag               := NULL;          -- 4262811
72753 l_accrual_line_num           := NULL;          -- 4262811
72754 l_tmp_amt                    := NULL;          -- 4262811
72755 --
72756 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72757             (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
72758                return;
72759   END IF;
72760   
72761 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72762     l_balance_type_code <> 'B' THEN
72763 IF NVL(p_source_143,'
72764 ') =  'PREPAY APPL' AND 
72765 NVL(p_source_159,'
72766 ') =  'GAIN'
72767  THEN 
72768 
72769    --
72770    XLA_AE_LINES_PKG.SetNewLine;
72771 
72772    p_balance_type_code          := l_balance_type_code;
72773    -- set the flag so later we will know whether the gain loss line needs to be created
72774    
72775    IF(l_balance_type_code = 'A' ) THEN
72776      p_actual_flag :='G';
72777    END IF;
72778 
72779    --
72780    -- bulk performance
72781    --
72782    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72783                                       p_header_num   => 0); -- 4262811
72784    --
72785    -- set accounting line options
72786    --
72787    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72788            p_natural_side_code          => 'D'
72789          , p_gain_or_loss_flag          => 'Y'
72790          , p_gl_transfer_mode_code      => 'S'
72791          , p_acct_entry_type_code       => 'A'
72792          , p_switch_side_flag           => 'Y'
72793          , p_merge_duplicate_code       => 'A'
72794          );
72795    --
72796    l_acc_rev_natural_side_code := 'C';  -- 4262811
72797    -- 
72798    --
72799    -- set accounting line type info
72800    --
72801    xla_ae_lines_pkg.SetAcctLineType
72802       (p_component_type             => l_component_type
72803       ,p_event_type_code            => l_event_type_code
72804       ,p_line_definition_owner_code => l_line_definition_owner_code
72805       ,p_line_definition_code       => l_line_definition_code
72806       ,p_accounting_line_code       => l_component_code
72807       ,p_accounting_line_type_code  => l_component_type_code
72808       ,p_accounting_line_appl_id    => l_component_appl_id
72809       ,p_amb_context_code           => l_amb_context_code
72810       ,p_entity_code                => l_entity_code
72811       ,p_event_class_code           => l_event_class_code);
72812    --
72813    -- set accounting class
72814    --
72815    xla_ae_lines_pkg.SetAcctClass(
72816            p_accounting_class_code  => 'GAIN'
72817          , p_ae_header_id           => l_ae_header_id
72818          );
72819 
72820    --
72821    -- set rounding class
72822    --
72823    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72824                       'GAIN';
72825 
72826    --
72827    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72831    --
72828    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72829    --
72830    -- bulk performance
72832    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72833 
72834    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72835       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72836 
72837    -- 4955764
72838    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72839       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72840 
72841    -- 4458381 Public Sector Enh
72842    
72843    --
72844    -- set accounting attributes for the line type
72845    --
72846    l_entered_amt_idx := 25;
72847    l_accted_amt_idx  := 30;
72848    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
72849    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72850    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
72851    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72852    l_rec_acct_attrs.array_num_value(2)  := 
72853 xla_ae_sources_pkg.GetSystemSourceNum(
72854    p_source_code           => 'XLA_EVENT_APPL_ID'
72855  , p_source_type_code      => 'Y'
72856  , p_source_application_id =>  602
72857 );
72858    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72859    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
72860    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72861    l_rec_acct_attrs.array_char_value(4)  := 
72862 xla_ae_sources_pkg.GetSystemSourceChar(
72863    p_source_code           => 'XLA_ENTITY_CODE'
72864  , p_source_type_code      => 'Y'
72865  , p_source_application_id =>  602
72866 );
72867    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72868    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
72869    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72870    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
72871    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72872    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
72873    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72874    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
72875    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72876    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
72877    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72878    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
72879    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72880    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
72881    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72882    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
72883    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72884    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
72885    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72886    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
72887    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72888    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
72889    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72890    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
72891    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72892    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
72893    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72894    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
72895    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72896    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
72897    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72898    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
72899    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72900    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
72901    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72902    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
72903    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72904    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
72905    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72906    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
72907    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72908    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
72909    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72910    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
72911    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72912    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
72913    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72914    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
72915    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72916    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
72917    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72918    l_rec_acct_attrs.array_num_value(30)  := p_source_152;
72919    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72920    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
72924    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
72921    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72922    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
72923    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72925    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72926    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
72927    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72928    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
72929    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
72930    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
72931    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
72932    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
72933    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
72934    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
72935    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
72936    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
72937    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
72938    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
72939    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
72940    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
72941    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
72942    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
72943    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
72944    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
72945    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
72946    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
72947 
72948    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72949    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72950 
72951    ---------------------------------------------------------------------------------------------------------------
72952    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72953    ---------------------------------------------------------------------------------------------------------------
72954    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72955 
72956    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72957    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72958 
72959    IF xla_accounting_cache_pkg.GetValueChar
72960          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72961          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72962    AND l_bflow_method_code = 'PRIOR_ENTRY'
72963 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72964    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72965          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72966        )
72967    THEN
72968          xla_ae_lines_pkg.BflowUpgEntry
72969            (p_business_method_code    => l_bflow_method_code
72970            ,p_business_class_code     => l_bflow_class_code
72971            ,p_balance_type            => l_balance_type_code);
72972    ELSE
72973       NULL;
72974 -- No business flow processing for business flow method of NONE.
72975    END IF;
72976 
72977    --
72978    -- call analytical criteria
72979    --
72980    
72981    --
72982    -- call description
72983    --
72984    -- No description or it is inherited.
72985    --
72986    -- call ADRs
72987    -- Bug 4922099
72988    --
72989    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72990         (NVL(l_actual_upg_option, 'N') = 'O') OR
72991         (NVL(l_enc_upg_option, 'N') = 'O')
72992       )
72993    THEN
72994    NULL;
72995    --
72996    --
72997    
72998   l_ccid := AcctDerRule_37(
72999            p_application_id           => p_application_id
73000          , p_ae_header_id             => l_ae_header_id 
73001 , p_source_15 => p_source_15
73002 , p_source_15_meaning => p_source_15_meaning
73003 , p_source_30 => p_source_30
73004 , p_source_36 => p_source_36
73005 , p_source_37 => p_source_37
73006          , x_transaction_coa_id       => l_adr_transaction_coa_id
73007          , x_accounting_coa_id        => l_adr_accounting_coa_id
73008          , x_value_type_code          => l_adr_value_type_code
73009          , p_side                     => 'NA'
73010    );
73011 
73012    xla_ae_lines_pkg.set_ccid(
73013     p_code_combination_id          => l_ccid
73014   , p_value_type_code              => l_adr_value_type_code
73015   , p_transaction_coa_id           => l_adr_transaction_coa_id
73016   , p_accounting_coa_id            => l_adr_accounting_coa_id
73017   , p_adr_code                     => 'AP_REAL_GAIN'
73018   , p_adr_type_code                => 'S'
73019   , p_component_type               => l_component_type
73020   , p_component_code               => l_component_code
73021   , p_component_type_code          => l_component_type_code
73022   , p_component_appl_id            => l_component_appl_id
73023   , p_amb_context_code             => l_amb_context_code
73024   , p_side                         => 'NA'
73025   );
73026 
73027 
73028    l_segment := AcctDerRule_22(
73029            p_application_id           => p_application_id
73030          , p_ae_header_id             => l_ae_header_id 
73031 , p_source_15 => p_source_15
73032 , p_source_15_meaning => p_source_15_meaning
73036          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73033 , p_source_30 => p_source_30
73034          , x_transaction_coa_id       => l_adr_transaction_coa_id
73035          , x_accounting_coa_id        => l_adr_accounting_coa_id
73037          , x_flex_value_set_id        => l_adr_flex_value_set_id
73038          , x_value_type_code          => l_adr_value_type_code
73039          , x_value_combination_id     => l_adr_value_combination_id
73040          , x_value_segment_code       => l_adr_value_segment_code
73041          , p_side                     => 'NA'
73042          , p_override_seg_flag        => 'Y'
73043    );
73044 
73045    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73046 
73047       xla_ae_lines_pkg.set_segment(
73048           p_to_segment_code         => 'GL_BALANCING'
73049         , p_segment_value           => l_segment
73050         , p_from_segment_code       => l_adr_value_segment_code
73051         , p_from_combination_id     => l_adr_value_combination_id
73052         , p_value_type_code         => l_adr_value_type_code
73053         , p_transaction_coa_id      => l_adr_transaction_coa_id
73054         , p_accounting_coa_id       => l_adr_accounting_coa_id
73055         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73056         , p_flex_value_set_id       => l_adr_flex_value_set_id
73057         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73058         , p_adr_type_code           => 'S'
73059         , p_component_type          => l_component_type
73060         , p_component_code          => l_component_code
73061         , p_component_type_code     => l_component_type_code
73062         , p_component_appl_id       => l_component_appl_id
73063         , p_amb_context_code        => l_amb_context_code
73064         , p_entity_code             => 'AP_INVOICES'
73065         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73066         , p_side                    => 'NA'
73067         );
73068 
73069   END IF;
73070 
73071    l_segment := AcctDerRule_17(
73072            p_application_id           => p_application_id
73073          , p_ae_header_id             => l_ae_header_id 
73074 , p_source_15 => p_source_15
73075 , p_source_15_meaning => p_source_15_meaning
73076 , p_source_36 => p_source_36
73077 , p_source_37 => p_source_37
73078          , x_transaction_coa_id       => l_adr_transaction_coa_id
73079          , x_accounting_coa_id        => l_adr_accounting_coa_id
73080          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73081          , x_flex_value_set_id        => l_adr_flex_value_set_id
73082          , x_value_type_code          => l_adr_value_type_code
73083          , x_value_combination_id     => l_adr_value_combination_id
73084          , x_value_segment_code       => l_adr_value_segment_code
73085          , p_side                     => 'NA'
73086          , p_override_seg_flag        => 'Y'
73087    );
73088 
73089    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73090 
73091       xla_ae_lines_pkg.set_segment(
73092           p_to_segment_code         => 'GL_ACCOUNT'
73093         , p_segment_value           => l_segment
73094         , p_from_segment_code       => l_adr_value_segment_code
73095         , p_from_combination_id     => l_adr_value_combination_id
73096         , p_value_type_code         => l_adr_value_type_code
73097         , p_transaction_coa_id      => l_adr_transaction_coa_id
73098         , p_accounting_coa_id       => l_adr_accounting_coa_id
73099         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73100         , p_flex_value_set_id       => l_adr_flex_value_set_id
73101         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73102         , p_adr_type_code           => 'S'
73103         , p_component_type          => l_component_type
73104         , p_component_code          => l_component_code
73105         , p_component_type_code     => l_component_type_code
73106         , p_component_appl_id       => l_component_appl_id
73107         , p_amb_context_code        => l_amb_context_code
73108         , p_entity_code             => 'AP_INVOICES'
73109         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73110         , p_side                    => 'NA'
73111         );
73112 
73113   END IF;
73114 
73115    --
73116    --
73117    END IF;
73118    --
73119    -- Bug 4922099
73120    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73121           (NVL(l_enc_upg_option, 'N') = 'O')
73122         ) AND
73123         (l_bflow_method_code = 'PRIOR_ENTRY')
73124       )
73125    THEN
73126       IF
73127       --
73128       1 = 2
73129       --
73130       THEN
73131       xla_accounting_err_pkg.build_message
73132                                     (p_appli_s_name            => 'XLA'
73133                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73134                                     ,p_token_1                 => 'LINE_NUMBER'
73135                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73136                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73137                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73138                                                                              l_component_type
73139                                                                             ,l_component_code
73143                                                                             ,l_entity_code
73140                                                                             ,l_component_type_code
73141                                                                             ,l_component_appl_id
73142                                                                             ,l_amb_context_code
73144                                                                             ,l_event_class_code
73145                                                                            )
73146                                     ,p_token_3                 => 'OWNER'
73147                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73148                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73149                                                                           ,p_lookup_code    => l_component_type_code
73150                                                                          )
73151                                     ,p_token_4                 => 'PRODUCT_NAME'
73152                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73153                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73154                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73155                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73156                                     ,p_ae_header_id            =>  NULL
73157                                        );
73158 
73159         IF (C_LEVEL_ERROR>= g_log_level) THEN
73160                  trace
73161                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73162                       ,p_level    => C_LEVEL_ERROR
73163                       ,p_module   => l_log_module);
73164         END IF;
73165       END IF;
73166    END IF;
73167    --
73168    --
73169    ------------------------------------------------------------------------------------------------
73170    -- 4219869 Business Flow
73171    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73172    -- Prior Entry.  Currently, the following code is always generated.
73173    ------------------------------------------------------------------------------------------------
73174    XLA_AE_LINES_PKG.ValidateCurrentLine;
73175 
73176    ------------------------------------------------------------------------------------
73177    -- 4219869 Business Flow
73178    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73179    ------------------------------------------------------------------------------------
73180    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73181 
73182    ----------------------------------------------------------------------------------
73183    -- 4219869 Business Flow
73184    -- Update journal entry status -- Need to generate this within IF <condition>
73185    ----------------------------------------------------------------------------------
73186    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73187          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73188          ,p_balance_type_code => l_balance_type_code
73189          );
73190 
73191    -------------------------------------------------------------------------------------------
73192    -- 4262811 - Generate the Accrual Reversal lines
73193    -------------------------------------------------------------------------------------------
73194    BEGIN
73195       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73196                               (g_array_event(p_event_id).array_value_num('header_index'));
73197       IF l_acc_rev_flag IS NULL THEN
73198          l_acc_rev_flag := 'N';
73199       END IF;
73200    EXCEPTION
73201       WHEN OTHERS THEN
73202          l_acc_rev_flag := 'N';
73203    END;
73204    --
73205    IF (l_acc_rev_flag = 'Y') THEN
73206 
73207        -- 4645092  ------------------------------------------------------------------------------
73208        -- To allow MPA report to determine if it should generate report process
73209        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73210        ------------------------------------------------------------------------------------------
73211 
73212        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73213        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73214    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73215    -- call ADRs
73216    -- Bug 4922099
73217    --
73218    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73219         (NVL(l_actual_upg_option, 'N') = 'O') OR
73220         (NVL(l_enc_upg_option, 'N') = 'O')
73221       )
73222    THEN
73223    NULL;
73224    --
73225    --
73226    
73227   l_ccid := AcctDerRule_37(
73228            p_application_id           => p_application_id
73229          , p_ae_header_id             => l_ae_header_id 
73230 , p_source_15 => p_source_15
73231 , p_source_15_meaning => p_source_15_meaning
73232 , p_source_30 => p_source_30
73233 , p_source_36 => p_source_36
73234 , p_source_37 => p_source_37
73235          , x_transaction_coa_id       => l_adr_transaction_coa_id
73236          , x_accounting_coa_id        => l_adr_accounting_coa_id
73237          , x_value_type_code          => l_adr_value_type_code
73241    xla_ae_lines_pkg.set_ccid(
73238          , p_side                     => 'NA'
73239    );
73240 
73242     p_code_combination_id          => l_ccid
73243   , p_value_type_code              => l_adr_value_type_code
73244   , p_transaction_coa_id           => l_adr_transaction_coa_id
73245   , p_accounting_coa_id            => l_adr_accounting_coa_id
73246   , p_adr_code                     => 'AP_REAL_GAIN'
73247   , p_adr_type_code                => 'S'
73248   , p_component_type               => l_component_type
73249   , p_component_code               => l_component_code
73250   , p_component_type_code          => l_component_type_code
73251   , p_component_appl_id            => l_component_appl_id
73252   , p_amb_context_code             => l_amb_context_code
73253   , p_side                         => 'NA'
73254   );
73255 
73256 
73257    l_segment := AcctDerRule_22(
73258            p_application_id           => p_application_id
73259          , p_ae_header_id             => l_ae_header_id 
73260 , p_source_15 => p_source_15
73261 , p_source_15_meaning => p_source_15_meaning
73262 , p_source_30 => p_source_30
73263          , x_transaction_coa_id       => l_adr_transaction_coa_id
73264          , x_accounting_coa_id        => l_adr_accounting_coa_id
73265          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73266          , x_flex_value_set_id        => l_adr_flex_value_set_id
73267          , x_value_type_code          => l_adr_value_type_code
73268          , x_value_combination_id     => l_adr_value_combination_id
73269          , x_value_segment_code       => l_adr_value_segment_code
73270          , p_side                     => 'NA'
73271          , p_override_seg_flag        => 'Y'
73272    );
73273 
73274    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73275 
73276       xla_ae_lines_pkg.set_segment(
73277           p_to_segment_code         => 'GL_BALANCING'
73278         , p_segment_value           => l_segment
73279         , p_from_segment_code       => l_adr_value_segment_code
73280         , p_from_combination_id     => l_adr_value_combination_id
73281         , p_value_type_code         => l_adr_value_type_code
73282         , p_transaction_coa_id      => l_adr_transaction_coa_id
73283         , p_accounting_coa_id       => l_adr_accounting_coa_id
73284         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73285         , p_flex_value_set_id       => l_adr_flex_value_set_id
73286         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73287         , p_adr_type_code           => 'S'
73288         , p_component_type          => l_component_type
73289         , p_component_code          => l_component_code
73290         , p_component_type_code     => l_component_type_code
73291         , p_component_appl_id       => l_component_appl_id
73292         , p_amb_context_code        => l_amb_context_code
73293         , p_entity_code             => 'AP_INVOICES'
73294         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73295         , p_side                    => 'NA'
73296         );
73297 
73298   END IF;
73299 
73300    l_segment := AcctDerRule_17(
73301            p_application_id           => p_application_id
73302          , p_ae_header_id             => l_ae_header_id 
73303 , p_source_15 => p_source_15
73304 , p_source_15_meaning => p_source_15_meaning
73305 , p_source_36 => p_source_36
73306 , p_source_37 => p_source_37
73307          , x_transaction_coa_id       => l_adr_transaction_coa_id
73308          , x_accounting_coa_id        => l_adr_accounting_coa_id
73309          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73310          , x_flex_value_set_id        => l_adr_flex_value_set_id
73311          , x_value_type_code          => l_adr_value_type_code
73312          , x_value_combination_id     => l_adr_value_combination_id
73313          , x_value_segment_code       => l_adr_value_segment_code
73314          , p_side                     => 'NA'
73315          , p_override_seg_flag        => 'Y'
73316    );
73317 
73318    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73319 
73320       xla_ae_lines_pkg.set_segment(
73321           p_to_segment_code         => 'GL_ACCOUNT'
73322         , p_segment_value           => l_segment
73323         , p_from_segment_code       => l_adr_value_segment_code
73324         , p_from_combination_id     => l_adr_value_combination_id
73325         , p_value_type_code         => l_adr_value_type_code
73326         , p_transaction_coa_id      => l_adr_transaction_coa_id
73327         , p_accounting_coa_id       => l_adr_accounting_coa_id
73328         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73329         , p_flex_value_set_id       => l_adr_flex_value_set_id
73330         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73331         , p_adr_type_code           => 'S'
73332         , p_component_type          => l_component_type
73333         , p_component_code          => l_component_code
73334         , p_component_type_code     => l_component_type_code
73335         , p_component_appl_id       => l_component_appl_id
73336         , p_amb_context_code        => l_amb_context_code
73337         , p_entity_code             => 'AP_INVOICES'
73338         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
73339         , p_side                    => 'NA'
73340         );
73341 
73342   END IF;
73343 
73344    --
73345    --
73346    END IF;
73347 
73348        --
73349        -- Update the line information that should be overwritten
73350        --
73354 
73351        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73352                                          p_header_num   => 1);
73353        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73355        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73356 
73357        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73358           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73359        END IF;
73360 
73361       --
73362       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73363       --
73364       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73365           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73366       ELSE
73367           ---------------------------------------------------------------------------------------------------
73368           -- 4262811a Switch Sign
73369           ---------------------------------------------------------------------------------------------------
73370           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73371           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73372                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73373           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73374                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73375           -- 5132302
73376           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73377                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73378 
73379       END IF;
73380 
73381       -- 4955764
73382       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73383       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73384 
73385 
73386       XLA_AE_LINES_PKG.ValidateCurrentLine;
73387       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73388 
73389       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73390                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73391                ,p_balance_type_code => l_balance_type_code);
73392 
73393    END IF;
73394 
73395    -----------------------------------------------------------------------------------------
73396    -- 4262811 Multiperiod Accounting
73397    -----------------------------------------------------------------------------------------
73398      -- No MPA option is assigned.
73399 
73400 
73401 END IF;
73402 END IF;
73403 --
73404 
73405 --
73406 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73407    trace
73408       (p_msg      => 'END of AcctLineType_132'
73409       ,p_level    => C_LEVEL_PROCEDURE
73410       ,p_module   => l_log_module);
73411 END IF;
73412 --
73413 EXCEPTION
73414   WHEN xla_exceptions_pkg.application_exception THEN
73415       RAISE;
73416   WHEN OTHERS THEN
73417        xla_exceptions_pkg.raise_message
73418            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_132');
73419 END AcctLineType_132;
73420 --
73421 
73422 ---------------------------------------
73423 --
73424 -- PRIVATE FUNCTION
73425 --         AcctLineType_133
73426 --
73427 ---------------------------------------
73428 PROCEDURE AcctLineType_133 (
73429   p_application_id        IN NUMBER
73430  ,p_event_id              IN NUMBER
73431  ,p_calculate_acctd_flag  IN VARCHAR2
73432  ,p_calculate_g_l_flag    IN VARCHAR2
73433  ,p_actual_flag           IN OUT VARCHAR2
73434  ,p_balance_type_code     OUT VARCHAR2
73435  ,p_gain_or_loss_ref      OUT VARCHAR2
73436  
73437 --Payment Currency Code
73438  , p_source_13            IN VARCHAR2
73439 --Automatic Offsets Value
73440  , p_source_15            IN VARCHAR2
73441  , p_source_15_meaning    IN VARCHAR2
73442 --Invoice Distribution Account
73443  , p_source_30            IN NUMBER
73444 --Internal Realized Gain Account
73445  , p_source_36            IN NUMBER
73446 --Bank Gain Account
73447  , p_source_37            IN NUMBER
73448 --Accounting Reversal Indicator
73449  , p_source_52            IN VARCHAR2
73450 --Distribution Link Type
73451  , p_source_54            IN VARCHAR2
73452 --Override Accounted Amount Indicator
73453  , p_source_79            IN VARCHAR2
73454  , p_source_79_meaning    IN VARCHAR2
73455 --Third Party Type
73456  , p_source_82            IN VARCHAR2
73457 --Invoice Distribution Tax Line Identifier
73458  , p_source_85            IN NUMBER
73459 --Invoice Distribution Tax Distribution Identifier from Tax
73460  , p_source_86            IN NUMBER
73461 --Invoice Distribution Summary Tax Line Identifier
73462  , p_source_87            IN NUMBER
73463 --Business Flow Accounts Payable Application Identifier
73464  , p_source_90            IN NUMBER
73465 --Business Flow Invoice Distribution Type
73466  , p_source_91            IN VARCHAR2
73467 --Business Flow Invoice Entity Code
73468  , p_source_92            IN VARCHAR2
73469 --Business Flow Invoice Distribution Identifier
73470  , p_source_93            IN NUMBER
73471 --Business Flow Invoice Identifier
73475 --Payment Distribution Type
73472  , p_source_94            IN NUMBER
73473 --When to Account for Payment Option
73474  , p_source_96            IN VARCHAR2
73476  , p_source_97            IN VARCHAR2
73477  , p_source_97_meaning    IN VARCHAR2
73478 --Payment Distribution Amount
73479  , p_source_98            IN NUMBER
73480 --Payment Distribution Identifier
73481  , p_source_103            IN NUMBER
73482 --Payment Supplier Identifier
73483  , p_source_109            IN NUMBER
73484 --Payment Supplier Site Identifier
73485  , p_source_110            IN NUMBER
73486 --Payment Distribution Reversed Identifier
73487  , p_source_111            IN NUMBER
73488 --Payment Identifier
73489  , p_source_112            IN NUMBER
73490 --Payment Exchange Date
73491  , p_source_117            IN DATE
73492 --Payment Exchange Rate
73493  , p_source_118            IN NUMBER
73494 --Payment Exchange Rate Type
73495  , p_source_119            IN VARCHAR2
73496 --Payment Type
73497  , p_source_122            IN VARCHAR2
73498  , p_source_122_meaning    IN VARCHAR2
73499 --Invoice/Payment Ledger Amount Difference
73500  , p_source_150            IN NUMBER
73501 --Gain or Loss Indicator between Invoice and Payment
73502  , p_source_155            IN VARCHAR2
73503 )
73504 IS
73505 
73506 l_component_type              VARCHAR2(80);
73507 l_component_code              VARCHAR2(30);
73508 l_component_type_code         VARCHAR2(1);
73509 l_component_appl_id           INTEGER;
73510 l_amb_context_code            VARCHAR2(30);
73511 l_entity_code                 VARCHAR2(30);
73512 l_event_class_code            VARCHAR2(30);
73513 l_ae_header_id                NUMBER;
73514 l_event_type_code             VARCHAR2(30);
73515 l_line_definition_code        VARCHAR2(30);
73516 l_line_definition_owner_code  VARCHAR2(1);
73517 --
73518 -- adr variables
73519 l_segment                     VARCHAR2(30);
73520 l_ccid                        NUMBER;
73521 l_adr_transaction_coa_id      NUMBER;
73522 l_adr_accounting_coa_id       NUMBER;
73523 l_adr_flexfield_segment_code  VARCHAR2(30);
73524 l_adr_flex_value_set_id       NUMBER;
73525 l_adr_value_type_code         VARCHAR2(30);
73526 l_adr_value_combination_id    NUMBER;
73527 l_adr_value_segment_code      VARCHAR2(30);
73528 
73529 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73530 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73531 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73532 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73533 
73534 -- 4262811 Variables ------------------------------------------------------------------------------------------
73535 l_entered_amt_idx             NUMBER;
73536 l_accted_amt_idx              NUMBER;
73537 l_acc_rev_flag                VARCHAR2(1);
73538 l_accrual_line_num            NUMBER;
73539 l_tmp_amt                     NUMBER;
73540 l_acc_rev_natural_side_code   VARCHAR2(1);
73541 
73542 l_num_entries                 NUMBER;
73543 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73544 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73545 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73546 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73547 l_recog_line_1                NUMBER;
73548 l_recog_line_2                NUMBER;
73549 
73550 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73551 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73552 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73553 
73554 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73555 
73556 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73557 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73558 
73559 ---------------------------------------------------------------------------------------------------------------
73560 
73561 
73562 --
73563 -- bulk performance
73564 --
73565 l_balance_type_code           VARCHAR2(1);
73566 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73567 l_log_module                  VARCHAR2(240);
73568 
73569 --
73570 -- Upgrade strategy
73571 --
73572 l_actual_upg_option           VARCHAR2(1);
73573 l_enc_upg_option           VARCHAR2(1);
73574 
73575 --
73576 BEGIN
73577 --
73578 IF g_log_enabled THEN
73579       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
73580 END IF;
73581 --
73582 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73583 
73584       trace
73585          (p_msg      => 'BEGIN of AcctLineType_133'
73586          ,p_level    => C_LEVEL_PROCEDURE
73587          ,p_module   => l_log_module);
73588 
73589 END IF;
73590 --
73591 l_component_type             := 'AMB_JLT';
73592 l_component_code             := 'AP_GAIN_REF';
73593 l_component_type_code        := 'S';
73594 l_component_appl_id          :=  200;
73595 l_amb_context_code           := 'DEFAULT';
73596 l_entity_code                := 'AP_PAYMENTS';
73597 l_event_class_code           := 'REFUNDS';
73598 l_event_type_code            := 'REFUNDS_ALL';
73599 l_line_definition_owner_code := 'S';
73600 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
73601 --
73602 l_balance_type_code          := 'A';
73603 l_segment                     := NULL;
73607 l_adr_flexfield_segment_code  := NULL;
73604 l_ccid                        := NULL;
73605 l_adr_transaction_coa_id      := NULL;
73606 l_adr_accounting_coa_id       := NULL;
73608 l_adr_flex_value_set_id       := NULL;
73609 l_adr_value_type_code         := NULL;
73610 l_adr_value_combination_id    := NULL;
73611 l_adr_value_segment_code      := NULL;
73612 
73613 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
73614 l_bflow_class_code           := '';    -- 4219869 Business Flow
73615 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73616 l_budgetary_control_flag     := 'N';
73617 
73618 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73619 l_bflow_applied_to_amt       := NULL; -- 5132302
73620 l_entered_amt_idx            := NULL;          -- 4262811
73621 l_accted_amt_idx             := NULL;          -- 4262811
73622 l_acc_rev_flag               := NULL;          -- 4262811
73623 l_accrual_line_num           := NULL;          -- 4262811
73624 l_tmp_amt                    := NULL;          -- 4262811
73625 --
73626 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73627             (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
73628                return;
73629   END IF;
73630   
73631 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73632     l_balance_type_code <> 'B' THEN
73633 IF (NVL(p_source_96,'
73634 ') <>  'CLEAR_CLEAR' AND 
73635 NVL(p_source_96,'
73636 ') <>  'ALWAYS_CLEAR') AND 
73637 NVL(p_source_155,'
73638 ') =  'GAIN' AND 
73639 NVL(p_source_122,'
73640 ') =  'R' AND 
73641 NVL(p_source_97,'
73642 ') <>  'EXCHANGE RATE VARIANCE' AND 
73643 NVL(p_source_97,'
73644 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
73645 NVL(p_source_97,'
73646 ') <>  'BANK CHARGE' AND 
73647 NVL(p_source_97,'
73648 ') <>  'BANK ERROR'
73649  THEN 
73650 
73651    --
73652    XLA_AE_LINES_PKG.SetNewLine;
73653 
73654    p_balance_type_code          := l_balance_type_code;
73655    -- set the flag so later we will know whether the gain loss line needs to be created
73656    
73657    IF(l_balance_type_code = 'A' ) THEN
73658      p_actual_flag :='G';
73659    END IF;
73660 
73661    --
73662    -- bulk performance
73663    --
73664    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73665                                       p_header_num   => 0); -- 4262811
73666    --
73667    -- set accounting line options
73668    --
73669    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73670            p_natural_side_code          => 'C'
73671          , p_gain_or_loss_flag          => 'Y'
73672          , p_gl_transfer_mode_code      => 'S'
73673          , p_acct_entry_type_code       => 'A'
73674          , p_switch_side_flag           => 'Y'
73675          , p_merge_duplicate_code       => 'A'
73676          );
73677    --
73678    l_acc_rev_natural_side_code := 'D';  -- 4262811
73679    -- 
73680    --
73681    -- set accounting line type info
73682    --
73683    xla_ae_lines_pkg.SetAcctLineType
73684       (p_component_type             => l_component_type
73685       ,p_event_type_code            => l_event_type_code
73686       ,p_line_definition_owner_code => l_line_definition_owner_code
73687       ,p_line_definition_code       => l_line_definition_code
73688       ,p_accounting_line_code       => l_component_code
73689       ,p_accounting_line_type_code  => l_component_type_code
73690       ,p_accounting_line_appl_id    => l_component_appl_id
73691       ,p_amb_context_code           => l_amb_context_code
73692       ,p_entity_code                => l_entity_code
73693       ,p_event_class_code           => l_event_class_code);
73694    --
73695    -- set accounting class
73696    --
73697    xla_ae_lines_pkg.SetAcctClass(
73698            p_accounting_class_code  => 'GAIN'
73699          , p_ae_header_id           => l_ae_header_id
73700          );
73701 
73702    --
73703    -- set rounding class
73704    --
73705    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73706                       'GAIN';
73707 
73708    --
73709    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73710    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73711    --
73712    -- bulk performance
73713    --
73714    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73715 
73716    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73717       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73718 
73719    -- 4955764
73720    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73721       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73722 
73723    -- 4458381 Public Sector Enh
73724    
73725    --
73726    -- set accounting attributes for the line type
73727    --
73728    l_entered_amt_idx := 9;
73729    l_accted_amt_idx  := 14;
73730    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
73731    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73732    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
73733    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
73737    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
73734    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
73735    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73736    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
73738    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
73739    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
73740    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
73741    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73742    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
73743    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
73744    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
73745    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
73746    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
73747    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
73748    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
73749    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
73750    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
73751    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
73752    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
73753    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
73754    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
73755    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
73756    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
73757    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
73758    l_rec_acct_attrs.array_num_value(14)  := p_source_150;
73759    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
73760    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
73761    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
73762    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
73763    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
73764    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
73765    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
73766    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
73767    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
73768    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
73769    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
73770    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
73771    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
73772    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
73773    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
73774    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
73775    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
73776    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
73777 
73778    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73779    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73780 
73781    ---------------------------------------------------------------------------------------------------------------
73782    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73783    ---------------------------------------------------------------------------------------------------------------
73784    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73785 
73786    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73787    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73788 
73789    IF xla_accounting_cache_pkg.GetValueChar
73790          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73791          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73792    AND l_bflow_method_code = 'PRIOR_ENTRY'
73793 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73794    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73795          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73796        )
73797    THEN
73798          xla_ae_lines_pkg.BflowUpgEntry
73799            (p_business_method_code    => l_bflow_method_code
73800            ,p_business_class_code     => l_bflow_class_code
73801            ,p_balance_type            => l_balance_type_code);
73802    ELSE
73803       NULL;
73804 -- No business flow processing for business flow method of NONE.
73805    END IF;
73806 
73807    --
73808    -- call analytical criteria
73809    --
73810    
73811 
73812 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
73813 xla_ae_lines_pkg.SetAnalyticalCriteria(
73814    p_analytical_criterion_name    => 'Check Id'
73815  , p_analytical_criterion_owner   => 'S'
73816  , p_analytical_criterion_code    => 'CHECK_ID'
73817  , p_amb_context_code             => 'DEFAULT'
73818  , p_balancing_flag               => 'N'
73819  
73820  , p_analytical_detail_char_1    =>  NULL
73821  , p_analytical_detail_num_1     =>  p_source_112
73822  , p_analytical_detail_date_1    =>  NULL
73823 
73824  , p_ae_header_id                 => l_ae_header_id
73825 )
73826 ;
73827 --
73828 
73829    --
73830    -- call description
73831    --
73832    -- No description or it is inherited.
73833    --
73834    -- call ADRs
73835    -- Bug 4922099
73839         (NVL(l_enc_upg_option, 'N') = 'O')
73836    --
73837    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73838         (NVL(l_actual_upg_option, 'N') = 'O') OR
73840       )
73841    THEN
73842    NULL;
73843    --
73844    --
73845    
73846   l_ccid := AcctDerRule_37(
73847            p_application_id           => p_application_id
73848          , p_ae_header_id             => l_ae_header_id 
73849 , p_source_15 => p_source_15
73850 , p_source_15_meaning => p_source_15_meaning
73851 , p_source_30 => p_source_30
73852 , p_source_36 => p_source_36
73853 , p_source_37 => p_source_37
73854          , x_transaction_coa_id       => l_adr_transaction_coa_id
73855          , x_accounting_coa_id        => l_adr_accounting_coa_id
73856          , x_value_type_code          => l_adr_value_type_code
73857          , p_side                     => 'NA'
73858    );
73859 
73860    xla_ae_lines_pkg.set_ccid(
73861     p_code_combination_id          => l_ccid
73862   , p_value_type_code              => l_adr_value_type_code
73863   , p_transaction_coa_id           => l_adr_transaction_coa_id
73864   , p_accounting_coa_id            => l_adr_accounting_coa_id
73865   , p_adr_code                     => 'AP_REAL_GAIN'
73866   , p_adr_type_code                => 'S'
73867   , p_component_type               => l_component_type
73868   , p_component_code               => l_component_code
73869   , p_component_type_code          => l_component_type_code
73870   , p_component_appl_id            => l_component_appl_id
73871   , p_amb_context_code             => l_amb_context_code
73872   , p_side                         => 'NA'
73873   );
73874 
73875 
73876    l_segment := AcctDerRule_22(
73877            p_application_id           => p_application_id
73878          , p_ae_header_id             => l_ae_header_id 
73879 , p_source_15 => p_source_15
73880 , p_source_15_meaning => p_source_15_meaning
73881 , p_source_30 => p_source_30
73882          , x_transaction_coa_id       => l_adr_transaction_coa_id
73883          , x_accounting_coa_id        => l_adr_accounting_coa_id
73884          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73885          , x_flex_value_set_id        => l_adr_flex_value_set_id
73886          , x_value_type_code          => l_adr_value_type_code
73887          , x_value_combination_id     => l_adr_value_combination_id
73888          , x_value_segment_code       => l_adr_value_segment_code
73889          , p_side                     => 'NA'
73890          , p_override_seg_flag        => 'Y'
73891    );
73892 
73893    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73894 
73895       xla_ae_lines_pkg.set_segment(
73896           p_to_segment_code         => 'GL_BALANCING'
73897         , p_segment_value           => l_segment
73898         , p_from_segment_code       => l_adr_value_segment_code
73899         , p_from_combination_id     => l_adr_value_combination_id
73900         , p_value_type_code         => l_adr_value_type_code
73901         , p_transaction_coa_id      => l_adr_transaction_coa_id
73902         , p_accounting_coa_id       => l_adr_accounting_coa_id
73903         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73904         , p_flex_value_set_id       => l_adr_flex_value_set_id
73905         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73906         , p_adr_type_code           => 'S'
73907         , p_component_type          => l_component_type
73908         , p_component_code          => l_component_code
73909         , p_component_type_code     => l_component_type_code
73910         , p_component_appl_id       => l_component_appl_id
73911         , p_amb_context_code        => l_amb_context_code
73912         , p_entity_code             => 'AP_PAYMENTS'
73913         , p_event_class_code        => 'REFUNDS'
73914         , p_side                    => 'NA'
73915         );
73916 
73917   END IF;
73918 
73919    l_segment := AcctDerRule_17(
73920            p_application_id           => p_application_id
73921          , p_ae_header_id             => l_ae_header_id 
73922 , p_source_15 => p_source_15
73923 , p_source_15_meaning => p_source_15_meaning
73924 , p_source_36 => p_source_36
73925 , p_source_37 => p_source_37
73926          , x_transaction_coa_id       => l_adr_transaction_coa_id
73927          , x_accounting_coa_id        => l_adr_accounting_coa_id
73928          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73929          , x_flex_value_set_id        => l_adr_flex_value_set_id
73930          , x_value_type_code          => l_adr_value_type_code
73931          , x_value_combination_id     => l_adr_value_combination_id
73932          , x_value_segment_code       => l_adr_value_segment_code
73933          , p_side                     => 'NA'
73934          , p_override_seg_flag        => 'Y'
73935    );
73936 
73937    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73938 
73939       xla_ae_lines_pkg.set_segment(
73940           p_to_segment_code         => 'GL_ACCOUNT'
73941         , p_segment_value           => l_segment
73942         , p_from_segment_code       => l_adr_value_segment_code
73943         , p_from_combination_id     => l_adr_value_combination_id
73944         , p_value_type_code         => l_adr_value_type_code
73945         , p_transaction_coa_id      => l_adr_transaction_coa_id
73946         , p_accounting_coa_id       => l_adr_accounting_coa_id
73947         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73951         , p_component_type          => l_component_type
73948         , p_flex_value_set_id       => l_adr_flex_value_set_id
73949         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73950         , p_adr_type_code           => 'S'
73952         , p_component_code          => l_component_code
73953         , p_component_type_code     => l_component_type_code
73954         , p_component_appl_id       => l_component_appl_id
73955         , p_amb_context_code        => l_amb_context_code
73956         , p_entity_code             => 'AP_PAYMENTS'
73957         , p_event_class_code        => 'REFUNDS'
73958         , p_side                    => 'NA'
73959         );
73960 
73961   END IF;
73962 
73963    --
73964    --
73965    END IF;
73966    --
73967    -- Bug 4922099
73968    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73969           (NVL(l_enc_upg_option, 'N') = 'O')
73970         ) AND
73971         (l_bflow_method_code = 'PRIOR_ENTRY')
73972       )
73973    THEN
73974       IF
73975       --
73976       1 = 2
73977       --
73978       THEN
73979       xla_accounting_err_pkg.build_message
73980                                     (p_appli_s_name            => 'XLA'
73981                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73982                                     ,p_token_1                 => 'LINE_NUMBER'
73983                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73984                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73985                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73986                                                                              l_component_type
73987                                                                             ,l_component_code
73988                                                                             ,l_component_type_code
73989                                                                             ,l_component_appl_id
73990                                                                             ,l_amb_context_code
73991                                                                             ,l_entity_code
73992                                                                             ,l_event_class_code
73993                                                                            )
73994                                     ,p_token_3                 => 'OWNER'
73995                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73996                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73997                                                                           ,p_lookup_code    => l_component_type_code
73998                                                                          )
73999                                     ,p_token_4                 => 'PRODUCT_NAME'
74000                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74001                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74002                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74003                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74004                                     ,p_ae_header_id            =>  NULL
74005                                        );
74006 
74007         IF (C_LEVEL_ERROR>= g_log_level) THEN
74008                  trace
74009                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74010                       ,p_level    => C_LEVEL_ERROR
74011                       ,p_module   => l_log_module);
74012         END IF;
74013       END IF;
74014    END IF;
74015    --
74016    --
74017    ------------------------------------------------------------------------------------------------
74018    -- 4219869 Business Flow
74019    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74020    -- Prior Entry.  Currently, the following code is always generated.
74021    ------------------------------------------------------------------------------------------------
74022    XLA_AE_LINES_PKG.ValidateCurrentLine;
74023 
74024    ------------------------------------------------------------------------------------
74025    -- 4219869 Business Flow
74026    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74027    ------------------------------------------------------------------------------------
74028    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74029 
74030    ----------------------------------------------------------------------------------
74031    -- 4219869 Business Flow
74032    -- Update journal entry status -- Need to generate this within IF <condition>
74033    ----------------------------------------------------------------------------------
74034    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74035          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74036          ,p_balance_type_code => l_balance_type_code
74037          );
74038 
74039    -------------------------------------------------------------------------------------------
74040    -- 4262811 - Generate the Accrual Reversal lines
74041    -------------------------------------------------------------------------------------------
74042    BEGIN
74046          l_acc_rev_flag := 'N';
74043       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74044                               (g_array_event(p_event_id).array_value_num('header_index'));
74045       IF l_acc_rev_flag IS NULL THEN
74047       END IF;
74048    EXCEPTION
74049       WHEN OTHERS THEN
74050          l_acc_rev_flag := 'N';
74051    END;
74052    --
74053    IF (l_acc_rev_flag = 'Y') THEN
74054 
74055        -- 4645092  ------------------------------------------------------------------------------
74056        -- To allow MPA report to determine if it should generate report process
74057        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74058        ------------------------------------------------------------------------------------------
74059 
74060        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74061        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74062    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74063    -- call ADRs
74064    -- Bug 4922099
74065    --
74066    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74067         (NVL(l_actual_upg_option, 'N') = 'O') OR
74068         (NVL(l_enc_upg_option, 'N') = 'O')
74069       )
74070    THEN
74071    NULL;
74072    --
74073    --
74074    
74075   l_ccid := AcctDerRule_37(
74076            p_application_id           => p_application_id
74077          , p_ae_header_id             => l_ae_header_id 
74078 , p_source_15 => p_source_15
74079 , p_source_15_meaning => p_source_15_meaning
74080 , p_source_30 => p_source_30
74081 , p_source_36 => p_source_36
74082 , p_source_37 => p_source_37
74083          , x_transaction_coa_id       => l_adr_transaction_coa_id
74084          , x_accounting_coa_id        => l_adr_accounting_coa_id
74085          , x_value_type_code          => l_adr_value_type_code
74086          , p_side                     => 'NA'
74087    );
74088 
74089    xla_ae_lines_pkg.set_ccid(
74090     p_code_combination_id          => l_ccid
74091   , p_value_type_code              => l_adr_value_type_code
74092   , p_transaction_coa_id           => l_adr_transaction_coa_id
74093   , p_accounting_coa_id            => l_adr_accounting_coa_id
74094   , p_adr_code                     => 'AP_REAL_GAIN'
74095   , p_adr_type_code                => 'S'
74096   , p_component_type               => l_component_type
74097   , p_component_code               => l_component_code
74098   , p_component_type_code          => l_component_type_code
74099   , p_component_appl_id            => l_component_appl_id
74100   , p_amb_context_code             => l_amb_context_code
74101   , p_side                         => 'NA'
74102   );
74103 
74104 
74105    l_segment := AcctDerRule_22(
74106            p_application_id           => p_application_id
74107          , p_ae_header_id             => l_ae_header_id 
74108 , p_source_15 => p_source_15
74109 , p_source_15_meaning => p_source_15_meaning
74110 , p_source_30 => p_source_30
74111          , x_transaction_coa_id       => l_adr_transaction_coa_id
74112          , x_accounting_coa_id        => l_adr_accounting_coa_id
74113          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74114          , x_flex_value_set_id        => l_adr_flex_value_set_id
74115          , x_value_type_code          => l_adr_value_type_code
74116          , x_value_combination_id     => l_adr_value_combination_id
74117          , x_value_segment_code       => l_adr_value_segment_code
74118          , p_side                     => 'NA'
74119          , p_override_seg_flag        => 'Y'
74120    );
74121 
74122    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74123 
74124       xla_ae_lines_pkg.set_segment(
74125           p_to_segment_code         => 'GL_BALANCING'
74126         , p_segment_value           => l_segment
74127         , p_from_segment_code       => l_adr_value_segment_code
74128         , p_from_combination_id     => l_adr_value_combination_id
74129         , p_value_type_code         => l_adr_value_type_code
74130         , p_transaction_coa_id      => l_adr_transaction_coa_id
74131         , p_accounting_coa_id       => l_adr_accounting_coa_id
74132         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74133         , p_flex_value_set_id       => l_adr_flex_value_set_id
74134         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
74135         , p_adr_type_code           => 'S'
74136         , p_component_type          => l_component_type
74137         , p_component_code          => l_component_code
74138         , p_component_type_code     => l_component_type_code
74139         , p_component_appl_id       => l_component_appl_id
74140         , p_amb_context_code        => l_amb_context_code
74141         , p_entity_code             => 'AP_PAYMENTS'
74142         , p_event_class_code        => 'REFUNDS'
74143         , p_side                    => 'NA'
74144         );
74145 
74146   END IF;
74147 
74148    l_segment := AcctDerRule_17(
74149            p_application_id           => p_application_id
74150          , p_ae_header_id             => l_ae_header_id 
74151 , p_source_15 => p_source_15
74152 , p_source_15_meaning => p_source_15_meaning
74153 , p_source_36 => p_source_36
74154 , p_source_37 => p_source_37
74155          , x_transaction_coa_id       => l_adr_transaction_coa_id
74156          , x_accounting_coa_id        => l_adr_accounting_coa_id
74157          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74158          , x_flex_value_set_id        => l_adr_flex_value_set_id
74162          , p_side                     => 'NA'
74159          , x_value_type_code          => l_adr_value_type_code
74160          , x_value_combination_id     => l_adr_value_combination_id
74161          , x_value_segment_code       => l_adr_value_segment_code
74163          , p_override_seg_flag        => 'Y'
74164    );
74165 
74166    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74167 
74168       xla_ae_lines_pkg.set_segment(
74169           p_to_segment_code         => 'GL_ACCOUNT'
74170         , p_segment_value           => l_segment
74171         , p_from_segment_code       => l_adr_value_segment_code
74172         , p_from_combination_id     => l_adr_value_combination_id
74173         , p_value_type_code         => l_adr_value_type_code
74174         , p_transaction_coa_id      => l_adr_transaction_coa_id
74175         , p_accounting_coa_id       => l_adr_accounting_coa_id
74176         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74177         , p_flex_value_set_id       => l_adr_flex_value_set_id
74178         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
74179         , p_adr_type_code           => 'S'
74180         , p_component_type          => l_component_type
74181         , p_component_code          => l_component_code
74182         , p_component_type_code     => l_component_type_code
74183         , p_component_appl_id       => l_component_appl_id
74184         , p_amb_context_code        => l_amb_context_code
74185         , p_entity_code             => 'AP_PAYMENTS'
74186         , p_event_class_code        => 'REFUNDS'
74187         , p_side                    => 'NA'
74188         );
74189 
74190   END IF;
74191 
74192    --
74193    --
74194    END IF;
74195 
74196        --
74197        -- Update the line information that should be overwritten
74198        --
74199        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74200                                          p_header_num   => 1);
74201        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74202 
74203        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74204 
74205        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74206           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74207        END IF;
74208 
74209       --
74210       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74211       --
74212       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74213           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74214       ELSE
74215           ---------------------------------------------------------------------------------------------------
74216           -- 4262811a Switch Sign
74217           ---------------------------------------------------------------------------------------------------
74218           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74219           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74220                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74221           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74222                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74223           -- 5132302
74224           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74225                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74226 
74227       END IF;
74228 
74229       -- 4955764
74230       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74232 
74233 
74234       XLA_AE_LINES_PKG.ValidateCurrentLine;
74235       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74236 
74237       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74238                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74239                ,p_balance_type_code => l_balance_type_code);
74240 
74241    END IF;
74242 
74243    -----------------------------------------------------------------------------------------
74244    -- 4262811 Multiperiod Accounting
74245    -----------------------------------------------------------------------------------------
74246      -- No MPA option is assigned.
74247 
74248 
74249 END IF;
74250 END IF;
74251 --
74252 
74253 --
74254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74255    trace
74256       (p_msg      => 'END of AcctLineType_133'
74257       ,p_level    => C_LEVEL_PROCEDURE
74258       ,p_module   => l_log_module);
74259 END IF;
74260 --
74261 EXCEPTION
74262   WHEN xla_exceptions_pkg.application_exception THEN
74263       RAISE;
74264   WHEN OTHERS THEN
74265        xla_exceptions_pkg.raise_message
74266            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_133');
74267 END AcctLineType_133;
74268 --
74269 
74270 ---------------------------------------
74271 --
74272 -- PRIVATE FUNCTION
74273 --         AcctLineType_134
74274 --
74275 ---------------------------------------
74279  ,p_calculate_acctd_flag  IN VARCHAR2
74276 PROCEDURE AcctLineType_134 (
74277   p_application_id        IN NUMBER
74278  ,p_event_id              IN NUMBER
74280  ,p_calculate_g_l_flag    IN VARCHAR2
74281  ,p_actual_flag           IN OUT VARCHAR2
74282  ,p_balance_type_code     OUT VARCHAR2
74283  ,p_gain_or_loss_ref      OUT VARCHAR2
74284  
74285 --Payment Currency Code
74286  , p_source_13            IN VARCHAR2
74287 --Interest Account
74288  , p_source_28            IN NUMBER
74289 --Prorate Interest Invoice Across Distributions Option
74290  , p_source_29            IN VARCHAR2
74291 --Invoice Distribution Account
74292  , p_source_30            IN NUMBER
74293 --Invoice Distribution Type
74294  , p_source_33            IN VARCHAR2
74295  , p_source_33_meaning    IN VARCHAR2
74296 --Accounting Reversal Indicator
74297  , p_source_52            IN VARCHAR2
74298 --Distribution Link Type
74299  , p_source_54            IN VARCHAR2
74300 --Override Accounted Amount Indicator
74301  , p_source_79            IN VARCHAR2
74302  , p_source_79_meaning    IN VARCHAR2
74303 --Third Party Type
74304  , p_source_82            IN VARCHAR2
74305 --Invoice Distribution Tax Line Identifier
74306  , p_source_85            IN NUMBER
74307 --Invoice Distribution Summary Tax Line Identifier
74308  , p_source_87            IN NUMBER
74309 --Business Flow Accounts Payable Application Identifier
74310  , p_source_90            IN NUMBER
74311 --When to Account for Payment Option
74312  , p_source_96            IN VARCHAR2
74313 --Payment Distribution Type
74314  , p_source_97            IN VARCHAR2
74315  , p_source_97_meaning    IN VARCHAR2
74316 --Payment Distribution Amount
74317  , p_source_98            IN NUMBER
74318 --Business Flow Payment Distribution Type
74319  , p_source_99            IN VARCHAR2
74320 --Business Flow Payment Entity Code
74321  , p_source_100            IN VARCHAR2
74322 --Business Flow Payment Distribution Identifier
74323  , p_source_101            IN NUMBER
74324 --Business Flow Payment Identifier
74325  , p_source_102            IN NUMBER
74326 --Payment Distribution Identifier
74327  , p_source_103            IN NUMBER
74328 --Cleared Exchange Date
74329  , p_source_105            IN DATE
74330 --Cleared Exchange Rate
74331  , p_source_106            IN NUMBER
74332 --Cleared Exchange Rate Type
74333  , p_source_107            IN VARCHAR2
74334 --Payment Distribution (Cleared Rate) Ledger Amount
74335  , p_source_108            IN NUMBER
74336 --Payment Supplier Identifier
74337  , p_source_109            IN NUMBER
74338 --Payment Supplier Site Identifier
74339  , p_source_110            IN NUMBER
74340 --Payment Distribution Reversed Identifier
74341  , p_source_111            IN NUMBER
74342 --Payment Identifier
74343  , p_source_112            IN NUMBER
74344 --Payment Type
74345  , p_source_122            IN VARCHAR2
74346  , p_source_122_meaning    IN VARCHAR2
74347 --Invoice Type Paid
74348  , p_source_160            IN VARCHAR2
74349  , p_source_160_meaning    IN VARCHAR2
74350 )
74351 IS
74352 
74353 l_component_type              VARCHAR2(80);
74354 l_component_code              VARCHAR2(30);
74355 l_component_type_code         VARCHAR2(1);
74356 l_component_appl_id           INTEGER;
74357 l_amb_context_code            VARCHAR2(30);
74358 l_entity_code                 VARCHAR2(30);
74359 l_event_class_code            VARCHAR2(30);
74360 l_ae_header_id                NUMBER;
74361 l_event_type_code             VARCHAR2(30);
74362 l_line_definition_code        VARCHAR2(30);
74363 l_line_definition_owner_code  VARCHAR2(1);
74364 --
74365 -- adr variables
74366 l_segment                     VARCHAR2(30);
74367 l_ccid                        NUMBER;
74368 l_adr_transaction_coa_id      NUMBER;
74369 l_adr_accounting_coa_id       NUMBER;
74370 l_adr_flexfield_segment_code  VARCHAR2(30);
74371 l_adr_flex_value_set_id       NUMBER;
74372 l_adr_value_type_code         VARCHAR2(30);
74373 l_adr_value_combination_id    NUMBER;
74374 l_adr_value_segment_code      VARCHAR2(30);
74375 
74376 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74377 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74378 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74379 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74380 
74381 -- 4262811 Variables ------------------------------------------------------------------------------------------
74382 l_entered_amt_idx             NUMBER;
74383 l_accted_amt_idx              NUMBER;
74384 l_acc_rev_flag                VARCHAR2(1);
74385 l_accrual_line_num            NUMBER;
74386 l_tmp_amt                     NUMBER;
74387 l_acc_rev_natural_side_code   VARCHAR2(1);
74388 
74389 l_num_entries                 NUMBER;
74390 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74391 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74392 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74393 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74394 l_recog_line_1                NUMBER;
74395 l_recog_line_2                NUMBER;
74396 
74397 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74398 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74399 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74400 
74404 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74401 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74402 
74403 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74405 
74406 ---------------------------------------------------------------------------------------------------------------
74407 
74408 
74409 --
74410 -- bulk performance
74411 --
74412 l_balance_type_code           VARCHAR2(1);
74413 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74414 l_log_module                  VARCHAR2(240);
74415 
74416 --
74417 -- Upgrade strategy
74418 --
74419 l_actual_upg_option           VARCHAR2(1);
74420 l_enc_upg_option           VARCHAR2(1);
74421 
74422 --
74423 BEGIN
74424 --
74425 IF g_log_enabled THEN
74426       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
74427 END IF;
74428 --
74429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74430 
74431       trace
74432          (p_msg      => 'BEGIN of AcctLineType_134'
74433          ,p_level    => C_LEVEL_PROCEDURE
74434          ,p_module   => l_log_module);
74435 
74436 END IF;
74437 --
74438 l_component_type             := 'AMB_JLT';
74439 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
74440 l_component_type_code        := 'S';
74441 l_component_appl_id          :=  200;
74442 l_amb_context_code           := 'DEFAULT';
74443 l_entity_code                := 'AP_PAYMENTS';
74444 l_event_class_code           := 'RECONCILED PAYMENTS';
74445 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
74446 l_line_definition_owner_code := 'S';
74447 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
74448 --
74449 l_balance_type_code          := 'A';
74450 l_segment                     := NULL;
74451 l_ccid                        := NULL;
74452 l_adr_transaction_coa_id      := NULL;
74453 l_adr_accounting_coa_id       := NULL;
74454 l_adr_flexfield_segment_code  := NULL;
74455 l_adr_flex_value_set_id       := NULL;
74456 l_adr_value_type_code         := NULL;
74457 l_adr_value_combination_id    := NULL;
74458 l_adr_value_segment_code      := NULL;
74459 
74460 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74461 l_bflow_class_code           := '';    -- 4219869 Business Flow
74462 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74463 l_budgetary_control_flag     := 'N';
74464 
74465 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74466 l_bflow_applied_to_amt       := NULL; -- 5132302
74467 l_entered_amt_idx            := NULL;          -- 4262811
74468 l_accted_amt_idx             := NULL;          -- 4262811
74469 l_acc_rev_flag               := NULL;          -- 4262811
74470 l_accrual_line_num           := NULL;          -- 4262811
74471 l_tmp_amt                    := NULL;          -- 4262811
74472 --
74473  
74474 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74475     l_balance_type_code <> 'B' THEN
74476 IF NVL(p_source_96,'
74477 ') =  'CLEAR_CLEAR' AND 
74478 NVL(p_source_33,'
74479 ') =  'ITEM' AND 
74480 NVL(p_source_160,'
74481 ') =  'INTEREST' AND 
74482 (NVL(p_source_97,'
74483 ') =  'CASH' OR 
74484 NVL(p_source_97,'
74485 ') =  'DISCOUNT') AND 
74486 NVL(p_source_122,'
74487 ') <>  'R'
74488  THEN 
74489 
74490    --
74491    XLA_AE_LINES_PKG.SetNewLine;
74492 
74493    p_balance_type_code          := l_balance_type_code;
74494    -- set the flag so later we will know whether the gain loss line needs to be created
74495    
74496    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74497      p_actual_flag :='A';
74498    END IF;
74499 
74500    --
74501    -- bulk performance
74502    --
74503    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74504                                       p_header_num   => 0); -- 4262811
74505    --
74506    -- set accounting line options
74507    --
74508    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74509            p_natural_side_code          => 'D'
74510          , p_gain_or_loss_flag          => 'N'
74511          , p_gl_transfer_mode_code      => 'S'
74512          , p_acct_entry_type_code       => 'A'
74513          , p_switch_side_flag           => 'Y'
74514          , p_merge_duplicate_code       => 'A'
74515          );
74516    --
74517    l_acc_rev_natural_side_code := 'C';  -- 4262811
74518    -- 
74519    --
74520    -- set accounting line type info
74521    --
74522    xla_ae_lines_pkg.SetAcctLineType
74523       (p_component_type             => l_component_type
74524       ,p_event_type_code            => l_event_type_code
74525       ,p_line_definition_owner_code => l_line_definition_owner_code
74526       ,p_line_definition_code       => l_line_definition_code
74527       ,p_accounting_line_code       => l_component_code
74528       ,p_accounting_line_type_code  => l_component_type_code
74529       ,p_accounting_line_appl_id    => l_component_appl_id
74530       ,p_amb_context_code           => l_amb_context_code
74531       ,p_entity_code                => l_entity_code
74532       ,p_event_class_code           => l_event_class_code);
74533    --
74534    -- set accounting class
74535    --
74536    xla_ae_lines_pkg.SetAcctClass(
74540 
74537            p_accounting_class_code  => 'INTEREST_EXPENSE'
74538          , p_ae_header_id           => l_ae_header_id
74539          );
74541    --
74542    -- set rounding class
74543    --
74544    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74545                       'INTEREST_EXPENSE';
74546 
74547    --
74548    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74549    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74550    --
74551    -- bulk performance
74552    --
74553    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74554 
74555    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74556       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74557 
74558    -- 4955764
74559    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74560       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74561 
74562    -- 4458381 Public Sector Enh
74563    
74564    --
74565    -- set accounting attributes for the line type
74566    --
74567    l_entered_amt_idx := 10;
74568    l_accted_amt_idx  := 15;
74569    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
74570    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74571    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
74572    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
74573    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
74574    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
74575    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
74576    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74577    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
74578    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
74579    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
74580    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
74581    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
74582    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74583    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
74584    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
74585    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
74586    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
74587    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
74588    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
74589    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
74590    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
74591    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
74592    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
74593    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
74594    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
74595    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
74596    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
74597    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
74598    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
74599    l_rec_acct_attrs.array_num_value(15)  := p_source_108;
74600    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
74601    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
74602    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
74603    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
74604    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
74605    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
74606    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
74607    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
74608    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
74609    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
74610    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
74611    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
74612    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
74613    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
74614    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
74615    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
74616    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
74617    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
74618 
74619    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74620    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74621 
74622    ---------------------------------------------------------------------------------------------------------------
74623    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74624    ---------------------------------------------------------------------------------------------------------------
74625    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74626 
74627    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74628    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74629 
74633    AND l_bflow_method_code = 'PRIOR_ENTRY'
74630    IF xla_accounting_cache_pkg.GetValueChar
74631          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74632          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74634 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74635    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74636          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74637        )
74638    THEN
74639          xla_ae_lines_pkg.BflowUpgEntry
74640            (p_business_method_code    => l_bflow_method_code
74641            ,p_business_class_code     => l_bflow_class_code
74642            ,p_balance_type            => l_balance_type_code);
74643    ELSE
74644       NULL;
74645 -- No business flow processing for business flow method of NONE.
74646    END IF;
74647 
74648    --
74649    -- call analytical criteria
74650    --
74651    
74652 
74653 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
74654 xla_ae_lines_pkg.SetAnalyticalCriteria(
74655    p_analytical_criterion_name    => 'Check Id'
74656  , p_analytical_criterion_owner   => 'S'
74657  , p_analytical_criterion_code    => 'CHECK_ID'
74658  , p_amb_context_code             => 'DEFAULT'
74659  , p_balancing_flag               => 'N'
74660  
74661  , p_analytical_detail_char_1    =>  NULL
74662  , p_analytical_detail_num_1     =>  p_source_112
74663  , p_analytical_detail_date_1    =>  NULL
74664 
74665  , p_ae_header_id                 => l_ae_header_id
74666 )
74667 ;
74668 --
74669 
74670    --
74671    -- call description
74672    --
74673    -- No description or it is inherited.
74674    --
74675    -- call ADRs
74676    -- Bug 4922099
74677    --
74678    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74679         (NVL(l_actual_upg_option, 'N') = 'O') OR
74680         (NVL(l_enc_upg_option, 'N') = 'O')
74681       )
74682    THEN
74683    NULL;
74684    --
74685    --
74686    
74687   l_ccid := AcctDerRule_32(
74688            p_application_id           => p_application_id
74689          , p_ae_header_id             => l_ae_header_id 
74690 , p_source_28 => p_source_28
74691 , p_source_29 => p_source_29
74692 , p_source_30 => p_source_30
74693          , x_transaction_coa_id       => l_adr_transaction_coa_id
74694          , x_accounting_coa_id        => l_adr_accounting_coa_id
74695          , x_value_type_code          => l_adr_value_type_code
74696          , p_side                     => 'NA'
74697    );
74698 
74699    xla_ae_lines_pkg.set_ccid(
74700     p_code_combination_id          => l_ccid
74701   , p_value_type_code              => l_adr_value_type_code
74702   , p_transaction_coa_id           => l_adr_transaction_coa_id
74703   , p_accounting_coa_id            => l_adr_accounting_coa_id
74704   , p_adr_code                     => 'AP_INTEREST'
74705   , p_adr_type_code                => 'S'
74706   , p_component_type               => l_component_type
74707   , p_component_code               => l_component_code
74708   , p_component_type_code          => l_component_type_code
74709   , p_component_appl_id            => l_component_appl_id
74710   , p_amb_context_code             => l_amb_context_code
74711   , p_side                         => 'NA'
74712   );
74713 
74714 
74715    l_segment := AcctDerRule_12(
74716            p_application_id           => p_application_id
74717          , p_ae_header_id             => l_ae_header_id 
74718 , p_source_28 => p_source_28
74719 , p_source_29 => p_source_29
74720          , x_transaction_coa_id       => l_adr_transaction_coa_id
74721          , x_accounting_coa_id        => l_adr_accounting_coa_id
74722          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74723          , x_flex_value_set_id        => l_adr_flex_value_set_id
74724          , x_value_type_code          => l_adr_value_type_code
74725          , x_value_combination_id     => l_adr_value_combination_id
74726          , x_value_segment_code       => l_adr_value_segment_code
74727          , p_side                     => 'NA'
74728          , p_override_seg_flag        => 'Y'
74729    );
74730 
74731    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74732 
74733       xla_ae_lines_pkg.set_segment(
74734           p_to_segment_code         => 'GL_ACCOUNT'
74735         , p_segment_value           => l_segment
74736         , p_from_segment_code       => l_adr_value_segment_code
74737         , p_from_combination_id     => l_adr_value_combination_id
74738         , p_value_type_code         => l_adr_value_type_code
74739         , p_transaction_coa_id      => l_adr_transaction_coa_id
74740         , p_accounting_coa_id       => l_adr_accounting_coa_id
74741         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74742         , p_flex_value_set_id       => l_adr_flex_value_set_id
74743         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
74744         , p_adr_type_code           => 'S'
74745         , p_component_type          => l_component_type
74746         , p_component_code          => l_component_code
74747         , p_component_type_code     => l_component_type_code
74748         , p_component_appl_id       => l_component_appl_id
74749         , p_amb_context_code        => l_amb_context_code
74750         , p_entity_code             => 'AP_PAYMENTS'
74751         , p_event_class_code        => 'RECONCILED PAYMENTS'
74752         , p_side                    => 'NA'
74753         );
74754 
74755   END IF;
74756 
74760    --
74757    --
74758    --
74759    END IF;
74761    -- Bug 4922099
74762    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74763           (NVL(l_enc_upg_option, 'N') = 'O')
74764         ) AND
74765         (l_bflow_method_code = 'PRIOR_ENTRY')
74766       )
74767    THEN
74768       IF
74769       --
74770       1 = 2
74771       --
74772       THEN
74773       xla_accounting_err_pkg.build_message
74774                                     (p_appli_s_name            => 'XLA'
74775                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74776                                     ,p_token_1                 => 'LINE_NUMBER'
74777                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74778                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74779                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74780                                                                              l_component_type
74781                                                                             ,l_component_code
74782                                                                             ,l_component_type_code
74783                                                                             ,l_component_appl_id
74784                                                                             ,l_amb_context_code
74785                                                                             ,l_entity_code
74786                                                                             ,l_event_class_code
74787                                                                            )
74788                                     ,p_token_3                 => 'OWNER'
74789                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74790                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74791                                                                           ,p_lookup_code    => l_component_type_code
74792                                                                          )
74793                                     ,p_token_4                 => 'PRODUCT_NAME'
74794                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74795                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74796                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74797                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74798                                     ,p_ae_header_id            =>  NULL
74799                                        );
74800 
74801         IF (C_LEVEL_ERROR>= g_log_level) THEN
74802                  trace
74803                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74804                       ,p_level    => C_LEVEL_ERROR
74805                       ,p_module   => l_log_module);
74806         END IF;
74807       END IF;
74808    END IF;
74809    --
74810    --
74811    ------------------------------------------------------------------------------------------------
74812    -- 4219869 Business Flow
74813    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74814    -- Prior Entry.  Currently, the following code is always generated.
74815    ------------------------------------------------------------------------------------------------
74816    XLA_AE_LINES_PKG.ValidateCurrentLine;
74817 
74818    ------------------------------------------------------------------------------------
74819    -- 4219869 Business Flow
74820    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74821    ------------------------------------------------------------------------------------
74822    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74823 
74824    ----------------------------------------------------------------------------------
74825    -- 4219869 Business Flow
74826    -- Update journal entry status -- Need to generate this within IF <condition>
74827    ----------------------------------------------------------------------------------
74828    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74829          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74830          ,p_balance_type_code => l_balance_type_code
74831          );
74832 
74833    -------------------------------------------------------------------------------------------
74834    -- 4262811 - Generate the Accrual Reversal lines
74835    -------------------------------------------------------------------------------------------
74836    BEGIN
74837       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74838                               (g_array_event(p_event_id).array_value_num('header_index'));
74839       IF l_acc_rev_flag IS NULL THEN
74840          l_acc_rev_flag := 'N';
74841       END IF;
74842    EXCEPTION
74843       WHEN OTHERS THEN
74844          l_acc_rev_flag := 'N';
74845    END;
74846    --
74847    IF (l_acc_rev_flag = 'Y') THEN
74848 
74849        -- 4645092  ------------------------------------------------------------------------------
74850        -- To allow MPA report to determine if it should generate report process
74851        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74855        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74852        ------------------------------------------------------------------------------------------
74853 
74854        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74856    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74857    -- call ADRs
74858    -- Bug 4922099
74859    --
74860    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74861         (NVL(l_actual_upg_option, 'N') = 'O') OR
74862         (NVL(l_enc_upg_option, 'N') = 'O')
74863       )
74864    THEN
74865    NULL;
74866    --
74867    --
74868    
74869   l_ccid := AcctDerRule_32(
74870            p_application_id           => p_application_id
74871          , p_ae_header_id             => l_ae_header_id 
74872 , p_source_28 => p_source_28
74873 , p_source_29 => p_source_29
74874 , p_source_30 => p_source_30
74875          , x_transaction_coa_id       => l_adr_transaction_coa_id
74876          , x_accounting_coa_id        => l_adr_accounting_coa_id
74877          , x_value_type_code          => l_adr_value_type_code
74878          , p_side                     => 'NA'
74879    );
74880 
74881    xla_ae_lines_pkg.set_ccid(
74882     p_code_combination_id          => l_ccid
74883   , p_value_type_code              => l_adr_value_type_code
74884   , p_transaction_coa_id           => l_adr_transaction_coa_id
74885   , p_accounting_coa_id            => l_adr_accounting_coa_id
74886   , p_adr_code                     => 'AP_INTEREST'
74887   , p_adr_type_code                => 'S'
74888   , p_component_type               => l_component_type
74889   , p_component_code               => l_component_code
74890   , p_component_type_code          => l_component_type_code
74891   , p_component_appl_id            => l_component_appl_id
74892   , p_amb_context_code             => l_amb_context_code
74893   , p_side                         => 'NA'
74894   );
74895 
74896 
74897    l_segment := AcctDerRule_12(
74898            p_application_id           => p_application_id
74899          , p_ae_header_id             => l_ae_header_id 
74900 , p_source_28 => p_source_28
74901 , p_source_29 => p_source_29
74902          , x_transaction_coa_id       => l_adr_transaction_coa_id
74903          , x_accounting_coa_id        => l_adr_accounting_coa_id
74904          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74905          , x_flex_value_set_id        => l_adr_flex_value_set_id
74906          , x_value_type_code          => l_adr_value_type_code
74907          , x_value_combination_id     => l_adr_value_combination_id
74908          , x_value_segment_code       => l_adr_value_segment_code
74909          , p_side                     => 'NA'
74910          , p_override_seg_flag        => 'Y'
74911    );
74912 
74913    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74914 
74915       xla_ae_lines_pkg.set_segment(
74916           p_to_segment_code         => 'GL_ACCOUNT'
74917         , p_segment_value           => l_segment
74918         , p_from_segment_code       => l_adr_value_segment_code
74919         , p_from_combination_id     => l_adr_value_combination_id
74920         , p_value_type_code         => l_adr_value_type_code
74921         , p_transaction_coa_id      => l_adr_transaction_coa_id
74922         , p_accounting_coa_id       => l_adr_accounting_coa_id
74923         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74924         , p_flex_value_set_id       => l_adr_flex_value_set_id
74925         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
74926         , p_adr_type_code           => 'S'
74927         , p_component_type          => l_component_type
74928         , p_component_code          => l_component_code
74929         , p_component_type_code     => l_component_type_code
74930         , p_component_appl_id       => l_component_appl_id
74931         , p_amb_context_code        => l_amb_context_code
74932         , p_entity_code             => 'AP_PAYMENTS'
74933         , p_event_class_code        => 'RECONCILED PAYMENTS'
74934         , p_side                    => 'NA'
74935         );
74936 
74937   END IF;
74938 
74939    --
74940    --
74941    END IF;
74942 
74943        --
74944        -- Update the line information that should be overwritten
74945        --
74946        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74947                                          p_header_num   => 1);
74948        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74949 
74950        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74951 
74952        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74953           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74954        END IF;
74955 
74956       --
74957       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74958       --
74959       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74960           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74961       ELSE
74962           ---------------------------------------------------------------------------------------------------
74963           -- 4262811a Switch Sign
74964           ---------------------------------------------------------------------------------------------------
74965           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74969                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74966           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74967                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74968           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74970           -- 5132302
74971           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74972                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74973 
74974       END IF;
74975 
74976       -- 4955764
74977       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74978       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74979 
74980 
74981       XLA_AE_LINES_PKG.ValidateCurrentLine;
74982       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74983 
74984       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74985                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74986                ,p_balance_type_code => l_balance_type_code);
74987 
74988    END IF;
74989 
74990    -----------------------------------------------------------------------------------------
74991    -- 4262811 Multiperiod Accounting
74992    -----------------------------------------------------------------------------------------
74993      -- No MPA option is assigned.
74994 
74995 
74996 END IF;
74997 END IF;
74998 --
74999 
75000 --
75001 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75002    trace
75003       (p_msg      => 'END of AcctLineType_134'
75004       ,p_level    => C_LEVEL_PROCEDURE
75005       ,p_module   => l_log_module);
75006 END IF;
75007 --
75008 EXCEPTION
75009   WHEN xla_exceptions_pkg.application_exception THEN
75010       RAISE;
75011   WHEN OTHERS THEN
75012        xla_exceptions_pkg.raise_message
75013            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_134');
75014 END AcctLineType_134;
75015 --
75016 
75017 ---------------------------------------
75018 --
75019 -- PRIVATE FUNCTION
75020 --         AcctLineType_135
75021 --
75022 ---------------------------------------
75023 PROCEDURE AcctLineType_135 (
75024   p_application_id        IN NUMBER
75025  ,p_event_id              IN NUMBER
75026  ,p_calculate_acctd_flag  IN VARCHAR2
75027  ,p_calculate_g_l_flag    IN VARCHAR2
75028  ,p_actual_flag           IN OUT VARCHAR2
75029  ,p_balance_type_code     OUT VARCHAR2
75030  ,p_gain_or_loss_ref      OUT VARCHAR2
75031  
75032 --Payment Currency Code
75033  , p_source_13            IN VARCHAR2
75034 --Interest Account
75035  , p_source_28            IN NUMBER
75036 --Prorate Interest Invoice Across Distributions Option
75037  , p_source_29            IN VARCHAR2
75038 --Invoice Distribution Account
75039  , p_source_30            IN NUMBER
75040 --Invoice Distribution Type
75041  , p_source_33            IN VARCHAR2
75042  , p_source_33_meaning    IN VARCHAR2
75043 --Accounting Reversal Indicator
75044  , p_source_52            IN VARCHAR2
75045 --Distribution Link Type
75046  , p_source_54            IN VARCHAR2
75047 --Override Accounted Amount Indicator
75048  , p_source_79            IN VARCHAR2
75049  , p_source_79_meaning    IN VARCHAR2
75050 --Third Party Type
75051  , p_source_82            IN VARCHAR2
75052 --Invoice Distribution Tax Line Identifier
75053  , p_source_85            IN NUMBER
75054 --Invoice Distribution Tax Distribution Identifier from Tax
75055  , p_source_86            IN NUMBER
75056 --Invoice Distribution Summary Tax Line Identifier
75057  , p_source_87            IN NUMBER
75058 --Business Flow Accounts Payable Application Identifier
75059  , p_source_90            IN NUMBER
75060 --Business Flow Invoice Distribution Type
75061  , p_source_91            IN VARCHAR2
75062 --Business Flow Invoice Entity Code
75063  , p_source_92            IN VARCHAR2
75064 --Business Flow Invoice Distribution Identifier
75065  , p_source_93            IN NUMBER
75066 --Business Flow Invoice Identifier
75067  , p_source_94            IN NUMBER
75068 --When to Account for Payment Option
75069  , p_source_96            IN VARCHAR2
75070 --Payment Distribution Type
75071  , p_source_97            IN VARCHAR2
75072  , p_source_97_meaning    IN VARCHAR2
75073 --Payment Distribution Amount
75074  , p_source_98            IN NUMBER
75075 --Payment Distribution Identifier
75076  , p_source_103            IN NUMBER
75077 --Payment Supplier Identifier
75078  , p_source_109            IN NUMBER
75079 --Payment Supplier Site Identifier
75080  , p_source_110            IN NUMBER
75081 --Payment Distribution Reversed Identifier
75082  , p_source_111            IN NUMBER
75083 --Payment Identifier
75084  , p_source_112            IN NUMBER
75085 --Payment Distribution (Payment Rate) Ledger Amount
75086  , p_source_115            IN NUMBER
75087 --Payment Exchange Date
75088  , p_source_117            IN DATE
75089 --Payment Exchange Rate
75090  , p_source_118            IN NUMBER
75091 --Payment Exchange Rate Type
75092  , p_source_119            IN VARCHAR2
75093 --Payment Processing Type
75094  , p_source_123            IN VARCHAR2
75095 --Invoice Distribution Amount of the Payment Distribution
75099  , p_source_160_meaning    IN VARCHAR2
75096  , p_source_124            IN NUMBER
75097 --Invoice Type Paid
75098  , p_source_160            IN VARCHAR2
75100 )
75101 IS
75102 
75103 l_component_type              VARCHAR2(80);
75104 l_component_code              VARCHAR2(30);
75105 l_component_type_code         VARCHAR2(1);
75106 l_component_appl_id           INTEGER;
75107 l_amb_context_code            VARCHAR2(30);
75108 l_entity_code                 VARCHAR2(30);
75109 l_event_class_code            VARCHAR2(30);
75110 l_ae_header_id                NUMBER;
75111 l_event_type_code             VARCHAR2(30);
75112 l_line_definition_code        VARCHAR2(30);
75113 l_line_definition_owner_code  VARCHAR2(1);
75114 --
75115 -- adr variables
75116 l_segment                     VARCHAR2(30);
75117 l_ccid                        NUMBER;
75118 l_adr_transaction_coa_id      NUMBER;
75119 l_adr_accounting_coa_id       NUMBER;
75120 l_adr_flexfield_segment_code  VARCHAR2(30);
75121 l_adr_flex_value_set_id       NUMBER;
75122 l_adr_value_type_code         VARCHAR2(30);
75123 l_adr_value_combination_id    NUMBER;
75124 l_adr_value_segment_code      VARCHAR2(30);
75125 
75126 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75127 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75128 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75129 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75130 
75131 -- 4262811 Variables ------------------------------------------------------------------------------------------
75132 l_entered_amt_idx             NUMBER;
75133 l_accted_amt_idx              NUMBER;
75134 l_acc_rev_flag                VARCHAR2(1);
75135 l_accrual_line_num            NUMBER;
75136 l_tmp_amt                     NUMBER;
75137 l_acc_rev_natural_side_code   VARCHAR2(1);
75138 
75139 l_num_entries                 NUMBER;
75140 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75141 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75142 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75143 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75144 l_recog_line_1                NUMBER;
75145 l_recog_line_2                NUMBER;
75146 
75147 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75148 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75149 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75150 
75151 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75152 
75153 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75154 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75155 
75156 ---------------------------------------------------------------------------------------------------------------
75157 
75158 
75159 --
75160 -- bulk performance
75161 --
75162 l_balance_type_code           VARCHAR2(1);
75163 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75164 l_log_module                  VARCHAR2(240);
75165 
75166 --
75167 -- Upgrade strategy
75168 --
75169 l_actual_upg_option           VARCHAR2(1);
75170 l_enc_upg_option           VARCHAR2(1);
75171 
75172 --
75173 BEGIN
75174 --
75175 IF g_log_enabled THEN
75176       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
75177 END IF;
75178 --
75179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75180 
75181       trace
75182          (p_msg      => 'BEGIN of AcctLineType_135'
75183          ,p_level    => C_LEVEL_PROCEDURE
75184          ,p_module   => l_log_module);
75185 
75186 END IF;
75187 --
75188 l_component_type             := 'AMB_JLT';
75189 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
75190 l_component_type_code        := 'S';
75191 l_component_appl_id          :=  200;
75192 l_amb_context_code           := 'DEFAULT';
75193 l_entity_code                := 'AP_PAYMENTS';
75194 l_event_class_code           := 'PAYMENTS';
75195 l_event_type_code            := 'PAYMENTS_ALL';
75196 l_line_definition_owner_code := 'S';
75197 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
75198 --
75199 l_balance_type_code          := 'A';
75200 l_segment                     := NULL;
75201 l_ccid                        := NULL;
75202 l_adr_transaction_coa_id      := NULL;
75203 l_adr_accounting_coa_id       := NULL;
75204 l_adr_flexfield_segment_code  := NULL;
75205 l_adr_flex_value_set_id       := NULL;
75206 l_adr_value_type_code         := NULL;
75207 l_adr_value_combination_id    := NULL;
75208 l_adr_value_segment_code      := NULL;
75209 
75210 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75211 l_bflow_class_code           := '';    -- 4219869 Business Flow
75212 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75213 l_budgetary_control_flag     := 'N';
75214 
75215 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75216 l_bflow_applied_to_amt       := NULL; -- 5132302
75217 l_entered_amt_idx            := NULL;          -- 4262811
75218 l_accted_amt_idx             := NULL;          -- 4262811
75219 l_acc_rev_flag               := NULL;          -- 4262811
75220 l_accrual_line_num           := NULL;          -- 4262811
75221 l_tmp_amt                    := NULL;          -- 4262811
75225     l_balance_type_code <> 'B' THEN
75222 --
75223  
75224 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75226 IF NVL(p_source_96,'
75227 ') <>  'CLEAR_CLEAR' AND 
75228 NVL(p_source_160,'
75229 ') =  'INTEREST' AND 
75230 NVL(p_source_33,'
75231 ') =  'ITEM' AND 
75232 (NVL(p_source_97,'
75233 ') =  'CASH' OR 
75234 NVL(p_source_97,'
75235 ') =  'DISCOUNT') AND 
75236 NVL(p_source_123,'
75237 ') <>  'PAYMENTCARD'
75238  THEN 
75239 
75240    --
75241    XLA_AE_LINES_PKG.SetNewLine;
75242 
75243    p_balance_type_code          := l_balance_type_code;
75244    -- set the flag so later we will know whether the gain loss line needs to be created
75245    
75246    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75247      p_actual_flag :='A';
75248    END IF;
75249 
75250    --
75251    -- bulk performance
75252    --
75253    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75254                                       p_header_num   => 0); -- 4262811
75255    --
75256    -- set accounting line options
75257    --
75258    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75259            p_natural_side_code          => 'D'
75260          , p_gain_or_loss_flag          => 'N'
75261          , p_gl_transfer_mode_code      => 'S'
75262          , p_acct_entry_type_code       => 'A'
75263          , p_switch_side_flag           => 'Y'
75264          , p_merge_duplicate_code       => 'A'
75265          );
75266    --
75267    l_acc_rev_natural_side_code := 'C';  -- 4262811
75268    -- 
75269    --
75270    -- set accounting line type info
75271    --
75272    xla_ae_lines_pkg.SetAcctLineType
75273       (p_component_type             => l_component_type
75274       ,p_event_type_code            => l_event_type_code
75275       ,p_line_definition_owner_code => l_line_definition_owner_code
75276       ,p_line_definition_code       => l_line_definition_code
75277       ,p_accounting_line_code       => l_component_code
75278       ,p_accounting_line_type_code  => l_component_type_code
75279       ,p_accounting_line_appl_id    => l_component_appl_id
75280       ,p_amb_context_code           => l_amb_context_code
75281       ,p_entity_code                => l_entity_code
75282       ,p_event_class_code           => l_event_class_code);
75283    --
75284    -- set accounting class
75285    --
75286    xla_ae_lines_pkg.SetAcctClass(
75287            p_accounting_class_code  => 'INTEREST_EXPENSE'
75288          , p_ae_header_id           => l_ae_header_id
75289          );
75290 
75291    --
75292    -- set rounding class
75293    --
75294    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75295                       'INTEREST_EXPENSE';
75296 
75297    --
75298    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75299    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75300    --
75301    -- bulk performance
75302    --
75303    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75304 
75305    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75306       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75307 
75308    -- 4955764
75309    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75311 
75312    -- 4458381 Public Sector Enh
75313    
75314    --
75315    -- set accounting attributes for the line type
75316    --
75317    l_entered_amt_idx := 10;
75318    l_accted_amt_idx  := 15;
75319    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
75320    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75321    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
75322    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
75323    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
75324    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
75325    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
75326    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75327    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
75328    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
75329    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
75330    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
75331    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
75332    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75333    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
75334    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
75335    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
75336    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
75337    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
75338    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
75339    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
75340    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
75341    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
75345    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
75342    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
75343    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
75344    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
75346    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
75347    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
75348    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
75349    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
75350    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
75351    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
75352    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
75353    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
75354    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
75355    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
75356    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
75357    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
75358    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
75359    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
75360    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
75361    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
75362    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
75363    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
75364    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
75365    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
75366    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
75367    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
75368 
75369    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75370    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75371 
75372    ---------------------------------------------------------------------------------------------------------------
75373    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75374    ---------------------------------------------------------------------------------------------------------------
75375    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75376 
75377    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75378    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75379 
75380    IF xla_accounting_cache_pkg.GetValueChar
75381          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75382          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75383    AND l_bflow_method_code = 'PRIOR_ENTRY'
75384 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75385    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75386          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75387        )
75388    THEN
75389          xla_ae_lines_pkg.BflowUpgEntry
75390            (p_business_method_code    => l_bflow_method_code
75391            ,p_business_class_code     => l_bflow_class_code
75392            ,p_balance_type            => l_balance_type_code);
75393    ELSE
75394       NULL;
75395 -- No business flow processing for business flow method of NONE.
75396    END IF;
75397 
75398    --
75399    -- call analytical criteria
75400    --
75401    
75402 
75403 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
75404 xla_ae_lines_pkg.SetAnalyticalCriteria(
75405    p_analytical_criterion_name    => 'Check Id'
75406  , p_analytical_criterion_owner   => 'S'
75407  , p_analytical_criterion_code    => 'CHECK_ID'
75408  , p_amb_context_code             => 'DEFAULT'
75409  , p_balancing_flag               => 'N'
75410  
75411  , p_analytical_detail_char_1    =>  NULL
75412  , p_analytical_detail_num_1     =>  p_source_112
75413  , p_analytical_detail_date_1    =>  NULL
75414 
75415  , p_ae_header_id                 => l_ae_header_id
75416 )
75417 ;
75418 --
75419 
75420    --
75421    -- call description
75422    --
75423    -- No description or it is inherited.
75424    --
75425    -- call ADRs
75426    -- Bug 4922099
75427    --
75428    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75429         (NVL(l_actual_upg_option, 'N') = 'O') OR
75430         (NVL(l_enc_upg_option, 'N') = 'O')
75431       )
75432    THEN
75433    NULL;
75434    --
75435    --
75436    
75437   l_ccid := AcctDerRule_32(
75438            p_application_id           => p_application_id
75439          , p_ae_header_id             => l_ae_header_id 
75440 , p_source_28 => p_source_28
75441 , p_source_29 => p_source_29
75442 , p_source_30 => p_source_30
75443          , x_transaction_coa_id       => l_adr_transaction_coa_id
75444          , x_accounting_coa_id        => l_adr_accounting_coa_id
75445          , x_value_type_code          => l_adr_value_type_code
75446          , p_side                     => 'NA'
75447    );
75448 
75449    xla_ae_lines_pkg.set_ccid(
75450     p_code_combination_id          => l_ccid
75451   , p_value_type_code              => l_adr_value_type_code
75452   , p_transaction_coa_id           => l_adr_transaction_coa_id
75453   , p_accounting_coa_id            => l_adr_accounting_coa_id
75454   , p_adr_code                     => 'AP_INTEREST'
75455   , p_adr_type_code                => 'S'
75459   , p_component_appl_id            => l_component_appl_id
75456   , p_component_type               => l_component_type
75457   , p_component_code               => l_component_code
75458   , p_component_type_code          => l_component_type_code
75460   , p_amb_context_code             => l_amb_context_code
75461   , p_side                         => 'NA'
75462   );
75463 
75464 
75465    l_segment := AcctDerRule_12(
75466            p_application_id           => p_application_id
75467          , p_ae_header_id             => l_ae_header_id 
75468 , p_source_28 => p_source_28
75469 , p_source_29 => p_source_29
75470          , x_transaction_coa_id       => l_adr_transaction_coa_id
75471          , x_accounting_coa_id        => l_adr_accounting_coa_id
75472          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75473          , x_flex_value_set_id        => l_adr_flex_value_set_id
75474          , x_value_type_code          => l_adr_value_type_code
75475          , x_value_combination_id     => l_adr_value_combination_id
75476          , x_value_segment_code       => l_adr_value_segment_code
75477          , p_side                     => 'NA'
75478          , p_override_seg_flag        => 'Y'
75479    );
75480 
75481    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75482 
75483       xla_ae_lines_pkg.set_segment(
75484           p_to_segment_code         => 'GL_ACCOUNT'
75485         , p_segment_value           => l_segment
75486         , p_from_segment_code       => l_adr_value_segment_code
75487         , p_from_combination_id     => l_adr_value_combination_id
75488         , p_value_type_code         => l_adr_value_type_code
75489         , p_transaction_coa_id      => l_adr_transaction_coa_id
75490         , p_accounting_coa_id       => l_adr_accounting_coa_id
75491         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75492         , p_flex_value_set_id       => l_adr_flex_value_set_id
75493         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75494         , p_adr_type_code           => 'S'
75495         , p_component_type          => l_component_type
75496         , p_component_code          => l_component_code
75497         , p_component_type_code     => l_component_type_code
75498         , p_component_appl_id       => l_component_appl_id
75499         , p_amb_context_code        => l_amb_context_code
75500         , p_entity_code             => 'AP_PAYMENTS'
75501         , p_event_class_code        => 'PAYMENTS'
75502         , p_side                    => 'NA'
75503         );
75504 
75505   END IF;
75506 
75507    --
75508    --
75509    END IF;
75510    --
75511    -- Bug 4922099
75512    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75513           (NVL(l_enc_upg_option, 'N') = 'O')
75514         ) AND
75515         (l_bflow_method_code = 'PRIOR_ENTRY')
75516       )
75517    THEN
75518       IF
75519       --
75520       1 = 2
75521       --
75522       THEN
75523       xla_accounting_err_pkg.build_message
75524                                     (p_appli_s_name            => 'XLA'
75525                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75526                                     ,p_token_1                 => 'LINE_NUMBER'
75527                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75528                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75529                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75530                                                                              l_component_type
75531                                                                             ,l_component_code
75532                                                                             ,l_component_type_code
75533                                                                             ,l_component_appl_id
75534                                                                             ,l_amb_context_code
75535                                                                             ,l_entity_code
75536                                                                             ,l_event_class_code
75537                                                                            )
75538                                     ,p_token_3                 => 'OWNER'
75539                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75540                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75541                                                                           ,p_lookup_code    => l_component_type_code
75542                                                                          )
75543                                     ,p_token_4                 => 'PRODUCT_NAME'
75544                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75545                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75546                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75547                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75548                                     ,p_ae_header_id            =>  NULL
75549                                        );
75550 
75551         IF (C_LEVEL_ERROR>= g_log_level) THEN
75552                  trace
75553                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75554                       ,p_level    => C_LEVEL_ERROR
75558    END IF;
75555                       ,p_module   => l_log_module);
75556         END IF;
75557       END IF;
75559    --
75560    --
75561    ------------------------------------------------------------------------------------------------
75562    -- 4219869 Business Flow
75563    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75564    -- Prior Entry.  Currently, the following code is always generated.
75565    ------------------------------------------------------------------------------------------------
75566    XLA_AE_LINES_PKG.ValidateCurrentLine;
75567 
75568    ------------------------------------------------------------------------------------
75569    -- 4219869 Business Flow
75570    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75571    ------------------------------------------------------------------------------------
75572    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75573 
75574    ----------------------------------------------------------------------------------
75575    -- 4219869 Business Flow
75576    -- Update journal entry status -- Need to generate this within IF <condition>
75577    ----------------------------------------------------------------------------------
75578    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75579          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75580          ,p_balance_type_code => l_balance_type_code
75581          );
75582 
75583    -------------------------------------------------------------------------------------------
75584    -- 4262811 - Generate the Accrual Reversal lines
75585    -------------------------------------------------------------------------------------------
75586    BEGIN
75587       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75588                               (g_array_event(p_event_id).array_value_num('header_index'));
75589       IF l_acc_rev_flag IS NULL THEN
75590          l_acc_rev_flag := 'N';
75591       END IF;
75592    EXCEPTION
75593       WHEN OTHERS THEN
75594          l_acc_rev_flag := 'N';
75595    END;
75596    --
75597    IF (l_acc_rev_flag = 'Y') THEN
75598 
75599        -- 4645092  ------------------------------------------------------------------------------
75600        -- To allow MPA report to determine if it should generate report process
75601        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75602        ------------------------------------------------------------------------------------------
75603 
75604        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75605        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75606    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75607    -- call ADRs
75608    -- Bug 4922099
75609    --
75610    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75611         (NVL(l_actual_upg_option, 'N') = 'O') OR
75612         (NVL(l_enc_upg_option, 'N') = 'O')
75613       )
75614    THEN
75615    NULL;
75616    --
75617    --
75618    
75619   l_ccid := AcctDerRule_32(
75620            p_application_id           => p_application_id
75621          , p_ae_header_id             => l_ae_header_id 
75622 , p_source_28 => p_source_28
75623 , p_source_29 => p_source_29
75624 , p_source_30 => p_source_30
75625          , x_transaction_coa_id       => l_adr_transaction_coa_id
75626          , x_accounting_coa_id        => l_adr_accounting_coa_id
75627          , x_value_type_code          => l_adr_value_type_code
75628          , p_side                     => 'NA'
75629    );
75630 
75631    xla_ae_lines_pkg.set_ccid(
75632     p_code_combination_id          => l_ccid
75633   , p_value_type_code              => l_adr_value_type_code
75634   , p_transaction_coa_id           => l_adr_transaction_coa_id
75635   , p_accounting_coa_id            => l_adr_accounting_coa_id
75636   , p_adr_code                     => 'AP_INTEREST'
75637   , p_adr_type_code                => 'S'
75638   , p_component_type               => l_component_type
75639   , p_component_code               => l_component_code
75640   , p_component_type_code          => l_component_type_code
75641   , p_component_appl_id            => l_component_appl_id
75642   , p_amb_context_code             => l_amb_context_code
75643   , p_side                         => 'NA'
75644   );
75645 
75646 
75647    l_segment := AcctDerRule_12(
75648            p_application_id           => p_application_id
75649          , p_ae_header_id             => l_ae_header_id 
75650 , p_source_28 => p_source_28
75651 , p_source_29 => p_source_29
75652          , x_transaction_coa_id       => l_adr_transaction_coa_id
75653          , x_accounting_coa_id        => l_adr_accounting_coa_id
75654          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75655          , x_flex_value_set_id        => l_adr_flex_value_set_id
75656          , x_value_type_code          => l_adr_value_type_code
75657          , x_value_combination_id     => l_adr_value_combination_id
75658          , x_value_segment_code       => l_adr_value_segment_code
75659          , p_side                     => 'NA'
75660          , p_override_seg_flag        => 'Y'
75661    );
75662 
75663    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75664 
75665       xla_ae_lines_pkg.set_segment(
75666           p_to_segment_code         => 'GL_ACCOUNT'
75667         , p_segment_value           => l_segment
75668         , p_from_segment_code       => l_adr_value_segment_code
75672         , p_accounting_coa_id       => l_adr_accounting_coa_id
75669         , p_from_combination_id     => l_adr_value_combination_id
75670         , p_value_type_code         => l_adr_value_type_code
75671         , p_transaction_coa_id      => l_adr_transaction_coa_id
75673         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75674         , p_flex_value_set_id       => l_adr_flex_value_set_id
75675         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75676         , p_adr_type_code           => 'S'
75677         , p_component_type          => l_component_type
75678         , p_component_code          => l_component_code
75679         , p_component_type_code     => l_component_type_code
75680         , p_component_appl_id       => l_component_appl_id
75681         , p_amb_context_code        => l_amb_context_code
75682         , p_entity_code             => 'AP_PAYMENTS'
75683         , p_event_class_code        => 'PAYMENTS'
75684         , p_side                    => 'NA'
75685         );
75686 
75687   END IF;
75688 
75689    --
75690    --
75691    END IF;
75692 
75693        --
75694        -- Update the line information that should be overwritten
75695        --
75696        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75697                                          p_header_num   => 1);
75698        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75699 
75700        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75701 
75702        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75703           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75704        END IF;
75705 
75706       --
75707       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75708       --
75709       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75710           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75711       ELSE
75712           ---------------------------------------------------------------------------------------------------
75713           -- 4262811a Switch Sign
75714           ---------------------------------------------------------------------------------------------------
75715           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75716           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75717                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75718           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75719                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75720           -- 5132302
75721           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75722                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75723 
75724       END IF;
75725 
75726       -- 4955764
75727       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75728       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75729 
75730 
75731       XLA_AE_LINES_PKG.ValidateCurrentLine;
75732       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75733 
75734       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75735                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75736                ,p_balance_type_code => l_balance_type_code);
75737 
75738    END IF;
75739 
75740    -----------------------------------------------------------------------------------------
75741    -- 4262811 Multiperiod Accounting
75742    -----------------------------------------------------------------------------------------
75743      -- No MPA option is assigned.
75744 
75745 
75746 END IF;
75747 END IF;
75748 --
75749 
75750 --
75751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75752    trace
75753       (p_msg      => 'END of AcctLineType_135'
75754       ,p_level    => C_LEVEL_PROCEDURE
75755       ,p_module   => l_log_module);
75756 END IF;
75757 --
75758 EXCEPTION
75759   WHEN xla_exceptions_pkg.application_exception THEN
75760       RAISE;
75761   WHEN OTHERS THEN
75762        xla_exceptions_pkg.raise_message
75763            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_135');
75764 END AcctLineType_135;
75765 --
75766 
75767 ---------------------------------------
75768 --
75769 -- PRIVATE FUNCTION
75770 --         AcctLineType_136
75771 --
75772 ---------------------------------------
75773 PROCEDURE AcctLineType_136 (
75774   p_application_id        IN NUMBER
75775  ,p_event_id              IN NUMBER
75776  ,p_calculate_acctd_flag  IN VARCHAR2
75777  ,p_calculate_g_l_flag    IN VARCHAR2
75778  ,p_actual_flag           IN OUT VARCHAR2
75779  ,p_balance_type_code     OUT VARCHAR2
75780  ,p_gain_or_loss_ref      OUT VARCHAR2
75781  
75782 --Invoice Distribution Description
75783  , p_source_1            IN VARCHAR2
75784 --Invoice Distribution Ledger Amount
75785  , p_source_21            IN NUMBER
75786 --Invoice Distribution Account
75787  , p_source_30            IN NUMBER
75791 --Accounting Reversal Indicator
75788 --Invoice Distribution Type
75789  , p_source_33            IN VARCHAR2
75790  , p_source_33_meaning    IN VARCHAR2
75792  , p_source_52            IN VARCHAR2
75793 --Distribution Link Type
75794  , p_source_54            IN VARCHAR2
75795 --Allocation to Main Distribution Identifier
75796  , p_source_56            IN NUMBER
75797 --Invoice Identifier
75798  , p_source_57            IN NUMBER
75799 --Invoice Distribution Identifier
75800  , p_source_63            IN NUMBER
75801 --Payables Encumbrance Upgrade Credit Account
75802  , p_source_64            IN NUMBER
75803 --Payables Encumbrance Upgrade Credit Amount
75804  , p_source_65            IN NUMBER
75805 --Invoice Currency Code
75806  , p_source_66            IN VARCHAR2
75807 --Payables Encumbrance Upgrade Credit Base Amount
75808  , p_source_67            IN NUMBER
75809 --Payables Encumbrance Upgrade Debit Account
75810  , p_source_68            IN NUMBER
75811 --Payables Encumbrance Upgrade Debit Amount
75812  , p_source_69            IN NUMBER
75813 --Payables Encumbrance Upgrade Debit Base Amount
75814  , p_source_70            IN NUMBER
75815 --Payables Encumbrance Upgrade Option
75816  , p_source_71            IN VARCHAR2
75817 --Invoice Distribution Amount
75818  , p_source_72            IN NUMBER
75819 --Deferred Accounting End Date
75820  , p_source_76            IN DATE
75821 --Deferred Accounting Option
75822  , p_source_77            IN VARCHAR2
75823 --Deferred Accounting Start Date
75824  , p_source_78            IN DATE
75825 --Override Accounted Amount Indicator
75826  , p_source_79            IN VARCHAR2
75827  , p_source_79_meaning    IN VARCHAR2
75828 --Invoice Supplier Identifier
75829  , p_source_80            IN NUMBER
75830 --Invoice Supplier Site Identifier
75831  , p_source_81            IN NUMBER
75832 --Third Party Type
75833  , p_source_82            IN VARCHAR2
75834 --Parent Reversal Identifier
75835  , p_source_83            IN NUMBER
75836 --Invoice Distribution Statistical Amount
75837  , p_source_84            IN NUMBER
75838 --Invoice Distribution Tax Line Identifier
75839  , p_source_85            IN NUMBER
75840 --Invoice Distribution Tax Distribution Identifier from Tax
75841  , p_source_86            IN NUMBER
75842 --Invoice Distribution Summary Tax Line Identifier
75843  , p_source_87            IN NUMBER
75844 --Payables Upgrade Credit Encumbrance Type Identifier
75845  , p_source_88            IN NUMBER
75846 --Payables Upgrade Debit Encumbrance Type Identifier
75847  , p_source_89            IN NUMBER
75848 --Business Flow Accounts Payable Application Identifier
75849  , p_source_90            IN NUMBER
75850 --Business Flow Invoice Distribution Type
75851  , p_source_91            IN VARCHAR2
75852 --Business Flow Invoice Entity Code
75853  , p_source_92            IN VARCHAR2
75854 --Business Flow Invoice Distribution Identifier
75855  , p_source_93            IN NUMBER
75856 --Business Flow Invoice Identifier
75857  , p_source_94            IN NUMBER
75858 --Accrue on Receipt Option
75859  , p_source_95            IN VARCHAR2
75860  , p_source_95_meaning    IN VARCHAR2
75861 --Invoice Exchange Date
75862  , p_source_136            IN DATE
75863 --Invoice Exchange Rate
75864  , p_source_137            IN NUMBER
75865 --Invoice Exchange Rate Type
75866  , p_source_138            IN VARCHAR2
75867 )
75868 IS
75869 
75870 l_component_type              VARCHAR2(80);
75871 l_component_code              VARCHAR2(30);
75872 l_component_type_code         VARCHAR2(1);
75873 l_component_appl_id           INTEGER;
75874 l_amb_context_code            VARCHAR2(30);
75875 l_entity_code                 VARCHAR2(30);
75876 l_event_class_code            VARCHAR2(30);
75877 l_ae_header_id                NUMBER;
75878 l_event_type_code             VARCHAR2(30);
75879 l_line_definition_code        VARCHAR2(30);
75880 l_line_definition_owner_code  VARCHAR2(1);
75881 --
75882 -- adr variables
75883 l_segment                     VARCHAR2(30);
75884 l_ccid                        NUMBER;
75885 l_adr_transaction_coa_id      NUMBER;
75886 l_adr_accounting_coa_id       NUMBER;
75887 l_adr_flexfield_segment_code  VARCHAR2(30);
75888 l_adr_flex_value_set_id       NUMBER;
75889 l_adr_value_type_code         VARCHAR2(30);
75890 l_adr_value_combination_id    NUMBER;
75891 l_adr_value_segment_code      VARCHAR2(30);
75892 
75893 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75894 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75895 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75896 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75897 
75898 -- 4262811 Variables ------------------------------------------------------------------------------------------
75899 l_entered_amt_idx             NUMBER;
75900 l_accted_amt_idx              NUMBER;
75901 l_acc_rev_flag                VARCHAR2(1);
75902 l_accrual_line_num            NUMBER;
75903 l_tmp_amt                     NUMBER;
75904 l_acc_rev_natural_side_code   VARCHAR2(1);
75905 
75906 l_num_entries                 NUMBER;
75907 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75908 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75909 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75910 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75914 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75911 l_recog_line_1                NUMBER;
75912 l_recog_line_2                NUMBER;
75913 
75915 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75916 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75917 
75918 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75919 
75920 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75921 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75922 
75923 ---------------------------------------------------------------------------------------------------------------
75924 
75925 
75926 --
75927 -- bulk performance
75928 --
75929 l_balance_type_code           VARCHAR2(1);
75930 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75931 l_log_module                  VARCHAR2(240);
75932 
75933 --
75934 -- Upgrade strategy
75935 --
75936 l_actual_upg_option           VARCHAR2(1);
75937 l_enc_upg_option           VARCHAR2(1);
75938 
75939 --
75940 BEGIN
75941 --
75942 IF g_log_enabled THEN
75943       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
75944 END IF;
75945 --
75946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75947 
75948       trace
75949          (p_msg      => 'BEGIN of AcctLineType_136'
75950          ,p_level    => C_LEVEL_PROCEDURE
75951          ,p_module   => l_log_module);
75952 
75953 END IF;
75954 --
75955 l_component_type             := 'AMB_JLT';
75956 l_component_code             := 'AP_INV_PRICE_VAR_CM';
75957 l_component_type_code        := 'S';
75958 l_component_appl_id          :=  200;
75959 l_amb_context_code           := 'DEFAULT';
75960 l_entity_code                := 'AP_INVOICES';
75961 l_event_class_code           := 'CREDIT MEMOS';
75962 l_event_type_code            := 'CREDIT MEMOS_ALL';
75963 l_line_definition_owner_code := 'S';
75964 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
75965 --
75966 l_balance_type_code          := 'A';
75967 l_segment                     := NULL;
75968 l_ccid                        := NULL;
75969 l_adr_transaction_coa_id      := NULL;
75970 l_adr_accounting_coa_id       := NULL;
75971 l_adr_flexfield_segment_code  := NULL;
75972 l_adr_flex_value_set_id       := NULL;
75973 l_adr_value_type_code         := NULL;
75974 l_adr_value_combination_id    := NULL;
75975 l_adr_value_segment_code      := NULL;
75976 
75977 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75978 l_bflow_class_code           := '';    -- 4219869 Business Flow
75979 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75980 l_budgetary_control_flag     := 'N';
75981 
75982 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75983 l_bflow_applied_to_amt       := NULL; -- 5132302
75984 l_entered_amt_idx            := NULL;          -- 4262811
75985 l_accted_amt_idx             := NULL;          -- 4262811
75986 l_acc_rev_flag               := NULL;          -- 4262811
75987 l_accrual_line_num           := NULL;          -- 4262811
75988 l_tmp_amt                    := NULL;          -- 4262811
75989 --
75990  
75991 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75992     l_balance_type_code <> 'B' THEN
75993 IF NVL(p_source_33,'
75994 ') =  'IPV' AND 
75995 NVL(p_source_95,'
75996 ') =  'Y'
75997  THEN 
75998 
75999    --
76000    XLA_AE_LINES_PKG.SetNewLine;
76001 
76002    p_balance_type_code          := l_balance_type_code;
76003    -- set the flag so later we will know whether the gain loss line needs to be created
76004    
76005    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76006      p_actual_flag :='A';
76007    END IF;
76008 
76009    --
76010    -- bulk performance
76011    --
76012    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76013                                       p_header_num   => 0); -- 4262811
76014    --
76015    -- set accounting line options
76016    --
76017    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76018            p_natural_side_code          => 'D'
76019          , p_gain_or_loss_flag          => 'N'
76020          , p_gl_transfer_mode_code      => 'S'
76021          , p_acct_entry_type_code       => 'A'
76022          , p_switch_side_flag           => 'Y'
76023          , p_merge_duplicate_code       => 'A'
76024          );
76025    --
76026    l_acc_rev_natural_side_code := 'C';  -- 4262811
76027    -- 
76028    --
76029    -- set accounting line type info
76030    --
76031    xla_ae_lines_pkg.SetAcctLineType
76032       (p_component_type             => l_component_type
76033       ,p_event_type_code            => l_event_type_code
76034       ,p_line_definition_owner_code => l_line_definition_owner_code
76035       ,p_line_definition_code       => l_line_definition_code
76036       ,p_accounting_line_code       => l_component_code
76037       ,p_accounting_line_type_code  => l_component_type_code
76038       ,p_accounting_line_appl_id    => l_component_appl_id
76039       ,p_amb_context_code           => l_amb_context_code
76040       ,p_entity_code                => l_entity_code
76041       ,p_event_class_code           => l_event_class_code);
76045    xla_ae_lines_pkg.SetAcctClass(
76042    --
76043    -- set accounting class
76044    --
76046            p_accounting_class_code  => 'IPV'
76047          , p_ae_header_id           => l_ae_header_id
76048          );
76049 
76050    --
76051    -- set rounding class
76052    --
76053    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76054                       'IPV';
76055 
76056    --
76057    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76058    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76059    --
76060    -- bulk performance
76061    --
76062    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76063 
76064    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76065       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76066 
76067    -- 4955764
76068    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76069       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76070 
76071    -- 4458381 Public Sector Enh
76072    
76073    --
76074    -- set accounting attributes for the line type
76075    --
76076    l_entered_amt_idx := 23;
76077    l_accted_amt_idx  := 28;
76078    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
76079    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76080    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
76081    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
76082    l_rec_acct_attrs.array_num_value(2)  := 
76083 xla_ae_sources_pkg.GetSystemSourceNum(
76084    p_source_code           => 'XLA_EVENT_APPL_ID'
76085  , p_source_type_code      => 'Y'
76086  , p_source_application_id =>  602
76087 );
76088    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
76089    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
76090    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
76091    l_rec_acct_attrs.array_char_value(4)  := 
76092 xla_ae_sources_pkg.GetSystemSourceChar(
76093    p_source_code           => 'XLA_ENTITY_CODE'
76094  , p_source_type_code      => 'Y'
76095  , p_source_application_id =>  602
76096 );
76097    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
76098    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
76099    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
76100    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
76101    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
76102    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
76103    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76104    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
76105    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
76106    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
76107    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
76108    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
76109    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76110    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
76111    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
76112    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
76113    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
76114    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
76115    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
76116    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
76117    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
76118    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
76119    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
76120    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
76121    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
76122    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
76123    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
76124    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
76125    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
76126    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
76127    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
76128    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
76129    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
76130    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
76131    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
76132    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
76133    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
76134    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
76135    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
76136    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
76137    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
76138    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
76139    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
76140    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
76141    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
76142    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
76143    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
76147    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
76144    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
76145    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
76146    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
76148    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
76149    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
76150    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
76151    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
76152    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
76153    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
76154    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
76155    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
76156    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
76157    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
76158    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
76159    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
76160    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
76161    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
76162    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
76163    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
76164    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
76165    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
76166    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
76167    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
76168    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
76169    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
76170    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
76171    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
76172    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
76173    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
76174    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
76175 
76176    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76177    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76178 
76179    ---------------------------------------------------------------------------------------------------------------
76180    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76181    ---------------------------------------------------------------------------------------------------------------
76182    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76183 
76184    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76185    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76186 
76187    IF xla_accounting_cache_pkg.GetValueChar
76188          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76189          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76190    AND l_bflow_method_code = 'PRIOR_ENTRY'
76191 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76192    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76193          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76194        )
76195    THEN
76196          xla_ae_lines_pkg.BflowUpgEntry
76197            (p_business_method_code    => l_bflow_method_code
76198            ,p_business_class_code     => l_bflow_class_code
76199            ,p_balance_type            => l_balance_type_code);
76200    ELSE
76201       NULL;
76202 -- No business flow processing for business flow method of NONE.
76203    END IF;
76204 
76205    --
76206    -- call analytical criteria
76207    --
76208    
76209    --
76210    -- call description
76211    --
76212    
76213 xla_ae_lines_pkg.SetLineDescription(
76214    p_ae_header_id => l_ae_header_id
76215   ,p_description  => Description_1 (
76216      p_application_id         => p_application_id
76217    , p_ae_header_id           => l_ae_header_id 
76218 , p_source_1 => p_source_1
76219    )
76220 );
76221 
76222 
76223    --
76224    -- call ADRs
76225    -- Bug 4922099
76226    --
76227    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76228         (NVL(l_actual_upg_option, 'N') = 'O') OR
76229         (NVL(l_enc_upg_option, 'N') = 'O')
76230       )
76231    THEN
76232    NULL;
76233    --
76234    --
76235    
76236   l_ccid := AcctDerRule_33(
76237            p_application_id           => p_application_id
76238          , p_ae_header_id             => l_ae_header_id 
76239 , p_source_30 => p_source_30
76240          , x_transaction_coa_id       => l_adr_transaction_coa_id
76241          , x_accounting_coa_id        => l_adr_accounting_coa_id
76242          , x_value_type_code          => l_adr_value_type_code
76243          , p_side                     => 'NA'
76244    );
76245 
76246    xla_ae_lines_pkg.set_ccid(
76247     p_code_combination_id          => l_ccid
76248   , p_value_type_code              => l_adr_value_type_code
76249   , p_transaction_coa_id           => l_adr_transaction_coa_id
76250   , p_accounting_coa_id            => l_adr_accounting_coa_id
76251   , p_adr_code                     => 'AP_INVOICE_DIST'
76252   , p_adr_type_code                => 'S'
76253   , p_component_type               => l_component_type
76257   , p_amb_context_code             => l_amb_context_code
76254   , p_component_code               => l_component_code
76255   , p_component_type_code          => l_component_type_code
76256   , p_component_appl_id            => l_component_appl_id
76258   , p_side                         => 'NA'
76259   );
76260 
76261 
76262    --
76263    --
76264    END IF;
76265    --
76266    -- Bug 4922099
76267    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76268           (NVL(l_enc_upg_option, 'N') = 'O')
76269         ) AND
76270         (l_bflow_method_code = 'PRIOR_ENTRY')
76271       )
76272    THEN
76273       IF
76274       --
76275       1 = 2
76276       --
76277       THEN
76278       xla_accounting_err_pkg.build_message
76279                                     (p_appli_s_name            => 'XLA'
76280                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76281                                     ,p_token_1                 => 'LINE_NUMBER'
76282                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76283                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76284                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76285                                                                              l_component_type
76286                                                                             ,l_component_code
76287                                                                             ,l_component_type_code
76288                                                                             ,l_component_appl_id
76289                                                                             ,l_amb_context_code
76290                                                                             ,l_entity_code
76291                                                                             ,l_event_class_code
76292                                                                            )
76293                                     ,p_token_3                 => 'OWNER'
76294                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76295                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76296                                                                           ,p_lookup_code    => l_component_type_code
76297                                                                          )
76298                                     ,p_token_4                 => 'PRODUCT_NAME'
76299                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76300                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76301                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76302                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76303                                     ,p_ae_header_id            =>  NULL
76304                                        );
76305 
76306         IF (C_LEVEL_ERROR>= g_log_level) THEN
76307                  trace
76308                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76309                       ,p_level    => C_LEVEL_ERROR
76310                       ,p_module   => l_log_module);
76311         END IF;
76312       END IF;
76313    END IF;
76314    --
76315    --
76316    ------------------------------------------------------------------------------------------------
76317    -- 4219869 Business Flow
76318    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76319    -- Prior Entry.  Currently, the following code is always generated.
76320    ------------------------------------------------------------------------------------------------
76321    XLA_AE_LINES_PKG.ValidateCurrentLine;
76322 
76323    ------------------------------------------------------------------------------------
76324    -- 4219869 Business Flow
76325    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76326    ------------------------------------------------------------------------------------
76327    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76328 
76329    ----------------------------------------------------------------------------------
76330    -- 4219869 Business Flow
76331    -- Update journal entry status -- Need to generate this within IF <condition>
76332    ----------------------------------------------------------------------------------
76333    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76334          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76335          ,p_balance_type_code => l_balance_type_code
76336          );
76337 
76338    -------------------------------------------------------------------------------------------
76339    -- 4262811 - Generate the Accrual Reversal lines
76340    -------------------------------------------------------------------------------------------
76341    BEGIN
76342       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76343                               (g_array_event(p_event_id).array_value_num('header_index'));
76344       IF l_acc_rev_flag IS NULL THEN
76345          l_acc_rev_flag := 'N';
76346       END IF;
76347    EXCEPTION
76348       WHEN OTHERS THEN
76349          l_acc_rev_flag := 'N';
76350    END;
76351    --
76352    IF (l_acc_rev_flag = 'Y') THEN
76353 
76357        ------------------------------------------------------------------------------------------
76354        -- 4645092  ------------------------------------------------------------------------------
76355        -- To allow MPA report to determine if it should generate report process
76356        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76358 
76359        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76360        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76361    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76362    -- call ADRs
76363    -- Bug 4922099
76364    --
76365    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76366         (NVL(l_actual_upg_option, 'N') = 'O') OR
76367         (NVL(l_enc_upg_option, 'N') = 'O')
76368       )
76369    THEN
76370    NULL;
76371    --
76372    --
76373    
76374   l_ccid := AcctDerRule_33(
76375            p_application_id           => p_application_id
76376          , p_ae_header_id             => l_ae_header_id 
76377 , p_source_30 => p_source_30
76378          , x_transaction_coa_id       => l_adr_transaction_coa_id
76379          , x_accounting_coa_id        => l_adr_accounting_coa_id
76380          , x_value_type_code          => l_adr_value_type_code
76381          , p_side                     => 'NA'
76382    );
76383 
76384    xla_ae_lines_pkg.set_ccid(
76385     p_code_combination_id          => l_ccid
76386   , p_value_type_code              => l_adr_value_type_code
76387   , p_transaction_coa_id           => l_adr_transaction_coa_id
76388   , p_accounting_coa_id            => l_adr_accounting_coa_id
76389   , p_adr_code                     => 'AP_INVOICE_DIST'
76390   , p_adr_type_code                => 'S'
76391   , p_component_type               => l_component_type
76392   , p_component_code               => l_component_code
76393   , p_component_type_code          => l_component_type_code
76394   , p_component_appl_id            => l_component_appl_id
76395   , p_amb_context_code             => l_amb_context_code
76396   , p_side                         => 'NA'
76397   );
76398 
76399 
76400    --
76401    --
76402    END IF;
76403 
76404        --
76405        -- Update the line information that should be overwritten
76406        --
76407        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76408                                          p_header_num   => 1);
76409        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76410 
76411        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76412 
76413        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76414           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76415        END IF;
76416 
76417       --
76418       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76419       --
76420       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76421           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76422       ELSE
76423           ---------------------------------------------------------------------------------------------------
76424           -- 4262811a Switch Sign
76425           ---------------------------------------------------------------------------------------------------
76426           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76427           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76428                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76429           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76430                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76431           -- 5132302
76432           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76433                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76434 
76435       END IF;
76436 
76437       -- 4955764
76438       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76439       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76440 
76441 
76442       XLA_AE_LINES_PKG.ValidateCurrentLine;
76443       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76444 
76445       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76446                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76447                ,p_balance_type_code => l_balance_type_code);
76448 
76449    END IF;
76450 
76451    -----------------------------------------------------------------------------------------
76452    -- 4262811 Multiperiod Accounting
76453    -----------------------------------------------------------------------------------------
76454      -- No MPA option is assigned.
76455 
76456 
76457 END IF;
76458 END IF;
76459 --
76460 
76461 --
76462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76463    trace
76464       (p_msg      => 'END of AcctLineType_136'
76465       ,p_level    => C_LEVEL_PROCEDURE
76469 EXCEPTION
76466       ,p_module   => l_log_module);
76467 END IF;
76468 --
76470   WHEN xla_exceptions_pkg.application_exception THEN
76471       RAISE;
76472   WHEN OTHERS THEN
76473        xla_exceptions_pkg.raise_message
76474            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_136');
76475 END AcctLineType_136;
76476 --
76477 
76478 ---------------------------------------
76479 --
76480 -- PRIVATE FUNCTION
76481 --         AcctLineType_137
76482 --
76483 ---------------------------------------
76484 PROCEDURE AcctLineType_137 (
76485   p_application_id        IN NUMBER
76486  ,p_event_id              IN NUMBER
76487  ,p_calculate_acctd_flag  IN VARCHAR2
76488  ,p_calculate_g_l_flag    IN VARCHAR2
76489  ,p_actual_flag           IN OUT VARCHAR2
76490  ,p_balance_type_code     OUT VARCHAR2
76491  ,p_gain_or_loss_ref      OUT VARCHAR2
76492  
76493 --Invoice Distribution Description
76494  , p_source_1            IN VARCHAR2
76495 --Invoice Distribution Ledger Amount
76496  , p_source_21            IN NUMBER
76497 --Invoice Distribution Account
76498  , p_source_30            IN NUMBER
76499 --Invoice Distribution Type
76500  , p_source_33            IN VARCHAR2
76501  , p_source_33_meaning    IN VARCHAR2
76502 --Accounting Reversal Indicator
76503  , p_source_52            IN VARCHAR2
76504 --Distribution Link Type
76505  , p_source_54            IN VARCHAR2
76506 --Allocation to Main Distribution Identifier
76507  , p_source_56            IN NUMBER
76508 --Invoice Identifier
76509  , p_source_57            IN NUMBER
76510 --Invoice Distribution Identifier
76511  , p_source_63            IN NUMBER
76512 --Payables Encumbrance Upgrade Credit Account
76513  , p_source_64            IN NUMBER
76514 --Payables Encumbrance Upgrade Credit Amount
76515  , p_source_65            IN NUMBER
76516 --Invoice Currency Code
76517  , p_source_66            IN VARCHAR2
76518 --Payables Encumbrance Upgrade Credit Base Amount
76519  , p_source_67            IN NUMBER
76520 --Payables Encumbrance Upgrade Debit Account
76521  , p_source_68            IN NUMBER
76522 --Payables Encumbrance Upgrade Debit Amount
76523  , p_source_69            IN NUMBER
76524 --Payables Encumbrance Upgrade Debit Base Amount
76525  , p_source_70            IN NUMBER
76526 --Payables Encumbrance Upgrade Option
76527  , p_source_71            IN VARCHAR2
76528 --Invoice Distribution Amount
76529  , p_source_72            IN NUMBER
76530 --Deferred Accounting End Date
76531  , p_source_76            IN DATE
76532 --Deferred Accounting Option
76533  , p_source_77            IN VARCHAR2
76534 --Deferred Accounting Start Date
76535  , p_source_78            IN DATE
76536 --Override Accounted Amount Indicator
76537  , p_source_79            IN VARCHAR2
76538  , p_source_79_meaning    IN VARCHAR2
76539 --Invoice Supplier Identifier
76540  , p_source_80            IN NUMBER
76541 --Invoice Supplier Site Identifier
76542  , p_source_81            IN NUMBER
76543 --Third Party Type
76544  , p_source_82            IN VARCHAR2
76545 --Parent Reversal Identifier
76546  , p_source_83            IN NUMBER
76547 --Invoice Distribution Tax Line Identifier
76548  , p_source_85            IN NUMBER
76549 --Invoice Distribution Tax Distribution Identifier from Tax
76550  , p_source_86            IN NUMBER
76551 --Invoice Distribution Summary Tax Line Identifier
76552  , p_source_87            IN NUMBER
76553 --Payables Upgrade Credit Encumbrance Type Identifier
76554  , p_source_88            IN NUMBER
76555 --Payables Upgrade Debit Encumbrance Type Identifier
76556  , p_source_89            IN NUMBER
76557 --Business Flow Accounts Payable Application Identifier
76558  , p_source_90            IN NUMBER
76559 --Business Flow Invoice Distribution Type
76560  , p_source_91            IN VARCHAR2
76561 --Business Flow Invoice Entity Code
76562  , p_source_92            IN VARCHAR2
76563 --Business Flow Invoice Distribution Identifier
76564  , p_source_93            IN NUMBER
76565 --Business Flow Invoice Identifier
76566  , p_source_94            IN NUMBER
76567 --Accrue on Receipt Option
76568  , p_source_95            IN VARCHAR2
76569  , p_source_95_meaning    IN VARCHAR2
76570 --Invoice Exchange Date
76571  , p_source_136            IN DATE
76572 --Invoice Exchange Rate
76573  , p_source_137            IN NUMBER
76574 --Invoice Exchange Rate Type
76575  , p_source_138            IN VARCHAR2
76576 )
76577 IS
76578 
76579 l_component_type              VARCHAR2(80);
76580 l_component_code              VARCHAR2(30);
76581 l_component_type_code         VARCHAR2(1);
76582 l_component_appl_id           INTEGER;
76583 l_amb_context_code            VARCHAR2(30);
76584 l_entity_code                 VARCHAR2(30);
76585 l_event_class_code            VARCHAR2(30);
76586 l_ae_header_id                NUMBER;
76587 l_event_type_code             VARCHAR2(30);
76588 l_line_definition_code        VARCHAR2(30);
76589 l_line_definition_owner_code  VARCHAR2(1);
76590 --
76591 -- adr variables
76592 l_segment                     VARCHAR2(30);
76593 l_ccid                        NUMBER;
76594 l_adr_transaction_coa_id      NUMBER;
76595 l_adr_accounting_coa_id       NUMBER;
76596 l_adr_flexfield_segment_code  VARCHAR2(30);
76597 l_adr_flex_value_set_id       NUMBER;
76598 l_adr_value_type_code         VARCHAR2(30);
76599 l_adr_value_combination_id    NUMBER;
76603 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76600 l_adr_value_segment_code      VARCHAR2(30);
76601 
76602 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76604 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76605 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76606 
76607 -- 4262811 Variables ------------------------------------------------------------------------------------------
76608 l_entered_amt_idx             NUMBER;
76609 l_accted_amt_idx              NUMBER;
76610 l_acc_rev_flag                VARCHAR2(1);
76611 l_accrual_line_num            NUMBER;
76612 l_tmp_amt                     NUMBER;
76613 l_acc_rev_natural_side_code   VARCHAR2(1);
76614 
76615 l_num_entries                 NUMBER;
76616 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76617 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76618 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76619 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76620 l_recog_line_1                NUMBER;
76621 l_recog_line_2                NUMBER;
76622 
76623 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76624 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76625 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76626 
76627 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76628 
76629 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76630 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76631 
76632 ---------------------------------------------------------------------------------------------------------------
76633 
76634 
76635 --
76636 -- bulk performance
76637 --
76638 l_balance_type_code           VARCHAR2(1);
76639 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76640 l_log_module                  VARCHAR2(240);
76641 
76642 --
76643 -- Upgrade strategy
76644 --
76645 l_actual_upg_option           VARCHAR2(1);
76646 l_enc_upg_option           VARCHAR2(1);
76647 
76648 --
76649 BEGIN
76650 --
76651 IF g_log_enabled THEN
76652       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
76653 END IF;
76654 --
76655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76656 
76657       trace
76658          (p_msg      => 'BEGIN of AcctLineType_137'
76659          ,p_level    => C_LEVEL_PROCEDURE
76660          ,p_module   => l_log_module);
76661 
76662 END IF;
76663 --
76664 l_component_type             := 'AMB_JLT';
76665 l_component_code             := 'AP_INV_PRICE_VAR_DM';
76666 l_component_type_code        := 'S';
76667 l_component_appl_id          :=  200;
76668 l_amb_context_code           := 'DEFAULT';
76669 l_entity_code                := 'AP_INVOICES';
76670 l_event_class_code           := 'DEBIT MEMOS';
76671 l_event_type_code            := 'DEBIT MEMOS_ALL';
76672 l_line_definition_owner_code := 'S';
76673 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
76674 --
76675 l_balance_type_code          := 'A';
76676 l_segment                     := NULL;
76677 l_ccid                        := NULL;
76678 l_adr_transaction_coa_id      := NULL;
76679 l_adr_accounting_coa_id       := NULL;
76680 l_adr_flexfield_segment_code  := NULL;
76681 l_adr_flex_value_set_id       := NULL;
76682 l_adr_value_type_code         := NULL;
76683 l_adr_value_combination_id    := NULL;
76684 l_adr_value_segment_code      := NULL;
76685 
76686 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76687 l_bflow_class_code           := '';    -- 4219869 Business Flow
76688 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76689 l_budgetary_control_flag     := 'N';
76690 
76691 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76692 l_bflow_applied_to_amt       := NULL; -- 5132302
76693 l_entered_amt_idx            := NULL;          -- 4262811
76694 l_accted_amt_idx             := NULL;          -- 4262811
76695 l_acc_rev_flag               := NULL;          -- 4262811
76696 l_accrual_line_num           := NULL;          -- 4262811
76697 l_tmp_amt                    := NULL;          -- 4262811
76698 --
76699  
76700 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76701     l_balance_type_code <> 'B' THEN
76702 IF NVL(p_source_33,'
76703 ') =  'IPV' AND 
76704 NVL(p_source_95,'
76705 ') =  'Y'
76706  THEN 
76707 
76708    --
76709    XLA_AE_LINES_PKG.SetNewLine;
76710 
76711    p_balance_type_code          := l_balance_type_code;
76712    -- set the flag so later we will know whether the gain loss line needs to be created
76713    
76714    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76715      p_actual_flag :='A';
76716    END IF;
76717 
76718    --
76719    -- bulk performance
76720    --
76721    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76722                                       p_header_num   => 0); -- 4262811
76723    --
76724    -- set accounting line options
76725    --
76726    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76727            p_natural_side_code          => 'D'
76728          , p_gain_or_loss_flag          => 'N'
76729          , p_gl_transfer_mode_code      => 'S'
76733          );
76730          , p_acct_entry_type_code       => 'A'
76731          , p_switch_side_flag           => 'Y'
76732          , p_merge_duplicate_code       => 'A'
76734    --
76735    l_acc_rev_natural_side_code := 'C';  -- 4262811
76736    -- 
76737    --
76738    -- set accounting line type info
76739    --
76740    xla_ae_lines_pkg.SetAcctLineType
76741       (p_component_type             => l_component_type
76742       ,p_event_type_code            => l_event_type_code
76743       ,p_line_definition_owner_code => l_line_definition_owner_code
76744       ,p_line_definition_code       => l_line_definition_code
76745       ,p_accounting_line_code       => l_component_code
76746       ,p_accounting_line_type_code  => l_component_type_code
76747       ,p_accounting_line_appl_id    => l_component_appl_id
76748       ,p_amb_context_code           => l_amb_context_code
76749       ,p_entity_code                => l_entity_code
76750       ,p_event_class_code           => l_event_class_code);
76751    --
76752    -- set accounting class
76753    --
76754    xla_ae_lines_pkg.SetAcctClass(
76755            p_accounting_class_code  => 'IPV'
76756          , p_ae_header_id           => l_ae_header_id
76757          );
76758 
76759    --
76760    -- set rounding class
76761    --
76762    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76763                       'IPV';
76764 
76765    --
76766    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76767    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76768    --
76769    -- bulk performance
76770    --
76771    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76772 
76773    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76774       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76775 
76776    -- 4955764
76777    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76778       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76779 
76780    -- 4458381 Public Sector Enh
76781    
76782    --
76783    -- set accounting attributes for the line type
76784    --
76785    l_entered_amt_idx := 23;
76786    l_accted_amt_idx  := 28;
76787    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
76788    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76789    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
76790    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
76791    l_rec_acct_attrs.array_num_value(2)  := 
76792 xla_ae_sources_pkg.GetSystemSourceNum(
76793    p_source_code           => 'XLA_EVENT_APPL_ID'
76794  , p_source_type_code      => 'Y'
76795  , p_source_application_id =>  602
76796 );
76797    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
76798    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
76799    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
76800    l_rec_acct_attrs.array_char_value(4)  := 
76801 xla_ae_sources_pkg.GetSystemSourceChar(
76802    p_source_code           => 'XLA_ENTITY_CODE'
76803  , p_source_type_code      => 'Y'
76804  , p_source_application_id =>  602
76805 );
76806    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
76807    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
76808    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
76809    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
76810    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
76811    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
76812    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76813    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
76814    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
76815    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
76816    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
76817    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
76818    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76819    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
76820    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
76821    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
76822    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
76823    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
76824    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
76825    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
76826    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
76827    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
76828    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
76829    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
76830    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
76831    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
76832    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
76833    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
76834    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
76835    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
76836    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
76840    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
76837    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
76838    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
76839    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
76841    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
76842    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
76843    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
76844    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
76845    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
76846    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
76847    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
76848    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
76849    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
76850    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
76851    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
76852    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
76853    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
76854    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
76855    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
76856    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
76857    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
76858    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
76859    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
76860    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
76861    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
76862    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
76863    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
76864    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
76865    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
76866    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
76867    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
76868    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
76869    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
76870    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
76871    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
76872    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
76873    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
76874    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
76875    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
76876    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
76877    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
76878    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
76879    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
76880    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
76881    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
76882 
76883    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76884    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76885 
76886    ---------------------------------------------------------------------------------------------------------------
76887    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76888    ---------------------------------------------------------------------------------------------------------------
76889    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76890 
76891    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76892    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76893 
76894    IF xla_accounting_cache_pkg.GetValueChar
76895          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76896          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76897    AND l_bflow_method_code = 'PRIOR_ENTRY'
76898 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76899    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76900          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76901        )
76902    THEN
76903          xla_ae_lines_pkg.BflowUpgEntry
76904            (p_business_method_code    => l_bflow_method_code
76905            ,p_business_class_code     => l_bflow_class_code
76906            ,p_balance_type            => l_balance_type_code);
76907    ELSE
76908       NULL;
76909 -- No business flow processing for business flow method of NONE.
76910    END IF;
76911 
76912    --
76913    -- call analytical criteria
76914    --
76915    
76916    --
76917    -- call description
76918    --
76919    
76920 xla_ae_lines_pkg.SetLineDescription(
76921    p_ae_header_id => l_ae_header_id
76922   ,p_description  => Description_1 (
76923      p_application_id         => p_application_id
76924    , p_ae_header_id           => l_ae_header_id 
76925 , p_source_1 => p_source_1
76926    )
76927 );
76928 
76929 
76930    --
76931    -- call ADRs
76932    -- Bug 4922099
76933    --
76934    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76935         (NVL(l_actual_upg_option, 'N') = 'O') OR
76936         (NVL(l_enc_upg_option, 'N') = 'O')
76937       )
76938    THEN
76939    NULL;
76940    --
76941    --
76942    
76943   l_ccid := AcctDerRule_33(
76947          , x_transaction_coa_id       => l_adr_transaction_coa_id
76944            p_application_id           => p_application_id
76945          , p_ae_header_id             => l_ae_header_id 
76946 , p_source_30 => p_source_30
76948          , x_accounting_coa_id        => l_adr_accounting_coa_id
76949          , x_value_type_code          => l_adr_value_type_code
76950          , p_side                     => 'NA'
76951    );
76952 
76953    xla_ae_lines_pkg.set_ccid(
76954     p_code_combination_id          => l_ccid
76955   , p_value_type_code              => l_adr_value_type_code
76956   , p_transaction_coa_id           => l_adr_transaction_coa_id
76957   , p_accounting_coa_id            => l_adr_accounting_coa_id
76958   , p_adr_code                     => 'AP_INVOICE_DIST'
76959   , p_adr_type_code                => 'S'
76960   , p_component_type               => l_component_type
76961   , p_component_code               => l_component_code
76962   , p_component_type_code          => l_component_type_code
76963   , p_component_appl_id            => l_component_appl_id
76964   , p_amb_context_code             => l_amb_context_code
76965   , p_side                         => 'NA'
76966   );
76967 
76968 
76969    --
76970    --
76971    END IF;
76972    --
76973    -- Bug 4922099
76974    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76975           (NVL(l_enc_upg_option, 'N') = 'O')
76976         ) AND
76977         (l_bflow_method_code = 'PRIOR_ENTRY')
76978       )
76979    THEN
76980       IF
76981       --
76982       1 = 2
76983       --
76984       THEN
76985       xla_accounting_err_pkg.build_message
76986                                     (p_appli_s_name            => 'XLA'
76987                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76988                                     ,p_token_1                 => 'LINE_NUMBER'
76989                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76990                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76991                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76992                                                                              l_component_type
76993                                                                             ,l_component_code
76994                                                                             ,l_component_type_code
76995                                                                             ,l_component_appl_id
76996                                                                             ,l_amb_context_code
76997                                                                             ,l_entity_code
76998                                                                             ,l_event_class_code
76999                                                                            )
77000                                     ,p_token_3                 => 'OWNER'
77001                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77002                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77003                                                                           ,p_lookup_code    => l_component_type_code
77004                                                                          )
77005                                     ,p_token_4                 => 'PRODUCT_NAME'
77006                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77007                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77008                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77009                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77010                                     ,p_ae_header_id            =>  NULL
77011                                        );
77012 
77013         IF (C_LEVEL_ERROR>= g_log_level) THEN
77014                  trace
77015                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77016                       ,p_level    => C_LEVEL_ERROR
77017                       ,p_module   => l_log_module);
77018         END IF;
77019       END IF;
77020    END IF;
77021    --
77022    --
77023    ------------------------------------------------------------------------------------------------
77024    -- 4219869 Business Flow
77025    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77026    -- Prior Entry.  Currently, the following code is always generated.
77027    ------------------------------------------------------------------------------------------------
77028    XLA_AE_LINES_PKG.ValidateCurrentLine;
77029 
77030    ------------------------------------------------------------------------------------
77031    -- 4219869 Business Flow
77032    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77033    ------------------------------------------------------------------------------------
77034    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77035 
77036    ----------------------------------------------------------------------------------
77037    -- 4219869 Business Flow
77038    -- Update journal entry status -- Need to generate this within IF <condition>
77039    ----------------------------------------------------------------------------------
77043          );
77040    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77041          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77042          ,p_balance_type_code => l_balance_type_code
77044 
77045    -------------------------------------------------------------------------------------------
77046    -- 4262811 - Generate the Accrual Reversal lines
77047    -------------------------------------------------------------------------------------------
77048    BEGIN
77049       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77050                               (g_array_event(p_event_id).array_value_num('header_index'));
77051       IF l_acc_rev_flag IS NULL THEN
77052          l_acc_rev_flag := 'N';
77053       END IF;
77054    EXCEPTION
77055       WHEN OTHERS THEN
77056          l_acc_rev_flag := 'N';
77057    END;
77058    --
77059    IF (l_acc_rev_flag = 'Y') THEN
77060 
77061        -- 4645092  ------------------------------------------------------------------------------
77062        -- To allow MPA report to determine if it should generate report process
77063        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77064        ------------------------------------------------------------------------------------------
77065 
77066        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77067        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77068    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77069    -- call ADRs
77070    -- Bug 4922099
77071    --
77072    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77073         (NVL(l_actual_upg_option, 'N') = 'O') OR
77074         (NVL(l_enc_upg_option, 'N') = 'O')
77075       )
77076    THEN
77077    NULL;
77078    --
77079    --
77080    
77081   l_ccid := AcctDerRule_33(
77082            p_application_id           => p_application_id
77083          , p_ae_header_id             => l_ae_header_id 
77084 , p_source_30 => p_source_30
77085          , x_transaction_coa_id       => l_adr_transaction_coa_id
77086          , x_accounting_coa_id        => l_adr_accounting_coa_id
77087          , x_value_type_code          => l_adr_value_type_code
77088          , p_side                     => 'NA'
77089    );
77090 
77091    xla_ae_lines_pkg.set_ccid(
77092     p_code_combination_id          => l_ccid
77093   , p_value_type_code              => l_adr_value_type_code
77094   , p_transaction_coa_id           => l_adr_transaction_coa_id
77095   , p_accounting_coa_id            => l_adr_accounting_coa_id
77096   , p_adr_code                     => 'AP_INVOICE_DIST'
77097   , p_adr_type_code                => 'S'
77098   , p_component_type               => l_component_type
77099   , p_component_code               => l_component_code
77100   , p_component_type_code          => l_component_type_code
77101   , p_component_appl_id            => l_component_appl_id
77102   , p_amb_context_code             => l_amb_context_code
77103   , p_side                         => 'NA'
77104   );
77105 
77106 
77107    --
77108    --
77109    END IF;
77110 
77111        --
77112        -- Update the line information that should be overwritten
77113        --
77114        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77115                                          p_header_num   => 1);
77116        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77117 
77118        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77119 
77120        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77121           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77122        END IF;
77123 
77124       --
77125       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77126       --
77127       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77128           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77129       ELSE
77130           ---------------------------------------------------------------------------------------------------
77131           -- 4262811a Switch Sign
77132           ---------------------------------------------------------------------------------------------------
77133           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77134           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77135                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77136           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77137                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77138           -- 5132302
77139           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77140                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77141 
77142       END IF;
77143 
77144       -- 4955764
77145       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77146       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77147 
77148 
77152       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77149       XLA_AE_LINES_PKG.ValidateCurrentLine;
77150       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77151 
77153                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77154                ,p_balance_type_code => l_balance_type_code);
77155 
77156    END IF;
77157 
77158    -----------------------------------------------------------------------------------------
77159    -- 4262811 Multiperiod Accounting
77160    -----------------------------------------------------------------------------------------
77161      -- No MPA option is assigned.
77162 
77163 
77164 END IF;
77165 END IF;
77166 --
77167 
77168 --
77169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77170    trace
77171       (p_msg      => 'END of AcctLineType_137'
77172       ,p_level    => C_LEVEL_PROCEDURE
77173       ,p_module   => l_log_module);
77174 END IF;
77175 --
77176 EXCEPTION
77177   WHEN xla_exceptions_pkg.application_exception THEN
77178       RAISE;
77179   WHEN OTHERS THEN
77180        xla_exceptions_pkg.raise_message
77181            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_137');
77182 END AcctLineType_137;
77183 --
77184 
77185 ---------------------------------------
77186 --
77187 -- PRIVATE FUNCTION
77188 --         AcctLineType_138
77189 --
77190 ---------------------------------------
77191 PROCEDURE AcctLineType_138 (
77192   p_application_id        IN NUMBER
77193  ,p_event_id              IN NUMBER
77194  ,p_calculate_acctd_flag  IN VARCHAR2
77195  ,p_calculate_g_l_flag    IN VARCHAR2
77196  ,p_actual_flag           IN OUT VARCHAR2
77197  ,p_balance_type_code     OUT VARCHAR2
77198  ,p_gain_or_loss_ref      OUT VARCHAR2
77199  
77200 --Invoice Distribution Description
77201  , p_source_1            IN VARCHAR2
77202 --Invoice Distribution Ledger Amount
77203  , p_source_21            IN NUMBER
77204 --Invoice Distribution Account
77205  , p_source_30            IN NUMBER
77206 --Invoice Distribution Type
77207  , p_source_33            IN VARCHAR2
77208  , p_source_33_meaning    IN VARCHAR2
77209 --Accounting Reversal Indicator
77210  , p_source_52            IN VARCHAR2
77211 --Distribution Link Type
77212  , p_source_54            IN VARCHAR2
77213 --Allocation to Main Distribution Identifier
77214  , p_source_56            IN NUMBER
77215 --Invoice Identifier
77216  , p_source_57            IN NUMBER
77217 --Invoice Distribution Identifier
77218  , p_source_63            IN NUMBER
77219 --Payables Encumbrance Upgrade Credit Account
77220  , p_source_64            IN NUMBER
77221 --Payables Encumbrance Upgrade Credit Amount
77222  , p_source_65            IN NUMBER
77223 --Invoice Currency Code
77224  , p_source_66            IN VARCHAR2
77225 --Payables Encumbrance Upgrade Credit Base Amount
77226  , p_source_67            IN NUMBER
77227 --Payables Encumbrance Upgrade Debit Account
77228  , p_source_68            IN NUMBER
77229 --Payables Encumbrance Upgrade Debit Amount
77230  , p_source_69            IN NUMBER
77231 --Payables Encumbrance Upgrade Debit Base Amount
77232  , p_source_70            IN NUMBER
77233 --Payables Encumbrance Upgrade Option
77234  , p_source_71            IN VARCHAR2
77235 --Invoice Distribution Amount
77236  , p_source_72            IN NUMBER
77237 --Deferred Accounting End Date
77238  , p_source_76            IN DATE
77239 --Deferred Accounting Option
77240  , p_source_77            IN VARCHAR2
77241 --Deferred Accounting Start Date
77242  , p_source_78            IN DATE
77243 --Override Accounted Amount Indicator
77244  , p_source_79            IN VARCHAR2
77245  , p_source_79_meaning    IN VARCHAR2
77246 --Invoice Supplier Identifier
77247  , p_source_80            IN NUMBER
77248 --Invoice Supplier Site Identifier
77249  , p_source_81            IN NUMBER
77250 --Third Party Type
77251  , p_source_82            IN VARCHAR2
77252 --Parent Reversal Identifier
77253  , p_source_83            IN NUMBER
77254 --Invoice Distribution Statistical Amount
77255  , p_source_84            IN NUMBER
77256 --Invoice Distribution Tax Line Identifier
77257  , p_source_85            IN NUMBER
77258 --Invoice Distribution Tax Distribution Identifier from Tax
77259  , p_source_86            IN NUMBER
77260 --Invoice Distribution Summary Tax Line Identifier
77261  , p_source_87            IN NUMBER
77262 --Payables Upgrade Credit Encumbrance Type Identifier
77263  , p_source_88            IN NUMBER
77264 --Payables Upgrade Debit Encumbrance Type Identifier
77265  , p_source_89            IN NUMBER
77266 --Business Flow Accounts Payable Application Identifier
77267  , p_source_90            IN NUMBER
77268 --Business Flow Invoice Distribution Type
77269  , p_source_91            IN VARCHAR2
77270 --Business Flow Invoice Entity Code
77271  , p_source_92            IN VARCHAR2
77272 --Business Flow Invoice Distribution Identifier
77273  , p_source_93            IN NUMBER
77274 --Business Flow Invoice Identifier
77275  , p_source_94            IN NUMBER
77276 --Accrue on Receipt Option
77277  , p_source_95            IN VARCHAR2
77278  , p_source_95_meaning    IN VARCHAR2
77279 --Invoice Exchange Date
77280  , p_source_136            IN DATE
77281 --Invoice Exchange Rate
77282  , p_source_137            IN NUMBER
77283 --Invoice Exchange Rate Type
77284  , p_source_138            IN VARCHAR2
77285 )
77286 IS
77287 
77288 l_component_type              VARCHAR2(80);
77292 l_amb_context_code            VARCHAR2(30);
77289 l_component_code              VARCHAR2(30);
77290 l_component_type_code         VARCHAR2(1);
77291 l_component_appl_id           INTEGER;
77293 l_entity_code                 VARCHAR2(30);
77294 l_event_class_code            VARCHAR2(30);
77295 l_ae_header_id                NUMBER;
77296 l_event_type_code             VARCHAR2(30);
77297 l_line_definition_code        VARCHAR2(30);
77298 l_line_definition_owner_code  VARCHAR2(1);
77299 --
77300 -- adr variables
77301 l_segment                     VARCHAR2(30);
77302 l_ccid                        NUMBER;
77303 l_adr_transaction_coa_id      NUMBER;
77304 l_adr_accounting_coa_id       NUMBER;
77305 l_adr_flexfield_segment_code  VARCHAR2(30);
77306 l_adr_flex_value_set_id       NUMBER;
77307 l_adr_value_type_code         VARCHAR2(30);
77308 l_adr_value_combination_id    NUMBER;
77309 l_adr_value_segment_code      VARCHAR2(30);
77310 
77311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77315 
77316 -- 4262811 Variables ------------------------------------------------------------------------------------------
77317 l_entered_amt_idx             NUMBER;
77318 l_accted_amt_idx              NUMBER;
77319 l_acc_rev_flag                VARCHAR2(1);
77320 l_accrual_line_num            NUMBER;
77321 l_tmp_amt                     NUMBER;
77322 l_acc_rev_natural_side_code   VARCHAR2(1);
77323 
77324 l_num_entries                 NUMBER;
77325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77329 l_recog_line_1                NUMBER;
77330 l_recog_line_2                NUMBER;
77331 
77332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77335 
77336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77337 
77338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77340 
77341 ---------------------------------------------------------------------------------------------------------------
77342 
77343 
77344 --
77345 -- bulk performance
77346 --
77347 l_balance_type_code           VARCHAR2(1);
77348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77349 l_log_module                  VARCHAR2(240);
77350 
77351 --
77352 -- Upgrade strategy
77353 --
77354 l_actual_upg_option           VARCHAR2(1);
77355 l_enc_upg_option           VARCHAR2(1);
77356 
77357 --
77358 BEGIN
77359 --
77360 IF g_log_enabled THEN
77361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
77362 END IF;
77363 --
77364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77365 
77366       trace
77367          (p_msg      => 'BEGIN of AcctLineType_138'
77368          ,p_level    => C_LEVEL_PROCEDURE
77369          ,p_module   => l_log_module);
77370 
77371 END IF;
77372 --
77373 l_component_type             := 'AMB_JLT';
77374 l_component_code             := 'AP_INV_PRICE_VAR_INV';
77375 l_component_type_code        := 'S';
77376 l_component_appl_id          :=  200;
77377 l_amb_context_code           := 'DEFAULT';
77378 l_entity_code                := 'AP_INVOICES';
77379 l_event_class_code           := 'INVOICES';
77380 l_event_type_code            := 'INVOICES_ALL';
77381 l_line_definition_owner_code := 'S';
77382 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
77383 --
77384 l_balance_type_code          := 'A';
77385 l_segment                     := NULL;
77386 l_ccid                        := NULL;
77387 l_adr_transaction_coa_id      := NULL;
77388 l_adr_accounting_coa_id       := NULL;
77389 l_adr_flexfield_segment_code  := NULL;
77390 l_adr_flex_value_set_id       := NULL;
77391 l_adr_value_type_code         := NULL;
77392 l_adr_value_combination_id    := NULL;
77393 l_adr_value_segment_code      := NULL;
77394 
77395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77396 l_bflow_class_code           := '';    -- 4219869 Business Flow
77397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77398 l_budgetary_control_flag     := 'N';
77399 
77400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77401 l_bflow_applied_to_amt       := NULL; -- 5132302
77402 l_entered_amt_idx            := NULL;          -- 4262811
77403 l_accted_amt_idx             := NULL;          -- 4262811
77404 l_acc_rev_flag               := NULL;          -- 4262811
77405 l_accrual_line_num           := NULL;          -- 4262811
77406 l_tmp_amt                    := NULL;          -- 4262811
77407 --
77408  
77409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77410     l_balance_type_code <> 'B' THEN
77411 IF NVL(p_source_33,'
77412 ') =  'IPV' AND 
77413 NVL(p_source_95,'
77414 ') =  'Y'
77415  THEN 
77416 
77417    --
77421    -- set the flag so later we will know whether the gain loss line needs to be created
77418    XLA_AE_LINES_PKG.SetNewLine;
77419 
77420    p_balance_type_code          := l_balance_type_code;
77422    
77423    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77424      p_actual_flag :='A';
77425    END IF;
77426 
77427    --
77428    -- bulk performance
77429    --
77430    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77431                                       p_header_num   => 0); -- 4262811
77432    --
77433    -- set accounting line options
77434    --
77435    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77436            p_natural_side_code          => 'D'
77437          , p_gain_or_loss_flag          => 'N'
77438          , p_gl_transfer_mode_code      => 'S'
77439          , p_acct_entry_type_code       => 'A'
77440          , p_switch_side_flag           => 'Y'
77441          , p_merge_duplicate_code       => 'A'
77442          );
77443    --
77444    l_acc_rev_natural_side_code := 'C';  -- 4262811
77445    -- 
77446    --
77447    -- set accounting line type info
77448    --
77449    xla_ae_lines_pkg.SetAcctLineType
77450       (p_component_type             => l_component_type
77451       ,p_event_type_code            => l_event_type_code
77452       ,p_line_definition_owner_code => l_line_definition_owner_code
77453       ,p_line_definition_code       => l_line_definition_code
77454       ,p_accounting_line_code       => l_component_code
77455       ,p_accounting_line_type_code  => l_component_type_code
77456       ,p_accounting_line_appl_id    => l_component_appl_id
77457       ,p_amb_context_code           => l_amb_context_code
77458       ,p_entity_code                => l_entity_code
77459       ,p_event_class_code           => l_event_class_code);
77460    --
77461    -- set accounting class
77462    --
77463    xla_ae_lines_pkg.SetAcctClass(
77464            p_accounting_class_code  => 'IPV'
77465          , p_ae_header_id           => l_ae_header_id
77466          );
77467 
77468    --
77469    -- set rounding class
77470    --
77471    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77472                       'IPV';
77473 
77474    --
77475    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77476    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77477    --
77478    -- bulk performance
77479    --
77480    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77481 
77482    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77483       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77484 
77485    -- 4955764
77486    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77487       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77488 
77489    -- 4458381 Public Sector Enh
77490    
77491    --
77492    -- set accounting attributes for the line type
77493    --
77494    l_entered_amt_idx := 24;
77495    l_accted_amt_idx  := 29;
77496    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
77497    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77498    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
77499    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
77500    l_rec_acct_attrs.array_num_value(2)  := 
77501 xla_ae_sources_pkg.GetSystemSourceNum(
77502    p_source_code           => 'XLA_EVENT_APPL_ID'
77503  , p_source_type_code      => 'Y'
77504  , p_source_application_id =>  602
77505 );
77506    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
77507    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
77508    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
77509    l_rec_acct_attrs.array_char_value(4)  := 
77510 xla_ae_sources_pkg.GetSystemSourceChar(
77511    p_source_code           => 'XLA_ENTITY_CODE'
77512  , p_source_type_code      => 'Y'
77513  , p_source_application_id =>  602
77514 );
77515    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
77516    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
77517    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
77518    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
77519    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
77520    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
77521    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
77522    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
77523    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77524    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
77525    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
77526    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
77527    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
77528    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
77529    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77530    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
77531    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
77535    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
77532    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
77533    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
77534    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
77536    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
77537    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
77538    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
77539    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
77540    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
77541    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
77542    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
77543    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
77544    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
77545    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
77546    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
77547    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
77548    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
77549    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
77550    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
77551    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
77552    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
77553    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
77554    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
77555    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
77556    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
77557    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
77558    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
77559    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
77560    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
77561    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
77562    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
77563    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
77564    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
77565    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
77566    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
77567    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
77568    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
77569    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
77570    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
77571    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
77572    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
77573    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
77574    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
77575    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
77576    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
77577    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
77578    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
77579    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
77580    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
77581    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
77582    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
77583    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
77584    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
77585    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
77586    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
77587    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
77588    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
77589    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
77590    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
77591    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
77592    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
77593    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
77594    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
77595 
77596    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77597    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77598 
77599    ---------------------------------------------------------------------------------------------------------------
77600    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77601    ---------------------------------------------------------------------------------------------------------------
77602    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77603 
77604    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77605    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77606 
77607    IF xla_accounting_cache_pkg.GetValueChar
77608          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77609          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77610    AND l_bflow_method_code = 'PRIOR_ENTRY'
77611 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77612    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77613          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77614        )
77615    THEN
77616          xla_ae_lines_pkg.BflowUpgEntry
77620    ELSE
77617            (p_business_method_code    => l_bflow_method_code
77618            ,p_business_class_code     => l_bflow_class_code
77619            ,p_balance_type            => l_balance_type_code);
77621       NULL;
77622 -- No business flow processing for business flow method of NONE.
77623    END IF;
77624 
77625    --
77626    -- call analytical criteria
77627    --
77628    
77629    --
77630    -- call description
77631    --
77632    
77633 xla_ae_lines_pkg.SetLineDescription(
77634    p_ae_header_id => l_ae_header_id
77635   ,p_description  => Description_1 (
77636      p_application_id         => p_application_id
77637    , p_ae_header_id           => l_ae_header_id 
77638 , p_source_1 => p_source_1
77639    )
77640 );
77641 
77642 
77643    --
77644    -- call ADRs
77645    -- Bug 4922099
77646    --
77647    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77648         (NVL(l_actual_upg_option, 'N') = 'O') OR
77649         (NVL(l_enc_upg_option, 'N') = 'O')
77650       )
77651    THEN
77652    NULL;
77653    --
77654    --
77655    
77656   l_ccid := AcctDerRule_33(
77657            p_application_id           => p_application_id
77658          , p_ae_header_id             => l_ae_header_id 
77659 , p_source_30 => p_source_30
77660          , x_transaction_coa_id       => l_adr_transaction_coa_id
77661          , x_accounting_coa_id        => l_adr_accounting_coa_id
77662          , x_value_type_code          => l_adr_value_type_code
77663          , p_side                     => 'NA'
77664    );
77665 
77666    xla_ae_lines_pkg.set_ccid(
77667     p_code_combination_id          => l_ccid
77668   , p_value_type_code              => l_adr_value_type_code
77669   , p_transaction_coa_id           => l_adr_transaction_coa_id
77670   , p_accounting_coa_id            => l_adr_accounting_coa_id
77671   , p_adr_code                     => 'AP_INVOICE_DIST'
77672   , p_adr_type_code                => 'S'
77673   , p_component_type               => l_component_type
77674   , p_component_code               => l_component_code
77675   , p_component_type_code          => l_component_type_code
77676   , p_component_appl_id            => l_component_appl_id
77677   , p_amb_context_code             => l_amb_context_code
77678   , p_side                         => 'NA'
77679   );
77680 
77681 
77682    --
77683    --
77684    END IF;
77685    --
77686    -- Bug 4922099
77687    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77688           (NVL(l_enc_upg_option, 'N') = 'O')
77689         ) AND
77690         (l_bflow_method_code = 'PRIOR_ENTRY')
77691       )
77692    THEN
77693       IF
77694       --
77695       1 = 2
77696       --
77697       THEN
77698       xla_accounting_err_pkg.build_message
77699                                     (p_appli_s_name            => 'XLA'
77700                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77701                                     ,p_token_1                 => 'LINE_NUMBER'
77702                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77703                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77704                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77705                                                                              l_component_type
77706                                                                             ,l_component_code
77707                                                                             ,l_component_type_code
77708                                                                             ,l_component_appl_id
77709                                                                             ,l_amb_context_code
77710                                                                             ,l_entity_code
77711                                                                             ,l_event_class_code
77712                                                                            )
77713                                     ,p_token_3                 => 'OWNER'
77714                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77715                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77716                                                                           ,p_lookup_code    => l_component_type_code
77717                                                                          )
77718                                     ,p_token_4                 => 'PRODUCT_NAME'
77719                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77720                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77721                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77722                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77723                                     ,p_ae_header_id            =>  NULL
77724                                        );
77725 
77726         IF (C_LEVEL_ERROR>= g_log_level) THEN
77727                  trace
77728                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77729                       ,p_level    => C_LEVEL_ERROR
77730                       ,p_module   => l_log_module);
77731         END IF;
77735    --
77732       END IF;
77733    END IF;
77734    --
77736    ------------------------------------------------------------------------------------------------
77737    -- 4219869 Business Flow
77738    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77739    -- Prior Entry.  Currently, the following code is always generated.
77740    ------------------------------------------------------------------------------------------------
77741    XLA_AE_LINES_PKG.ValidateCurrentLine;
77742 
77743    ------------------------------------------------------------------------------------
77744    -- 4219869 Business Flow
77745    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77746    ------------------------------------------------------------------------------------
77747    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77748 
77749    ----------------------------------------------------------------------------------
77750    -- 4219869 Business Flow
77751    -- Update journal entry status -- Need to generate this within IF <condition>
77752    ----------------------------------------------------------------------------------
77753    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77754          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77755          ,p_balance_type_code => l_balance_type_code
77756          );
77757 
77758    -------------------------------------------------------------------------------------------
77759    -- 4262811 - Generate the Accrual Reversal lines
77760    -------------------------------------------------------------------------------------------
77761    BEGIN
77762       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77763                               (g_array_event(p_event_id).array_value_num('header_index'));
77764       IF l_acc_rev_flag IS NULL THEN
77765          l_acc_rev_flag := 'N';
77766       END IF;
77767    EXCEPTION
77768       WHEN OTHERS THEN
77769          l_acc_rev_flag := 'N';
77770    END;
77771    --
77772    IF (l_acc_rev_flag = 'Y') THEN
77773 
77774        -- 4645092  ------------------------------------------------------------------------------
77775        -- To allow MPA report to determine if it should generate report process
77776        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77777        ------------------------------------------------------------------------------------------
77778 
77779        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77780        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77781    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77782    -- call ADRs
77783    -- Bug 4922099
77784    --
77785    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77786         (NVL(l_actual_upg_option, 'N') = 'O') OR
77787         (NVL(l_enc_upg_option, 'N') = 'O')
77788       )
77789    THEN
77790    NULL;
77791    --
77792    --
77793    
77794   l_ccid := AcctDerRule_33(
77795            p_application_id           => p_application_id
77796          , p_ae_header_id             => l_ae_header_id 
77797 , p_source_30 => p_source_30
77798          , x_transaction_coa_id       => l_adr_transaction_coa_id
77799          , x_accounting_coa_id        => l_adr_accounting_coa_id
77800          , x_value_type_code          => l_adr_value_type_code
77801          , p_side                     => 'NA'
77802    );
77803 
77804    xla_ae_lines_pkg.set_ccid(
77805     p_code_combination_id          => l_ccid
77806   , p_value_type_code              => l_adr_value_type_code
77807   , p_transaction_coa_id           => l_adr_transaction_coa_id
77808   , p_accounting_coa_id            => l_adr_accounting_coa_id
77809   , p_adr_code                     => 'AP_INVOICE_DIST'
77810   , p_adr_type_code                => 'S'
77811   , p_component_type               => l_component_type
77812   , p_component_code               => l_component_code
77813   , p_component_type_code          => l_component_type_code
77814   , p_component_appl_id            => l_component_appl_id
77815   , p_amb_context_code             => l_amb_context_code
77816   , p_side                         => 'NA'
77817   );
77818 
77819 
77820    --
77821    --
77822    END IF;
77823 
77824        --
77825        -- Update the line information that should be overwritten
77826        --
77827        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77828                                          p_header_num   => 1);
77829        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77830 
77831        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77832 
77833        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77834           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77835        END IF;
77836 
77837       --
77838       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77839       --
77840       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77841           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77842       ELSE
77843           ---------------------------------------------------------------------------------------------------
77844           -- 4262811a Switch Sign
77848                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77845           ---------------------------------------------------------------------------------------------------
77846           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77847           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77849           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77850                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77851           -- 5132302
77852           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77853                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77854 
77855       END IF;
77856 
77857       -- 4955764
77858       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77859       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77860 
77861 
77862       XLA_AE_LINES_PKG.ValidateCurrentLine;
77863       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77864 
77865       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77866                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77867                ,p_balance_type_code => l_balance_type_code);
77868 
77869    END IF;
77870 
77871    -----------------------------------------------------------------------------------------
77872    -- 4262811 Multiperiod Accounting
77873    -----------------------------------------------------------------------------------------
77874      -- No MPA option is assigned.
77875 
77876 
77877 END IF;
77878 END IF;
77879 --
77880 
77881 --
77882 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77883    trace
77884       (p_msg      => 'END of AcctLineType_138'
77885       ,p_level    => C_LEVEL_PROCEDURE
77886       ,p_module   => l_log_module);
77887 END IF;
77888 --
77889 EXCEPTION
77890   WHEN xla_exceptions_pkg.application_exception THEN
77891       RAISE;
77892   WHEN OTHERS THEN
77893        xla_exceptions_pkg.raise_message
77894            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_138');
77895 END AcctLineType_138;
77896 --
77897 
77898 ---------------------------------------
77899 --
77900 -- PRIVATE FUNCTION
77901 --         AcctLineType_139
77902 --
77903 ---------------------------------------
77904 PROCEDURE AcctLineType_139 (
77905   p_application_id        IN NUMBER
77906  ,p_event_id              IN NUMBER
77907  ,p_calculate_acctd_flag  IN VARCHAR2
77908  ,p_calculate_g_l_flag    IN VARCHAR2
77909  ,p_actual_flag           IN OUT VARCHAR2
77910  ,p_balance_type_code     OUT VARCHAR2
77911  ,p_gain_or_loss_ref      OUT VARCHAR2
77912  
77913 --Invoice Distribution Description
77914  , p_source_1            IN VARCHAR2
77915 --Invoice Distribution Ledger Amount
77916  , p_source_21            IN NUMBER
77917 --Invoice Distribution Account
77918  , p_source_30            IN NUMBER
77919 --Invoice Distribution Type
77920  , p_source_33            IN VARCHAR2
77921  , p_source_33_meaning    IN VARCHAR2
77922 --Accounting Reversal Indicator
77923  , p_source_52            IN VARCHAR2
77924 --Distribution Link Type
77925  , p_source_54            IN VARCHAR2
77926 --Allocation to Main Distribution Identifier
77927  , p_source_56            IN NUMBER
77928 --Invoice Identifier
77929  , p_source_57            IN NUMBER
77930 --Invoice Distribution Identifier
77931  , p_source_63            IN NUMBER
77932 --Payables Encumbrance Upgrade Credit Account
77933  , p_source_64            IN NUMBER
77934 --Payables Encumbrance Upgrade Credit Amount
77935  , p_source_65            IN NUMBER
77936 --Invoice Currency Code
77937  , p_source_66            IN VARCHAR2
77938 --Payables Encumbrance Upgrade Credit Base Amount
77939  , p_source_67            IN NUMBER
77940 --Payables Encumbrance Upgrade Debit Account
77941  , p_source_68            IN NUMBER
77942 --Payables Encumbrance Upgrade Debit Amount
77943  , p_source_69            IN NUMBER
77944 --Payables Encumbrance Upgrade Debit Base Amount
77945  , p_source_70            IN NUMBER
77946 --Payables Encumbrance Upgrade Option
77947  , p_source_71            IN VARCHAR2
77948 --Invoice Distribution Amount
77949  , p_source_72            IN NUMBER
77950 --Deferred Accounting End Date
77951  , p_source_76            IN DATE
77952 --Deferred Accounting Option
77953  , p_source_77            IN VARCHAR2
77954 --Deferred Accounting Start Date
77955  , p_source_78            IN DATE
77956 --Override Accounted Amount Indicator
77957  , p_source_79            IN VARCHAR2
77958  , p_source_79_meaning    IN VARCHAR2
77959 --Invoice Supplier Identifier
77960  , p_source_80            IN NUMBER
77961 --Invoice Supplier Site Identifier
77962  , p_source_81            IN NUMBER
77963 --Third Party Type
77964  , p_source_82            IN VARCHAR2
77965 --Parent Reversal Identifier
77966  , p_source_83            IN NUMBER
77967 --Invoice Distribution Statistical Amount
77968  , p_source_84            IN NUMBER
77969 --Invoice Distribution Tax Line Identifier
77970  , p_source_85            IN NUMBER
77971 --Invoice Distribution Tax Distribution Identifier from Tax
77972  , p_source_86            IN NUMBER
77976  , p_source_88            IN NUMBER
77973 --Invoice Distribution Summary Tax Line Identifier
77974  , p_source_87            IN NUMBER
77975 --Payables Upgrade Credit Encumbrance Type Identifier
77977 --Payables Upgrade Debit Encumbrance Type Identifier
77978  , p_source_89            IN NUMBER
77979 --Business Flow Accounts Payable Application Identifier
77980  , p_source_90            IN NUMBER
77981 --Business Flow Invoice Distribution Type
77982  , p_source_91            IN VARCHAR2
77983 --Business Flow Invoice Entity Code
77984  , p_source_92            IN VARCHAR2
77985 --Business Flow Invoice Distribution Identifier
77986  , p_source_93            IN NUMBER
77987 --Business Flow Invoice Identifier
77988  , p_source_94            IN NUMBER
77989 --Accrue on Receipt Option
77990  , p_source_95            IN VARCHAR2
77991  , p_source_95_meaning    IN VARCHAR2
77992 --Invoice Exchange Date
77993  , p_source_136            IN DATE
77994 --Invoice Exchange Rate
77995  , p_source_137            IN NUMBER
77996 --Invoice Exchange Rate Type
77997  , p_source_138            IN VARCHAR2
77998 )
77999 IS
78000 
78001 l_component_type              VARCHAR2(80);
78002 l_component_code              VARCHAR2(30);
78003 l_component_type_code         VARCHAR2(1);
78004 l_component_appl_id           INTEGER;
78005 l_amb_context_code            VARCHAR2(30);
78006 l_entity_code                 VARCHAR2(30);
78007 l_event_class_code            VARCHAR2(30);
78008 l_ae_header_id                NUMBER;
78009 l_event_type_code             VARCHAR2(30);
78010 l_line_definition_code        VARCHAR2(30);
78011 l_line_definition_owner_code  VARCHAR2(1);
78012 --
78013 -- adr variables
78014 l_segment                     VARCHAR2(30);
78015 l_ccid                        NUMBER;
78016 l_adr_transaction_coa_id      NUMBER;
78017 l_adr_accounting_coa_id       NUMBER;
78018 l_adr_flexfield_segment_code  VARCHAR2(30);
78019 l_adr_flex_value_set_id       NUMBER;
78020 l_adr_value_type_code         VARCHAR2(30);
78021 l_adr_value_combination_id    NUMBER;
78022 l_adr_value_segment_code      VARCHAR2(30);
78023 
78024 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78025 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78026 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78027 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78028 
78029 -- 4262811 Variables ------------------------------------------------------------------------------------------
78030 l_entered_amt_idx             NUMBER;
78031 l_accted_amt_idx              NUMBER;
78032 l_acc_rev_flag                VARCHAR2(1);
78033 l_accrual_line_num            NUMBER;
78034 l_tmp_amt                     NUMBER;
78035 l_acc_rev_natural_side_code   VARCHAR2(1);
78036 
78037 l_num_entries                 NUMBER;
78038 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78039 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78040 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78041 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78042 l_recog_line_1                NUMBER;
78043 l_recog_line_2                NUMBER;
78044 
78045 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78046 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78047 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78048 
78049 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78050 
78051 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78052 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78053 
78054 ---------------------------------------------------------------------------------------------------------------
78055 
78056 
78057 --
78058 -- bulk performance
78059 --
78060 l_balance_type_code           VARCHAR2(1);
78061 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78062 l_log_module                  VARCHAR2(240);
78063 
78064 --
78065 -- Upgrade strategy
78066 --
78067 l_actual_upg_option           VARCHAR2(1);
78068 l_enc_upg_option           VARCHAR2(1);
78069 
78070 --
78071 BEGIN
78072 --
78073 IF g_log_enabled THEN
78074       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
78075 END IF;
78076 --
78077 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78078 
78079       trace
78080          (p_msg      => 'BEGIN of AcctLineType_139'
78081          ,p_level    => C_LEVEL_PROCEDURE
78082          ,p_module   => l_log_module);
78083 
78084 END IF;
78085 --
78086 l_component_type             := 'AMB_JLT';
78087 l_component_code             := 'AP_INV_PRICE_VAR_PREPAY';
78088 l_component_type_code        := 'S';
78089 l_component_appl_id          :=  200;
78090 l_amb_context_code           := 'DEFAULT';
78091 l_entity_code                := 'AP_INVOICES';
78092 l_event_class_code           := 'PREPAYMENTS';
78093 l_event_type_code            := 'PREPAYMENTS_ALL';
78094 l_line_definition_owner_code := 'S';
78095 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
78096 --
78097 l_balance_type_code          := 'A';
78098 l_segment                     := NULL;
78099 l_ccid                        := NULL;
78103 l_adr_flex_value_set_id       := NULL;
78100 l_adr_transaction_coa_id      := NULL;
78101 l_adr_accounting_coa_id       := NULL;
78102 l_adr_flexfield_segment_code  := NULL;
78104 l_adr_value_type_code         := NULL;
78105 l_adr_value_combination_id    := NULL;
78106 l_adr_value_segment_code      := NULL;
78107 
78108 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78109 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
78110 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78111 l_budgetary_control_flag     := 'N';
78112 
78113 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78114 l_bflow_applied_to_amt       := NULL; -- 5132302
78115 l_entered_amt_idx            := NULL;          -- 4262811
78116 l_accted_amt_idx             := NULL;          -- 4262811
78117 l_acc_rev_flag               := NULL;          -- 4262811
78118 l_accrual_line_num           := NULL;          -- 4262811
78119 l_tmp_amt                    := NULL;          -- 4262811
78120 --
78121  
78122 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78123     l_balance_type_code <> 'B' THEN
78124 IF NVL(p_source_33,'
78125 ') =  'IPV' AND 
78126 NVL(p_source_95,'
78127 ') =  'Y'
78128  THEN 
78129 
78130    --
78131    XLA_AE_LINES_PKG.SetNewLine;
78132 
78133    p_balance_type_code          := l_balance_type_code;
78134    -- set the flag so later we will know whether the gain loss line needs to be created
78135    
78136    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78137      p_actual_flag :='A';
78138    END IF;
78139 
78140    --
78141    -- bulk performance
78142    --
78143    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78144                                       p_header_num   => 0); -- 4262811
78145    --
78146    -- set accounting line options
78147    --
78148    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78149            p_natural_side_code          => 'D'
78150          , p_gain_or_loss_flag          => 'N'
78151          , p_gl_transfer_mode_code      => 'S'
78152          , p_acct_entry_type_code       => 'A'
78153          , p_switch_side_flag           => 'Y'
78154          , p_merge_duplicate_code       => 'A'
78155          );
78156    --
78157    l_acc_rev_natural_side_code := 'C';  -- 4262811
78158    -- 
78159    --
78160    -- set accounting line type info
78161    --
78162    xla_ae_lines_pkg.SetAcctLineType
78163       (p_component_type             => l_component_type
78164       ,p_event_type_code            => l_event_type_code
78165       ,p_line_definition_owner_code => l_line_definition_owner_code
78166       ,p_line_definition_code       => l_line_definition_code
78167       ,p_accounting_line_code       => l_component_code
78168       ,p_accounting_line_type_code  => l_component_type_code
78169       ,p_accounting_line_appl_id    => l_component_appl_id
78170       ,p_amb_context_code           => l_amb_context_code
78171       ,p_entity_code                => l_entity_code
78172       ,p_event_class_code           => l_event_class_code);
78173    --
78174    -- set accounting class
78175    --
78176    xla_ae_lines_pkg.SetAcctClass(
78177            p_accounting_class_code  => 'IPV'
78178          , p_ae_header_id           => l_ae_header_id
78179          );
78180 
78181    --
78182    -- set rounding class
78183    --
78184    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78185                       'IPV';
78186 
78187    --
78188    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78189    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78190    --
78191    -- bulk performance
78192    --
78193    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78194 
78195    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78196       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78197 
78198    -- 4955764
78199    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78200       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78201 
78202    -- 4458381 Public Sector Enh
78203    
78204    --
78205    -- set accounting attributes for the line type
78206    --
78207    l_entered_amt_idx := 23;
78208    l_accted_amt_idx  := 28;
78209    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78210    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78211    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
78212    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
78213    l_rec_acct_attrs.array_num_value(2)  := 
78214 xla_ae_sources_pkg.GetSystemSourceNum(
78215    p_source_code           => 'XLA_EVENT_APPL_ID'
78216  , p_source_type_code      => 'Y'
78217  , p_source_application_id =>  602
78218 );
78219    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
78220    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
78221    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
78222    l_rec_acct_attrs.array_char_value(4)  := 
78223 xla_ae_sources_pkg.GetSystemSourceChar(
78227 );
78224    p_source_code           => 'XLA_ENTITY_CODE'
78225  , p_source_type_code      => 'Y'
78226  , p_source_application_id =>  602
78228    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
78229    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
78230    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
78231    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
78232    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
78233    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
78234    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78235    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
78236    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
78237    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
78238    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
78239    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
78240    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78241    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
78242    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
78243    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
78244    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
78245    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
78246    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
78247    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
78248    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
78249    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
78250    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
78251    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
78252    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
78253    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
78254    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
78255    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
78256    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
78257    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
78258    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
78259    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
78260    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
78261    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
78262    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
78263    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
78264    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
78265    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
78266    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
78267    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
78268    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
78269    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
78270    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
78271    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
78272    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
78273    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
78274    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
78275    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
78276    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
78277    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
78278    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
78279    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
78280    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
78281    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
78282    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
78283    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
78284    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
78285    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
78286    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
78287    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
78288    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
78289    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
78290    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
78291    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
78292    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
78293    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
78294    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
78295    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
78296    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
78297    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
78298    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
78299    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
78300    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
78301    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
78302    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
78303    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
78304    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
78305    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
78306 
78307    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78308    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78309 
78310    ---------------------------------------------------------------------------------------------------------------
78314 
78311    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78312    ---------------------------------------------------------------------------------------------------------------
78313    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78315    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78316    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78317 
78318    IF xla_accounting_cache_pkg.GetValueChar
78319          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78320          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78321    AND l_bflow_method_code = 'PRIOR_ENTRY'
78322 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78323    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78324          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78325        )
78326    THEN
78327          xla_ae_lines_pkg.BflowUpgEntry
78328            (p_business_method_code    => l_bflow_method_code
78329            ,p_business_class_code     => l_bflow_class_code
78330            ,p_balance_type            => l_balance_type_code);
78331    ELSE
78332       NULL;
78333 -- No business flow processing for business flow method of NONE.
78334    END IF;
78335 
78336    --
78337    -- call analytical criteria
78338    --
78339    
78340    --
78341    -- call description
78342    --
78343    
78344 xla_ae_lines_pkg.SetLineDescription(
78345    p_ae_header_id => l_ae_header_id
78346   ,p_description  => Description_1 (
78347      p_application_id         => p_application_id
78348    , p_ae_header_id           => l_ae_header_id 
78349 , p_source_1 => p_source_1
78350    )
78351 );
78352 
78353 
78354    --
78355    -- call ADRs
78356    -- Bug 4922099
78357    --
78358    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78359         (NVL(l_actual_upg_option, 'N') = 'O') OR
78360         (NVL(l_enc_upg_option, 'N') = 'O')
78361       )
78362    THEN
78363    NULL;
78364    --
78365    --
78366    
78367   l_ccid := AcctDerRule_33(
78368            p_application_id           => p_application_id
78369          , p_ae_header_id             => l_ae_header_id 
78370 , p_source_30 => p_source_30
78371          , x_transaction_coa_id       => l_adr_transaction_coa_id
78372          , x_accounting_coa_id        => l_adr_accounting_coa_id
78373          , x_value_type_code          => l_adr_value_type_code
78374          , p_side                     => 'NA'
78375    );
78376 
78377    xla_ae_lines_pkg.set_ccid(
78378     p_code_combination_id          => l_ccid
78379   , p_value_type_code              => l_adr_value_type_code
78380   , p_transaction_coa_id           => l_adr_transaction_coa_id
78381   , p_accounting_coa_id            => l_adr_accounting_coa_id
78382   , p_adr_code                     => 'AP_INVOICE_DIST'
78383   , p_adr_type_code                => 'S'
78384   , p_component_type               => l_component_type
78385   , p_component_code               => l_component_code
78386   , p_component_type_code          => l_component_type_code
78387   , p_component_appl_id            => l_component_appl_id
78388   , p_amb_context_code             => l_amb_context_code
78389   , p_side                         => 'NA'
78390   );
78391 
78392 
78393    --
78394    --
78395    END IF;
78396    --
78397    -- Bug 4922099
78398    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78399           (NVL(l_enc_upg_option, 'N') = 'O')
78400         ) AND
78401         (l_bflow_method_code = 'PRIOR_ENTRY')
78402       )
78403    THEN
78404       IF
78405       --
78406       1 = 2
78407       --
78408       THEN
78409       xla_accounting_err_pkg.build_message
78410                                     (p_appli_s_name            => 'XLA'
78411                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78412                                     ,p_token_1                 => 'LINE_NUMBER'
78413                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78414                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78415                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78416                                                                              l_component_type
78417                                                                             ,l_component_code
78418                                                                             ,l_component_type_code
78419                                                                             ,l_component_appl_id
78420                                                                             ,l_amb_context_code
78421                                                                             ,l_entity_code
78422                                                                             ,l_event_class_code
78423                                                                            )
78424                                     ,p_token_3                 => 'OWNER'
78425                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78426                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78430                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78427                                                                           ,p_lookup_code    => l_component_type_code
78428                                                                          )
78429                                     ,p_token_4                 => 'PRODUCT_NAME'
78431                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78432                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78433                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78434                                     ,p_ae_header_id            =>  NULL
78435                                        );
78436 
78437         IF (C_LEVEL_ERROR>= g_log_level) THEN
78438                  trace
78439                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78440                       ,p_level    => C_LEVEL_ERROR
78441                       ,p_module   => l_log_module);
78442         END IF;
78443       END IF;
78444    END IF;
78445    --
78446    --
78447    ------------------------------------------------------------------------------------------------
78448    -- 4219869 Business Flow
78449    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78450    -- Prior Entry.  Currently, the following code is always generated.
78451    ------------------------------------------------------------------------------------------------
78452    XLA_AE_LINES_PKG.ValidateCurrentLine;
78453 
78454    ------------------------------------------------------------------------------------
78455    -- 4219869 Business Flow
78456    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78457    ------------------------------------------------------------------------------------
78458    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78459 
78460    ----------------------------------------------------------------------------------
78461    -- 4219869 Business Flow
78462    -- Update journal entry status -- Need to generate this within IF <condition>
78463    ----------------------------------------------------------------------------------
78464    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78465          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78466          ,p_balance_type_code => l_balance_type_code
78467          );
78468 
78469    -------------------------------------------------------------------------------------------
78470    -- 4262811 - Generate the Accrual Reversal lines
78471    -------------------------------------------------------------------------------------------
78472    BEGIN
78473       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78474                               (g_array_event(p_event_id).array_value_num('header_index'));
78475       IF l_acc_rev_flag IS NULL THEN
78476          l_acc_rev_flag := 'N';
78477       END IF;
78478    EXCEPTION
78479       WHEN OTHERS THEN
78480          l_acc_rev_flag := 'N';
78481    END;
78482    --
78483    IF (l_acc_rev_flag = 'Y') THEN
78484 
78485        -- 4645092  ------------------------------------------------------------------------------
78486        -- To allow MPA report to determine if it should generate report process
78487        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78488        ------------------------------------------------------------------------------------------
78489 
78490        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78491        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78492    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78493    -- call ADRs
78494    -- Bug 4922099
78495    --
78496    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78497         (NVL(l_actual_upg_option, 'N') = 'O') OR
78498         (NVL(l_enc_upg_option, 'N') = 'O')
78499       )
78500    THEN
78501    NULL;
78502    --
78503    --
78504    
78505   l_ccid := AcctDerRule_33(
78506            p_application_id           => p_application_id
78507          , p_ae_header_id             => l_ae_header_id 
78508 , p_source_30 => p_source_30
78509          , x_transaction_coa_id       => l_adr_transaction_coa_id
78510          , x_accounting_coa_id        => l_adr_accounting_coa_id
78511          , x_value_type_code          => l_adr_value_type_code
78512          , p_side                     => 'NA'
78513    );
78514 
78515    xla_ae_lines_pkg.set_ccid(
78516     p_code_combination_id          => l_ccid
78517   , p_value_type_code              => l_adr_value_type_code
78518   , p_transaction_coa_id           => l_adr_transaction_coa_id
78519   , p_accounting_coa_id            => l_adr_accounting_coa_id
78520   , p_adr_code                     => 'AP_INVOICE_DIST'
78521   , p_adr_type_code                => 'S'
78522   , p_component_type               => l_component_type
78523   , p_component_code               => l_component_code
78524   , p_component_type_code          => l_component_type_code
78525   , p_component_appl_id            => l_component_appl_id
78526   , p_amb_context_code             => l_amb_context_code
78527   , p_side                         => 'NA'
78528   );
78529 
78530 
78531    --
78532    --
78533    END IF;
78534 
78535        --
78536        -- Update the line information that should be overwritten
78537        --
78541 
78538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78539                                          p_header_num   => 1);
78540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78543 
78544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78546        END IF;
78547 
78548       --
78549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78550       --
78551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78553       ELSE
78554           ---------------------------------------------------------------------------------------------------
78555           -- 4262811a Switch Sign
78556           ---------------------------------------------------------------------------------------------------
78557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78562           -- 5132302
78563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78565 
78566       END IF;
78567 
78568       -- 4955764
78569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78571 
78572 
78573       XLA_AE_LINES_PKG.ValidateCurrentLine;
78574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78575 
78576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78578                ,p_balance_type_code => l_balance_type_code);
78579 
78580    END IF;
78581 
78582    -----------------------------------------------------------------------------------------
78583    -- 4262811 Multiperiod Accounting
78584    -----------------------------------------------------------------------------------------
78585      -- No MPA option is assigned.
78586 
78587 
78588 END IF;
78589 END IF;
78590 --
78591 
78592 --
78593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78594    trace
78595       (p_msg      => 'END of AcctLineType_139'
78596       ,p_level    => C_LEVEL_PROCEDURE
78597       ,p_module   => l_log_module);
78598 END IF;
78599 --
78600 EXCEPTION
78601   WHEN xla_exceptions_pkg.application_exception THEN
78602       RAISE;
78603   WHEN OTHERS THEN
78604        xla_exceptions_pkg.raise_message
78605            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_139');
78606 END AcctLineType_139;
78607 --
78608 
78609 ---------------------------------------
78610 --
78611 -- PRIVATE FUNCTION
78612 --         AcctLineType_140
78613 --
78614 ---------------------------------------
78615 PROCEDURE AcctLineType_140 (
78616   p_application_id        IN NUMBER
78617  ,p_event_id              IN NUMBER
78618  ,p_calculate_acctd_flag  IN VARCHAR2
78619  ,p_calculate_g_l_flag    IN VARCHAR2
78620  ,p_actual_flag           IN OUT VARCHAR2
78621  ,p_balance_type_code     OUT VARCHAR2
78622  ,p_gain_or_loss_ref      OUT VARCHAR2
78623  
78624 --Invoice Distribution Description
78625  , p_source_1            IN VARCHAR2
78626 --Invoice Distribution Ledger Amount
78627  , p_source_21            IN NUMBER
78628 --Invoice Distribution Account
78629  , p_source_30            IN NUMBER
78630 --Invoice Distribution Type
78631  , p_source_33            IN VARCHAR2
78632  , p_source_33_meaning    IN VARCHAR2
78633 --Accounting Reversal Indicator
78634  , p_source_52            IN VARCHAR2
78635 --Distribution Link Type
78636  , p_source_54            IN VARCHAR2
78637 --Allocation to Main Distribution Identifier
78638  , p_source_56            IN NUMBER
78639 --Invoice Identifier
78640  , p_source_57            IN NUMBER
78641 --Invoice Distribution Identifier
78642  , p_source_63            IN NUMBER
78643 --Payables Encumbrance Upgrade Credit Account
78644  , p_source_64            IN NUMBER
78645 --Payables Encumbrance Upgrade Credit Amount
78646  , p_source_65            IN NUMBER
78647 --Invoice Currency Code
78648  , p_source_66            IN VARCHAR2
78649 --Payables Encumbrance Upgrade Credit Base Amount
78650  , p_source_67            IN NUMBER
78651 --Payables Encumbrance Upgrade Debit Account
78652  , p_source_68            IN NUMBER
78653 --Payables Encumbrance Upgrade Debit Amount
78654  , p_source_69            IN NUMBER
78655 --Payables Encumbrance Upgrade Debit Base Amount
78659 --Invoice Distribution Amount
78656  , p_source_70            IN NUMBER
78657 --Payables Encumbrance Upgrade Option
78658  , p_source_71            IN VARCHAR2
78660  , p_source_72            IN NUMBER
78661 --Deferred Accounting End Date
78662  , p_source_76            IN DATE
78663 --Deferred Accounting Option
78664  , p_source_77            IN VARCHAR2
78665 --Deferred Accounting Start Date
78666  , p_source_78            IN DATE
78667 --Override Accounted Amount Indicator
78668  , p_source_79            IN VARCHAR2
78669  , p_source_79_meaning    IN VARCHAR2
78670 --Invoice Supplier Identifier
78671  , p_source_80            IN NUMBER
78672 --Invoice Supplier Site Identifier
78673  , p_source_81            IN NUMBER
78674 --Third Party Type
78675  , p_source_82            IN VARCHAR2
78676 --Parent Reversal Identifier
78677  , p_source_83            IN NUMBER
78678 --Invoice Distribution Statistical Amount
78679  , p_source_84            IN NUMBER
78680 --Invoice Distribution Tax Line Identifier
78681  , p_source_85            IN NUMBER
78682 --Invoice Distribution Tax Distribution Identifier from Tax
78683  , p_source_86            IN NUMBER
78684 --Invoice Distribution Summary Tax Line Identifier
78685  , p_source_87            IN NUMBER
78686 --Payables Upgrade Credit Encumbrance Type Identifier
78687  , p_source_88            IN NUMBER
78688 --Payables Upgrade Debit Encumbrance Type Identifier
78689  , p_source_89            IN NUMBER
78690 --Business Flow Accounts Payable Application Identifier
78691  , p_source_90            IN NUMBER
78692 --Business Flow Invoice Distribution Type
78693  , p_source_91            IN VARCHAR2
78694 --Business Flow Invoice Entity Code
78695  , p_source_92            IN VARCHAR2
78696 --Business Flow Invoice Distribution Identifier
78697  , p_source_93            IN NUMBER
78698 --Business Flow Invoice Identifier
78699  , p_source_94            IN NUMBER
78700 --Accrue on Receipt Option
78701  , p_source_95            IN VARCHAR2
78702  , p_source_95_meaning    IN VARCHAR2
78703 --Invoice Exchange Date
78704  , p_source_136            IN DATE
78705 --Invoice Exchange Rate
78706  , p_source_137            IN NUMBER
78707 --Invoice Exchange Rate Type
78708  , p_source_138            IN VARCHAR2
78709 --Project Identifier
78710  , p_source_146            IN NUMBER
78711 )
78712 IS
78713 
78714 l_component_type              VARCHAR2(80);
78715 l_component_code              VARCHAR2(30);
78716 l_component_type_code         VARCHAR2(1);
78717 l_component_appl_id           INTEGER;
78718 l_amb_context_code            VARCHAR2(30);
78719 l_entity_code                 VARCHAR2(30);
78720 l_event_class_code            VARCHAR2(30);
78721 l_ae_header_id                NUMBER;
78722 l_event_type_code             VARCHAR2(30);
78723 l_line_definition_code        VARCHAR2(30);
78724 l_line_definition_owner_code  VARCHAR2(1);
78725 --
78726 -- adr variables
78727 l_segment                     VARCHAR2(30);
78728 l_ccid                        NUMBER;
78729 l_adr_transaction_coa_id      NUMBER;
78730 l_adr_accounting_coa_id       NUMBER;
78731 l_adr_flexfield_segment_code  VARCHAR2(30);
78732 l_adr_flex_value_set_id       NUMBER;
78733 l_adr_value_type_code         VARCHAR2(30);
78734 l_adr_value_combination_id    NUMBER;
78735 l_adr_value_segment_code      VARCHAR2(30);
78736 
78737 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78738 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78739 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78740 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78741 
78742 -- 4262811 Variables ------------------------------------------------------------------------------------------
78743 l_entered_amt_idx             NUMBER;
78744 l_accted_amt_idx              NUMBER;
78745 l_acc_rev_flag                VARCHAR2(1);
78746 l_accrual_line_num            NUMBER;
78747 l_tmp_amt                     NUMBER;
78748 l_acc_rev_natural_side_code   VARCHAR2(1);
78749 
78750 l_num_entries                 NUMBER;
78751 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78752 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78753 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78754 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78755 l_recog_line_1                NUMBER;
78756 l_recog_line_2                NUMBER;
78757 
78758 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78759 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78760 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78761 
78762 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78763 
78764 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78765 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78766 
78767 ---------------------------------------------------------------------------------------------------------------
78768 
78769 
78770 --
78771 -- bulk performance
78772 --
78773 l_balance_type_code           VARCHAR2(1);
78774 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78775 l_log_module                  VARCHAR2(240);
78776 
78777 --
78778 -- Upgrade strategy
78779 --
78783 --
78780 l_actual_upg_option           VARCHAR2(1);
78781 l_enc_upg_option           VARCHAR2(1);
78782 
78784 BEGIN
78785 --
78786 IF g_log_enabled THEN
78787       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
78788 END IF;
78789 --
78790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78791 
78792       trace
78793          (p_msg      => 'BEGIN of AcctLineType_140'
78794          ,p_level    => C_LEVEL_PROCEDURE
78795          ,p_module   => l_log_module);
78796 
78797 END IF;
78798 --
78799 l_component_type             := 'AMB_JLT';
78800 l_component_code             := 'AP_ITEM_EXPENSE_CM';
78801 l_component_type_code        := 'S';
78802 l_component_appl_id          :=  200;
78803 l_amb_context_code           := 'DEFAULT';
78804 l_entity_code                := 'AP_INVOICES';
78805 l_event_class_code           := 'CREDIT MEMOS';
78806 l_event_type_code            := 'CREDIT MEMOS_ALL';
78807 l_line_definition_owner_code := 'S';
78808 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
78809 --
78810 l_balance_type_code          := 'A';
78811 l_segment                     := NULL;
78812 l_ccid                        := NULL;
78813 l_adr_transaction_coa_id      := NULL;
78814 l_adr_accounting_coa_id       := NULL;
78815 l_adr_flexfield_segment_code  := NULL;
78816 l_adr_flex_value_set_id       := NULL;
78817 l_adr_value_type_code         := NULL;
78818 l_adr_value_combination_id    := NULL;
78819 l_adr_value_segment_code      := NULL;
78820 
78821 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78822 l_bflow_class_code           := '';    -- 4219869 Business Flow
78823 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78824 l_budgetary_control_flag     := 'N';
78825 
78826 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78827 l_bflow_applied_to_amt       := NULL; -- 5132302
78828 l_entered_amt_idx            := NULL;          -- 4262811
78829 l_accted_amt_idx             := NULL;          -- 4262811
78830 l_acc_rev_flag               := NULL;          -- 4262811
78831 l_accrual_line_num           := NULL;          -- 4262811
78832 l_tmp_amt                    := NULL;          -- 4262811
78833 --
78834  
78835 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78836     l_balance_type_code <> 'B' THEN
78837 IF NVL(p_source_33,'
78838 ') =  'RETROEXPENSE' OR 
78839 NVL(p_source_33,'
78840 ') =  'ITEM' OR 
78841 (NVL(p_source_33,'
78842 ') =  'ERV' AND 
78843 NVL(p_source_95,'
78844 ') <>  'Y') OR 
78845 (NVL(p_source_33,'
78846 ') =  'IPV' AND 
78847 NVL(p_source_95,'
78848 ') <>  'Y')
78849  THEN 
78850 
78851    --
78852    XLA_AE_LINES_PKG.SetNewLine;
78853 
78854    p_balance_type_code          := l_balance_type_code;
78855    -- set the flag so later we will know whether the gain loss line needs to be created
78856    
78857    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78858      p_actual_flag :='A';
78859    END IF;
78860 
78861    --
78862    -- bulk performance
78863    --
78864    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78865                                       p_header_num   => 0); -- 4262811
78866    --
78867    -- set accounting line options
78868    --
78869    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78870            p_natural_side_code          => 'D'
78871          , p_gain_or_loss_flag          => 'N'
78872          , p_gl_transfer_mode_code      => 'S'
78873          , p_acct_entry_type_code       => 'A'
78874          , p_switch_side_flag           => 'Y'
78875          , p_merge_duplicate_code       => 'A'
78876          );
78877    --
78878    l_acc_rev_natural_side_code := 'C';  -- 4262811
78879    -- 
78880    --
78881    -- set accounting line type info
78882    --
78883    xla_ae_lines_pkg.SetAcctLineType
78884       (p_component_type             => l_component_type
78885       ,p_event_type_code            => l_event_type_code
78886       ,p_line_definition_owner_code => l_line_definition_owner_code
78887       ,p_line_definition_code       => l_line_definition_code
78888       ,p_accounting_line_code       => l_component_code
78889       ,p_accounting_line_type_code  => l_component_type_code
78890       ,p_accounting_line_appl_id    => l_component_appl_id
78891       ,p_amb_context_code           => l_amb_context_code
78892       ,p_entity_code                => l_entity_code
78893       ,p_event_class_code           => l_event_class_code);
78894    --
78895    -- set accounting class
78896    --
78897    xla_ae_lines_pkg.SetAcctClass(
78898            p_accounting_class_code  => 'ITEM EXPENSE'
78899          , p_ae_header_id           => l_ae_header_id
78900          );
78901 
78902    --
78903    -- set rounding class
78904    --
78905    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78906                       'ITEM EXPENSE';
78907 
78908    --
78909    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78910    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78911    --
78912    -- bulk performance
78913    --
78914    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78915 
78919    -- 4955764
78916    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78917       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78918 
78920    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78921       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78922 
78923    -- 4458381 Public Sector Enh
78924    
78925    --
78926    -- set accounting attributes for the line type
78927    --
78928    l_entered_amt_idx := 23;
78929    l_accted_amt_idx  := 28;
78930    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78931    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78932    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
78933    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
78934    l_rec_acct_attrs.array_num_value(2)  := 
78935 xla_ae_sources_pkg.GetSystemSourceNum(
78936    p_source_code           => 'XLA_EVENT_APPL_ID'
78937  , p_source_type_code      => 'Y'
78938  , p_source_application_id =>  602
78939 );
78940    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
78941    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
78942    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
78943    l_rec_acct_attrs.array_char_value(4)  := 
78944 xla_ae_sources_pkg.GetSystemSourceChar(
78945    p_source_code           => 'XLA_ENTITY_CODE'
78946  , p_source_type_code      => 'Y'
78947  , p_source_application_id =>  602
78948 );
78949    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
78950    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
78951    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
78952    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
78953    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
78954    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
78955    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78956    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
78957    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
78958    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
78959    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
78960    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
78961    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78962    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
78963    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
78964    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
78965    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
78966    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
78967    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
78968    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
78969    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
78970    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
78971    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
78972    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
78973    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
78974    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
78975    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
78976    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
78977    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
78978    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
78979    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
78980    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
78981    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
78982    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
78983    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
78984    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
78985    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
78986    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
78987    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
78988    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
78989    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
78990    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
78991    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
78992    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
78993    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
78994    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
78995    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
78996    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
78997    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
78998    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
78999    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
79000    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
79001    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
79002    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
79003    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
79004    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
79005    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
79006    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
79007    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
79008    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
79012    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
79009    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
79010    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
79011    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
79013    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
79014    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
79015    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
79016    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
79017    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
79018    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
79019    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
79020    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
79021    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
79022    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
79023    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
79024    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
79025    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
79026    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
79027 
79028    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79029    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79030 
79031    ---------------------------------------------------------------------------------------------------------------
79032    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79033    ---------------------------------------------------------------------------------------------------------------
79034    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79035 
79036    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79037    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79038 
79039    IF xla_accounting_cache_pkg.GetValueChar
79040          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79041          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79042    AND l_bflow_method_code = 'PRIOR_ENTRY'
79043 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79044    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79045          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79046        )
79047    THEN
79048          xla_ae_lines_pkg.BflowUpgEntry
79049            (p_business_method_code    => l_bflow_method_code
79050            ,p_business_class_code     => l_bflow_class_code
79051            ,p_balance_type            => l_balance_type_code);
79052    ELSE
79053       NULL;
79054 -- No business flow processing for business flow method of NONE.
79055    END IF;
79056 
79057    --
79058    -- call analytical criteria
79059    --
79060    
79061 
79062 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
79063 xla_ae_lines_pkg.SetAnalyticalCriteria(
79064    p_analytical_criterion_name    => 'Project Number'
79065  , p_analytical_criterion_owner   => 'S'
79066  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
79067  , p_amb_context_code             => 'DEFAULT'
79068  , p_balancing_flag               => 'N'
79069  
79070  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
79071 p_source_146))
79072  , p_analytical_detail_num_1     =>  NULL
79073  , p_analytical_detail_date_1    =>  NULL
79074 
79075  , p_ae_header_id                 => l_ae_header_id
79076 )
79077 ;
79078 --
79079 
79080    --
79081    -- call description
79082    --
79083    
79084 xla_ae_lines_pkg.SetLineDescription(
79085    p_ae_header_id => l_ae_header_id
79086   ,p_description  => Description_1 (
79087      p_application_id         => p_application_id
79088    , p_ae_header_id           => l_ae_header_id 
79089 , p_source_1 => p_source_1
79090    )
79091 );
79092 
79093 
79094    --
79095    -- call ADRs
79096    -- Bug 4922099
79097    --
79098    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79099         (NVL(l_actual_upg_option, 'N') = 'O') OR
79100         (NVL(l_enc_upg_option, 'N') = 'O')
79101       )
79102    THEN
79103    NULL;
79104    --
79105    --
79106    
79107   l_ccid := AcctDerRule_33(
79108            p_application_id           => p_application_id
79109          , p_ae_header_id             => l_ae_header_id 
79110 , p_source_30 => p_source_30
79111          , x_transaction_coa_id       => l_adr_transaction_coa_id
79112          , x_accounting_coa_id        => l_adr_accounting_coa_id
79113          , x_value_type_code          => l_adr_value_type_code
79114          , p_side                     => 'NA'
79115    );
79116 
79117    xla_ae_lines_pkg.set_ccid(
79118     p_code_combination_id          => l_ccid
79119   , p_value_type_code              => l_adr_value_type_code
79120   , p_transaction_coa_id           => l_adr_transaction_coa_id
79121   , p_accounting_coa_id            => l_adr_accounting_coa_id
79122   , p_adr_code                     => 'AP_INVOICE_DIST'
79123   , p_adr_type_code                => 'S'
79124   , p_component_type               => l_component_type
79125   , p_component_code               => l_component_code
79126   , p_component_type_code          => l_component_type_code
79127   , p_component_appl_id            => l_component_appl_id
79128   , p_amb_context_code             => l_amb_context_code
79132 
79129   , p_side                         => 'NA'
79130   );
79131 
79133    --
79134    --
79135    END IF;
79136    --
79137    -- Bug 4922099
79138    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79139           (NVL(l_enc_upg_option, 'N') = 'O')
79140         ) AND
79141         (l_bflow_method_code = 'PRIOR_ENTRY')
79142       )
79143    THEN
79144       IF
79145       --
79146       1 = 2
79147       --
79148       THEN
79149       xla_accounting_err_pkg.build_message
79150                                     (p_appli_s_name            => 'XLA'
79151                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79152                                     ,p_token_1                 => 'LINE_NUMBER'
79153                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79154                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79155                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79156                                                                              l_component_type
79157                                                                             ,l_component_code
79158                                                                             ,l_component_type_code
79159                                                                             ,l_component_appl_id
79160                                                                             ,l_amb_context_code
79161                                                                             ,l_entity_code
79162                                                                             ,l_event_class_code
79163                                                                            )
79164                                     ,p_token_3                 => 'OWNER'
79165                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79166                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79167                                                                           ,p_lookup_code    => l_component_type_code
79168                                                                          )
79169                                     ,p_token_4                 => 'PRODUCT_NAME'
79170                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79171                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79172                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79173                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79174                                     ,p_ae_header_id            =>  NULL
79175                                        );
79176 
79177         IF (C_LEVEL_ERROR>= g_log_level) THEN
79178                  trace
79179                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79180                       ,p_level    => C_LEVEL_ERROR
79181                       ,p_module   => l_log_module);
79182         END IF;
79183       END IF;
79184    END IF;
79185    --
79186    --
79187    ------------------------------------------------------------------------------------------------
79188    -- 4219869 Business Flow
79189    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79190    -- Prior Entry.  Currently, the following code is always generated.
79191    ------------------------------------------------------------------------------------------------
79192    XLA_AE_LINES_PKG.ValidateCurrentLine;
79193 
79194    ------------------------------------------------------------------------------------
79195    -- 4219869 Business Flow
79196    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79197    ------------------------------------------------------------------------------------
79198    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79199 
79200    ----------------------------------------------------------------------------------
79201    -- 4219869 Business Flow
79202    -- Update journal entry status -- Need to generate this within IF <condition>
79203    ----------------------------------------------------------------------------------
79204    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79205          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79206          ,p_balance_type_code => l_balance_type_code
79207          );
79208 
79209    -------------------------------------------------------------------------------------------
79210    -- 4262811 - Generate the Accrual Reversal lines
79211    -------------------------------------------------------------------------------------------
79212    BEGIN
79213       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79214                               (g_array_event(p_event_id).array_value_num('header_index'));
79215       IF l_acc_rev_flag IS NULL THEN
79216          l_acc_rev_flag := 'N';
79217       END IF;
79218    EXCEPTION
79219       WHEN OTHERS THEN
79220          l_acc_rev_flag := 'N';
79221    END;
79222    --
79223    IF (l_acc_rev_flag = 'Y') THEN
79224 
79225        -- 4645092  ------------------------------------------------------------------------------
79226        -- To allow MPA report to determine if it should generate report process
79230        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79227        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79228        ------------------------------------------------------------------------------------------
79229 
79231        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79232    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79233    -- call ADRs
79234    -- Bug 4922099
79235    --
79236    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79237         (NVL(l_actual_upg_option, 'N') = 'O') OR
79238         (NVL(l_enc_upg_option, 'N') = 'O')
79239       )
79240    THEN
79241    NULL;
79242    --
79243    --
79244    
79245   l_ccid := AcctDerRule_33(
79246            p_application_id           => p_application_id
79247          , p_ae_header_id             => l_ae_header_id 
79248 , p_source_30 => p_source_30
79249          , x_transaction_coa_id       => l_adr_transaction_coa_id
79250          , x_accounting_coa_id        => l_adr_accounting_coa_id
79251          , x_value_type_code          => l_adr_value_type_code
79252          , p_side                     => 'NA'
79253    );
79254 
79255    xla_ae_lines_pkg.set_ccid(
79256     p_code_combination_id          => l_ccid
79257   , p_value_type_code              => l_adr_value_type_code
79258   , p_transaction_coa_id           => l_adr_transaction_coa_id
79259   , p_accounting_coa_id            => l_adr_accounting_coa_id
79260   , p_adr_code                     => 'AP_INVOICE_DIST'
79261   , p_adr_type_code                => 'S'
79262   , p_component_type               => l_component_type
79263   , p_component_code               => l_component_code
79264   , p_component_type_code          => l_component_type_code
79265   , p_component_appl_id            => l_component_appl_id
79266   , p_amb_context_code             => l_amb_context_code
79267   , p_side                         => 'NA'
79268   );
79269 
79270 
79271    --
79272    --
79273    END IF;
79274 
79275        --
79276        -- Update the line information that should be overwritten
79277        --
79278        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79279                                          p_header_num   => 1);
79280        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79281 
79282        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79283 
79284        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79285           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79286        END IF;
79287 
79288       --
79289       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79290       --
79291       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79292           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79293       ELSE
79294           ---------------------------------------------------------------------------------------------------
79295           -- 4262811a Switch Sign
79296           ---------------------------------------------------------------------------------------------------
79297           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79298           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79299                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79300           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79301                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79302           -- 5132302
79303           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79304                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79305 
79306       END IF;
79307 
79308       -- 4955764
79309       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79310       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79311 
79312 
79313       XLA_AE_LINES_PKG.ValidateCurrentLine;
79314       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79315 
79316       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79317                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79318                ,p_balance_type_code => l_balance_type_code);
79319 
79320    END IF;
79321 
79322    -----------------------------------------------------------------------------------------
79323    -- 4262811 Multiperiod Accounting
79324    -----------------------------------------------------------------------------------------
79325      -- No MPA option is assigned.
79326 
79327 
79328 END IF;
79329 END IF;
79330 --
79331 
79332 --
79333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79334    trace
79335       (p_msg      => 'END of AcctLineType_140'
79336       ,p_level    => C_LEVEL_PROCEDURE
79337       ,p_module   => l_log_module);
79338 END IF;
79339 --
79340 EXCEPTION
79341   WHEN xla_exceptions_pkg.application_exception THEN
79342       RAISE;
79343   WHEN OTHERS THEN
79347 --
79344        xla_exceptions_pkg.raise_message
79345            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_140');
79346 END AcctLineType_140;
79348 
79349 ---------------------------------------
79350 --
79351 -- PRIVATE FUNCTION
79352 --         AcctLineType_141
79353 --
79354 ---------------------------------------
79355 PROCEDURE AcctLineType_141 (
79356   p_application_id        IN NUMBER
79357  ,p_event_id              IN NUMBER
79358  ,p_calculate_acctd_flag  IN VARCHAR2
79359  ,p_calculate_g_l_flag    IN VARCHAR2
79360  ,p_actual_flag           IN OUT VARCHAR2
79361  ,p_balance_type_code     OUT VARCHAR2
79362  ,p_gain_or_loss_ref      OUT VARCHAR2
79363  
79364 --Invoice Distribution Description
79365  , p_source_1            IN VARCHAR2
79366 --Invoice Distribution Ledger Amount
79367  , p_source_21            IN NUMBER
79368 --Invoice Distribution Account
79369  , p_source_30            IN NUMBER
79370 --Invoice Distribution Type
79371  , p_source_33            IN VARCHAR2
79372  , p_source_33_meaning    IN VARCHAR2
79373 --Accounting Reversal Indicator
79374  , p_source_52            IN VARCHAR2
79375 --Distribution Link Type
79376  , p_source_54            IN VARCHAR2
79377 --Allocation to Main Distribution Identifier
79378  , p_source_56            IN NUMBER
79379 --Invoice Identifier
79380  , p_source_57            IN NUMBER
79381 --Invoice Distribution Identifier
79382  , p_source_63            IN NUMBER
79383 --Payables Encumbrance Upgrade Credit Account
79384  , p_source_64            IN NUMBER
79385 --Payables Encumbrance Upgrade Credit Amount
79386  , p_source_65            IN NUMBER
79387 --Invoice Currency Code
79388  , p_source_66            IN VARCHAR2
79389 --Payables Encumbrance Upgrade Credit Base Amount
79390  , p_source_67            IN NUMBER
79391 --Payables Encumbrance Upgrade Debit Account
79392  , p_source_68            IN NUMBER
79393 --Payables Encumbrance Upgrade Debit Amount
79394  , p_source_69            IN NUMBER
79395 --Payables Encumbrance Upgrade Debit Base Amount
79396  , p_source_70            IN NUMBER
79397 --Payables Encumbrance Upgrade Option
79398  , p_source_71            IN VARCHAR2
79399 --Invoice Distribution Amount
79400  , p_source_72            IN NUMBER
79401 --Deferred Accounting End Date
79402  , p_source_76            IN DATE
79403 --Deferred Accounting Option
79404  , p_source_77            IN VARCHAR2
79405 --Deferred Accounting Start Date
79406  , p_source_78            IN DATE
79407 --Override Accounted Amount Indicator
79408  , p_source_79            IN VARCHAR2
79409  , p_source_79_meaning    IN VARCHAR2
79410 --Invoice Supplier Identifier
79411  , p_source_80            IN NUMBER
79412 --Invoice Supplier Site Identifier
79413  , p_source_81            IN NUMBER
79414 --Third Party Type
79415  , p_source_82            IN VARCHAR2
79416 --Parent Reversal Identifier
79417  , p_source_83            IN NUMBER
79418 --Invoice Distribution Tax Line Identifier
79419  , p_source_85            IN NUMBER
79420 --Invoice Distribution Tax Distribution Identifier from Tax
79421  , p_source_86            IN NUMBER
79422 --Invoice Distribution Summary Tax Line Identifier
79423  , p_source_87            IN NUMBER
79424 --Payables Upgrade Credit Encumbrance Type Identifier
79425  , p_source_88            IN NUMBER
79426 --Payables Upgrade Debit Encumbrance Type Identifier
79427  , p_source_89            IN NUMBER
79428 --Business Flow Accounts Payable Application Identifier
79429  , p_source_90            IN NUMBER
79430 --Business Flow Invoice Distribution Type
79431  , p_source_91            IN VARCHAR2
79432 --Business Flow Invoice Entity Code
79433  , p_source_92            IN VARCHAR2
79434 --Business Flow Invoice Distribution Identifier
79435  , p_source_93            IN NUMBER
79436 --Business Flow Invoice Identifier
79437  , p_source_94            IN NUMBER
79438 --Accrue on Receipt Option
79439  , p_source_95            IN VARCHAR2
79440  , p_source_95_meaning    IN VARCHAR2
79441 --Invoice Exchange Date
79442  , p_source_136            IN DATE
79443 --Invoice Exchange Rate
79444  , p_source_137            IN NUMBER
79445 --Invoice Exchange Rate Type
79446  , p_source_138            IN VARCHAR2
79447 --Project Identifier
79448  , p_source_146            IN NUMBER
79449 )
79450 IS
79451 
79452 l_component_type              VARCHAR2(80);
79453 l_component_code              VARCHAR2(30);
79454 l_component_type_code         VARCHAR2(1);
79455 l_component_appl_id           INTEGER;
79456 l_amb_context_code            VARCHAR2(30);
79457 l_entity_code                 VARCHAR2(30);
79458 l_event_class_code            VARCHAR2(30);
79459 l_ae_header_id                NUMBER;
79460 l_event_type_code             VARCHAR2(30);
79461 l_line_definition_code        VARCHAR2(30);
79462 l_line_definition_owner_code  VARCHAR2(1);
79463 --
79464 -- adr variables
79465 l_segment                     VARCHAR2(30);
79466 l_ccid                        NUMBER;
79467 l_adr_transaction_coa_id      NUMBER;
79468 l_adr_accounting_coa_id       NUMBER;
79469 l_adr_flexfield_segment_code  VARCHAR2(30);
79470 l_adr_flex_value_set_id       NUMBER;
79471 l_adr_value_type_code         VARCHAR2(30);
79472 l_adr_value_combination_id    NUMBER;
79473 l_adr_value_segment_code      VARCHAR2(30);
79474 
79475 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79479 
79476 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79477 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79478 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79480 -- 4262811 Variables ------------------------------------------------------------------------------------------
79481 l_entered_amt_idx             NUMBER;
79482 l_accted_amt_idx              NUMBER;
79483 l_acc_rev_flag                VARCHAR2(1);
79484 l_accrual_line_num            NUMBER;
79485 l_tmp_amt                     NUMBER;
79486 l_acc_rev_natural_side_code   VARCHAR2(1);
79487 
79488 l_num_entries                 NUMBER;
79489 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79490 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79491 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79492 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79493 l_recog_line_1                NUMBER;
79494 l_recog_line_2                NUMBER;
79495 
79496 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79497 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79498 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79499 
79500 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79501 
79502 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79503 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79504 
79505 ---------------------------------------------------------------------------------------------------------------
79506 
79507 
79508 --
79509 -- bulk performance
79510 --
79511 l_balance_type_code           VARCHAR2(1);
79512 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79513 l_log_module                  VARCHAR2(240);
79514 
79515 --
79516 -- Upgrade strategy
79517 --
79518 l_actual_upg_option           VARCHAR2(1);
79519 l_enc_upg_option           VARCHAR2(1);
79520 
79521 --
79522 BEGIN
79523 --
79524 IF g_log_enabled THEN
79525       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
79526 END IF;
79527 --
79528 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79529 
79530       trace
79531          (p_msg      => 'BEGIN of AcctLineType_141'
79532          ,p_level    => C_LEVEL_PROCEDURE
79533          ,p_module   => l_log_module);
79534 
79535 END IF;
79536 --
79537 l_component_type             := 'AMB_JLT';
79538 l_component_code             := 'AP_ITEM_EXPENSE_DM';
79539 l_component_type_code        := 'S';
79540 l_component_appl_id          :=  200;
79541 l_amb_context_code           := 'DEFAULT';
79542 l_entity_code                := 'AP_INVOICES';
79543 l_event_class_code           := 'DEBIT MEMOS';
79544 l_event_type_code            := 'DEBIT MEMOS_ALL';
79545 l_line_definition_owner_code := 'S';
79546 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
79547 --
79548 l_balance_type_code          := 'A';
79549 l_segment                     := NULL;
79550 l_ccid                        := NULL;
79551 l_adr_transaction_coa_id      := NULL;
79552 l_adr_accounting_coa_id       := NULL;
79553 l_adr_flexfield_segment_code  := NULL;
79554 l_adr_flex_value_set_id       := NULL;
79555 l_adr_value_type_code         := NULL;
79556 l_adr_value_combination_id    := NULL;
79557 l_adr_value_segment_code      := NULL;
79558 
79559 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79560 l_bflow_class_code           := '';    -- 4219869 Business Flow
79561 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79562 l_budgetary_control_flag     := 'N';
79563 
79564 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79565 l_bflow_applied_to_amt       := NULL; -- 5132302
79566 l_entered_amt_idx            := NULL;          -- 4262811
79567 l_accted_amt_idx             := NULL;          -- 4262811
79568 l_acc_rev_flag               := NULL;          -- 4262811
79569 l_accrual_line_num           := NULL;          -- 4262811
79570 l_tmp_amt                    := NULL;          -- 4262811
79571 --
79572  
79573 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79574     l_balance_type_code <> 'B' THEN
79575 IF NVL(p_source_33,'
79576 ') =  'RETROEXPENSE' OR 
79577 NVL(p_source_33,'
79578 ') =  'ITEM' OR 
79579 (NVL(p_source_33,'
79580 ') =  'ERV' AND 
79581 NVL(p_source_95,'
79582 ') <>  'Y') OR 
79583 (NVL(p_source_33,'
79584 ') =  'IPV' AND 
79585 NVL(p_source_95,'
79586 ') <>  'Y')
79587  THEN 
79588 
79589    --
79590    XLA_AE_LINES_PKG.SetNewLine;
79591 
79592    p_balance_type_code          := l_balance_type_code;
79593    -- set the flag so later we will know whether the gain loss line needs to be created
79594    
79595    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79596      p_actual_flag :='A';
79597    END IF;
79598 
79599    --
79600    -- bulk performance
79601    --
79602    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79603                                       p_header_num   => 0); -- 4262811
79604    --
79605    -- set accounting line options
79606    --
79607    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79608            p_natural_side_code          => 'D'
79609          , p_gain_or_loss_flag          => 'N'
79613          , p_merge_duplicate_code       => 'A'
79610          , p_gl_transfer_mode_code      => 'S'
79611          , p_acct_entry_type_code       => 'A'
79612          , p_switch_side_flag           => 'Y'
79614          );
79615    --
79616    l_acc_rev_natural_side_code := 'C';  -- 4262811
79617    -- 
79618    --
79619    -- set accounting line type info
79620    --
79621    xla_ae_lines_pkg.SetAcctLineType
79622       (p_component_type             => l_component_type
79623       ,p_event_type_code            => l_event_type_code
79624       ,p_line_definition_owner_code => l_line_definition_owner_code
79625       ,p_line_definition_code       => l_line_definition_code
79626       ,p_accounting_line_code       => l_component_code
79627       ,p_accounting_line_type_code  => l_component_type_code
79628       ,p_accounting_line_appl_id    => l_component_appl_id
79629       ,p_amb_context_code           => l_amb_context_code
79630       ,p_entity_code                => l_entity_code
79631       ,p_event_class_code           => l_event_class_code);
79632    --
79633    -- set accounting class
79634    --
79635    xla_ae_lines_pkg.SetAcctClass(
79636            p_accounting_class_code  => 'ITEM EXPENSE'
79637          , p_ae_header_id           => l_ae_header_id
79638          );
79639 
79640    --
79641    -- set rounding class
79642    --
79643    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79644                       'ITEM EXPENSE';
79645 
79646    --
79647    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79648    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79649    --
79650    -- bulk performance
79651    --
79652    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79653 
79654    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79655       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79656 
79657    -- 4955764
79658    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79659       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79660 
79661    -- 4458381 Public Sector Enh
79662    
79663    --
79664    -- set accounting attributes for the line type
79665    --
79666    l_entered_amt_idx := 23;
79667    l_accted_amt_idx  := 28;
79668    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79669    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79670    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
79671    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79672    l_rec_acct_attrs.array_num_value(2)  := 
79673 xla_ae_sources_pkg.GetSystemSourceNum(
79674    p_source_code           => 'XLA_EVENT_APPL_ID'
79675  , p_source_type_code      => 'Y'
79676  , p_source_application_id =>  602
79677 );
79678    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79679    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
79680    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79681    l_rec_acct_attrs.array_char_value(4)  := 
79682 xla_ae_sources_pkg.GetSystemSourceChar(
79683    p_source_code           => 'XLA_ENTITY_CODE'
79684  , p_source_type_code      => 'Y'
79685  , p_source_application_id =>  602
79686 );
79687    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79688    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
79689    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79690    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
79691    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79692    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
79693    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79694    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
79695    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79696    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
79697    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79698    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
79699    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79700    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
79701    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79702    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
79703    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79704    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
79705    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
79706    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
79707    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
79708    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
79709    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
79710    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
79711    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
79712    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
79713    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
79714    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
79715    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
79716    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
79720    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
79717    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
79718    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
79719    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
79721    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
79722    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
79723    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
79724    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
79725    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
79726    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
79727    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
79728    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
79729    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
79730    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
79731    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
79732    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
79733    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
79734    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
79735    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
79736    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
79737    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
79738    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
79739    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
79740    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
79741    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
79742    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
79743    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
79744    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
79745    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
79746    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
79747    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
79748    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
79749    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
79750    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
79751    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
79752    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
79753    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
79754    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
79755    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
79756    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
79757    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
79758    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
79759    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
79760    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
79761    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
79762    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
79763 
79764    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79765    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79766 
79767    ---------------------------------------------------------------------------------------------------------------
79768    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79769    ---------------------------------------------------------------------------------------------------------------
79770    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79771 
79772    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79773    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79774 
79775    IF xla_accounting_cache_pkg.GetValueChar
79776          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79777          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79778    AND l_bflow_method_code = 'PRIOR_ENTRY'
79779 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79780    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79781          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79782        )
79783    THEN
79784          xla_ae_lines_pkg.BflowUpgEntry
79785            (p_business_method_code    => l_bflow_method_code
79786            ,p_business_class_code     => l_bflow_class_code
79787            ,p_balance_type            => l_balance_type_code);
79788    ELSE
79789       NULL;
79790 -- No business flow processing for business flow method of NONE.
79791    END IF;
79792 
79793    --
79794    -- call analytical criteria
79795    --
79796    
79797 
79798 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
79799 xla_ae_lines_pkg.SetAnalyticalCriteria(
79800    p_analytical_criterion_name    => 'Project Number'
79801  , p_analytical_criterion_owner   => 'S'
79802  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
79803  , p_amb_context_code             => 'DEFAULT'
79804  , p_balancing_flag               => 'N'
79805  
79806  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
79807 p_source_146))
79808  , p_analytical_detail_num_1     =>  NULL
79809  , p_analytical_detail_date_1    =>  NULL
79810 
79811  , p_ae_header_id                 => l_ae_header_id
79812 )
79813 ;
79814 --
79815 
79816    --
79820 xla_ae_lines_pkg.SetLineDescription(
79817    -- call description
79818    --
79819    
79821    p_ae_header_id => l_ae_header_id
79822   ,p_description  => Description_1 (
79823      p_application_id         => p_application_id
79824    , p_ae_header_id           => l_ae_header_id 
79825 , p_source_1 => p_source_1
79826    )
79827 );
79828 
79829 
79830    --
79831    -- call ADRs
79832    -- Bug 4922099
79833    --
79834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79835         (NVL(l_actual_upg_option, 'N') = 'O') OR
79836         (NVL(l_enc_upg_option, 'N') = 'O')
79837       )
79838    THEN
79839    NULL;
79840    --
79841    --
79842    
79843   l_ccid := AcctDerRule_33(
79844            p_application_id           => p_application_id
79845          , p_ae_header_id             => l_ae_header_id 
79846 , p_source_30 => p_source_30
79847          , x_transaction_coa_id       => l_adr_transaction_coa_id
79848          , x_accounting_coa_id        => l_adr_accounting_coa_id
79849          , x_value_type_code          => l_adr_value_type_code
79850          , p_side                     => 'NA'
79851    );
79852 
79853    xla_ae_lines_pkg.set_ccid(
79854     p_code_combination_id          => l_ccid
79855   , p_value_type_code              => l_adr_value_type_code
79856   , p_transaction_coa_id           => l_adr_transaction_coa_id
79857   , p_accounting_coa_id            => l_adr_accounting_coa_id
79858   , p_adr_code                     => 'AP_INVOICE_DIST'
79859   , p_adr_type_code                => 'S'
79860   , p_component_type               => l_component_type
79861   , p_component_code               => l_component_code
79862   , p_component_type_code          => l_component_type_code
79863   , p_component_appl_id            => l_component_appl_id
79864   , p_amb_context_code             => l_amb_context_code
79865   , p_side                         => 'NA'
79866   );
79867 
79868 
79869    --
79870    --
79871    END IF;
79872    --
79873    -- Bug 4922099
79874    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79875           (NVL(l_enc_upg_option, 'N') = 'O')
79876         ) AND
79877         (l_bflow_method_code = 'PRIOR_ENTRY')
79878       )
79879    THEN
79880       IF
79881       --
79882       1 = 2
79883       --
79884       THEN
79885       xla_accounting_err_pkg.build_message
79886                                     (p_appli_s_name            => 'XLA'
79887                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79888                                     ,p_token_1                 => 'LINE_NUMBER'
79889                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79890                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79891                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79892                                                                              l_component_type
79893                                                                             ,l_component_code
79894                                                                             ,l_component_type_code
79895                                                                             ,l_component_appl_id
79896                                                                             ,l_amb_context_code
79897                                                                             ,l_entity_code
79898                                                                             ,l_event_class_code
79899                                                                            )
79900                                     ,p_token_3                 => 'OWNER'
79901                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79902                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79903                                                                           ,p_lookup_code    => l_component_type_code
79904                                                                          )
79905                                     ,p_token_4                 => 'PRODUCT_NAME'
79906                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79907                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79908                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79909                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79910                                     ,p_ae_header_id            =>  NULL
79911                                        );
79912 
79913         IF (C_LEVEL_ERROR>= g_log_level) THEN
79914                  trace
79915                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79916                       ,p_level    => C_LEVEL_ERROR
79917                       ,p_module   => l_log_module);
79918         END IF;
79919       END IF;
79920    END IF;
79921    --
79922    --
79923    ------------------------------------------------------------------------------------------------
79924    -- 4219869 Business Flow
79925    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79926    -- Prior Entry.  Currently, the following code is always generated.
79930    ------------------------------------------------------------------------------------
79927    ------------------------------------------------------------------------------------------------
79928    XLA_AE_LINES_PKG.ValidateCurrentLine;
79929 
79931    -- 4219869 Business Flow
79932    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79933    ------------------------------------------------------------------------------------
79934    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79935 
79936    ----------------------------------------------------------------------------------
79937    -- 4219869 Business Flow
79938    -- Update journal entry status -- Need to generate this within IF <condition>
79939    ----------------------------------------------------------------------------------
79940    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79941          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79942          ,p_balance_type_code => l_balance_type_code
79943          );
79944 
79945    -------------------------------------------------------------------------------------------
79946    -- 4262811 - Generate the Accrual Reversal lines
79947    -------------------------------------------------------------------------------------------
79948    BEGIN
79949       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79950                               (g_array_event(p_event_id).array_value_num('header_index'));
79951       IF l_acc_rev_flag IS NULL THEN
79952          l_acc_rev_flag := 'N';
79953       END IF;
79954    EXCEPTION
79955       WHEN OTHERS THEN
79956          l_acc_rev_flag := 'N';
79957    END;
79958    --
79959    IF (l_acc_rev_flag = 'Y') THEN
79960 
79961        -- 4645092  ------------------------------------------------------------------------------
79962        -- To allow MPA report to determine if it should generate report process
79963        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79964        ------------------------------------------------------------------------------------------
79965 
79966        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79967        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79968    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79969    -- call ADRs
79970    -- Bug 4922099
79971    --
79972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79973         (NVL(l_actual_upg_option, 'N') = 'O') OR
79974         (NVL(l_enc_upg_option, 'N') = 'O')
79975       )
79976    THEN
79977    NULL;
79978    --
79979    --
79980    
79981   l_ccid := AcctDerRule_33(
79982            p_application_id           => p_application_id
79983          , p_ae_header_id             => l_ae_header_id 
79984 , p_source_30 => p_source_30
79985          , x_transaction_coa_id       => l_adr_transaction_coa_id
79986          , x_accounting_coa_id        => l_adr_accounting_coa_id
79987          , x_value_type_code          => l_adr_value_type_code
79988          , p_side                     => 'NA'
79989    );
79990 
79991    xla_ae_lines_pkg.set_ccid(
79992     p_code_combination_id          => l_ccid
79993   , p_value_type_code              => l_adr_value_type_code
79994   , p_transaction_coa_id           => l_adr_transaction_coa_id
79995   , p_accounting_coa_id            => l_adr_accounting_coa_id
79996   , p_adr_code                     => 'AP_INVOICE_DIST'
79997   , p_adr_type_code                => 'S'
79998   , p_component_type               => l_component_type
79999   , p_component_code               => l_component_code
80000   , p_component_type_code          => l_component_type_code
80001   , p_component_appl_id            => l_component_appl_id
80002   , p_amb_context_code             => l_amb_context_code
80003   , p_side                         => 'NA'
80004   );
80005 
80006 
80007    --
80008    --
80009    END IF;
80010 
80011        --
80012        -- Update the line information that should be overwritten
80013        --
80014        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80015                                          p_header_num   => 1);
80016        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80017 
80018        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80019 
80020        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80021           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80022        END IF;
80023 
80024       --
80025       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80026       --
80027       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80028           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80029       ELSE
80030           ---------------------------------------------------------------------------------------------------
80031           -- 4262811a Switch Sign
80032           ---------------------------------------------------------------------------------------------------
80033           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80034           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80038           -- 5132302
80035                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80036           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80037                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80039           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80040                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80041 
80042       END IF;
80043 
80044       -- 4955764
80045       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80046       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80047 
80048 
80049       XLA_AE_LINES_PKG.ValidateCurrentLine;
80050       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80051 
80052       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80053                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80054                ,p_balance_type_code => l_balance_type_code);
80055 
80056    END IF;
80057 
80058    -----------------------------------------------------------------------------------------
80059    -- 4262811 Multiperiod Accounting
80060    -----------------------------------------------------------------------------------------
80061      -- No MPA option is assigned.
80062 
80063 
80064 END IF;
80065 END IF;
80066 --
80067 
80068 --
80069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80070    trace
80071       (p_msg      => 'END of AcctLineType_141'
80072       ,p_level    => C_LEVEL_PROCEDURE
80073       ,p_module   => l_log_module);
80074 END IF;
80075 --
80076 EXCEPTION
80077   WHEN xla_exceptions_pkg.application_exception THEN
80078       RAISE;
80079   WHEN OTHERS THEN
80080        xla_exceptions_pkg.raise_message
80081            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_141');
80082 END AcctLineType_141;
80083 --
80084 
80085 ---------------------------------------
80086 --
80087 -- PRIVATE FUNCTION
80088 --         AcctLineType_142
80089 --
80090 ---------------------------------------
80091 PROCEDURE AcctLineType_142 (
80092   p_application_id        IN NUMBER
80093  ,p_event_id              IN NUMBER
80094  ,p_calculate_acctd_flag  IN VARCHAR2
80095  ,p_calculate_g_l_flag    IN VARCHAR2
80096  ,p_actual_flag           IN OUT VARCHAR2
80097  ,p_balance_type_code     OUT VARCHAR2
80098  ,p_gain_or_loss_ref      OUT VARCHAR2
80099  
80100 --Invoice Distribution Description
80101  , p_source_1            IN VARCHAR2
80102 --Invoice Distribution Ledger Amount
80103  , p_source_21            IN NUMBER
80104 --Invoice Distribution Account
80105  , p_source_30            IN NUMBER
80106 --Invoice Distribution Type
80107  , p_source_33            IN VARCHAR2
80108  , p_source_33_meaning    IN VARCHAR2
80109 --Accounting Reversal Indicator
80110  , p_source_52            IN VARCHAR2
80111 --Distribution Link Type
80112  , p_source_54            IN VARCHAR2
80113 --Allocation to Main Distribution Identifier
80114  , p_source_56            IN NUMBER
80115 --Invoice Identifier
80116  , p_source_57            IN NUMBER
80117 --Invoice Distribution Identifier
80118  , p_source_63            IN NUMBER
80119 --Payables Encumbrance Upgrade Credit Account
80120  , p_source_64            IN NUMBER
80121 --Payables Encumbrance Upgrade Credit Amount
80122  , p_source_65            IN NUMBER
80123 --Invoice Currency Code
80124  , p_source_66            IN VARCHAR2
80125 --Payables Encumbrance Upgrade Credit Base Amount
80126  , p_source_67            IN NUMBER
80127 --Payables Encumbrance Upgrade Debit Account
80128  , p_source_68            IN NUMBER
80129 --Payables Encumbrance Upgrade Debit Amount
80130  , p_source_69            IN NUMBER
80131 --Payables Encumbrance Upgrade Debit Base Amount
80132  , p_source_70            IN NUMBER
80133 --Payables Encumbrance Upgrade Option
80134  , p_source_71            IN VARCHAR2
80135 --Invoice Distribution Amount
80136  , p_source_72            IN NUMBER
80137 --Deferred Accounting End Date
80138  , p_source_76            IN DATE
80139 --Deferred Accounting Option
80140  , p_source_77            IN VARCHAR2
80141 --Deferred Accounting Start Date
80142  , p_source_78            IN DATE
80143 --Override Accounted Amount Indicator
80144  , p_source_79            IN VARCHAR2
80145  , p_source_79_meaning    IN VARCHAR2
80146 --Invoice Supplier Identifier
80147  , p_source_80            IN NUMBER
80148 --Invoice Supplier Site Identifier
80149  , p_source_81            IN NUMBER
80150 --Third Party Type
80151  , p_source_82            IN VARCHAR2
80152 --Parent Reversal Identifier
80153  , p_source_83            IN NUMBER
80154 --Invoice Distribution Statistical Amount
80155  , p_source_84            IN NUMBER
80156 --Invoice Distribution Tax Line Identifier
80157  , p_source_85            IN NUMBER
80158 --Invoice Distribution Tax Distribution Identifier from Tax
80159  , p_source_86            IN NUMBER
80160 --Invoice Distribution Summary Tax Line Identifier
80161  , p_source_87            IN NUMBER
80162 --Payables Upgrade Credit Encumbrance Type Identifier
80163  , p_source_88            IN NUMBER
80164 --Payables Upgrade Debit Encumbrance Type Identifier
80165  , p_source_89            IN NUMBER
80169  , p_source_91            IN VARCHAR2
80166 --Business Flow Accounts Payable Application Identifier
80167  , p_source_90            IN NUMBER
80168 --Business Flow Invoice Distribution Type
80170 --Business Flow Invoice Entity Code
80171  , p_source_92            IN VARCHAR2
80172 --Business Flow Invoice Distribution Identifier
80173  , p_source_93            IN NUMBER
80174 --Business Flow Invoice Identifier
80175  , p_source_94            IN NUMBER
80176 --Accrue on Receipt Option
80177  , p_source_95            IN VARCHAR2
80178  , p_source_95_meaning    IN VARCHAR2
80179 --Invoice Exchange Date
80180  , p_source_136            IN DATE
80181 --Invoice Exchange Rate
80182  , p_source_137            IN NUMBER
80183 --Invoice Exchange Rate Type
80184  , p_source_138            IN VARCHAR2
80185 --Project Identifier
80186  , p_source_146            IN NUMBER
80187 )
80188 IS
80189 
80190 l_component_type              VARCHAR2(80);
80191 l_component_code              VARCHAR2(30);
80192 l_component_type_code         VARCHAR2(1);
80193 l_component_appl_id           INTEGER;
80194 l_amb_context_code            VARCHAR2(30);
80195 l_entity_code                 VARCHAR2(30);
80196 l_event_class_code            VARCHAR2(30);
80197 l_ae_header_id                NUMBER;
80198 l_event_type_code             VARCHAR2(30);
80199 l_line_definition_code        VARCHAR2(30);
80200 l_line_definition_owner_code  VARCHAR2(1);
80201 --
80202 -- adr variables
80203 l_segment                     VARCHAR2(30);
80204 l_ccid                        NUMBER;
80205 l_adr_transaction_coa_id      NUMBER;
80206 l_adr_accounting_coa_id       NUMBER;
80207 l_adr_flexfield_segment_code  VARCHAR2(30);
80208 l_adr_flex_value_set_id       NUMBER;
80209 l_adr_value_type_code         VARCHAR2(30);
80210 l_adr_value_combination_id    NUMBER;
80211 l_adr_value_segment_code      VARCHAR2(30);
80212 
80213 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80214 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80215 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80216 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80217 
80218 -- 4262811 Variables ------------------------------------------------------------------------------------------
80219 l_entered_amt_idx             NUMBER;
80220 l_accted_amt_idx              NUMBER;
80221 l_acc_rev_flag                VARCHAR2(1);
80222 l_accrual_line_num            NUMBER;
80223 l_tmp_amt                     NUMBER;
80224 l_acc_rev_natural_side_code   VARCHAR2(1);
80225 
80226 l_num_entries                 NUMBER;
80227 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80228 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80229 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80230 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80231 l_recog_line_1                NUMBER;
80232 l_recog_line_2                NUMBER;
80233 
80234 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80235 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80236 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80237 
80238 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80239 
80240 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80241 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80242 
80243 ---------------------------------------------------------------------------------------------------------------
80244 
80245 
80246 --
80247 -- bulk performance
80248 --
80249 l_balance_type_code           VARCHAR2(1);
80250 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80251 l_log_module                  VARCHAR2(240);
80252 
80253 --
80254 -- Upgrade strategy
80255 --
80256 l_actual_upg_option           VARCHAR2(1);
80257 l_enc_upg_option           VARCHAR2(1);
80258 
80259 --
80260 BEGIN
80261 --
80262 IF g_log_enabled THEN
80263       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
80264 END IF;
80265 --
80266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80267 
80268       trace
80269          (p_msg      => 'BEGIN of AcctLineType_142'
80270          ,p_level    => C_LEVEL_PROCEDURE
80271          ,p_module   => l_log_module);
80272 
80273 END IF;
80274 --
80275 l_component_type             := 'AMB_JLT';
80276 l_component_code             := 'AP_ITEM_EXPENSE_INV';
80277 l_component_type_code        := 'S';
80278 l_component_appl_id          :=  200;
80279 l_amb_context_code           := 'DEFAULT';
80280 l_entity_code                := 'AP_INVOICES';
80281 l_event_class_code           := 'INVOICES';
80282 l_event_type_code            := 'INVOICES_ALL';
80283 l_line_definition_owner_code := 'S';
80284 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
80285 --
80286 l_balance_type_code          := 'A';
80287 l_segment                     := NULL;
80288 l_ccid                        := NULL;
80289 l_adr_transaction_coa_id      := NULL;
80290 l_adr_accounting_coa_id       := NULL;
80291 l_adr_flexfield_segment_code  := NULL;
80292 l_adr_flex_value_set_id       := NULL;
80293 l_adr_value_type_code         := NULL;
80294 l_adr_value_combination_id    := NULL;
80295 l_adr_value_segment_code      := NULL;
80296 
80300 l_budgetary_control_flag     := 'N';
80297 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
80298 l_bflow_class_code           := '';    -- 4219869 Business Flow
80299 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80301 
80302 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80303 l_bflow_applied_to_amt       := NULL; -- 5132302
80304 l_entered_amt_idx            := NULL;          -- 4262811
80305 l_accted_amt_idx             := NULL;          -- 4262811
80306 l_acc_rev_flag               := NULL;          -- 4262811
80307 l_accrual_line_num           := NULL;          -- 4262811
80308 l_tmp_amt                    := NULL;          -- 4262811
80309 --
80310  
80311 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80312     l_balance_type_code <> 'B' THEN
80313 IF NVL(p_source_33,'
80314 ') =  'RETROEXPENSE' OR 
80315 NVL(p_source_33,'
80316 ') =  'ITEM' OR 
80317 (NVL(p_source_33,'
80318 ') =  'ERV' AND 
80319 NVL(p_source_95,'
80320 ') <>  'Y') OR 
80321 (NVL(p_source_33,'
80322 ') =  'IPV' AND 
80323 NVL(p_source_95,'
80324 ') <>  'Y')
80325  THEN 
80326 
80327    --
80328    XLA_AE_LINES_PKG.SetNewLine;
80329 
80330    p_balance_type_code          := l_balance_type_code;
80331    -- set the flag so later we will know whether the gain loss line needs to be created
80332    
80333    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80334      p_actual_flag :='A';
80335    END IF;
80336 
80337    --
80338    -- bulk performance
80339    --
80340    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80341                                       p_header_num   => 0); -- 4262811
80342    --
80343    -- set accounting line options
80344    --
80345    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80346            p_natural_side_code          => 'D'
80347          , p_gain_or_loss_flag          => 'N'
80348          , p_gl_transfer_mode_code      => 'S'
80349          , p_acct_entry_type_code       => 'A'
80350          , p_switch_side_flag           => 'Y'
80351          , p_merge_duplicate_code       => 'A'
80352          );
80353    --
80354    l_acc_rev_natural_side_code := 'C';  -- 4262811
80355    -- 
80356    --
80357    -- set accounting line type info
80358    --
80359    xla_ae_lines_pkg.SetAcctLineType
80360       (p_component_type             => l_component_type
80361       ,p_event_type_code            => l_event_type_code
80362       ,p_line_definition_owner_code => l_line_definition_owner_code
80363       ,p_line_definition_code       => l_line_definition_code
80364       ,p_accounting_line_code       => l_component_code
80365       ,p_accounting_line_type_code  => l_component_type_code
80366       ,p_accounting_line_appl_id    => l_component_appl_id
80367       ,p_amb_context_code           => l_amb_context_code
80368       ,p_entity_code                => l_entity_code
80369       ,p_event_class_code           => l_event_class_code);
80370    --
80371    -- set accounting class
80372    --
80373    xla_ae_lines_pkg.SetAcctClass(
80374            p_accounting_class_code  => 'ITEM EXPENSE'
80375          , p_ae_header_id           => l_ae_header_id
80376          );
80377 
80378    --
80379    -- set rounding class
80380    --
80381    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80382                       'ITEM EXPENSE';
80383 
80384    --
80385    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80386    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80387    --
80388    -- bulk performance
80389    --
80390    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80391 
80392    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80393       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80394 
80395    -- 4955764
80396    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80397       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80398 
80399    -- 4458381 Public Sector Enh
80400    
80401    --
80402    -- set accounting attributes for the line type
80403    --
80404    l_entered_amt_idx := 24;
80405    l_accted_amt_idx  := 29;
80406    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
80407    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80408    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
80409    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
80410    l_rec_acct_attrs.array_num_value(2)  := 
80411 xla_ae_sources_pkg.GetSystemSourceNum(
80412    p_source_code           => 'XLA_EVENT_APPL_ID'
80413  , p_source_type_code      => 'Y'
80414  , p_source_application_id =>  602
80415 );
80416    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
80417    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
80418    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
80419    l_rec_acct_attrs.array_char_value(4)  := 
80420 xla_ae_sources_pkg.GetSystemSourceChar(
80421    p_source_code           => 'XLA_ENTITY_CODE'
80422  , p_source_type_code      => 'Y'
80423  , p_source_application_id =>  602
80424 );
80425    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
80429    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
80426    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
80427    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
80428    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
80430    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
80431    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
80432    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
80433    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80434    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
80435    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
80436    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
80437    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
80438    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
80439    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80440    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
80441    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
80442    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
80443    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
80444    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
80445    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
80446    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
80447    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
80448    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
80449    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
80450    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
80451    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
80452    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
80453    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
80454    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
80455    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
80456    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
80457    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
80458    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
80459    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
80460    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
80461    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
80462    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
80463    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
80464    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
80465    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
80466    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
80467    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
80468    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
80469    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
80470    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
80471    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
80472    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
80473    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
80474    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
80475    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
80476    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
80477    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
80478    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
80479    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
80480    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
80481    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
80482    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
80483    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
80484    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
80485    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
80486    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
80487    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
80488    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
80489    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
80490    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
80491    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
80492    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
80493    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
80494    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
80495    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
80496    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
80497    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
80498    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
80499    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
80500    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
80501    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
80502    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
80503    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
80504    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
80505 
80506    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80507    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80508 
80512    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80509    ---------------------------------------------------------------------------------------------------------------
80510    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80511    ---------------------------------------------------------------------------------------------------------------
80513 
80514    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80515    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80516 
80517    IF xla_accounting_cache_pkg.GetValueChar
80518          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80519          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80520    AND l_bflow_method_code = 'PRIOR_ENTRY'
80521 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80522    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80523          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80524        )
80525    THEN
80526          xla_ae_lines_pkg.BflowUpgEntry
80527            (p_business_method_code    => l_bflow_method_code
80528            ,p_business_class_code     => l_bflow_class_code
80529            ,p_balance_type            => l_balance_type_code);
80530    ELSE
80531       NULL;
80532 -- No business flow processing for business flow method of NONE.
80533    END IF;
80534 
80535    --
80536    -- call analytical criteria
80537    --
80538    
80539 
80540 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
80541 xla_ae_lines_pkg.SetAnalyticalCriteria(
80542    p_analytical_criterion_name    => 'Project Number'
80543  , p_analytical_criterion_owner   => 'S'
80544  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
80545  , p_amb_context_code             => 'DEFAULT'
80546  , p_balancing_flag               => 'N'
80547  
80548  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
80549 p_source_146))
80550  , p_analytical_detail_num_1     =>  NULL
80551  , p_analytical_detail_date_1    =>  NULL
80552 
80553  , p_ae_header_id                 => l_ae_header_id
80554 )
80555 ;
80556 --
80557 
80558    --
80559    -- call description
80560    --
80561    
80562 xla_ae_lines_pkg.SetLineDescription(
80563    p_ae_header_id => l_ae_header_id
80564   ,p_description  => Description_1 (
80565      p_application_id         => p_application_id
80566    , p_ae_header_id           => l_ae_header_id 
80567 , p_source_1 => p_source_1
80568    )
80569 );
80570 
80571 
80572    --
80573    -- call ADRs
80574    -- Bug 4922099
80575    --
80576    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80577         (NVL(l_actual_upg_option, 'N') = 'O') OR
80578         (NVL(l_enc_upg_option, 'N') = 'O')
80579       )
80580    THEN
80581    NULL;
80582    --
80583    --
80584    
80585   l_ccid := AcctDerRule_33(
80586            p_application_id           => p_application_id
80587          , p_ae_header_id             => l_ae_header_id 
80588 , p_source_30 => p_source_30
80589          , x_transaction_coa_id       => l_adr_transaction_coa_id
80590          , x_accounting_coa_id        => l_adr_accounting_coa_id
80591          , x_value_type_code          => l_adr_value_type_code
80592          , p_side                     => 'NA'
80593    );
80594 
80595    xla_ae_lines_pkg.set_ccid(
80596     p_code_combination_id          => l_ccid
80597   , p_value_type_code              => l_adr_value_type_code
80598   , p_transaction_coa_id           => l_adr_transaction_coa_id
80599   , p_accounting_coa_id            => l_adr_accounting_coa_id
80600   , p_adr_code                     => 'AP_INVOICE_DIST'
80601   , p_adr_type_code                => 'S'
80602   , p_component_type               => l_component_type
80603   , p_component_code               => l_component_code
80604   , p_component_type_code          => l_component_type_code
80605   , p_component_appl_id            => l_component_appl_id
80606   , p_amb_context_code             => l_amb_context_code
80607   , p_side                         => 'NA'
80608   );
80609 
80610 
80611    --
80612    --
80613    END IF;
80614    --
80615    -- Bug 4922099
80616    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80617           (NVL(l_enc_upg_option, 'N') = 'O')
80618         ) AND
80619         (l_bflow_method_code = 'PRIOR_ENTRY')
80620       )
80621    THEN
80622       IF
80623       --
80624       1 = 2
80625       --
80626       THEN
80627       xla_accounting_err_pkg.build_message
80628                                     (p_appli_s_name            => 'XLA'
80629                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80630                                     ,p_token_1                 => 'LINE_NUMBER'
80631                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80632                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80633                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80634                                                                              l_component_type
80638                                                                             ,l_amb_context_code
80635                                                                             ,l_component_code
80636                                                                             ,l_component_type_code
80637                                                                             ,l_component_appl_id
80639                                                                             ,l_entity_code
80640                                                                             ,l_event_class_code
80641                                                                            )
80642                                     ,p_token_3                 => 'OWNER'
80643                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80644                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80645                                                                           ,p_lookup_code    => l_component_type_code
80646                                                                          )
80647                                     ,p_token_4                 => 'PRODUCT_NAME'
80648                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80649                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80650                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80651                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80652                                     ,p_ae_header_id            =>  NULL
80653                                        );
80654 
80655         IF (C_LEVEL_ERROR>= g_log_level) THEN
80656                  trace
80657                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80658                       ,p_level    => C_LEVEL_ERROR
80659                       ,p_module   => l_log_module);
80660         END IF;
80661       END IF;
80662    END IF;
80663    --
80664    --
80665    ------------------------------------------------------------------------------------------------
80666    -- 4219869 Business Flow
80667    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80668    -- Prior Entry.  Currently, the following code is always generated.
80669    ------------------------------------------------------------------------------------------------
80670    XLA_AE_LINES_PKG.ValidateCurrentLine;
80671 
80672    ------------------------------------------------------------------------------------
80673    -- 4219869 Business Flow
80674    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80675    ------------------------------------------------------------------------------------
80676    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80677 
80678    ----------------------------------------------------------------------------------
80679    -- 4219869 Business Flow
80680    -- Update journal entry status -- Need to generate this within IF <condition>
80681    ----------------------------------------------------------------------------------
80682    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80683          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80684          ,p_balance_type_code => l_balance_type_code
80685          );
80686 
80687    -------------------------------------------------------------------------------------------
80688    -- 4262811 - Generate the Accrual Reversal lines
80689    -------------------------------------------------------------------------------------------
80690    BEGIN
80691       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80692                               (g_array_event(p_event_id).array_value_num('header_index'));
80693       IF l_acc_rev_flag IS NULL THEN
80694          l_acc_rev_flag := 'N';
80695       END IF;
80696    EXCEPTION
80697       WHEN OTHERS THEN
80698          l_acc_rev_flag := 'N';
80699    END;
80700    --
80701    IF (l_acc_rev_flag = 'Y') THEN
80702 
80703        -- 4645092  ------------------------------------------------------------------------------
80704        -- To allow MPA report to determine if it should generate report process
80705        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80706        ------------------------------------------------------------------------------------------
80707 
80708        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80709        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80710    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80711    -- call ADRs
80712    -- Bug 4922099
80713    --
80714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80715         (NVL(l_actual_upg_option, 'N') = 'O') OR
80716         (NVL(l_enc_upg_option, 'N') = 'O')
80717       )
80718    THEN
80719    NULL;
80720    --
80721    --
80722    
80723   l_ccid := AcctDerRule_33(
80724            p_application_id           => p_application_id
80725          , p_ae_header_id             => l_ae_header_id 
80726 , p_source_30 => p_source_30
80727          , x_transaction_coa_id       => l_adr_transaction_coa_id
80728          , x_accounting_coa_id        => l_adr_accounting_coa_id
80729          , x_value_type_code          => l_adr_value_type_code
80730          , p_side                     => 'NA'
80731    );
80732 
80736   , p_transaction_coa_id           => l_adr_transaction_coa_id
80733    xla_ae_lines_pkg.set_ccid(
80734     p_code_combination_id          => l_ccid
80735   , p_value_type_code              => l_adr_value_type_code
80737   , p_accounting_coa_id            => l_adr_accounting_coa_id
80738   , p_adr_code                     => 'AP_INVOICE_DIST'
80739   , p_adr_type_code                => 'S'
80740   , p_component_type               => l_component_type
80741   , p_component_code               => l_component_code
80742   , p_component_type_code          => l_component_type_code
80743   , p_component_appl_id            => l_component_appl_id
80744   , p_amb_context_code             => l_amb_context_code
80745   , p_side                         => 'NA'
80746   );
80747 
80748 
80749    --
80750    --
80751    END IF;
80752 
80753        --
80754        -- Update the line information that should be overwritten
80755        --
80756        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80757                                          p_header_num   => 1);
80758        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80759 
80760        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80761 
80762        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80763           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80764        END IF;
80765 
80766       --
80767       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80768       --
80769       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80770           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80771       ELSE
80772           ---------------------------------------------------------------------------------------------------
80773           -- 4262811a Switch Sign
80774           ---------------------------------------------------------------------------------------------------
80775           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80776           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80777                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80778           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80779                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80780           -- 5132302
80781           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80782                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80783 
80784       END IF;
80785 
80786       -- 4955764
80787       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80788       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80789 
80790 
80791       XLA_AE_LINES_PKG.ValidateCurrentLine;
80792       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80793 
80794       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80795                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80796                ,p_balance_type_code => l_balance_type_code);
80797 
80798    END IF;
80799 
80800    -----------------------------------------------------------------------------------------
80801    -- 4262811 Multiperiod Accounting
80802    -----------------------------------------------------------------------------------------
80803      -- No MPA option is assigned.
80804 
80805 
80806 END IF;
80807 END IF;
80808 --
80809 
80810 --
80811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80812    trace
80813       (p_msg      => 'END of AcctLineType_142'
80814       ,p_level    => C_LEVEL_PROCEDURE
80815       ,p_module   => l_log_module);
80816 END IF;
80817 --
80818 EXCEPTION
80819   WHEN xla_exceptions_pkg.application_exception THEN
80820       RAISE;
80821   WHEN OTHERS THEN
80822        xla_exceptions_pkg.raise_message
80823            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_142');
80824 END AcctLineType_142;
80825 --
80826 
80827 ---------------------------------------
80828 --
80829 -- PRIVATE FUNCTION
80830 --         AcctLineType_143
80831 --
80832 ---------------------------------------
80833 PROCEDURE AcctLineType_143 (
80834   p_application_id        IN NUMBER
80835  ,p_event_id              IN NUMBER
80836  ,p_calculate_acctd_flag  IN VARCHAR2
80837  ,p_calculate_g_l_flag    IN VARCHAR2
80838  ,p_actual_flag           IN OUT VARCHAR2
80839  ,p_balance_type_code     OUT VARCHAR2
80840  ,p_gain_or_loss_ref      OUT VARCHAR2
80841  
80842 --Payment Currency Code
80843  , p_source_13            IN VARCHAR2
80844 --Accounting Reversal Indicator
80845  , p_source_52            IN VARCHAR2
80846 --Distribution Link Type
80847  , p_source_54            IN VARCHAR2
80848 --Override Accounted Amount Indicator
80849  , p_source_79            IN VARCHAR2
80850  , p_source_79_meaning    IN VARCHAR2
80851 --Third Party Type
80852  , p_source_82            IN VARCHAR2
80853 --Invoice Distribution Tax Line Identifier
80854  , p_source_85            IN NUMBER
80855 --Invoice Distribution Summary Tax Line Identifier
80859 --Business Flow Invoice Distribution Type
80856  , p_source_87            IN NUMBER
80857 --Business Flow Accounts Payable Application Identifier
80858  , p_source_90            IN NUMBER
80860  , p_source_91            IN VARCHAR2
80861 --Business Flow Invoice Entity Code
80862  , p_source_92            IN VARCHAR2
80863 --Business Flow Invoice Distribution Identifier
80864  , p_source_93            IN NUMBER
80865 --Business Flow Invoice Identifier
80866  , p_source_94            IN NUMBER
80867 --When to Account for Payment Option
80868  , p_source_96            IN VARCHAR2
80869 --Payment Distribution Type
80870  , p_source_97            IN VARCHAR2
80871  , p_source_97_meaning    IN VARCHAR2
80872 --Payment Distribution Amount
80873  , p_source_98            IN NUMBER
80874 --Payment Distribution Identifier
80875  , p_source_103            IN NUMBER
80876 --Payment Distribution Reversed Identifier
80877  , p_source_111            IN NUMBER
80878 --Payment Distribution (Invoice Rate) Ledger Amount
80879  , p_source_116            IN NUMBER
80880 --Payment Type
80881  , p_source_122            IN VARCHAR2
80882  , p_source_122_meaning    IN VARCHAR2
80883 --Invoice Type Paid
80884  , p_source_160            IN VARCHAR2
80885  , p_source_160_meaning    IN VARCHAR2
80886 --Withholding at Payment Indicator
80887  , p_source_161            IN VARCHAR2
80888  , p_source_161_meaning    IN VARCHAR2
80889 )
80890 IS
80891 
80892 l_component_type              VARCHAR2(80);
80893 l_component_code              VARCHAR2(30);
80894 l_component_type_code         VARCHAR2(1);
80895 l_component_appl_id           INTEGER;
80896 l_amb_context_code            VARCHAR2(30);
80897 l_entity_code                 VARCHAR2(30);
80898 l_event_class_code            VARCHAR2(30);
80899 l_ae_header_id                NUMBER;
80900 l_event_type_code             VARCHAR2(30);
80901 l_line_definition_code        VARCHAR2(30);
80902 l_line_definition_owner_code  VARCHAR2(1);
80903 --
80904 -- adr variables
80905 l_segment                     VARCHAR2(30);
80906 l_ccid                        NUMBER;
80907 l_adr_transaction_coa_id      NUMBER;
80908 l_adr_accounting_coa_id       NUMBER;
80909 l_adr_flexfield_segment_code  VARCHAR2(30);
80910 l_adr_flex_value_set_id       NUMBER;
80911 l_adr_value_type_code         VARCHAR2(30);
80912 l_adr_value_combination_id    NUMBER;
80913 l_adr_value_segment_code      VARCHAR2(30);
80914 
80915 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80916 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80917 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80918 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80919 
80920 -- 4262811 Variables ------------------------------------------------------------------------------------------
80921 l_entered_amt_idx             NUMBER;
80922 l_accted_amt_idx              NUMBER;
80923 l_acc_rev_flag                VARCHAR2(1);
80924 l_accrual_line_num            NUMBER;
80925 l_tmp_amt                     NUMBER;
80926 l_acc_rev_natural_side_code   VARCHAR2(1);
80927 
80928 l_num_entries                 NUMBER;
80929 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80930 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80931 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80932 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80933 l_recog_line_1                NUMBER;
80934 l_recog_line_2                NUMBER;
80935 
80936 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80937 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80938 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80939 
80940 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80941 
80942 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80943 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80944 
80945 ---------------------------------------------------------------------------------------------------------------
80946 
80947 
80948 --
80949 -- bulk performance
80950 --
80951 l_balance_type_code           VARCHAR2(1);
80952 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80953 l_log_module                  VARCHAR2(240);
80954 
80955 --
80956 -- Upgrade strategy
80957 --
80958 l_actual_upg_option           VARCHAR2(1);
80959 l_enc_upg_option           VARCHAR2(1);
80960 
80961 --
80962 BEGIN
80963 --
80964 IF g_log_enabled THEN
80965       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
80966 END IF;
80967 --
80968 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80969 
80970       trace
80971          (p_msg      => 'BEGIN of AcctLineType_143'
80972          ,p_level    => C_LEVEL_PROCEDURE
80973          ,p_module   => l_log_module);
80974 
80975 END IF;
80976 --
80977 l_component_type             := 'AMB_JLT';
80978 l_component_code             := 'AP_LIAB_AWT_CLEAR';
80979 l_component_type_code        := 'S';
80980 l_component_appl_id          :=  200;
80981 l_amb_context_code           := 'DEFAULT';
80982 l_entity_code                := 'AP_PAYMENTS';
80983 l_event_class_code           := 'RECONCILED PAYMENTS';
80984 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
80988 l_balance_type_code          := 'A';
80985 l_line_definition_owner_code := 'S';
80986 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
80987 --
80989 l_segment                     := NULL;
80990 l_ccid                        := NULL;
80991 l_adr_transaction_coa_id      := NULL;
80992 l_adr_accounting_coa_id       := NULL;
80993 l_adr_flexfield_segment_code  := NULL;
80994 l_adr_flex_value_set_id       := NULL;
80995 l_adr_value_type_code         := NULL;
80996 l_adr_value_combination_id    := NULL;
80997 l_adr_value_segment_code      := NULL;
80998 
80999 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81000 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
81001 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81002 l_budgetary_control_flag     := 'N';
81003 
81004 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81005 l_bflow_applied_to_amt       := NULL; -- 5132302
81006 l_entered_amt_idx            := NULL;          -- 4262811
81007 l_accted_amt_idx             := NULL;          -- 4262811
81008 l_acc_rev_flag               := NULL;          -- 4262811
81009 l_accrual_line_num           := NULL;          -- 4262811
81010 l_tmp_amt                    := NULL;          -- 4262811
81011 --
81012  
81013 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81014     l_balance_type_code <> 'B' THEN
81015 IF NVL(p_source_96,'
81016 ') =  'CLEAR_CLEAR' AND 
81017 NVL(p_source_160,'
81018 ') <>  'INTEREST' AND 
81019 NVL(p_source_97,'
81020 ') =  'AWT' AND 
81021 NVL(p_source_161,'
81022 ') =  'Y' AND 
81023 NVL(p_source_122,'
81024 ') <>  'R'
81025  THEN 
81026 
81027    --
81028    XLA_AE_LINES_PKG.SetNewLine;
81029 
81030    p_balance_type_code          := l_balance_type_code;
81031    -- set the flag so later we will know whether the gain loss line needs to be created
81032    
81033    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81034      p_actual_flag :='A';
81035    END IF;
81036 
81037    --
81038    -- bulk performance
81039    --
81040    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81041                                       p_header_num   => 0); -- 4262811
81042    --
81043    -- set accounting line options
81044    --
81045    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81046            p_natural_side_code          => 'D'
81047          , p_gain_or_loss_flag          => 'N'
81048          , p_gl_transfer_mode_code      => 'S'
81049          , p_acct_entry_type_code       => 'A'
81050          , p_switch_side_flag           => 'Y'
81051          , p_merge_duplicate_code       => 'A'
81052          );
81053    --
81054    l_acc_rev_natural_side_code := 'C';  -- 4262811
81055    -- 
81056    --
81057    -- set accounting line type info
81058    --
81059    xla_ae_lines_pkg.SetAcctLineType
81060       (p_component_type             => l_component_type
81061       ,p_event_type_code            => l_event_type_code
81062       ,p_line_definition_owner_code => l_line_definition_owner_code
81063       ,p_line_definition_code       => l_line_definition_code
81064       ,p_accounting_line_code       => l_component_code
81065       ,p_accounting_line_type_code  => l_component_type_code
81066       ,p_accounting_line_appl_id    => l_component_appl_id
81067       ,p_amb_context_code           => l_amb_context_code
81068       ,p_entity_code                => l_entity_code
81069       ,p_event_class_code           => l_event_class_code);
81070    --
81071    -- set accounting class
81072    --
81073    xla_ae_lines_pkg.SetAcctClass(
81074            p_accounting_class_code  => 'LIABILITY'
81075          , p_ae_header_id           => l_ae_header_id
81076          );
81077 
81078    --
81079    -- set rounding class
81080    --
81081    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81082                       'LIABILITY';
81083 
81084    --
81085    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81086    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81087    --
81088    -- bulk performance
81089    --
81090    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81091 
81092    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81093       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81094 
81095    -- 4955764
81096    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81097       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81098 
81099    -- 4458381 Public Sector Enh
81100    
81101    --
81102    -- set accounting attributes for the line type
81103    --
81104    l_entered_amt_idx := 10;
81105    l_accted_amt_idx  := 12;
81106    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81107    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81108    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
81109    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81110    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
81111    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81112    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
81116    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
81113    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81114    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
81115    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81117    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81118    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
81119    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81120    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
81121    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81122    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
81123    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81124    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
81125    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81126    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
81127    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81128    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
81129    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
81130    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
81131    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
81132    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
81133    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
81134    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
81135    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
81136    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
81137    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
81138    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
81139    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
81140    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
81141    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
81142    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
81143    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
81144    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
81145 
81146    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81147    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81148 
81149    ---------------------------------------------------------------------------------------------------------------
81150    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81151    ---------------------------------------------------------------------------------------------------------------
81152    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81153 
81154    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81155    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81156 
81157    IF xla_accounting_cache_pkg.GetValueChar
81158          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81159          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81160    AND l_bflow_method_code = 'PRIOR_ENTRY'
81161 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81162    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81163          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81164        )
81165    THEN
81166          xla_ae_lines_pkg.BflowUpgEntry
81167            (p_business_method_code    => l_bflow_method_code
81168            ,p_business_class_code     => l_bflow_class_code
81169            ,p_balance_type            => l_balance_type_code);
81170    ELSE
81171       NULL;
81172 XLA_AE_LINES_PKG.business_flow_validation(
81173                                 p_business_method_code     => l_bflow_method_code
81174                                ,p_business_class_code      => l_bflow_class_code
81175                                ,p_inherit_description_flag => l_inherit_desc_flag);
81176    END IF;
81177 
81178    --
81179    -- call analytical criteria
81180    --
81181    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81182    --
81183    -- call description
81184    --
81185    -- No description or it is inherited.
81186    --
81187    -- call ADRs
81188    -- Bug 4922099
81189    --
81190    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81191         (NVL(l_actual_upg_option, 'N') = 'O') OR
81192         (NVL(l_enc_upg_option, 'N') = 'O')
81193       )
81194    THEN
81195    NULL;
81196    --
81197    --
81198    
81199    --
81200    --
81201    END IF;
81202    --
81203    -- Bug 4922099
81204    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81205           (NVL(l_enc_upg_option, 'N') = 'O')
81206         ) AND
81207         (l_bflow_method_code = 'PRIOR_ENTRY')
81208       )
81209    THEN
81210       IF
81211       --
81212       1 = 1
81213       --
81214       THEN
81215       xla_accounting_err_pkg.build_message
81216                                     (p_appli_s_name            => 'XLA'
81217                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81218                                     ,p_token_1                 => 'LINE_NUMBER'
81222                                                                              l_component_type
81219                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81220                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81221                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81223                                                                             ,l_component_code
81224                                                                             ,l_component_type_code
81225                                                                             ,l_component_appl_id
81226                                                                             ,l_amb_context_code
81227                                                                             ,l_entity_code
81228                                                                             ,l_event_class_code
81229                                                                            )
81230                                     ,p_token_3                 => 'OWNER'
81231                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81232                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81233                                                                           ,p_lookup_code    => l_component_type_code
81234                                                                          )
81235                                     ,p_token_4                 => 'PRODUCT_NAME'
81236                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81237                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81238                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81239                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81240                                     ,p_ae_header_id            =>  NULL
81241                                        );
81242 
81243         IF (C_LEVEL_ERROR>= g_log_level) THEN
81244                  trace
81245                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81246                       ,p_level    => C_LEVEL_ERROR
81247                       ,p_module   => l_log_module);
81248         END IF;
81249       END IF;
81250    END IF;
81251    --
81252    --
81253    ------------------------------------------------------------------------------------------------
81254    -- 4219869 Business Flow
81255    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81256    -- Prior Entry.  Currently, the following code is always generated.
81257    ------------------------------------------------------------------------------------------------
81258    -- No ValidateCurrentLine for business flow method of Prior Entry
81259 
81260    ------------------------------------------------------------------------------------
81261    -- 4219869 Business Flow
81262    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81263    ------------------------------------------------------------------------------------
81264    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81265 
81266    ----------------------------------------------------------------------------------
81267    -- 4219869 Business Flow
81268    -- Update journal entry status -- Need to generate this within IF <condition>
81269    ----------------------------------------------------------------------------------
81270    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81271          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81272          ,p_balance_type_code => l_balance_type_code
81273          );
81274 
81275    -------------------------------------------------------------------------------------------
81276    -- 4262811 - Generate the Accrual Reversal lines
81277    -------------------------------------------------------------------------------------------
81278    BEGIN
81279       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81280                               (g_array_event(p_event_id).array_value_num('header_index'));
81281       IF l_acc_rev_flag IS NULL THEN
81282          l_acc_rev_flag := 'N';
81283       END IF;
81284    EXCEPTION
81285       WHEN OTHERS THEN
81286          l_acc_rev_flag := 'N';
81287    END;
81288    --
81289    IF (l_acc_rev_flag = 'Y') THEN
81290 
81291        -- 4645092  ------------------------------------------------------------------------------
81292        -- To allow MPA report to determine if it should generate report process
81293        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81294        ------------------------------------------------------------------------------------------
81295 
81296        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81297        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81298    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81299    -- call ADRs
81300    -- Bug 4922099
81301    --
81302    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81303         (NVL(l_actual_upg_option, 'N') = 'O') OR
81304         (NVL(l_enc_upg_option, 'N') = 'O')
81305       )
81306    THEN
81307    NULL;
81308    --
81309    --
81310    
81311    --
81312    --
81313    END IF;
81317        --
81314 
81315        --
81316        -- Update the line information that should be overwritten
81318        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81319                                          p_header_num   => 1);
81320        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81321 
81322        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81323 
81324        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81325           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81326        END IF;
81327 
81328       --
81329       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81330       --
81331       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81332           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81333       ELSE
81334           ---------------------------------------------------------------------------------------------------
81335           -- 4262811a Switch Sign
81336           ---------------------------------------------------------------------------------------------------
81337           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81338           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81339                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81340           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81341                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81342           -- 5132302
81343           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81344                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81345 
81346       END IF;
81347 
81348       -- 4955764
81349       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81350       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81351 
81352 
81353       XLA_AE_LINES_PKG.ValidateCurrentLine;
81354       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81355 
81356       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81357                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81358                ,p_balance_type_code => l_balance_type_code);
81359 
81360    END IF;
81361 
81362    -----------------------------------------------------------------------------------------
81363    -- 4262811 Multiperiod Accounting
81364    -----------------------------------------------------------------------------------------
81365      -- No MPA option is assigned.
81366 
81367 
81368 END IF;
81369 END IF;
81370 --
81371 
81372 --
81373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81374    trace
81375       (p_msg      => 'END of AcctLineType_143'
81376       ,p_level    => C_LEVEL_PROCEDURE
81377       ,p_module   => l_log_module);
81378 END IF;
81379 --
81380 EXCEPTION
81381   WHEN xla_exceptions_pkg.application_exception THEN
81382       RAISE;
81383   WHEN OTHERS THEN
81384        xla_exceptions_pkg.raise_message
81385            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_143');
81386 END AcctLineType_143;
81387 --
81388 
81389 ---------------------------------------
81390 --
81391 -- PRIVATE FUNCTION
81392 --         AcctLineType_144
81393 --
81394 ---------------------------------------
81395 PROCEDURE AcctLineType_144 (
81396   p_application_id        IN NUMBER
81397  ,p_event_id              IN NUMBER
81398  ,p_calculate_acctd_flag  IN VARCHAR2
81399  ,p_calculate_g_l_flag    IN VARCHAR2
81400  ,p_actual_flag           IN OUT VARCHAR2
81401  ,p_balance_type_code     OUT VARCHAR2
81402  ,p_gain_or_loss_ref      OUT VARCHAR2
81403  
81404 --Payment Currency Code
81405  , p_source_13            IN VARCHAR2
81406 --Accounting Reversal Indicator
81407  , p_source_52            IN VARCHAR2
81408 --Distribution Link Type
81409  , p_source_54            IN VARCHAR2
81410 --Override Accounted Amount Indicator
81411  , p_source_79            IN VARCHAR2
81412  , p_source_79_meaning    IN VARCHAR2
81413 --Third Party Type
81414  , p_source_82            IN VARCHAR2
81415 --Invoice Distribution Tax Line Identifier
81416  , p_source_85            IN NUMBER
81417 --Invoice Distribution Tax Distribution Identifier from Tax
81418  , p_source_86            IN NUMBER
81419 --Invoice Distribution Summary Tax Line Identifier
81420  , p_source_87            IN NUMBER
81421 --Business Flow Accounts Payable Application Identifier
81422  , p_source_90            IN NUMBER
81423 --Business Flow Invoice Distribution Type
81424  , p_source_91            IN VARCHAR2
81425 --Business Flow Invoice Entity Code
81426  , p_source_92            IN VARCHAR2
81427 --Business Flow Invoice Distribution Identifier
81428  , p_source_93            IN NUMBER
81429 --Business Flow Invoice Identifier
81430  , p_source_94            IN NUMBER
81431 --When to Account for Payment Option
81432  , p_source_96            IN VARCHAR2
81433 --Payment Distribution Type
81434  , p_source_97            IN VARCHAR2
81435  , p_source_97_meaning    IN VARCHAR2
81439  , p_source_103            IN NUMBER
81436 --Payment Distribution Amount
81437  , p_source_98            IN NUMBER
81438 --Payment Distribution Identifier
81440 --Payment Distribution Reversed Identifier
81441  , p_source_111            IN NUMBER
81442 --Payment Distribution (Invoice Rate) Ledger Amount
81443  , p_source_116            IN NUMBER
81444 --Payment Type
81445  , p_source_122            IN VARCHAR2
81446  , p_source_122_meaning    IN VARCHAR2
81447 --Payment Processing Type
81448  , p_source_123            IN VARCHAR2
81449 --Invoice Distribution Amount of the Payment Distribution
81450  , p_source_124            IN NUMBER
81451 --Invoice Type Paid
81452  , p_source_160            IN VARCHAR2
81453  , p_source_160_meaning    IN VARCHAR2
81454 --Withholding at Payment Indicator
81455  , p_source_161            IN VARCHAR2
81456  , p_source_161_meaning    IN VARCHAR2
81457 )
81458 IS
81459 
81460 l_component_type              VARCHAR2(80);
81461 l_component_code              VARCHAR2(30);
81462 l_component_type_code         VARCHAR2(1);
81463 l_component_appl_id           INTEGER;
81464 l_amb_context_code            VARCHAR2(30);
81465 l_entity_code                 VARCHAR2(30);
81466 l_event_class_code            VARCHAR2(30);
81467 l_ae_header_id                NUMBER;
81468 l_event_type_code             VARCHAR2(30);
81469 l_line_definition_code        VARCHAR2(30);
81470 l_line_definition_owner_code  VARCHAR2(1);
81471 --
81472 -- adr variables
81473 l_segment                     VARCHAR2(30);
81474 l_ccid                        NUMBER;
81475 l_adr_transaction_coa_id      NUMBER;
81476 l_adr_accounting_coa_id       NUMBER;
81477 l_adr_flexfield_segment_code  VARCHAR2(30);
81478 l_adr_flex_value_set_id       NUMBER;
81479 l_adr_value_type_code         VARCHAR2(30);
81480 l_adr_value_combination_id    NUMBER;
81481 l_adr_value_segment_code      VARCHAR2(30);
81482 
81483 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81484 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81485 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81486 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81487 
81488 -- 4262811 Variables ------------------------------------------------------------------------------------------
81489 l_entered_amt_idx             NUMBER;
81490 l_accted_amt_idx              NUMBER;
81491 l_acc_rev_flag                VARCHAR2(1);
81492 l_accrual_line_num            NUMBER;
81493 l_tmp_amt                     NUMBER;
81494 l_acc_rev_natural_side_code   VARCHAR2(1);
81495 
81496 l_num_entries                 NUMBER;
81497 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81498 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81499 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81500 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81501 l_recog_line_1                NUMBER;
81502 l_recog_line_2                NUMBER;
81503 
81504 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81505 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81506 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81507 
81508 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81509 
81510 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81511 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81512 
81513 ---------------------------------------------------------------------------------------------------------------
81514 
81515 
81516 --
81517 -- bulk performance
81518 --
81519 l_balance_type_code           VARCHAR2(1);
81520 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81521 l_log_module                  VARCHAR2(240);
81522 
81523 --
81524 -- Upgrade strategy
81525 --
81526 l_actual_upg_option           VARCHAR2(1);
81527 l_enc_upg_option           VARCHAR2(1);
81528 
81529 --
81530 BEGIN
81531 --
81532 IF g_log_enabled THEN
81533       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
81534 END IF;
81535 --
81536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81537 
81538       trace
81539          (p_msg      => 'BEGIN of AcctLineType_144'
81540          ,p_level    => C_LEVEL_PROCEDURE
81541          ,p_module   => l_log_module);
81542 
81543 END IF;
81544 --
81545 l_component_type             := 'AMB_JLT';
81546 l_component_code             := 'AP_LIAB_AWT_PMT';
81547 l_component_type_code        := 'S';
81548 l_component_appl_id          :=  200;
81549 l_amb_context_code           := 'DEFAULT';
81550 l_entity_code                := 'AP_PAYMENTS';
81551 l_event_class_code           := 'PAYMENTS';
81552 l_event_type_code            := 'PAYMENTS_ALL';
81553 l_line_definition_owner_code := 'S';
81554 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
81555 --
81556 l_balance_type_code          := 'A';
81557 l_segment                     := NULL;
81558 l_ccid                        := NULL;
81559 l_adr_transaction_coa_id      := NULL;
81560 l_adr_accounting_coa_id       := NULL;
81561 l_adr_flexfield_segment_code  := NULL;
81562 l_adr_flex_value_set_id       := NULL;
81563 l_adr_value_type_code         := NULL;
81564 l_adr_value_combination_id    := NULL;
81568 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
81565 l_adr_value_segment_code      := NULL;
81566 
81567 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81569 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81570 l_budgetary_control_flag     := 'N';
81571 
81572 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81573 l_bflow_applied_to_amt       := NULL; -- 5132302
81574 l_entered_amt_idx            := NULL;          -- 4262811
81575 l_accted_amt_idx             := NULL;          -- 4262811
81576 l_acc_rev_flag               := NULL;          -- 4262811
81577 l_accrual_line_num           := NULL;          -- 4262811
81578 l_tmp_amt                    := NULL;          -- 4262811
81579 --
81580  
81581 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81582     l_balance_type_code <> 'B' THEN
81583 IF NVL(p_source_96,'
81584 ') <>  'CLEAR_CLEAR' AND 
81585 NVL(p_source_160,'
81586 ') <>  'INTEREST' AND 
81587 NVL(p_source_97,'
81588 ') =  'AWT' AND 
81589 NVL(p_source_161,'
81590 ') =  'Y' AND 
81591 NVL(p_source_122,'
81592 ') <>  'R' AND 
81593 NVL(p_source_123,'
81594 ') <>  'PAYMENTCARD'
81595  THEN 
81596 
81597    --
81598    XLA_AE_LINES_PKG.SetNewLine;
81599 
81600    p_balance_type_code          := l_balance_type_code;
81601    -- set the flag so later we will know whether the gain loss line needs to be created
81602    
81603    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81604      p_actual_flag :='A';
81605    END IF;
81606 
81607    --
81608    -- bulk performance
81609    --
81610    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81611                                       p_header_num   => 0); -- 4262811
81612    --
81613    -- set accounting line options
81614    --
81615    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81616            p_natural_side_code          => 'D'
81617          , p_gain_or_loss_flag          => 'N'
81618          , p_gl_transfer_mode_code      => 'S'
81619          , p_acct_entry_type_code       => 'A'
81620          , p_switch_side_flag           => 'Y'
81621          , p_merge_duplicate_code       => 'A'
81622          );
81623    --
81624    l_acc_rev_natural_side_code := 'C';  -- 4262811
81625    -- 
81626    --
81627    -- set accounting line type info
81628    --
81629    xla_ae_lines_pkg.SetAcctLineType
81630       (p_component_type             => l_component_type
81631       ,p_event_type_code            => l_event_type_code
81632       ,p_line_definition_owner_code => l_line_definition_owner_code
81633       ,p_line_definition_code       => l_line_definition_code
81634       ,p_accounting_line_code       => l_component_code
81635       ,p_accounting_line_type_code  => l_component_type_code
81636       ,p_accounting_line_appl_id    => l_component_appl_id
81637       ,p_amb_context_code           => l_amb_context_code
81638       ,p_entity_code                => l_entity_code
81639       ,p_event_class_code           => l_event_class_code);
81640    --
81641    -- set accounting class
81642    --
81643    xla_ae_lines_pkg.SetAcctClass(
81644            p_accounting_class_code  => 'LIABILITY'
81645          , p_ae_header_id           => l_ae_header_id
81646          );
81647 
81648    --
81649    -- set rounding class
81650    --
81651    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81652                       'LIABILITY';
81653 
81654    --
81655    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81656    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81657    --
81658    -- bulk performance
81659    --
81660    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81661 
81662    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81663       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81664 
81665    -- 4955764
81666    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81667       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81668 
81669    -- 4458381 Public Sector Enh
81670    
81671    --
81672    -- set accounting attributes for the line type
81673    --
81674    l_entered_amt_idx := 10;
81675    l_accted_amt_idx  := 12;
81676    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81677    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81678    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
81679    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81680    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
81681    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81682    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
81683    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81684    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
81685    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81686    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
81687    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81688    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
81689    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81693    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81690    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
81691    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81692    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
81694    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
81695    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81696    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
81697    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81698    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
81699    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
81700    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
81701    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
81702    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
81703    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
81704    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
81705    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
81706    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
81707    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
81708    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
81709    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
81710    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
81711    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
81712    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
81713    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
81714    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
81715 
81716    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81717    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81718 
81719    ---------------------------------------------------------------------------------------------------------------
81720    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81721    ---------------------------------------------------------------------------------------------------------------
81722    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81723 
81724    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81725    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81726 
81727    IF xla_accounting_cache_pkg.GetValueChar
81728          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81729          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81730    AND l_bflow_method_code = 'PRIOR_ENTRY'
81731 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81732    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81733          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81734        )
81735    THEN
81736          xla_ae_lines_pkg.BflowUpgEntry
81737            (p_business_method_code    => l_bflow_method_code
81738            ,p_business_class_code     => l_bflow_class_code
81739            ,p_balance_type            => l_balance_type_code);
81740    ELSE
81741       NULL;
81742 XLA_AE_LINES_PKG.business_flow_validation(
81743                                 p_business_method_code     => l_bflow_method_code
81744                                ,p_business_class_code      => l_bflow_class_code
81745                                ,p_inherit_description_flag => l_inherit_desc_flag);
81746    END IF;
81747 
81748    --
81749    -- call analytical criteria
81750    --
81751    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81752    --
81753    -- call description
81754    --
81755    -- No description or it is inherited.
81756    --
81757    -- call ADRs
81758    -- Bug 4922099
81759    --
81760    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81761         (NVL(l_actual_upg_option, 'N') = 'O') OR
81762         (NVL(l_enc_upg_option, 'N') = 'O')
81763       )
81764    THEN
81765    NULL;
81766    --
81767    --
81768    
81769    --
81770    --
81771    END IF;
81772    --
81773    -- Bug 4922099
81774    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81775           (NVL(l_enc_upg_option, 'N') = 'O')
81776         ) AND
81777         (l_bflow_method_code = 'PRIOR_ENTRY')
81778       )
81779    THEN
81780       IF
81781       --
81782       1 = 1
81783       --
81784       THEN
81785       xla_accounting_err_pkg.build_message
81786                                     (p_appli_s_name            => 'XLA'
81787                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81788                                     ,p_token_1                 => 'LINE_NUMBER'
81789                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81790                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81791                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81792                                                                              l_component_type
81793                                                                             ,l_component_code
81797                                                                             ,l_entity_code
81794                                                                             ,l_component_type_code
81795                                                                             ,l_component_appl_id
81796                                                                             ,l_amb_context_code
81798                                                                             ,l_event_class_code
81799                                                                            )
81800                                     ,p_token_3                 => 'OWNER'
81801                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81802                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81803                                                                           ,p_lookup_code    => l_component_type_code
81804                                                                          )
81805                                     ,p_token_4                 => 'PRODUCT_NAME'
81806                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81807                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81808                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81809                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81810                                     ,p_ae_header_id            =>  NULL
81811                                        );
81812 
81813         IF (C_LEVEL_ERROR>= g_log_level) THEN
81814                  trace
81815                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81816                       ,p_level    => C_LEVEL_ERROR
81817                       ,p_module   => l_log_module);
81818         END IF;
81819       END IF;
81820    END IF;
81821    --
81822    --
81823    ------------------------------------------------------------------------------------------------
81824    -- 4219869 Business Flow
81825    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81826    -- Prior Entry.  Currently, the following code is always generated.
81827    ------------------------------------------------------------------------------------------------
81828    -- No ValidateCurrentLine for business flow method of Prior Entry
81829 
81830    ------------------------------------------------------------------------------------
81831    -- 4219869 Business Flow
81832    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81833    ------------------------------------------------------------------------------------
81834    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81835 
81836    ----------------------------------------------------------------------------------
81837    -- 4219869 Business Flow
81838    -- Update journal entry status -- Need to generate this within IF <condition>
81839    ----------------------------------------------------------------------------------
81840    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81841          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81842          ,p_balance_type_code => l_balance_type_code
81843          );
81844 
81845    -------------------------------------------------------------------------------------------
81846    -- 4262811 - Generate the Accrual Reversal lines
81847    -------------------------------------------------------------------------------------------
81848    BEGIN
81849       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81850                               (g_array_event(p_event_id).array_value_num('header_index'));
81851       IF l_acc_rev_flag IS NULL THEN
81852          l_acc_rev_flag := 'N';
81853       END IF;
81854    EXCEPTION
81855       WHEN OTHERS THEN
81856          l_acc_rev_flag := 'N';
81857    END;
81858    --
81859    IF (l_acc_rev_flag = 'Y') THEN
81860 
81861        -- 4645092  ------------------------------------------------------------------------------
81862        -- To allow MPA report to determine if it should generate report process
81863        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81864        ------------------------------------------------------------------------------------------
81865 
81866        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81867        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81868    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81869    -- call ADRs
81870    -- Bug 4922099
81871    --
81872    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81873         (NVL(l_actual_upg_option, 'N') = 'O') OR
81874         (NVL(l_enc_upg_option, 'N') = 'O')
81875       )
81876    THEN
81877    NULL;
81878    --
81879    --
81880    
81881    --
81882    --
81883    END IF;
81884 
81885        --
81886        -- Update the line information that should be overwritten
81887        --
81888        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81889                                          p_header_num   => 1);
81890        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81891 
81892        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81893 
81897 
81894        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81895           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81896        END IF;
81898       --
81899       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81900       --
81901       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81902           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81903       ELSE
81904           ---------------------------------------------------------------------------------------------------
81905           -- 4262811a Switch Sign
81906           ---------------------------------------------------------------------------------------------------
81907           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81908           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81909                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81910           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81911                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81912           -- 5132302
81913           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81914                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81915 
81916       END IF;
81917 
81918       -- 4955764
81919       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81920       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81921 
81922 
81923       XLA_AE_LINES_PKG.ValidateCurrentLine;
81924       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81925 
81926       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81927                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81928                ,p_balance_type_code => l_balance_type_code);
81929 
81930    END IF;
81931 
81932    -----------------------------------------------------------------------------------------
81933    -- 4262811 Multiperiod Accounting
81934    -----------------------------------------------------------------------------------------
81935      -- No MPA option is assigned.
81936 
81937 
81938 END IF;
81939 END IF;
81940 --
81941 
81942 --
81943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81944    trace
81945       (p_msg      => 'END of AcctLineType_144'
81946       ,p_level    => C_LEVEL_PROCEDURE
81947       ,p_module   => l_log_module);
81948 END IF;
81949 --
81950 EXCEPTION
81951   WHEN xla_exceptions_pkg.application_exception THEN
81952       RAISE;
81953   WHEN OTHERS THEN
81954        xla_exceptions_pkg.raise_message
81955            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_144');
81956 END AcctLineType_144;
81957 --
81958 
81959 ---------------------------------------
81960 --
81961 -- PRIVATE FUNCTION
81962 --         AcctLineType_145
81963 --
81964 ---------------------------------------
81965 PROCEDURE AcctLineType_145 (
81966   p_application_id        IN NUMBER
81967  ,p_event_id              IN NUMBER
81968  ,p_calculate_acctd_flag  IN VARCHAR2
81969  ,p_calculate_g_l_flag    IN VARCHAR2
81970  ,p_actual_flag           IN OUT VARCHAR2
81971  ,p_balance_type_code     OUT VARCHAR2
81972  ,p_gain_or_loss_ref      OUT VARCHAR2
81973  
81974 --Payment Currency Code
81975  , p_source_13            IN VARCHAR2
81976 --Accounting Reversal Indicator
81977  , p_source_52            IN VARCHAR2
81978 --Distribution Link Type
81979  , p_source_54            IN VARCHAR2
81980 --Override Accounted Amount Indicator
81981  , p_source_79            IN VARCHAR2
81982  , p_source_79_meaning    IN VARCHAR2
81983 --Third Party Type
81984  , p_source_82            IN VARCHAR2
81985 --Invoice Distribution Tax Line Identifier
81986  , p_source_85            IN NUMBER
81987 --Invoice Distribution Summary Tax Line Identifier
81988  , p_source_87            IN NUMBER
81989 --Business Flow Accounts Payable Application Identifier
81990  , p_source_90            IN NUMBER
81991 --Business Flow Invoice Distribution Type
81992  , p_source_91            IN VARCHAR2
81993 --Business Flow Invoice Entity Code
81994  , p_source_92            IN VARCHAR2
81995 --Business Flow Invoice Distribution Identifier
81996  , p_source_93            IN NUMBER
81997 --Business Flow Invoice Identifier
81998  , p_source_94            IN NUMBER
81999 --When to Account for Payment Option
82000  , p_source_96            IN VARCHAR2
82001 --Payment Distribution Type
82002  , p_source_97            IN VARCHAR2
82003  , p_source_97_meaning    IN VARCHAR2
82004 --Payment Distribution Amount
82005  , p_source_98            IN NUMBER
82006 --Payment Distribution Identifier
82007  , p_source_103            IN NUMBER
82008 --Payment Distribution Reversed Identifier
82009  , p_source_111            IN NUMBER
82010 --Payment Distribution (Invoice Rate) Ledger Amount
82011  , p_source_116            IN NUMBER
82012 --Invoice Type Paid
82013  , p_source_160            IN VARCHAR2
82014  , p_source_160_meaning    IN VARCHAR2
82015 )
82016 IS
82017 
82021 l_component_appl_id           INTEGER;
82018 l_component_type              VARCHAR2(80);
82019 l_component_code              VARCHAR2(30);
82020 l_component_type_code         VARCHAR2(1);
82022 l_amb_context_code            VARCHAR2(30);
82023 l_entity_code                 VARCHAR2(30);
82024 l_event_class_code            VARCHAR2(30);
82025 l_ae_header_id                NUMBER;
82026 l_event_type_code             VARCHAR2(30);
82027 l_line_definition_code        VARCHAR2(30);
82028 l_line_definition_owner_code  VARCHAR2(1);
82029 --
82030 -- adr variables
82031 l_segment                     VARCHAR2(30);
82032 l_ccid                        NUMBER;
82033 l_adr_transaction_coa_id      NUMBER;
82034 l_adr_accounting_coa_id       NUMBER;
82035 l_adr_flexfield_segment_code  VARCHAR2(30);
82036 l_adr_flex_value_set_id       NUMBER;
82037 l_adr_value_type_code         VARCHAR2(30);
82038 l_adr_value_combination_id    NUMBER;
82039 l_adr_value_segment_code      VARCHAR2(30);
82040 
82041 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82042 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82043 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82044 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82045 
82046 -- 4262811 Variables ------------------------------------------------------------------------------------------
82047 l_entered_amt_idx             NUMBER;
82048 l_accted_amt_idx              NUMBER;
82049 l_acc_rev_flag                VARCHAR2(1);
82050 l_accrual_line_num            NUMBER;
82051 l_tmp_amt                     NUMBER;
82052 l_acc_rev_natural_side_code   VARCHAR2(1);
82053 
82054 l_num_entries                 NUMBER;
82055 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82056 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82057 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82058 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82059 l_recog_line_1                NUMBER;
82060 l_recog_line_2                NUMBER;
82061 
82062 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82063 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82064 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82065 
82066 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82067 
82068 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82069 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82070 
82071 ---------------------------------------------------------------------------------------------------------------
82072 
82073 
82074 --
82075 -- bulk performance
82076 --
82077 l_balance_type_code           VARCHAR2(1);
82078 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82079 l_log_module                  VARCHAR2(240);
82080 
82081 --
82082 -- Upgrade strategy
82083 --
82084 l_actual_upg_option           VARCHAR2(1);
82085 l_enc_upg_option           VARCHAR2(1);
82086 
82087 --
82088 BEGIN
82089 --
82090 IF g_log_enabled THEN
82091       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
82092 END IF;
82093 --
82094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82095 
82096       trace
82097          (p_msg      => 'BEGIN of AcctLineType_145'
82098          ,p_level    => C_LEVEL_PROCEDURE
82099          ,p_module   => l_log_module);
82100 
82101 END IF;
82102 --
82103 l_component_type             := 'AMB_JLT';
82104 l_component_code             := 'AP_LIAB_CLEAR';
82105 l_component_type_code        := 'S';
82106 l_component_appl_id          :=  200;
82107 l_amb_context_code           := 'DEFAULT';
82108 l_entity_code                := 'AP_PAYMENTS';
82109 l_event_class_code           := 'RECONCILED PAYMENTS';
82110 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
82111 l_line_definition_owner_code := 'S';
82112 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
82113 --
82114 l_balance_type_code          := 'A';
82115 l_segment                     := NULL;
82116 l_ccid                        := NULL;
82117 l_adr_transaction_coa_id      := NULL;
82118 l_adr_accounting_coa_id       := NULL;
82119 l_adr_flexfield_segment_code  := NULL;
82120 l_adr_flex_value_set_id       := NULL;
82121 l_adr_value_type_code         := NULL;
82122 l_adr_value_combination_id    := NULL;
82123 l_adr_value_segment_code      := NULL;
82124 
82125 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
82126 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82127 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82128 l_budgetary_control_flag     := 'N';
82129 
82130 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82131 l_bflow_applied_to_amt       := NULL; -- 5132302
82132 l_entered_amt_idx            := NULL;          -- 4262811
82133 l_accted_amt_idx             := NULL;          -- 4262811
82134 l_acc_rev_flag               := NULL;          -- 4262811
82135 l_accrual_line_num           := NULL;          -- 4262811
82136 l_tmp_amt                    := NULL;          -- 4262811
82137 --
82138  
82139 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82140     l_balance_type_code <> 'B' THEN
82141 IF NVL(p_source_96,'
82142 ') =  'CLEAR_CLEAR' AND 
82146 ') =  'ROUNDING' OR 
82143 NVL(p_source_160,'
82144 ') <>  'INTEREST' AND 
82145 (NVL(p_source_97,'
82147 NVL(p_source_97,'
82148 ') =  'CASH' OR 
82149 NVL(p_source_97,'
82150 ') =  'DISCOUNT')
82151  THEN 
82152 
82153    --
82154    XLA_AE_LINES_PKG.SetNewLine;
82155 
82156    p_balance_type_code          := l_balance_type_code;
82157    -- set the flag so later we will know whether the gain loss line needs to be created
82158    
82159    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82160      p_actual_flag :='A';
82161    END IF;
82162 
82163    --
82164    -- bulk performance
82165    --
82166    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82167                                       p_header_num   => 0); -- 4262811
82168    --
82169    -- set accounting line options
82170    --
82171    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82172            p_natural_side_code          => 'D'
82173          , p_gain_or_loss_flag          => 'N'
82174          , p_gl_transfer_mode_code      => 'S'
82175          , p_acct_entry_type_code       => 'A'
82176          , p_switch_side_flag           => 'Y'
82177          , p_merge_duplicate_code       => 'A'
82178          );
82179    --
82180    l_acc_rev_natural_side_code := 'C';  -- 4262811
82181    -- 
82182    --
82183    -- set accounting line type info
82184    --
82185    xla_ae_lines_pkg.SetAcctLineType
82186       (p_component_type             => l_component_type
82187       ,p_event_type_code            => l_event_type_code
82188       ,p_line_definition_owner_code => l_line_definition_owner_code
82189       ,p_line_definition_code       => l_line_definition_code
82190       ,p_accounting_line_code       => l_component_code
82191       ,p_accounting_line_type_code  => l_component_type_code
82192       ,p_accounting_line_appl_id    => l_component_appl_id
82193       ,p_amb_context_code           => l_amb_context_code
82194       ,p_entity_code                => l_entity_code
82195       ,p_event_class_code           => l_event_class_code);
82196    --
82197    -- set accounting class
82198    --
82199    xla_ae_lines_pkg.SetAcctClass(
82200            p_accounting_class_code  => 'LIABILITY'
82201          , p_ae_header_id           => l_ae_header_id
82202          );
82203 
82204    --
82205    -- set rounding class
82206    --
82207    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82208                       'LIABILITY';
82209 
82210    --
82211    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82212    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82213    --
82214    -- bulk performance
82215    --
82216    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82217 
82218    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82219       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82220 
82221    -- 4955764
82222    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82223       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82224 
82225    -- 4458381 Public Sector Enh
82226    
82227    --
82228    -- set accounting attributes for the line type
82229    --
82230    l_entered_amt_idx := 10;
82231    l_accted_amt_idx  := 12;
82232    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
82233    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82234    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
82235    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
82236    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
82237    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
82238    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
82239    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82240    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
82241    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
82242    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
82243    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
82244    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
82245    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82246    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
82247    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
82248    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
82249    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
82250    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
82251    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
82252    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
82253    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
82254    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
82255    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
82256    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
82257    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
82258    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
82259    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
82260    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
82261    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
82265    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
82262    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
82263    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
82264    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
82266    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
82267    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
82268    l_rec_acct_attrs.array_num_value(18)  := p_source_85;
82269    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
82270    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
82271 
82272    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82273    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82274 
82275    ---------------------------------------------------------------------------------------------------------------
82276    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82277    ---------------------------------------------------------------------------------------------------------------
82278    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82279 
82280    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82281    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82282 
82283    IF xla_accounting_cache_pkg.GetValueChar
82284          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82285          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82286    AND l_bflow_method_code = 'PRIOR_ENTRY'
82287 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82288    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82289          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82290        )
82291    THEN
82292          xla_ae_lines_pkg.BflowUpgEntry
82293            (p_business_method_code    => l_bflow_method_code
82294            ,p_business_class_code     => l_bflow_class_code
82295            ,p_balance_type            => l_balance_type_code);
82296    ELSE
82297       NULL;
82298 XLA_AE_LINES_PKG.business_flow_validation(
82299                                 p_business_method_code     => l_bflow_method_code
82300                                ,p_business_class_code      => l_bflow_class_code
82301                                ,p_inherit_description_flag => l_inherit_desc_flag);
82302    END IF;
82303 
82304    --
82305    -- call analytical criteria
82306    --
82307    -- Inherited Analytical Criteria for business flow method of Prior Entry.
82308    --
82309    -- call description
82310    --
82311    -- No description or it is inherited.
82312    --
82313    -- call ADRs
82314    -- Bug 4922099
82315    --
82316    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82317         (NVL(l_actual_upg_option, 'N') = 'O') OR
82318         (NVL(l_enc_upg_option, 'N') = 'O')
82319       )
82320    THEN
82321    NULL;
82322    --
82323    --
82324    
82325    --
82326    --
82327    END IF;
82328    --
82329    -- Bug 4922099
82330    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82331           (NVL(l_enc_upg_option, 'N') = 'O')
82332         ) AND
82333         (l_bflow_method_code = 'PRIOR_ENTRY')
82334       )
82335    THEN
82336       IF
82337       --
82338       1 = 1
82339       --
82340       THEN
82341       xla_accounting_err_pkg.build_message
82342                                     (p_appli_s_name            => 'XLA'
82343                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82344                                     ,p_token_1                 => 'LINE_NUMBER'
82345                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82346                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82347                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82348                                                                              l_component_type
82349                                                                             ,l_component_code
82350                                                                             ,l_component_type_code
82351                                                                             ,l_component_appl_id
82352                                                                             ,l_amb_context_code
82353                                                                             ,l_entity_code
82354                                                                             ,l_event_class_code
82355                                                                            )
82356                                     ,p_token_3                 => 'OWNER'
82357                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82358                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82359                                                                           ,p_lookup_code    => l_component_type_code
82360                                                                          )
82361                                     ,p_token_4                 => 'PRODUCT_NAME'
82362                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82366                                     ,p_ae_header_id            =>  NULL
82363                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82364                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82365                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82367                                        );
82368 
82369         IF (C_LEVEL_ERROR>= g_log_level) THEN
82370                  trace
82371                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82372                       ,p_level    => C_LEVEL_ERROR
82373                       ,p_module   => l_log_module);
82374         END IF;
82375       END IF;
82376    END IF;
82377    --
82378    --
82379    ------------------------------------------------------------------------------------------------
82380    -- 4219869 Business Flow
82381    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82382    -- Prior Entry.  Currently, the following code is always generated.
82383    ------------------------------------------------------------------------------------------------
82384    -- No ValidateCurrentLine for business flow method of Prior Entry
82385 
82386    ------------------------------------------------------------------------------------
82387    -- 4219869 Business Flow
82388    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82389    ------------------------------------------------------------------------------------
82390    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82391 
82392    ----------------------------------------------------------------------------------
82393    -- 4219869 Business Flow
82394    -- Update journal entry status -- Need to generate this within IF <condition>
82395    ----------------------------------------------------------------------------------
82396    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82397          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82398          ,p_balance_type_code => l_balance_type_code
82399          );
82400 
82401    -------------------------------------------------------------------------------------------
82402    -- 4262811 - Generate the Accrual Reversal lines
82403    -------------------------------------------------------------------------------------------
82404    BEGIN
82405       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82406                               (g_array_event(p_event_id).array_value_num('header_index'));
82407       IF l_acc_rev_flag IS NULL THEN
82408          l_acc_rev_flag := 'N';
82409       END IF;
82410    EXCEPTION
82411       WHEN OTHERS THEN
82412          l_acc_rev_flag := 'N';
82413    END;
82414    --
82415    IF (l_acc_rev_flag = 'Y') THEN
82416 
82417        -- 4645092  ------------------------------------------------------------------------------
82418        -- To allow MPA report to determine if it should generate report process
82419        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82420        ------------------------------------------------------------------------------------------
82421 
82422        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82423        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82424    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82425    -- call ADRs
82426    -- Bug 4922099
82427    --
82428    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82429         (NVL(l_actual_upg_option, 'N') = 'O') OR
82430         (NVL(l_enc_upg_option, 'N') = 'O')
82431       )
82432    THEN
82433    NULL;
82434    --
82435    --
82436    
82437    --
82438    --
82439    END IF;
82440 
82441        --
82442        -- Update the line information that should be overwritten
82443        --
82444        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82445                                          p_header_num   => 1);
82446        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82447 
82448        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82449 
82450        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82451           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82452        END IF;
82453 
82454       --
82455       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82456       --
82457       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82458           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82459       ELSE
82460           ---------------------------------------------------------------------------------------------------
82461           -- 4262811a Switch Sign
82462           ---------------------------------------------------------------------------------------------------
82463           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82464           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82465                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82469           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82466           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82467                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82468           -- 5132302
82470                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82471 
82472       END IF;
82473 
82474       -- 4955764
82475       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82476       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82477 
82478 
82479       XLA_AE_LINES_PKG.ValidateCurrentLine;
82480       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82481 
82482       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82483                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82484                ,p_balance_type_code => l_balance_type_code);
82485 
82486    END IF;
82487 
82488    -----------------------------------------------------------------------------------------
82489    -- 4262811 Multiperiod Accounting
82490    -----------------------------------------------------------------------------------------
82491      -- No MPA option is assigned.
82492 
82493 
82494 END IF;
82495 END IF;
82496 --
82497 
82498 --
82499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82500    trace
82501       (p_msg      => 'END of AcctLineType_145'
82502       ,p_level    => C_LEVEL_PROCEDURE
82503       ,p_module   => l_log_module);
82504 END IF;
82505 --
82506 EXCEPTION
82507   WHEN xla_exceptions_pkg.application_exception THEN
82508       RAISE;
82509   WHEN OTHERS THEN
82510        xla_exceptions_pkg.raise_message
82511            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_145');
82512 END AcctLineType_145;
82513 --
82514 
82515 ---------------------------------------
82516 --
82517 -- PRIVATE FUNCTION
82518 --         AcctLineType_146
82519 --
82520 ---------------------------------------
82521 PROCEDURE AcctLineType_146 (
82522   p_application_id        IN NUMBER
82523  ,p_event_id              IN NUMBER
82524  ,p_calculate_acctd_flag  IN VARCHAR2
82525  ,p_calculate_g_l_flag    IN VARCHAR2
82526  ,p_actual_flag           IN OUT VARCHAR2
82527  ,p_balance_type_code     OUT VARCHAR2
82528  ,p_gain_or_loss_ref      OUT VARCHAR2
82529  
82530 --Invoice Distribution Description
82531  , p_source_1            IN VARCHAR2
82532 --Automatic Offsets Value
82533  , p_source_15            IN VARCHAR2
82534  , p_source_15_meaning    IN VARCHAR2
82535 --Invoice Distribution Ledger Amount
82536  , p_source_21            IN NUMBER
82537 --Invoice Liability Account
82538  , p_source_34            IN NUMBER
82539 --Accounting Reversal Indicator
82540  , p_source_52            IN VARCHAR2
82541 --Distribution Link Type
82542  , p_source_54            IN VARCHAR2
82543 --Allocation to Main Distribution Identifier
82544  , p_source_56            IN NUMBER
82545 --Invoice Identifier
82546  , p_source_57            IN NUMBER
82547 --Invoice Distribution Identifier
82548  , p_source_63            IN NUMBER
82549 --Payables Encumbrance Upgrade Credit Account
82550  , p_source_64            IN NUMBER
82551 --Payables Encumbrance Upgrade Credit Amount
82552  , p_source_65            IN NUMBER
82553 --Invoice Currency Code
82554  , p_source_66            IN VARCHAR2
82555 --Payables Encumbrance Upgrade Credit Base Amount
82556  , p_source_67            IN NUMBER
82557 --Payables Encumbrance Upgrade Debit Account
82558  , p_source_68            IN NUMBER
82559 --Payables Encumbrance Upgrade Debit Amount
82560  , p_source_69            IN NUMBER
82561 --Payables Encumbrance Upgrade Debit Base Amount
82562  , p_source_70            IN NUMBER
82563 --Payables Encumbrance Upgrade Option
82564  , p_source_71            IN VARCHAR2
82565 --Invoice Distribution Amount
82566  , p_source_72            IN NUMBER
82567 --Deferred Accounting End Date
82568  , p_source_76            IN DATE
82569 --Deferred Accounting Option
82570  , p_source_77            IN VARCHAR2
82571 --Deferred Accounting Start Date
82572  , p_source_78            IN DATE
82573 --Override Accounted Amount Indicator
82574  , p_source_79            IN VARCHAR2
82575  , p_source_79_meaning    IN VARCHAR2
82576 --Invoice Supplier Identifier
82577  , p_source_80            IN NUMBER
82578 --Invoice Supplier Site Identifier
82579  , p_source_81            IN NUMBER
82580 --Third Party Type
82581  , p_source_82            IN VARCHAR2
82582 --Parent Reversal Identifier
82583  , p_source_83            IN NUMBER
82584 --Invoice Distribution Statistical Amount
82585  , p_source_84            IN NUMBER
82586 --Invoice Distribution Tax Line Identifier
82587  , p_source_85            IN NUMBER
82588 --Invoice Distribution Tax Distribution Identifier from Tax
82589  , p_source_86            IN NUMBER
82590 --Invoice Distribution Summary Tax Line Identifier
82591  , p_source_87            IN NUMBER
82592 --Payables Upgrade Credit Encumbrance Type Identifier
82593  , p_source_88            IN NUMBER
82594 --Payables Upgrade Debit Encumbrance Type Identifier
82595  , p_source_89            IN NUMBER
82596 --Business Flow Accounts Payable Application Identifier
82600 --Business Flow Invoice Entity Code
82597  , p_source_90            IN NUMBER
82598 --Business Flow Invoice Distribution Type
82599  , p_source_91            IN VARCHAR2
82601  , p_source_92            IN VARCHAR2
82602 --Business Flow Invoice Distribution Identifier
82603  , p_source_93            IN NUMBER
82604 --Business Flow Invoice Identifier
82605  , p_source_94            IN NUMBER
82606 --Self-Assessed Tax Flag
82607  , p_source_135            IN VARCHAR2
82608  , p_source_135_meaning    IN VARCHAR2
82609 --Invoice Exchange Date
82610  , p_source_136            IN DATE
82611 --Invoice Exchange Rate
82612  , p_source_137            IN NUMBER
82613 --Invoice Exchange Rate Type
82614  , p_source_138            IN VARCHAR2
82615 --Invoice Source
82616  , p_source_163            IN VARCHAR2
82617 )
82618 IS
82619 
82620 l_component_type              VARCHAR2(80);
82621 l_component_code              VARCHAR2(30);
82622 l_component_type_code         VARCHAR2(1);
82623 l_component_appl_id           INTEGER;
82624 l_amb_context_code            VARCHAR2(30);
82625 l_entity_code                 VARCHAR2(30);
82626 l_event_class_code            VARCHAR2(30);
82627 l_ae_header_id                NUMBER;
82628 l_event_type_code             VARCHAR2(30);
82629 l_line_definition_code        VARCHAR2(30);
82630 l_line_definition_owner_code  VARCHAR2(1);
82631 --
82632 -- adr variables
82633 l_segment                     VARCHAR2(30);
82634 l_ccid                        NUMBER;
82635 l_adr_transaction_coa_id      NUMBER;
82636 l_adr_accounting_coa_id       NUMBER;
82637 l_adr_flexfield_segment_code  VARCHAR2(30);
82638 l_adr_flex_value_set_id       NUMBER;
82639 l_adr_value_type_code         VARCHAR2(30);
82640 l_adr_value_combination_id    NUMBER;
82641 l_adr_value_segment_code      VARCHAR2(30);
82642 
82643 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82644 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82645 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82646 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82647 
82648 -- 4262811 Variables ------------------------------------------------------------------------------------------
82649 l_entered_amt_idx             NUMBER;
82650 l_accted_amt_idx              NUMBER;
82651 l_acc_rev_flag                VARCHAR2(1);
82652 l_accrual_line_num            NUMBER;
82653 l_tmp_amt                     NUMBER;
82654 l_acc_rev_natural_side_code   VARCHAR2(1);
82655 
82656 l_num_entries                 NUMBER;
82657 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82658 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82659 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82660 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82661 l_recog_line_1                NUMBER;
82662 l_recog_line_2                NUMBER;
82663 
82664 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82665 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82666 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82667 
82668 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82669 
82670 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82671 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82672 
82673 ---------------------------------------------------------------------------------------------------------------
82674 
82675 
82676 --
82677 -- bulk performance
82678 --
82679 l_balance_type_code           VARCHAR2(1);
82680 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82681 l_log_module                  VARCHAR2(240);
82682 
82683 --
82684 -- Upgrade strategy
82685 --
82686 l_actual_upg_option           VARCHAR2(1);
82687 l_enc_upg_option           VARCHAR2(1);
82688 
82689 --
82690 BEGIN
82691 --
82692 IF g_log_enabled THEN
82693       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
82694 END IF;
82695 --
82696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82697 
82698       trace
82699          (p_msg      => 'BEGIN of AcctLineType_146'
82700          ,p_level    => C_LEVEL_PROCEDURE
82701          ,p_module   => l_log_module);
82702 
82703 END IF;
82704 --
82705 l_component_type             := 'AMB_JLT';
82706 l_component_code             := 'AP_LIAB_CM';
82707 l_component_type_code        := 'S';
82708 l_component_appl_id          :=  200;
82709 l_amb_context_code           := 'DEFAULT';
82710 l_entity_code                := 'AP_INVOICES';
82711 l_event_class_code           := 'CREDIT MEMOS';
82712 l_event_type_code            := 'CREDIT MEMOS_ALL';
82713 l_line_definition_owner_code := 'S';
82714 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
82715 --
82716 l_balance_type_code          := 'A';
82717 l_segment                     := NULL;
82718 l_ccid                        := NULL;
82719 l_adr_transaction_coa_id      := NULL;
82720 l_adr_accounting_coa_id       := NULL;
82721 l_adr_flexfield_segment_code  := NULL;
82722 l_adr_flex_value_set_id       := NULL;
82723 l_adr_value_type_code         := NULL;
82724 l_adr_value_combination_id    := NULL;
82725 l_adr_value_segment_code      := NULL;
82726 
82727 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
82731 
82728 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82729 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82730 l_budgetary_control_flag     := 'N';
82732 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82733 l_bflow_applied_to_amt       := NULL; -- 5132302
82734 l_entered_amt_idx            := NULL;          -- 4262811
82735 l_accted_amt_idx             := NULL;          -- 4262811
82736 l_acc_rev_flag               := NULL;          -- 4262811
82737 l_accrual_line_num           := NULL;          -- 4262811
82738 l_tmp_amt                    := NULL;          -- 4262811
82739 --
82740  
82741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82742     l_balance_type_code <> 'B' THEN
82743 IF (NVL(p_source_15,'
82744 ') <>  'BALANCING_SEGMENT' AND 
82745 NVL(p_source_15,'
82746 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
82747 NVL(p_source_135,'
82748 ') <>  'Y'
82749  THEN 
82750 
82751    --
82752    XLA_AE_LINES_PKG.SetNewLine;
82753 
82754    p_balance_type_code          := l_balance_type_code;
82755    -- set the flag so later we will know whether the gain loss line needs to be created
82756    
82757    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82758      p_actual_flag :='A';
82759    END IF;
82760 
82761    --
82762    -- bulk performance
82763    --
82764    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82765                                       p_header_num   => 0); -- 4262811
82766    --
82767    -- set accounting line options
82768    --
82769    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82770            p_natural_side_code          => 'C'
82771          , p_gain_or_loss_flag          => 'N'
82772          , p_gl_transfer_mode_code      => 'S'
82773          , p_acct_entry_type_code       => 'A'
82774          , p_switch_side_flag           => 'Y'
82775          , p_merge_duplicate_code       => 'A'
82776          );
82777    --
82778    l_acc_rev_natural_side_code := 'D';  -- 4262811
82779    -- 
82780    --
82781    -- set accounting line type info
82782    --
82783    xla_ae_lines_pkg.SetAcctLineType
82784       (p_component_type             => l_component_type
82785       ,p_event_type_code            => l_event_type_code
82786       ,p_line_definition_owner_code => l_line_definition_owner_code
82787       ,p_line_definition_code       => l_line_definition_code
82788       ,p_accounting_line_code       => l_component_code
82789       ,p_accounting_line_type_code  => l_component_type_code
82790       ,p_accounting_line_appl_id    => l_component_appl_id
82791       ,p_amb_context_code           => l_amb_context_code
82792       ,p_entity_code                => l_entity_code
82793       ,p_event_class_code           => l_event_class_code);
82794    --
82795    -- set accounting class
82796    --
82797    xla_ae_lines_pkg.SetAcctClass(
82798            p_accounting_class_code  => 'LIABILITY'
82799          , p_ae_header_id           => l_ae_header_id
82800          );
82801 
82802    --
82803    -- set rounding class
82804    --
82805    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82806                       'LIABILITY';
82807 
82808    --
82809    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82810    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82811    --
82812    -- bulk performance
82813    --
82814    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82815 
82816    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82817       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82818 
82819    -- 4955764
82820    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82821       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82822 
82823    -- 4458381 Public Sector Enh
82824    
82825    --
82826    -- set accounting attributes for the line type
82827    --
82828    l_entered_amt_idx := 23;
82829    l_accted_amt_idx  := 28;
82830    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
82831    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82832    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
82833    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82834    l_rec_acct_attrs.array_num_value(2)  := 
82835 xla_ae_sources_pkg.GetSystemSourceNum(
82836    p_source_code           => 'XLA_EVENT_APPL_ID'
82837  , p_source_type_code      => 'Y'
82838  , p_source_application_id =>  602
82839 );
82840    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82841    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
82842    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82843    l_rec_acct_attrs.array_char_value(4)  := 
82844 xla_ae_sources_pkg.GetSystemSourceChar(
82845    p_source_code           => 'XLA_ENTITY_CODE'
82846  , p_source_type_code      => 'Y'
82847  , p_source_application_id =>  602
82848 );
82849    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
82850    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
82854    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
82851    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
82852    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
82853    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
82855    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82856    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
82857    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
82858    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
82859    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
82860    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
82861    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82862    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
82863    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
82864    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
82865    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
82866    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
82867    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
82868    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
82869    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
82870    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
82871    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
82872    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
82873    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
82874    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
82875    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
82876    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
82877    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
82878    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
82879    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
82880    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
82881    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
82882    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
82883    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
82884    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
82885    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
82886    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
82887    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
82888    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
82889    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
82890    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
82891    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
82892    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
82893    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
82894    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
82895    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
82896    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
82897    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
82898    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
82899    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
82900    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
82901    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
82902    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
82903    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
82904    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
82905    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
82906    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
82907    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
82908    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
82909    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
82910    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
82911    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
82912    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
82913    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
82914    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
82915    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
82916    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
82917    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
82918    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
82919    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
82920    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
82921    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
82922    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
82923    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
82924    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
82925    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
82926    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
82927 
82928    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82929    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82930 
82931    ---------------------------------------------------------------------------------------------------------------
82932    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82933    ---------------------------------------------------------------------------------------------------------------
82937    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82934    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82935 
82936    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82938 
82939    IF xla_accounting_cache_pkg.GetValueChar
82940          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82941          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82942    AND l_bflow_method_code = 'PRIOR_ENTRY'
82943 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82944    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82945          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82946        )
82947    THEN
82948          xla_ae_lines_pkg.BflowUpgEntry
82949            (p_business_method_code    => l_bflow_method_code
82950            ,p_business_class_code     => l_bflow_class_code
82951            ,p_balance_type            => l_balance_type_code);
82952    ELSE
82953       NULL;
82954 -- No business flow processing for business flow method of NONE.
82955    END IF;
82956 
82957    --
82958    -- call analytical criteria
82959    --
82960    
82961 
82962 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
82963 xla_ae_lines_pkg.SetAnalyticalCriteria(
82964    p_analytical_criterion_name    => 'Payables Custom Source'
82965  , p_analytical_criterion_owner   => 'S'
82966  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
82967  , p_amb_context_code             => 'DEFAULT'
82968  , p_balancing_flag               => 'N'
82969  
82970  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
82971 p_source_163
82972 , p_source_57
82973 , p_source_63))
82974  , p_analytical_detail_num_1     =>  NULL
82975  , p_analytical_detail_date_1    =>  NULL
82976 
82977  , p_ae_header_id                 => l_ae_header_id
82978 )
82979 ;
82980 --
82981 
82982    --
82983    -- call description
82984    --
82985    
82986 xla_ae_lines_pkg.SetLineDescription(
82987    p_ae_header_id => l_ae_header_id
82988   ,p_description  => Description_1 (
82989      p_application_id         => p_application_id
82990    , p_ae_header_id           => l_ae_header_id 
82991 , p_source_1 => p_source_1
82992    )
82993 );
82994 
82995 
82996    --
82997    -- call ADRs
82998    -- Bug 4922099
82999    --
83000    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83001         (NVL(l_actual_upg_option, 'N') = 'O') OR
83002         (NVL(l_enc_upg_option, 'N') = 'O')
83003       )
83004    THEN
83005    NULL;
83006    --
83007    --
83008    
83009   l_ccid := AcctDerRule_34(
83010            p_application_id           => p_application_id
83011          , p_ae_header_id             => l_ae_header_id 
83012 , p_source_34 => p_source_34
83013          , x_transaction_coa_id       => l_adr_transaction_coa_id
83014          , x_accounting_coa_id        => l_adr_accounting_coa_id
83015          , x_value_type_code          => l_adr_value_type_code
83016          , p_side                     => 'NA'
83017    );
83018 
83019    xla_ae_lines_pkg.set_ccid(
83020     p_code_combination_id          => l_ccid
83021   , p_value_type_code              => l_adr_value_type_code
83022   , p_transaction_coa_id           => l_adr_transaction_coa_id
83023   , p_accounting_coa_id            => l_adr_accounting_coa_id
83024   , p_adr_code                     => 'AP_LIAB'
83025   , p_adr_type_code                => 'S'
83026   , p_component_type               => l_component_type
83027   , p_component_code               => l_component_code
83028   , p_component_type_code          => l_component_type_code
83029   , p_component_appl_id            => l_component_appl_id
83030   , p_amb_context_code             => l_amb_context_code
83031   , p_side                         => 'NA'
83032   );
83033 
83034 
83035    --
83036    --
83037    END IF;
83038    --
83039    -- Bug 4922099
83040    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83041           (NVL(l_enc_upg_option, 'N') = 'O')
83042         ) AND
83043         (l_bflow_method_code = 'PRIOR_ENTRY')
83044       )
83045    THEN
83046       IF
83047       --
83048       1 = 2
83049       --
83050       THEN
83051       xla_accounting_err_pkg.build_message
83052                                     (p_appli_s_name            => 'XLA'
83053                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83054                                     ,p_token_1                 => 'LINE_NUMBER'
83055                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83056                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83057                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83058                                                                              l_component_type
83059                                                                             ,l_component_code
83060                                                                             ,l_component_type_code
83061                                                                             ,l_component_appl_id
83065                                                                            )
83062                                                                             ,l_amb_context_code
83063                                                                             ,l_entity_code
83064                                                                             ,l_event_class_code
83066                                     ,p_token_3                 => 'OWNER'
83067                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83068                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83069                                                                           ,p_lookup_code    => l_component_type_code
83070                                                                          )
83071                                     ,p_token_4                 => 'PRODUCT_NAME'
83072                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83073                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83074                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83075                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83076                                     ,p_ae_header_id            =>  NULL
83077                                        );
83078 
83079         IF (C_LEVEL_ERROR>= g_log_level) THEN
83080                  trace
83081                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83082                       ,p_level    => C_LEVEL_ERROR
83083                       ,p_module   => l_log_module);
83084         END IF;
83085       END IF;
83086    END IF;
83087    --
83088    --
83089    ------------------------------------------------------------------------------------------------
83090    -- 4219869 Business Flow
83091    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83092    -- Prior Entry.  Currently, the following code is always generated.
83093    ------------------------------------------------------------------------------------------------
83094    XLA_AE_LINES_PKG.ValidateCurrentLine;
83095 
83096    ------------------------------------------------------------------------------------
83097    -- 4219869 Business Flow
83098    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83099    ------------------------------------------------------------------------------------
83100    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83101 
83102    ----------------------------------------------------------------------------------
83103    -- 4219869 Business Flow
83104    -- Update journal entry status -- Need to generate this within IF <condition>
83105    ----------------------------------------------------------------------------------
83106    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83107          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83108          ,p_balance_type_code => l_balance_type_code
83109          );
83110 
83111    -------------------------------------------------------------------------------------------
83112    -- 4262811 - Generate the Accrual Reversal lines
83113    -------------------------------------------------------------------------------------------
83114    BEGIN
83115       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83116                               (g_array_event(p_event_id).array_value_num('header_index'));
83117       IF l_acc_rev_flag IS NULL THEN
83118          l_acc_rev_flag := 'N';
83119       END IF;
83120    EXCEPTION
83121       WHEN OTHERS THEN
83122          l_acc_rev_flag := 'N';
83123    END;
83124    --
83125    IF (l_acc_rev_flag = 'Y') THEN
83126 
83127        -- 4645092  ------------------------------------------------------------------------------
83128        -- To allow MPA report to determine if it should generate report process
83129        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83130        ------------------------------------------------------------------------------------------
83131 
83132        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83133        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83134    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83135    -- call ADRs
83136    -- Bug 4922099
83137    --
83138    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83139         (NVL(l_actual_upg_option, 'N') = 'O') OR
83140         (NVL(l_enc_upg_option, 'N') = 'O')
83141       )
83142    THEN
83143    NULL;
83144    --
83145    --
83146    
83147   l_ccid := AcctDerRule_34(
83148            p_application_id           => p_application_id
83149          , p_ae_header_id             => l_ae_header_id 
83150 , p_source_34 => p_source_34
83151          , x_transaction_coa_id       => l_adr_transaction_coa_id
83152          , x_accounting_coa_id        => l_adr_accounting_coa_id
83153          , x_value_type_code          => l_adr_value_type_code
83154          , p_side                     => 'NA'
83155    );
83156 
83157    xla_ae_lines_pkg.set_ccid(
83158     p_code_combination_id          => l_ccid
83159   , p_value_type_code              => l_adr_value_type_code
83160   , p_transaction_coa_id           => l_adr_transaction_coa_id
83164   , p_component_type               => l_component_type
83161   , p_accounting_coa_id            => l_adr_accounting_coa_id
83162   , p_adr_code                     => 'AP_LIAB'
83163   , p_adr_type_code                => 'S'
83165   , p_component_code               => l_component_code
83166   , p_component_type_code          => l_component_type_code
83167   , p_component_appl_id            => l_component_appl_id
83168   , p_amb_context_code             => l_amb_context_code
83169   , p_side                         => 'NA'
83170   );
83171 
83172 
83173    --
83174    --
83175    END IF;
83176 
83177        --
83178        -- Update the line information that should be overwritten
83179        --
83180        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83181                                          p_header_num   => 1);
83182        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83183 
83184        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83185 
83186        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83187           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83188        END IF;
83189 
83190       --
83191       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83192       --
83193       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83194           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83195       ELSE
83196           ---------------------------------------------------------------------------------------------------
83197           -- 4262811a Switch Sign
83198           ---------------------------------------------------------------------------------------------------
83199           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83200           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83201                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83202           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83203                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83204           -- 5132302
83205           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83206                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83207 
83208       END IF;
83209 
83210       -- 4955764
83211       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83212       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83213 
83214 
83215       XLA_AE_LINES_PKG.ValidateCurrentLine;
83216       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83217 
83218       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83219                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83220                ,p_balance_type_code => l_balance_type_code);
83221 
83222    END IF;
83223 
83224    -----------------------------------------------------------------------------------------
83225    -- 4262811 Multiperiod Accounting
83226    -----------------------------------------------------------------------------------------
83227      -- No MPA option is assigned.
83228 
83229 
83230 END IF;
83231 END IF;
83232 --
83233 
83234 --
83235 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83236    trace
83237       (p_msg      => 'END of AcctLineType_146'
83238       ,p_level    => C_LEVEL_PROCEDURE
83239       ,p_module   => l_log_module);
83240 END IF;
83241 --
83242 EXCEPTION
83243   WHEN xla_exceptions_pkg.application_exception THEN
83244       RAISE;
83245   WHEN OTHERS THEN
83246        xla_exceptions_pkg.raise_message
83247            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_146');
83248 END AcctLineType_146;
83249 --
83250 
83251 ---------------------------------------
83252 --
83253 -- PRIVATE FUNCTION
83254 --         AcctLineType_147
83255 --
83256 ---------------------------------------
83257 PROCEDURE AcctLineType_147 (
83258   p_application_id        IN NUMBER
83259  ,p_event_id              IN NUMBER
83260  ,p_calculate_acctd_flag  IN VARCHAR2
83261  ,p_calculate_g_l_flag    IN VARCHAR2
83262  ,p_actual_flag           IN OUT VARCHAR2
83263  ,p_balance_type_code     OUT VARCHAR2
83264  ,p_gain_or_loss_ref      OUT VARCHAR2
83265  
83266 --Invoice Distribution Description
83267  , p_source_1            IN VARCHAR2
83268 --Automatic Offsets Value
83269  , p_source_15            IN VARCHAR2
83270  , p_source_15_meaning    IN VARCHAR2
83271 --Invoice Distribution Ledger Amount
83272  , p_source_21            IN NUMBER
83273 --Invoice Liability Account
83274  , p_source_34            IN NUMBER
83275 --Accounting Reversal Indicator
83276  , p_source_52            IN VARCHAR2
83277 --Distribution Link Type
83278  , p_source_54            IN VARCHAR2
83279 --Allocation to Main Distribution Identifier
83280  , p_source_56            IN NUMBER
83281 --Invoice Identifier
83282  , p_source_57            IN NUMBER
83283 --Invoice Distribution Identifier
83284  , p_source_63            IN NUMBER
83288  , p_source_65            IN NUMBER
83285 --Payables Encumbrance Upgrade Credit Account
83286  , p_source_64            IN NUMBER
83287 --Payables Encumbrance Upgrade Credit Amount
83289 --Invoice Currency Code
83290  , p_source_66            IN VARCHAR2
83291 --Payables Encumbrance Upgrade Credit Base Amount
83292  , p_source_67            IN NUMBER
83293 --Payables Encumbrance Upgrade Debit Account
83294  , p_source_68            IN NUMBER
83295 --Payables Encumbrance Upgrade Debit Amount
83296  , p_source_69            IN NUMBER
83297 --Payables Encumbrance Upgrade Debit Base Amount
83298  , p_source_70            IN NUMBER
83299 --Payables Encumbrance Upgrade Option
83300  , p_source_71            IN VARCHAR2
83301 --Invoice Distribution Amount
83302  , p_source_72            IN NUMBER
83303 --Deferred Accounting End Date
83304  , p_source_76            IN DATE
83305 --Deferred Accounting Option
83306  , p_source_77            IN VARCHAR2
83307 --Deferred Accounting Start Date
83308  , p_source_78            IN DATE
83309 --Override Accounted Amount Indicator
83310  , p_source_79            IN VARCHAR2
83311  , p_source_79_meaning    IN VARCHAR2
83312 --Invoice Supplier Identifier
83313  , p_source_80            IN NUMBER
83314 --Invoice Supplier Site Identifier
83315  , p_source_81            IN NUMBER
83316 --Third Party Type
83317  , p_source_82            IN VARCHAR2
83318 --Parent Reversal Identifier
83319  , p_source_83            IN NUMBER
83320 --Invoice Distribution Statistical Amount
83321  , p_source_84            IN NUMBER
83322 --Invoice Distribution Tax Line Identifier
83323  , p_source_85            IN NUMBER
83324 --Invoice Distribution Tax Distribution Identifier from Tax
83325  , p_source_86            IN NUMBER
83326 --Invoice Distribution Summary Tax Line Identifier
83327  , p_source_87            IN NUMBER
83328 --Payables Upgrade Credit Encumbrance Type Identifier
83329  , p_source_88            IN NUMBER
83330 --Payables Upgrade Debit Encumbrance Type Identifier
83331  , p_source_89            IN NUMBER
83332 --Business Flow Accounts Payable Application Identifier
83333  , p_source_90            IN NUMBER
83334 --Business Flow Invoice Distribution Type
83335  , p_source_91            IN VARCHAR2
83336 --Business Flow Invoice Entity Code
83337  , p_source_92            IN VARCHAR2
83338 --Business Flow Invoice Distribution Identifier
83339  , p_source_93            IN NUMBER
83340 --Business Flow Invoice Identifier
83341  , p_source_94            IN NUMBER
83342 --Self-Assessed Tax Flag
83343  , p_source_135            IN VARCHAR2
83344  , p_source_135_meaning    IN VARCHAR2
83345 --Invoice Exchange Date
83346  , p_source_136            IN DATE
83347 --Invoice Exchange Rate
83348  , p_source_137            IN NUMBER
83349 --Invoice Exchange Rate Type
83350  , p_source_138            IN VARCHAR2
83351 --Invoice Source
83352  , p_source_163            IN VARCHAR2
83353 )
83354 IS
83355 
83356 l_component_type              VARCHAR2(80);
83357 l_component_code              VARCHAR2(30);
83358 l_component_type_code         VARCHAR2(1);
83359 l_component_appl_id           INTEGER;
83360 l_amb_context_code            VARCHAR2(30);
83361 l_entity_code                 VARCHAR2(30);
83362 l_event_class_code            VARCHAR2(30);
83363 l_ae_header_id                NUMBER;
83364 l_event_type_code             VARCHAR2(30);
83365 l_line_definition_code        VARCHAR2(30);
83366 l_line_definition_owner_code  VARCHAR2(1);
83367 --
83368 -- adr variables
83369 l_segment                     VARCHAR2(30);
83370 l_ccid                        NUMBER;
83371 l_adr_transaction_coa_id      NUMBER;
83372 l_adr_accounting_coa_id       NUMBER;
83373 l_adr_flexfield_segment_code  VARCHAR2(30);
83374 l_adr_flex_value_set_id       NUMBER;
83375 l_adr_value_type_code         VARCHAR2(30);
83376 l_adr_value_combination_id    NUMBER;
83377 l_adr_value_segment_code      VARCHAR2(30);
83378 
83379 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83380 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83381 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83382 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83383 
83384 -- 4262811 Variables ------------------------------------------------------------------------------------------
83385 l_entered_amt_idx             NUMBER;
83386 l_accted_amt_idx              NUMBER;
83387 l_acc_rev_flag                VARCHAR2(1);
83388 l_accrual_line_num            NUMBER;
83389 l_tmp_amt                     NUMBER;
83390 l_acc_rev_natural_side_code   VARCHAR2(1);
83391 
83392 l_num_entries                 NUMBER;
83393 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83394 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83395 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83396 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83397 l_recog_line_1                NUMBER;
83398 l_recog_line_2                NUMBER;
83399 
83400 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83401 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83402 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83403 
83404 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83405 
83406 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83410 
83407 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83408 
83409 ---------------------------------------------------------------------------------------------------------------
83411 
83412 --
83413 -- bulk performance
83414 --
83415 l_balance_type_code           VARCHAR2(1);
83416 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83417 l_log_module                  VARCHAR2(240);
83418 
83419 --
83420 -- Upgrade strategy
83421 --
83422 l_actual_upg_option           VARCHAR2(1);
83423 l_enc_upg_option           VARCHAR2(1);
83424 
83425 --
83426 BEGIN
83427 --
83428 IF g_log_enabled THEN
83429       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
83430 END IF;
83431 --
83432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83433 
83434       trace
83435          (p_msg      => 'BEGIN of AcctLineType_147'
83436          ,p_level    => C_LEVEL_PROCEDURE
83437          ,p_module   => l_log_module);
83438 
83439 END IF;
83440 --
83441 l_component_type             := 'AMB_JLT';
83442 l_component_code             := 'AP_LIAB_CM_AOS_AS';
83443 l_component_type_code        := 'S';
83444 l_component_appl_id          :=  200;
83445 l_amb_context_code           := 'DEFAULT';
83446 l_entity_code                := 'AP_INVOICES';
83447 l_event_class_code           := 'CREDIT MEMOS';
83448 l_event_type_code            := 'CREDIT MEMOS_ALL';
83449 l_line_definition_owner_code := 'S';
83450 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
83451 --
83452 l_balance_type_code          := 'A';
83453 l_segment                     := NULL;
83454 l_ccid                        := NULL;
83455 l_adr_transaction_coa_id      := NULL;
83456 l_adr_accounting_coa_id       := NULL;
83457 l_adr_flexfield_segment_code  := NULL;
83458 l_adr_flex_value_set_id       := NULL;
83459 l_adr_value_type_code         := NULL;
83460 l_adr_value_combination_id    := NULL;
83461 l_adr_value_segment_code      := NULL;
83462 
83463 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
83464 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
83465 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83466 l_budgetary_control_flag     := 'N';
83467 
83468 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83469 l_bflow_applied_to_amt       := NULL; -- 5132302
83470 l_entered_amt_idx            := NULL;          -- 4262811
83471 l_accted_amt_idx             := NULL;          -- 4262811
83472 l_acc_rev_flag               := NULL;          -- 4262811
83473 l_accrual_line_num           := NULL;          -- 4262811
83474 l_tmp_amt                    := NULL;          -- 4262811
83475 --
83476  
83477 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83478     l_balance_type_code <> 'B' THEN
83479 IF NVL(p_source_15,'
83480 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
83481 NVL(p_source_135,'
83482 ') <>  'Y'
83483  THEN 
83484 
83485    --
83486    XLA_AE_LINES_PKG.SetNewLine;
83487 
83488    p_balance_type_code          := l_balance_type_code;
83489    -- set the flag so later we will know whether the gain loss line needs to be created
83490    
83491    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83492      p_actual_flag :='A';
83493    END IF;
83494 
83495    --
83496    -- bulk performance
83497    --
83498    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83499                                       p_header_num   => 0); -- 4262811
83500    --
83501    -- set accounting line options
83502    --
83503    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83504            p_natural_side_code          => 'C'
83505          , p_gain_or_loss_flag          => 'N'
83506          , p_gl_transfer_mode_code      => 'S'
83507          , p_acct_entry_type_code       => 'A'
83508          , p_switch_side_flag           => 'Y'
83509          , p_merge_duplicate_code       => 'A'
83510          );
83511    --
83512    l_acc_rev_natural_side_code := 'D';  -- 4262811
83513    -- 
83514    --
83515    -- set accounting line type info
83516    --
83517    xla_ae_lines_pkg.SetAcctLineType
83518       (p_component_type             => l_component_type
83519       ,p_event_type_code            => l_event_type_code
83520       ,p_line_definition_owner_code => l_line_definition_owner_code
83521       ,p_line_definition_code       => l_line_definition_code
83522       ,p_accounting_line_code       => l_component_code
83523       ,p_accounting_line_type_code  => l_component_type_code
83524       ,p_accounting_line_appl_id    => l_component_appl_id
83525       ,p_amb_context_code           => l_amb_context_code
83526       ,p_entity_code                => l_entity_code
83527       ,p_event_class_code           => l_event_class_code);
83528    --
83529    -- set accounting class
83530    --
83531    xla_ae_lines_pkg.SetAcctClass(
83532            p_accounting_class_code  => 'LIABILITY'
83533          , p_ae_header_id           => l_ae_header_id
83534          );
83535 
83536    --
83537    -- set rounding class
83538    --
83539    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83540                       'LIABILITY';
83541 
83542    --
83543    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83547    --
83544    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83545    --
83546    -- bulk performance
83548    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83549 
83550    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83551       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83552 
83553    -- 4955764
83554    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83555       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83556 
83557    -- 4458381 Public Sector Enh
83558    
83559    --
83560    -- set accounting attributes for the line type
83561    --
83562    l_entered_amt_idx := 23;
83563    l_accted_amt_idx  := 28;
83564    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
83565    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83566    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
83567    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
83568    l_rec_acct_attrs.array_num_value(2)  := 
83569 xla_ae_sources_pkg.GetSystemSourceNum(
83570    p_source_code           => 'XLA_EVENT_APPL_ID'
83571  , p_source_type_code      => 'Y'
83572  , p_source_application_id =>  602
83573 );
83574    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
83575    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
83576    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
83577    l_rec_acct_attrs.array_char_value(4)  := 
83578 xla_ae_sources_pkg.GetSystemSourceChar(
83579    p_source_code           => 'XLA_ENTITY_CODE'
83580  , p_source_type_code      => 'Y'
83581  , p_source_application_id =>  602
83582 );
83583    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
83584    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
83585    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
83586    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
83587    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
83588    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
83589    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83590    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
83591    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
83592    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
83593    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
83594    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
83595    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83596    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
83597    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
83598    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
83599    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
83600    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
83601    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
83602    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
83603    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
83604    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
83605    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
83606    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
83607    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
83608    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
83609    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
83610    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
83611    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
83612    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
83613    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
83614    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
83615    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
83616    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
83617    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
83618    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
83619    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
83620    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
83621    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
83622    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
83623    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
83624    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
83625    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
83626    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
83627    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
83628    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
83629    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
83630    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
83631    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
83632    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
83633    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
83634    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
83635    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
83636    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
83640    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
83637    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
83638    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
83639    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
83641    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
83642    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
83643    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
83644    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
83645    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
83646    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
83647    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
83648    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
83649    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
83650    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
83651    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
83652    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
83653    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
83654    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
83655    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
83656    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
83657    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
83658    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
83659    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
83660    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
83661 
83662    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83663    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83664 
83665    ---------------------------------------------------------------------------------------------------------------
83666    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83667    ---------------------------------------------------------------------------------------------------------------
83668    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83669 
83670    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83671    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83672 
83673    IF xla_accounting_cache_pkg.GetValueChar
83674          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83675          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83676    AND l_bflow_method_code = 'PRIOR_ENTRY'
83677 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83678    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83679          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83680        )
83681    THEN
83682          xla_ae_lines_pkg.BflowUpgEntry
83683            (p_business_method_code    => l_bflow_method_code
83684            ,p_business_class_code     => l_bflow_class_code
83685            ,p_balance_type            => l_balance_type_code);
83686    ELSE
83687       NULL;
83688 XLA_AE_LINES_PKG.business_flow_validation(
83689                                 p_business_method_code     => l_bflow_method_code
83690                                ,p_business_class_code      => l_bflow_class_code
83691                                ,p_inherit_description_flag => l_inherit_desc_flag);
83692    END IF;
83693 
83694    --
83695    -- call analytical criteria
83696    --
83697    
83698 
83699 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
83700 xla_ae_lines_pkg.SetAnalyticalCriteria(
83701    p_analytical_criterion_name    => 'Payables Custom Source'
83702  , p_analytical_criterion_owner   => 'S'
83703  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
83704  , p_amb_context_code             => 'DEFAULT'
83705  , p_balancing_flag               => 'N'
83706  
83707  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
83708 p_source_163
83709 , p_source_57
83710 , p_source_63))
83711  , p_analytical_detail_num_1     =>  NULL
83712  , p_analytical_detail_date_1    =>  NULL
83713 
83714  , p_ae_header_id                 => l_ae_header_id
83715 )
83716 ;
83717 --
83718 
83719    --
83720    -- call description
83721    --
83722    
83723 xla_ae_lines_pkg.SetLineDescription(
83724    p_ae_header_id => l_ae_header_id
83725   ,p_description  => Description_1 (
83726      p_application_id         => p_application_id
83727    , p_ae_header_id           => l_ae_header_id 
83728 , p_source_1 => p_source_1
83729    )
83730 );
83731 
83732 
83733    --
83734    -- call ADRs
83735    -- Bug 4922099
83736    --
83737    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83738         (NVL(l_actual_upg_option, 'N') = 'O') OR
83739         (NVL(l_enc_upg_option, 'N') = 'O')
83740       )
83741    THEN
83742    NULL;
83743    --
83744    --
83745    
83746    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
83747      p_code_combination_id      => TO_NUMBER(C_NUM)
83748    , p_value_type_code          => NULL
83749    , p_transaction_coa_id       => null
83750    , p_accounting_coa_id        => null
83751    , p_adr_code                 => NULL
83755    , p_component_type_code      => l_component_type_code
83752    , p_adr_type_code            => NULL
83753    , p_component_type           => l_component_type
83754    , p_component_code           => l_component_code
83756    , p_component_appl_id        => l_component_appl_id
83757    , p_amb_context_code         => l_amb_context_code
83758    , p_side                     => NULL
83759    );
83760 
83761    
83762   -- initialise segments
83763   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83764   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83765   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83766   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83767   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83768   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83769   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83770   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83771   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83772   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83773   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83774   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83775   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83776   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83777   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83778   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83779   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83780   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83781   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83782   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83783   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83784   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83785   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83786   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83787   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83788   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83789   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83790   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83791   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83792   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83793   --
83794 
83795    --
83796 
83797 
83798    l_segment := AcctDerRule_15(
83799            p_application_id           => p_application_id
83800          , p_ae_header_id             => l_ae_header_id 
83801 , p_source_34 => p_source_34
83802          , x_transaction_coa_id       => l_adr_transaction_coa_id
83803          , x_accounting_coa_id        => l_adr_accounting_coa_id
83804          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
83805          , x_flex_value_set_id        => l_adr_flex_value_set_id
83806          , x_value_type_code          => l_adr_value_type_code
83807          , x_value_combination_id     => l_adr_value_combination_id
83808          , x_value_segment_code       => l_adr_value_segment_code
83809          , p_side                     => 'NA'
83810          , p_override_seg_flag        => 'Y'
83811    );
83812 
83813    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
83814 
83815       xla_ae_lines_pkg.set_segment(
83816           p_to_segment_code         => 'GL_ACCOUNT'
83817         , p_segment_value           => l_segment
83818         , p_from_segment_code       => l_adr_value_segment_code
83819         , p_from_combination_id     => l_adr_value_combination_id
83820         , p_value_type_code         => l_adr_value_type_code
83821         , p_transaction_coa_id      => l_adr_transaction_coa_id
83822         , p_accounting_coa_id       => l_adr_accounting_coa_id
83823         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
83824         , p_flex_value_set_id       => l_adr_flex_value_set_id
83825         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
83826         , p_adr_type_code           => 'S'
83827         , p_component_type          => l_component_type
83828         , p_component_code          => l_component_code
83829         , p_component_type_code     => l_component_type_code
83830         , p_component_appl_id       => l_component_appl_id
83831         , p_amb_context_code        => l_amb_context_code
83832         , p_entity_code             => 'AP_INVOICES'
83833         , p_event_class_code        => 'CREDIT MEMOS'
83834         , p_side                    => 'NA'
83835         );
83836 
83837   END IF;
83838 
83839    --
83840    --
83841    END IF;
83842    --
83843    -- Bug 4922099
83844    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83845           (NVL(l_enc_upg_option, 'N') = 'O')
83846         ) AND
83847         (l_bflow_method_code = 'PRIOR_ENTRY')
83851       --
83848       )
83849    THEN
83850       IF
83852       1 = 2
83853       --
83854       THEN
83855       xla_accounting_err_pkg.build_message
83856                                     (p_appli_s_name            => 'XLA'
83857                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83858                                     ,p_token_1                 => 'LINE_NUMBER'
83859                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83860                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83861                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83862                                                                              l_component_type
83863                                                                             ,l_component_code
83864                                                                             ,l_component_type_code
83865                                                                             ,l_component_appl_id
83866                                                                             ,l_amb_context_code
83867                                                                             ,l_entity_code
83868                                                                             ,l_event_class_code
83869                                                                            )
83870                                     ,p_token_3                 => 'OWNER'
83871                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83872                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83873                                                                           ,p_lookup_code    => l_component_type_code
83874                                                                          )
83875                                     ,p_token_4                 => 'PRODUCT_NAME'
83876                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83877                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83878                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83879                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83880                                     ,p_ae_header_id            =>  NULL
83881                                        );
83882 
83883         IF (C_LEVEL_ERROR>= g_log_level) THEN
83884                  trace
83885                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83886                       ,p_level    => C_LEVEL_ERROR
83887                       ,p_module   => l_log_module);
83888         END IF;
83889       END IF;
83890    END IF;
83891    --
83892    --
83893    ------------------------------------------------------------------------------------------------
83894    -- 4219869 Business Flow
83895    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83896    -- Prior Entry.  Currently, the following code is always generated.
83897    ------------------------------------------------------------------------------------------------
83898    XLA_AE_LINES_PKG.ValidateCurrentLine;
83899 
83900    ------------------------------------------------------------------------------------
83901    -- 4219869 Business Flow
83902    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83903    ------------------------------------------------------------------------------------
83904    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83905 
83906    ----------------------------------------------------------------------------------
83907    -- 4219869 Business Flow
83908    -- Update journal entry status -- Need to generate this within IF <condition>
83909    ----------------------------------------------------------------------------------
83910    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83911          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83912          ,p_balance_type_code => l_balance_type_code
83913          );
83914 
83915    -------------------------------------------------------------------------------------------
83916    -- 4262811 - Generate the Accrual Reversal lines
83917    -------------------------------------------------------------------------------------------
83918    BEGIN
83919       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83920                               (g_array_event(p_event_id).array_value_num('header_index'));
83921       IF l_acc_rev_flag IS NULL THEN
83922          l_acc_rev_flag := 'N';
83923       END IF;
83924    EXCEPTION
83925       WHEN OTHERS THEN
83926          l_acc_rev_flag := 'N';
83927    END;
83928    --
83929    IF (l_acc_rev_flag = 'Y') THEN
83930 
83931        -- 4645092  ------------------------------------------------------------------------------
83932        -- To allow MPA report to determine if it should generate report process
83933        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83934        ------------------------------------------------------------------------------------------
83935 
83936        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83937        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83938    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83939    -- call ADRs
83940    -- Bug 4922099
83941    --
83942    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83946    THEN
83943         (NVL(l_actual_upg_option, 'N') = 'O') OR
83944         (NVL(l_enc_upg_option, 'N') = 'O')
83945       )
83947    NULL;
83948    --
83949    --
83950    
83951    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
83952      p_code_combination_id      => TO_NUMBER(C_NUM)
83953    , p_value_type_code          => NULL
83954    , p_transaction_coa_id       => null
83955    , p_accounting_coa_id        => null
83956    , p_adr_code                 => NULL
83957    , p_adr_type_code            => NULL
83958    , p_component_type           => l_component_type
83959    , p_component_code           => l_component_code
83960    , p_component_type_code      => l_component_type_code
83961    , p_component_appl_id        => l_component_appl_id
83962    , p_amb_context_code         => l_amb_context_code
83963    , p_side                     => NULL
83964    );
83965 
83966    
83967   -- initialise segments
83968   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83969   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83970   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83971   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83972   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83973   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83974   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83975   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83976   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83977   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83978   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83979   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83980   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83981   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83982   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83983   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83984   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83985   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83986   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83987   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83988   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83989   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83990   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83991   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83992   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83993   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83994   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83995   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83996   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83997   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83998   --
83999 
84000    --
84001 
84002 
84003    l_segment := AcctDerRule_15(
84004            p_application_id           => p_application_id
84005          , p_ae_header_id             => l_ae_header_id 
84006 , p_source_34 => p_source_34
84007          , x_transaction_coa_id       => l_adr_transaction_coa_id
84008          , x_accounting_coa_id        => l_adr_accounting_coa_id
84009          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
84010          , x_flex_value_set_id        => l_adr_flex_value_set_id
84011          , x_value_type_code          => l_adr_value_type_code
84012          , x_value_combination_id     => l_adr_value_combination_id
84013          , x_value_segment_code       => l_adr_value_segment_code
84014          , p_side                     => 'NA'
84015          , p_override_seg_flag        => 'Y'
84016    );
84017 
84018    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
84019 
84020       xla_ae_lines_pkg.set_segment(
84021           p_to_segment_code         => 'GL_ACCOUNT'
84022         , p_segment_value           => l_segment
84023         , p_from_segment_code       => l_adr_value_segment_code
84024         , p_from_combination_id     => l_adr_value_combination_id
84025         , p_value_type_code         => l_adr_value_type_code
84026         , p_transaction_coa_id      => l_adr_transaction_coa_id
84027         , p_accounting_coa_id       => l_adr_accounting_coa_id
84028         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
84029         , p_flex_value_set_id       => l_adr_flex_value_set_id
84030         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
84031         , p_adr_type_code           => 'S'
84032         , p_component_type          => l_component_type
84033         , p_component_code          => l_component_code
84034         , p_component_type_code     => l_component_type_code
84035         , p_component_appl_id       => l_component_appl_id
84039         , p_side                    => 'NA'
84036         , p_amb_context_code        => l_amb_context_code
84037         , p_entity_code             => 'AP_INVOICES'
84038         , p_event_class_code        => 'CREDIT MEMOS'
84040         );
84041 
84042   END IF;
84043 
84044    --
84045    --
84046    END IF;
84047 
84048        --
84049        -- Update the line information that should be overwritten
84050        --
84051        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84052                                          p_header_num   => 1);
84053        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84054 
84055        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84056 
84057        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84058           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84059        END IF;
84060 
84061       --
84062       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84063       --
84064       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84065           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84066       ELSE
84067           ---------------------------------------------------------------------------------------------------
84068           -- 4262811a Switch Sign
84069           ---------------------------------------------------------------------------------------------------
84070           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84071           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84072                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84073           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84074                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84075           -- 5132302
84076           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84077                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84078 
84079       END IF;
84080 
84081       -- 4955764
84082       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84083       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84084 
84085 
84086       XLA_AE_LINES_PKG.ValidateCurrentLine;
84087       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84088 
84089       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84090                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84091                ,p_balance_type_code => l_balance_type_code);
84092 
84093    END IF;
84094 
84095    -----------------------------------------------------------------------------------------
84096    -- 4262811 Multiperiod Accounting
84097    -----------------------------------------------------------------------------------------
84098      -- No MPA option is assigned.
84099 
84100 
84101 END IF;
84102 END IF;
84103 --
84104 
84105 --
84106 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84107    trace
84108       (p_msg      => 'END of AcctLineType_147'
84109       ,p_level    => C_LEVEL_PROCEDURE
84110       ,p_module   => l_log_module);
84111 END IF;
84112 --
84113 EXCEPTION
84114   WHEN xla_exceptions_pkg.application_exception THEN
84115       RAISE;
84116   WHEN OTHERS THEN
84117        xla_exceptions_pkg.raise_message
84118            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_147');
84119 END AcctLineType_147;
84120 --
84121 
84122 ---------------------------------------
84123 --
84124 -- PRIVATE FUNCTION
84125 --         AcctLineType_148
84126 --
84127 ---------------------------------------
84128 PROCEDURE AcctLineType_148 (
84129   p_application_id        IN NUMBER
84130  ,p_event_id              IN NUMBER
84131  ,p_calculate_acctd_flag  IN VARCHAR2
84132  ,p_calculate_g_l_flag    IN VARCHAR2
84133  ,p_actual_flag           IN OUT VARCHAR2
84134  ,p_balance_type_code     OUT VARCHAR2
84135  ,p_gain_or_loss_ref      OUT VARCHAR2
84136  
84137 --Invoice Distribution Description
84138  , p_source_1            IN VARCHAR2
84139 --Automatic Offsets Value
84140  , p_source_15            IN VARCHAR2
84141  , p_source_15_meaning    IN VARCHAR2
84142 --Invoice Distribution Ledger Amount
84143  , p_source_21            IN NUMBER
84144 --Invoice Liability Account
84145  , p_source_34            IN NUMBER
84146 --Accounting Reversal Indicator
84147  , p_source_52            IN VARCHAR2
84148 --Distribution Link Type
84149  , p_source_54            IN VARCHAR2
84150 --Allocation to Main Distribution Identifier
84151  , p_source_56            IN NUMBER
84152 --Invoice Identifier
84153  , p_source_57            IN NUMBER
84154 --Invoice Distribution Identifier
84155  , p_source_63            IN NUMBER
84156 --Payables Encumbrance Upgrade Credit Account
84157  , p_source_64            IN NUMBER
84158 --Payables Encumbrance Upgrade Credit Amount
84159  , p_source_65            IN NUMBER
84160 --Invoice Currency Code
84161  , p_source_66            IN VARCHAR2
84165  , p_source_68            IN NUMBER
84162 --Payables Encumbrance Upgrade Credit Base Amount
84163  , p_source_67            IN NUMBER
84164 --Payables Encumbrance Upgrade Debit Account
84166 --Payables Encumbrance Upgrade Debit Amount
84167  , p_source_69            IN NUMBER
84168 --Payables Encumbrance Upgrade Debit Base Amount
84169  , p_source_70            IN NUMBER
84170 --Payables Encumbrance Upgrade Option
84171  , p_source_71            IN VARCHAR2
84172 --Invoice Distribution Amount
84173  , p_source_72            IN NUMBER
84174 --Deferred Accounting End Date
84175  , p_source_76            IN DATE
84176 --Deferred Accounting Option
84177  , p_source_77            IN VARCHAR2
84178 --Deferred Accounting Start Date
84179  , p_source_78            IN DATE
84180 --Override Accounted Amount Indicator
84181  , p_source_79            IN VARCHAR2
84182  , p_source_79_meaning    IN VARCHAR2
84183 --Invoice Supplier Identifier
84184  , p_source_80            IN NUMBER
84185 --Invoice Supplier Site Identifier
84186  , p_source_81            IN NUMBER
84187 --Third Party Type
84188  , p_source_82            IN VARCHAR2
84189 --Parent Reversal Identifier
84190  , p_source_83            IN NUMBER
84191 --Invoice Distribution Statistical Amount
84192  , p_source_84            IN NUMBER
84193 --Invoice Distribution Tax Line Identifier
84194  , p_source_85            IN NUMBER
84195 --Invoice Distribution Tax Distribution Identifier from Tax
84196  , p_source_86            IN NUMBER
84197 --Invoice Distribution Summary Tax Line Identifier
84198  , p_source_87            IN NUMBER
84199 --Payables Upgrade Credit Encumbrance Type Identifier
84200  , p_source_88            IN NUMBER
84201 --Payables Upgrade Debit Encumbrance Type Identifier
84202  , p_source_89            IN NUMBER
84203 --Business Flow Accounts Payable Application Identifier
84204  , p_source_90            IN NUMBER
84205 --Business Flow Invoice Distribution Type
84206  , p_source_91            IN VARCHAR2
84207 --Business Flow Invoice Entity Code
84208  , p_source_92            IN VARCHAR2
84209 --Business Flow Invoice Distribution Identifier
84210  , p_source_93            IN NUMBER
84211 --Business Flow Invoice Identifier
84212  , p_source_94            IN NUMBER
84213 --Self-Assessed Tax Flag
84214  , p_source_135            IN VARCHAR2
84215  , p_source_135_meaning    IN VARCHAR2
84216 --Invoice Exchange Date
84217  , p_source_136            IN DATE
84218 --Invoice Exchange Rate
84219  , p_source_137            IN NUMBER
84220 --Invoice Exchange Rate Type
84221  , p_source_138            IN VARCHAR2
84222 --Invoice Source
84223  , p_source_163            IN VARCHAR2
84224 )
84225 IS
84226 
84227 l_component_type              VARCHAR2(80);
84228 l_component_code              VARCHAR2(30);
84229 l_component_type_code         VARCHAR2(1);
84230 l_component_appl_id           INTEGER;
84231 l_amb_context_code            VARCHAR2(30);
84232 l_entity_code                 VARCHAR2(30);
84233 l_event_class_code            VARCHAR2(30);
84234 l_ae_header_id                NUMBER;
84235 l_event_type_code             VARCHAR2(30);
84236 l_line_definition_code        VARCHAR2(30);
84237 l_line_definition_owner_code  VARCHAR2(1);
84238 --
84239 -- adr variables
84240 l_segment                     VARCHAR2(30);
84241 l_ccid                        NUMBER;
84242 l_adr_transaction_coa_id      NUMBER;
84243 l_adr_accounting_coa_id       NUMBER;
84244 l_adr_flexfield_segment_code  VARCHAR2(30);
84245 l_adr_flex_value_set_id       NUMBER;
84246 l_adr_value_type_code         VARCHAR2(30);
84247 l_adr_value_combination_id    NUMBER;
84248 l_adr_value_segment_code      VARCHAR2(30);
84249 
84250 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84251 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84252 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84253 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84254 
84255 -- 4262811 Variables ------------------------------------------------------------------------------------------
84256 l_entered_amt_idx             NUMBER;
84257 l_accted_amt_idx              NUMBER;
84258 l_acc_rev_flag                VARCHAR2(1);
84259 l_accrual_line_num            NUMBER;
84260 l_tmp_amt                     NUMBER;
84261 l_acc_rev_natural_side_code   VARCHAR2(1);
84262 
84263 l_num_entries                 NUMBER;
84264 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84265 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84266 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84267 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84268 l_recog_line_1                NUMBER;
84269 l_recog_line_2                NUMBER;
84270 
84271 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84272 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84273 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84274 
84275 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84276 
84277 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84278 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84279 
84283 --
84280 ---------------------------------------------------------------------------------------------------------------
84281 
84282 
84284 -- bulk performance
84285 --
84286 l_balance_type_code           VARCHAR2(1);
84287 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84288 l_log_module                  VARCHAR2(240);
84289 
84290 --
84291 -- Upgrade strategy
84292 --
84293 l_actual_upg_option           VARCHAR2(1);
84294 l_enc_upg_option           VARCHAR2(1);
84295 
84296 --
84297 BEGIN
84298 --
84299 IF g_log_enabled THEN
84300       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
84301 END IF;
84302 --
84303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84304 
84305       trace
84306          (p_msg      => 'BEGIN of AcctLineType_148'
84307          ,p_level    => C_LEVEL_PROCEDURE
84308          ,p_module   => l_log_module);
84309 
84310 END IF;
84311 --
84312 l_component_type             := 'AMB_JLT';
84313 l_component_code             := 'AP_LIAB_CM_AOS_BS';
84314 l_component_type_code        := 'S';
84315 l_component_appl_id          :=  200;
84316 l_amb_context_code           := 'DEFAULT';
84317 l_entity_code                := 'AP_INVOICES';
84318 l_event_class_code           := 'CREDIT MEMOS';
84319 l_event_type_code            := 'CREDIT MEMOS_ALL';
84320 l_line_definition_owner_code := 'S';
84321 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
84322 --
84323 l_balance_type_code          := 'A';
84324 l_segment                     := NULL;
84325 l_ccid                        := NULL;
84326 l_adr_transaction_coa_id      := NULL;
84327 l_adr_accounting_coa_id       := NULL;
84328 l_adr_flexfield_segment_code  := NULL;
84329 l_adr_flex_value_set_id       := NULL;
84330 l_adr_value_type_code         := NULL;
84331 l_adr_value_combination_id    := NULL;
84332 l_adr_value_segment_code      := NULL;
84333 
84334 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
84335 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
84336 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84337 l_budgetary_control_flag     := 'N';
84338 
84339 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84340 l_bflow_applied_to_amt       := NULL; -- 5132302
84341 l_entered_amt_idx            := NULL;          -- 4262811
84342 l_accted_amt_idx             := NULL;          -- 4262811
84343 l_acc_rev_flag               := NULL;          -- 4262811
84344 l_accrual_line_num           := NULL;          -- 4262811
84345 l_tmp_amt                    := NULL;          -- 4262811
84346 --
84347  
84348 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84349     l_balance_type_code <> 'B' THEN
84350 IF NVL(p_source_15,'
84351 ') =  'BALANCING_SEGMENT' AND 
84352 NVL(p_source_135,'
84353 ') <>  'Y'
84354  THEN 
84355 
84356    --
84357    XLA_AE_LINES_PKG.SetNewLine;
84358 
84359    p_balance_type_code          := l_balance_type_code;
84360    -- set the flag so later we will know whether the gain loss line needs to be created
84361    
84362    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84363      p_actual_flag :='A';
84364    END IF;
84365 
84366    --
84367    -- bulk performance
84368    --
84369    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84370                                       p_header_num   => 0); -- 4262811
84371    --
84372    -- set accounting line options
84373    --
84374    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84375            p_natural_side_code          => 'C'
84376          , p_gain_or_loss_flag          => 'N'
84377          , p_gl_transfer_mode_code      => 'S'
84378          , p_acct_entry_type_code       => 'A'
84379          , p_switch_side_flag           => 'Y'
84380          , p_merge_duplicate_code       => 'A'
84381          );
84382    --
84383    l_acc_rev_natural_side_code := 'D';  -- 4262811
84384    -- 
84385    --
84386    -- set accounting line type info
84387    --
84388    xla_ae_lines_pkg.SetAcctLineType
84389       (p_component_type             => l_component_type
84390       ,p_event_type_code            => l_event_type_code
84391       ,p_line_definition_owner_code => l_line_definition_owner_code
84392       ,p_line_definition_code       => l_line_definition_code
84393       ,p_accounting_line_code       => l_component_code
84394       ,p_accounting_line_type_code  => l_component_type_code
84395       ,p_accounting_line_appl_id    => l_component_appl_id
84396       ,p_amb_context_code           => l_amb_context_code
84397       ,p_entity_code                => l_entity_code
84398       ,p_event_class_code           => l_event_class_code);
84399    --
84400    -- set accounting class
84401    --
84402    xla_ae_lines_pkg.SetAcctClass(
84403            p_accounting_class_code  => 'LIABILITY'
84404          , p_ae_header_id           => l_ae_header_id
84405          );
84406 
84407    --
84408    -- set rounding class
84409    --
84410    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84411                       'LIABILITY';
84412 
84413    --
84414    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84418    --
84415    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84416    --
84417    -- bulk performance
84419    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84420 
84421    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84422       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84423 
84424    -- 4955764
84425    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84426       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84427 
84428    -- 4458381 Public Sector Enh
84429    
84430    --
84431    -- set accounting attributes for the line type
84432    --
84433    l_entered_amt_idx := 23;
84434    l_accted_amt_idx  := 28;
84435    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84436    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84437    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
84438    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84439    l_rec_acct_attrs.array_num_value(2)  := 
84440 xla_ae_sources_pkg.GetSystemSourceNum(
84441    p_source_code           => 'XLA_EVENT_APPL_ID'
84442  , p_source_type_code      => 'Y'
84443  , p_source_application_id =>  602
84444 );
84445    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84446    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
84447    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84448    l_rec_acct_attrs.array_char_value(4)  := 
84449 xla_ae_sources_pkg.GetSystemSourceChar(
84450    p_source_code           => 'XLA_ENTITY_CODE'
84451  , p_source_type_code      => 'Y'
84452  , p_source_application_id =>  602
84453 );
84454    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84455    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
84456    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84457    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
84458    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84459    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
84460    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84461    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
84462    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84463    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
84464    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84465    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
84466    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84467    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
84468    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84469    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
84470    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84471    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
84472    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84473    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
84474    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84475    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
84476    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84477    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
84478    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84479    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
84480    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84481    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
84482    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
84483    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
84484    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
84485    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
84486    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
84487    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
84488    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
84489    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
84490    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
84491    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
84492    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
84493    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
84494    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
84495    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
84496    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
84497    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
84498    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
84499    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
84500    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
84501    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
84502    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
84503    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
84504    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
84505    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
84506    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
84507    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
84508    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
84512    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
84509    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
84510    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
84511    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
84513    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
84514    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
84515    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
84516    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
84517    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
84518    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
84519    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
84520    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
84521    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
84522    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
84523    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
84524    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
84525    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
84526    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
84527    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
84528    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
84529    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
84530    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
84531    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
84532 
84533    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84534    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84535 
84536    ---------------------------------------------------------------------------------------------------------------
84537    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84538    ---------------------------------------------------------------------------------------------------------------
84539    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84540 
84541    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84542    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84543 
84544    IF xla_accounting_cache_pkg.GetValueChar
84545          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84546          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84547    AND l_bflow_method_code = 'PRIOR_ENTRY'
84548 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84549    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84550          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84551        )
84552    THEN
84553          xla_ae_lines_pkg.BflowUpgEntry
84554            (p_business_method_code    => l_bflow_method_code
84555            ,p_business_class_code     => l_bflow_class_code
84556            ,p_balance_type            => l_balance_type_code);
84557    ELSE
84558       NULL;
84559 XLA_AE_LINES_PKG.business_flow_validation(
84560                                 p_business_method_code     => l_bflow_method_code
84561                                ,p_business_class_code      => l_bflow_class_code
84562                                ,p_inherit_description_flag => l_inherit_desc_flag);
84563    END IF;
84564 
84565    --
84566    -- call analytical criteria
84567    --
84568    
84569 
84570 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
84571 xla_ae_lines_pkg.SetAnalyticalCriteria(
84572    p_analytical_criterion_name    => 'Payables Custom Source'
84573  , p_analytical_criterion_owner   => 'S'
84574  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
84575  , p_amb_context_code             => 'DEFAULT'
84576  , p_balancing_flag               => 'N'
84577  
84578  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
84579 p_source_163
84580 , p_source_57
84581 , p_source_63))
84582  , p_analytical_detail_num_1     =>  NULL
84583  , p_analytical_detail_date_1    =>  NULL
84584 
84585  , p_ae_header_id                 => l_ae_header_id
84586 )
84587 ;
84588 --
84589 
84590    --
84591    -- call description
84592    --
84593    
84594 xla_ae_lines_pkg.SetLineDescription(
84595    p_ae_header_id => l_ae_header_id
84596   ,p_description  => Description_1 (
84597      p_application_id         => p_application_id
84598    , p_ae_header_id           => l_ae_header_id 
84599 , p_source_1 => p_source_1
84600    )
84601 );
84602 
84603 
84604    --
84605    -- call ADRs
84606    -- Bug 4922099
84607    --
84608    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84609         (NVL(l_actual_upg_option, 'N') = 'O') OR
84610         (NVL(l_enc_upg_option, 'N') = 'O')
84611       )
84612    THEN
84613    NULL;
84614    --
84615    --
84616    
84617   l_ccid := AcctDerRule_34(
84618            p_application_id           => p_application_id
84619          , p_ae_header_id             => l_ae_header_id 
84620 , p_source_34 => p_source_34
84621          , x_transaction_coa_id       => l_adr_transaction_coa_id
84622          , x_accounting_coa_id        => l_adr_accounting_coa_id
84623          , x_value_type_code          => l_adr_value_type_code
84624          , p_side                     => 'NA'
84625    );
84626 
84630   , p_transaction_coa_id           => l_adr_transaction_coa_id
84627    xla_ae_lines_pkg.set_ccid(
84628     p_code_combination_id          => l_ccid
84629   , p_value_type_code              => l_adr_value_type_code
84631   , p_accounting_coa_id            => l_adr_accounting_coa_id
84632   , p_adr_code                     => 'AP_LIAB'
84633   , p_adr_type_code                => 'S'
84634   , p_component_type               => l_component_type
84635   , p_component_code               => l_component_code
84636   , p_component_type_code          => l_component_type_code
84637   , p_component_appl_id            => l_component_appl_id
84638   , p_amb_context_code             => l_amb_context_code
84639   , p_side                         => 'NA'
84640   );
84641 
84642 
84643    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
84644      p_to_segment_code         => 'GL_BALANCING'
84645    , p_segment_value           => C_CHAR
84646    , p_from_segment_code       => NULL
84647    , p_from_combination_id     => NULL
84648    , p_value_type_code         => NULL
84649    , p_transaction_coa_id      => null
84650    , p_accounting_coa_id       => null
84651    , p_flexfield_segment_code  => NULL
84652    , p_flex_value_set_id       => NULL
84653    , p_adr_code                => NULL
84654    , p_adr_type_code           => NULL
84655    , p_component_type          => l_component_type
84656    , p_component_code          => l_component_code
84657    , p_component_type_code     => l_component_type_code
84658    , p_component_appl_id       => l_component_appl_id
84659    , p_amb_context_code        => l_amb_context_code
84660    , p_entity_code             => 'AP_INVOICES'
84661    , p_event_class_code        => 'CREDIT MEMOS'
84662    , p_side                    => 'NA'
84663    );
84664    --
84665 
84666 
84667    --
84668    --
84669    END IF;
84670    --
84671    -- Bug 4922099
84672    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84673           (NVL(l_enc_upg_option, 'N') = 'O')
84674         ) AND
84675         (l_bflow_method_code = 'PRIOR_ENTRY')
84676       )
84677    THEN
84678       IF
84679       --
84680       1 = 2
84681       --
84682       THEN
84683       xla_accounting_err_pkg.build_message
84684                                     (p_appli_s_name            => 'XLA'
84685                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84686                                     ,p_token_1                 => 'LINE_NUMBER'
84687                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84688                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84689                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84690                                                                              l_component_type
84691                                                                             ,l_component_code
84692                                                                             ,l_component_type_code
84693                                                                             ,l_component_appl_id
84694                                                                             ,l_amb_context_code
84695                                                                             ,l_entity_code
84696                                                                             ,l_event_class_code
84697                                                                            )
84698                                     ,p_token_3                 => 'OWNER'
84699                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84700                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84701                                                                           ,p_lookup_code    => l_component_type_code
84702                                                                          )
84703                                     ,p_token_4                 => 'PRODUCT_NAME'
84704                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84705                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84706                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84707                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84708                                     ,p_ae_header_id            =>  NULL
84709                                        );
84710 
84711         IF (C_LEVEL_ERROR>= g_log_level) THEN
84712                  trace
84713                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84714                       ,p_level    => C_LEVEL_ERROR
84715                       ,p_module   => l_log_module);
84716         END IF;
84717       END IF;
84718    END IF;
84719    --
84720    --
84721    ------------------------------------------------------------------------------------------------
84722    -- 4219869 Business Flow
84723    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84724    -- Prior Entry.  Currently, the following code is always generated.
84725    ------------------------------------------------------------------------------------------------
84726    XLA_AE_LINES_PKG.ValidateCurrentLine;
84727 
84731    ------------------------------------------------------------------------------------
84728    ------------------------------------------------------------------------------------
84729    -- 4219869 Business Flow
84730    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84732    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84733 
84734    ----------------------------------------------------------------------------------
84735    -- 4219869 Business Flow
84736    -- Update journal entry status -- Need to generate this within IF <condition>
84737    ----------------------------------------------------------------------------------
84738    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84739          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84740          ,p_balance_type_code => l_balance_type_code
84741          );
84742 
84743    -------------------------------------------------------------------------------------------
84744    -- 4262811 - Generate the Accrual Reversal lines
84745    -------------------------------------------------------------------------------------------
84746    BEGIN
84747       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84748                               (g_array_event(p_event_id).array_value_num('header_index'));
84749       IF l_acc_rev_flag IS NULL THEN
84750          l_acc_rev_flag := 'N';
84751       END IF;
84752    EXCEPTION
84753       WHEN OTHERS THEN
84754          l_acc_rev_flag := 'N';
84755    END;
84756    --
84757    IF (l_acc_rev_flag = 'Y') THEN
84758 
84759        -- 4645092  ------------------------------------------------------------------------------
84760        -- To allow MPA report to determine if it should generate report process
84761        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84762        ------------------------------------------------------------------------------------------
84763 
84764        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84765        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84766    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84767    -- call ADRs
84768    -- Bug 4922099
84769    --
84770    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84771         (NVL(l_actual_upg_option, 'N') = 'O') OR
84772         (NVL(l_enc_upg_option, 'N') = 'O')
84773       )
84774    THEN
84775    NULL;
84776    --
84777    --
84778    
84779   l_ccid := AcctDerRule_34(
84780            p_application_id           => p_application_id
84781          , p_ae_header_id             => l_ae_header_id 
84782 , p_source_34 => p_source_34
84783          , x_transaction_coa_id       => l_adr_transaction_coa_id
84784          , x_accounting_coa_id        => l_adr_accounting_coa_id
84785          , x_value_type_code          => l_adr_value_type_code
84786          , p_side                     => 'NA'
84787    );
84788 
84789    xla_ae_lines_pkg.set_ccid(
84790     p_code_combination_id          => l_ccid
84791   , p_value_type_code              => l_adr_value_type_code
84792   , p_transaction_coa_id           => l_adr_transaction_coa_id
84793   , p_accounting_coa_id            => l_adr_accounting_coa_id
84794   , p_adr_code                     => 'AP_LIAB'
84795   , p_adr_type_code                => 'S'
84796   , p_component_type               => l_component_type
84797   , p_component_code               => l_component_code
84798   , p_component_type_code          => l_component_type_code
84799   , p_component_appl_id            => l_component_appl_id
84800   , p_amb_context_code             => l_amb_context_code
84801   , p_side                         => 'NA'
84802   );
84803 
84804 
84805    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
84806      p_to_segment_code         => 'GL_BALANCING'
84807    , p_segment_value           => C_CHAR
84808    , p_from_segment_code       => NULL
84809    , p_from_combination_id     => NULL
84810    , p_value_type_code         => NULL
84811    , p_transaction_coa_id      => null
84812    , p_accounting_coa_id       => null
84813    , p_flexfield_segment_code  => NULL
84814    , p_flex_value_set_id       => NULL
84815    , p_adr_code                => NULL
84816    , p_adr_type_code           => NULL
84817    , p_component_type          => l_component_type
84818    , p_component_code          => l_component_code
84819    , p_component_type_code     => l_component_type_code
84820    , p_component_appl_id       => l_component_appl_id
84821    , p_amb_context_code        => l_amb_context_code
84822    , p_entity_code             => 'AP_INVOICES'
84823    , p_event_class_code        => 'CREDIT MEMOS'
84824    , p_side                    => 'NA'
84825    );
84826    --
84827 
84828 
84829    --
84830    --
84831    END IF;
84832 
84833        --
84834        -- Update the line information that should be overwritten
84835        --
84836        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84837                                          p_header_num   => 1);
84838        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84839 
84840        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84841 
84842        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84843           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84844        END IF;
84845 
84846       --
84850           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84847       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84848       --
84849       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84851       ELSE
84852           ---------------------------------------------------------------------------------------------------
84853           -- 4262811a Switch Sign
84854           ---------------------------------------------------------------------------------------------------
84855           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84856           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84857                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84858           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84859                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84860           -- 5132302
84861           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84862                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84863 
84864       END IF;
84865 
84866       -- 4955764
84867       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84868       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84869 
84870 
84871       XLA_AE_LINES_PKG.ValidateCurrentLine;
84872       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84873 
84874       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84875                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84876                ,p_balance_type_code => l_balance_type_code);
84877 
84878    END IF;
84879 
84880    -----------------------------------------------------------------------------------------
84881    -- 4262811 Multiperiod Accounting
84882    -----------------------------------------------------------------------------------------
84883      -- No MPA option is assigned.
84884 
84885 
84886 END IF;
84887 END IF;
84888 --
84889 
84890 --
84891 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84892    trace
84893       (p_msg      => 'END of AcctLineType_148'
84894       ,p_level    => C_LEVEL_PROCEDURE
84895       ,p_module   => l_log_module);
84896 END IF;
84897 --
84898 EXCEPTION
84899   WHEN xla_exceptions_pkg.application_exception THEN
84900       RAISE;
84901   WHEN OTHERS THEN
84902        xla_exceptions_pkg.raise_message
84903            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_148');
84904 END AcctLineType_148;
84905 --
84906 
84907 ---------------------------------------
84908 --
84909 -- PRIVATE FUNCTION
84910 --         AcctLineType_149
84911 --
84912 ---------------------------------------
84913 PROCEDURE AcctLineType_149 (
84914   p_application_id        IN NUMBER
84915  ,p_event_id              IN NUMBER
84916  ,p_calculate_acctd_flag  IN VARCHAR2
84917  ,p_calculate_g_l_flag    IN VARCHAR2
84918  ,p_actual_flag           IN OUT VARCHAR2
84919  ,p_balance_type_code     OUT VARCHAR2
84920  ,p_gain_or_loss_ref      OUT VARCHAR2
84921  
84922 --Invoice Distribution Description
84923  , p_source_1            IN VARCHAR2
84924 --Automatic Offsets Value
84925  , p_source_15            IN VARCHAR2
84926  , p_source_15_meaning    IN VARCHAR2
84927 --Invoice Distribution Ledger Amount
84928  , p_source_21            IN NUMBER
84929 --Invoice Liability Account
84930  , p_source_34            IN NUMBER
84931 --Accounting Reversal Indicator
84932  , p_source_52            IN VARCHAR2
84933 --Distribution Link Type
84934  , p_source_54            IN VARCHAR2
84935 --Allocation to Main Distribution Identifier
84936  , p_source_56            IN NUMBER
84937 --Invoice Identifier
84938  , p_source_57            IN NUMBER
84939 --Invoice Distribution Identifier
84940  , p_source_63            IN NUMBER
84941 --Payables Encumbrance Upgrade Credit Account
84942  , p_source_64            IN NUMBER
84943 --Payables Encumbrance Upgrade Credit Amount
84944  , p_source_65            IN NUMBER
84945 --Invoice Currency Code
84946  , p_source_66            IN VARCHAR2
84947 --Payables Encumbrance Upgrade Credit Base Amount
84948  , p_source_67            IN NUMBER
84949 --Payables Encumbrance Upgrade Debit Account
84950  , p_source_68            IN NUMBER
84951 --Payables Encumbrance Upgrade Debit Amount
84952  , p_source_69            IN NUMBER
84953 --Payables Encumbrance Upgrade Debit Base Amount
84954  , p_source_70            IN NUMBER
84955 --Payables Encumbrance Upgrade Option
84956  , p_source_71            IN VARCHAR2
84957 --Invoice Distribution Amount
84958  , p_source_72            IN NUMBER
84959 --Deferred Accounting End Date
84960  , p_source_76            IN DATE
84961 --Deferred Accounting Option
84962  , p_source_77            IN VARCHAR2
84963 --Deferred Accounting Start Date
84964  , p_source_78            IN DATE
84965 --Override Accounted Amount Indicator
84966  , p_source_79            IN VARCHAR2
84967  , p_source_79_meaning    IN VARCHAR2
84968 --Invoice Supplier Identifier
84972 --Third Party Type
84969  , p_source_80            IN NUMBER
84970 --Invoice Supplier Site Identifier
84971  , p_source_81            IN NUMBER
84973  , p_source_82            IN VARCHAR2
84974 --Parent Reversal Identifier
84975  , p_source_83            IN NUMBER
84976 --Invoice Distribution Tax Line Identifier
84977  , p_source_85            IN NUMBER
84978 --Invoice Distribution Tax Distribution Identifier from Tax
84979  , p_source_86            IN NUMBER
84980 --Invoice Distribution Summary Tax Line Identifier
84981  , p_source_87            IN NUMBER
84982 --Payables Upgrade Credit Encumbrance Type Identifier
84983  , p_source_88            IN NUMBER
84984 --Payables Upgrade Debit Encumbrance Type Identifier
84985  , p_source_89            IN NUMBER
84986 --Business Flow Accounts Payable Application Identifier
84987  , p_source_90            IN NUMBER
84988 --Business Flow Invoice Distribution Type
84989  , p_source_91            IN VARCHAR2
84990 --Business Flow Invoice Entity Code
84991  , p_source_92            IN VARCHAR2
84992 --Business Flow Invoice Distribution Identifier
84993  , p_source_93            IN NUMBER
84994 --Business Flow Invoice Identifier
84995  , p_source_94            IN NUMBER
84996 --Self-Assessed Tax Flag
84997  , p_source_135            IN VARCHAR2
84998  , p_source_135_meaning    IN VARCHAR2
84999 --Invoice Exchange Date
85000  , p_source_136            IN DATE
85001 --Invoice Exchange Rate
85002  , p_source_137            IN NUMBER
85003 --Invoice Exchange Rate Type
85004  , p_source_138            IN VARCHAR2
85005 --Invoice Source
85006  , p_source_163            IN VARCHAR2
85007 )
85008 IS
85009 
85010 l_component_type              VARCHAR2(80);
85011 l_component_code              VARCHAR2(30);
85012 l_component_type_code         VARCHAR2(1);
85013 l_component_appl_id           INTEGER;
85014 l_amb_context_code            VARCHAR2(30);
85015 l_entity_code                 VARCHAR2(30);
85016 l_event_class_code            VARCHAR2(30);
85017 l_ae_header_id                NUMBER;
85018 l_event_type_code             VARCHAR2(30);
85019 l_line_definition_code        VARCHAR2(30);
85020 l_line_definition_owner_code  VARCHAR2(1);
85021 --
85022 -- adr variables
85023 l_segment                     VARCHAR2(30);
85024 l_ccid                        NUMBER;
85025 l_adr_transaction_coa_id      NUMBER;
85026 l_adr_accounting_coa_id       NUMBER;
85027 l_adr_flexfield_segment_code  VARCHAR2(30);
85028 l_adr_flex_value_set_id       NUMBER;
85029 l_adr_value_type_code         VARCHAR2(30);
85030 l_adr_value_combination_id    NUMBER;
85031 l_adr_value_segment_code      VARCHAR2(30);
85032 
85033 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85034 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85035 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85036 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85037 
85038 -- 4262811 Variables ------------------------------------------------------------------------------------------
85039 l_entered_amt_idx             NUMBER;
85040 l_accted_amt_idx              NUMBER;
85041 l_acc_rev_flag                VARCHAR2(1);
85042 l_accrual_line_num            NUMBER;
85043 l_tmp_amt                     NUMBER;
85044 l_acc_rev_natural_side_code   VARCHAR2(1);
85045 
85046 l_num_entries                 NUMBER;
85047 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85048 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85049 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85050 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85051 l_recog_line_1                NUMBER;
85052 l_recog_line_2                NUMBER;
85053 
85054 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85055 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85056 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85057 
85058 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85059 
85060 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85061 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85062 
85063 ---------------------------------------------------------------------------------------------------------------
85064 
85065 
85066 --
85067 -- bulk performance
85068 --
85069 l_balance_type_code           VARCHAR2(1);
85070 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85071 l_log_module                  VARCHAR2(240);
85072 
85073 --
85074 -- Upgrade strategy
85075 --
85076 l_actual_upg_option           VARCHAR2(1);
85077 l_enc_upg_option           VARCHAR2(1);
85078 
85079 --
85080 BEGIN
85081 --
85082 IF g_log_enabled THEN
85083       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
85084 END IF;
85085 --
85086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85087 
85088       trace
85089          (p_msg      => 'BEGIN of AcctLineType_149'
85090          ,p_level    => C_LEVEL_PROCEDURE
85091          ,p_module   => l_log_module);
85092 
85093 END IF;
85094 --
85095 l_component_type             := 'AMB_JLT';
85096 l_component_code             := 'AP_LIAB_DM';
85097 l_component_type_code        := 'S';
85101 l_event_class_code           := 'DEBIT MEMOS';
85098 l_component_appl_id          :=  200;
85099 l_amb_context_code           := 'DEFAULT';
85100 l_entity_code                := 'AP_INVOICES';
85102 l_event_type_code            := 'DEBIT MEMOS_ALL';
85103 l_line_definition_owner_code := 'S';
85104 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
85105 --
85106 l_balance_type_code          := 'A';
85107 l_segment                     := NULL;
85108 l_ccid                        := NULL;
85109 l_adr_transaction_coa_id      := NULL;
85110 l_adr_accounting_coa_id       := NULL;
85111 l_adr_flexfield_segment_code  := NULL;
85112 l_adr_flex_value_set_id       := NULL;
85113 l_adr_value_type_code         := NULL;
85114 l_adr_value_combination_id    := NULL;
85115 l_adr_value_segment_code      := NULL;
85116 
85117 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
85118 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
85119 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85120 l_budgetary_control_flag     := 'N';
85121 
85122 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85123 l_bflow_applied_to_amt       := NULL; -- 5132302
85124 l_entered_amt_idx            := NULL;          -- 4262811
85125 l_accted_amt_idx             := NULL;          -- 4262811
85126 l_acc_rev_flag               := NULL;          -- 4262811
85127 l_accrual_line_num           := NULL;          -- 4262811
85128 l_tmp_amt                    := NULL;          -- 4262811
85129 --
85130  
85131 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85132     l_balance_type_code <> 'B' THEN
85133 IF (NVL(p_source_15,'
85134 ') <>  'BALANCING_SEGMENT' AND 
85135 NVL(p_source_15,'
85136 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
85137 NVL(p_source_135,'
85138 ') <>  'Y'
85139  THEN 
85140 
85141    --
85142    XLA_AE_LINES_PKG.SetNewLine;
85143 
85144    p_balance_type_code          := l_balance_type_code;
85145    -- set the flag so later we will know whether the gain loss line needs to be created
85146    
85147    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85148      p_actual_flag :='A';
85149    END IF;
85150 
85151    --
85152    -- bulk performance
85153    --
85154    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85155                                       p_header_num   => 0); -- 4262811
85156    --
85157    -- set accounting line options
85158    --
85159    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85160            p_natural_side_code          => 'C'
85161          , p_gain_or_loss_flag          => 'N'
85162          , p_gl_transfer_mode_code      => 'S'
85163          , p_acct_entry_type_code       => 'A'
85164          , p_switch_side_flag           => 'Y'
85165          , p_merge_duplicate_code       => 'A'
85166          );
85167    --
85168    l_acc_rev_natural_side_code := 'D';  -- 4262811
85169    -- 
85170    --
85171    -- set accounting line type info
85172    --
85173    xla_ae_lines_pkg.SetAcctLineType
85174       (p_component_type             => l_component_type
85175       ,p_event_type_code            => l_event_type_code
85176       ,p_line_definition_owner_code => l_line_definition_owner_code
85177       ,p_line_definition_code       => l_line_definition_code
85178       ,p_accounting_line_code       => l_component_code
85179       ,p_accounting_line_type_code  => l_component_type_code
85180       ,p_accounting_line_appl_id    => l_component_appl_id
85181       ,p_amb_context_code           => l_amb_context_code
85182       ,p_entity_code                => l_entity_code
85183       ,p_event_class_code           => l_event_class_code);
85184    --
85185    -- set accounting class
85186    --
85187    xla_ae_lines_pkg.SetAcctClass(
85188            p_accounting_class_code  => 'LIABILITY'
85189          , p_ae_header_id           => l_ae_header_id
85190          );
85191 
85192    --
85193    -- set rounding class
85194    --
85195    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85196                       'LIABILITY';
85197 
85198    --
85199    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85200    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85201    --
85202    -- bulk performance
85203    --
85204    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85205 
85206    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85207       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85208 
85209    -- 4955764
85210    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85211       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85212 
85213    -- 4458381 Public Sector Enh
85214    
85215    --
85216    -- set accounting attributes for the line type
85217    --
85218    l_entered_amt_idx := 23;
85219    l_accted_amt_idx  := 28;
85220    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85221    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85222    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
85223    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85227  , p_source_type_code      => 'Y'
85224    l_rec_acct_attrs.array_num_value(2)  := 
85225 xla_ae_sources_pkg.GetSystemSourceNum(
85226    p_source_code           => 'XLA_EVENT_APPL_ID'
85228  , p_source_application_id =>  602
85229 );
85230    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85231    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
85232    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85233    l_rec_acct_attrs.array_char_value(4)  := 
85234 xla_ae_sources_pkg.GetSystemSourceChar(
85235    p_source_code           => 'XLA_ENTITY_CODE'
85236  , p_source_type_code      => 'Y'
85237  , p_source_application_id =>  602
85238 );
85239    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85240    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
85241    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85242    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
85243    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85244    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
85245    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85246    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
85247    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85248    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
85249    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85250    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
85251    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85252    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
85253    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85254    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
85255    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85256    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
85257    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
85258    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
85259    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
85260    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
85261    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
85262    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
85263    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
85264    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
85265    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
85266    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
85267    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
85268    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
85269    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
85270    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
85271    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
85272    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
85273    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
85274    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
85275    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
85276    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
85277    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
85278    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
85279    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
85280    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
85281    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
85282    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
85283    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
85284    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
85285    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
85286    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
85287    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
85288    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
85289    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
85290    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
85291    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
85292    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
85293    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
85294    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
85295    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
85296    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
85297    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
85298    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
85299    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
85300    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
85301    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
85302    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
85303    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
85304    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
85305    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
85306    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
85307    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
85308    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
85309    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
85310    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
85311    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
85312    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
85316    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85313    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
85314    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
85315 
85317    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85318 
85319    ---------------------------------------------------------------------------------------------------------------
85320    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85321    ---------------------------------------------------------------------------------------------------------------
85322    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85323 
85324    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85325    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85326 
85327    IF xla_accounting_cache_pkg.GetValueChar
85328          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85329          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85330    AND l_bflow_method_code = 'PRIOR_ENTRY'
85331 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85332    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85333          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85334        )
85335    THEN
85336          xla_ae_lines_pkg.BflowUpgEntry
85337            (p_business_method_code    => l_bflow_method_code
85338            ,p_business_class_code     => l_bflow_class_code
85339            ,p_balance_type            => l_balance_type_code);
85340    ELSE
85341       NULL;
85342 -- No business flow processing for business flow method of NONE.
85343    END IF;
85344 
85345    --
85346    -- call analytical criteria
85347    --
85348    
85349 
85350 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
85351 xla_ae_lines_pkg.SetAnalyticalCriteria(
85352    p_analytical_criterion_name    => 'Payables Custom Source'
85353  , p_analytical_criterion_owner   => 'S'
85354  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
85355  , p_amb_context_code             => 'DEFAULT'
85356  , p_balancing_flag               => 'N'
85357  
85358  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
85359 p_source_163
85360 , p_source_57
85361 , p_source_63))
85362  , p_analytical_detail_num_1     =>  NULL
85363  , p_analytical_detail_date_1    =>  NULL
85364 
85365  , p_ae_header_id                 => l_ae_header_id
85366 )
85367 ;
85368 --
85369 
85370    --
85371    -- call description
85372    --
85373    
85374 xla_ae_lines_pkg.SetLineDescription(
85375    p_ae_header_id => l_ae_header_id
85376   ,p_description  => Description_1 (
85377      p_application_id         => p_application_id
85378    , p_ae_header_id           => l_ae_header_id 
85379 , p_source_1 => p_source_1
85380    )
85381 );
85382 
85383 
85384    --
85385    -- call ADRs
85386    -- Bug 4922099
85387    --
85388    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85389         (NVL(l_actual_upg_option, 'N') = 'O') OR
85390         (NVL(l_enc_upg_option, 'N') = 'O')
85391       )
85392    THEN
85393    NULL;
85394    --
85395    --
85396    
85397   l_ccid := AcctDerRule_34(
85398            p_application_id           => p_application_id
85399          , p_ae_header_id             => l_ae_header_id 
85400 , p_source_34 => p_source_34
85401          , x_transaction_coa_id       => l_adr_transaction_coa_id
85402          , x_accounting_coa_id        => l_adr_accounting_coa_id
85403          , x_value_type_code          => l_adr_value_type_code
85404          , p_side                     => 'NA'
85405    );
85406 
85407    xla_ae_lines_pkg.set_ccid(
85408     p_code_combination_id          => l_ccid
85409   , p_value_type_code              => l_adr_value_type_code
85410   , p_transaction_coa_id           => l_adr_transaction_coa_id
85411   , p_accounting_coa_id            => l_adr_accounting_coa_id
85412   , p_adr_code                     => 'AP_LIAB'
85413   , p_adr_type_code                => 'S'
85414   , p_component_type               => l_component_type
85415   , p_component_code               => l_component_code
85416   , p_component_type_code          => l_component_type_code
85417   , p_component_appl_id            => l_component_appl_id
85418   , p_amb_context_code             => l_amb_context_code
85419   , p_side                         => 'NA'
85420   );
85421 
85422 
85423    --
85424    --
85425    END IF;
85426    --
85427    -- Bug 4922099
85428    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85429           (NVL(l_enc_upg_option, 'N') = 'O')
85430         ) AND
85431         (l_bflow_method_code = 'PRIOR_ENTRY')
85432       )
85433    THEN
85434       IF
85435       --
85436       1 = 2
85437       --
85438       THEN
85439       xla_accounting_err_pkg.build_message
85440                                     (p_appli_s_name            => 'XLA'
85441                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85442                                     ,p_token_1                 => 'LINE_NUMBER'
85446                                                                              l_component_type
85443                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85444                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85445                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85447                                                                             ,l_component_code
85448                                                                             ,l_component_type_code
85449                                                                             ,l_component_appl_id
85450                                                                             ,l_amb_context_code
85451                                                                             ,l_entity_code
85452                                                                             ,l_event_class_code
85453                                                                            )
85454                                     ,p_token_3                 => 'OWNER'
85455                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85456                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85457                                                                           ,p_lookup_code    => l_component_type_code
85458                                                                          )
85459                                     ,p_token_4                 => 'PRODUCT_NAME'
85460                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85461                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85462                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85463                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85464                                     ,p_ae_header_id            =>  NULL
85465                                        );
85466 
85467         IF (C_LEVEL_ERROR>= g_log_level) THEN
85468                  trace
85469                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85470                       ,p_level    => C_LEVEL_ERROR
85471                       ,p_module   => l_log_module);
85472         END IF;
85473       END IF;
85474    END IF;
85475    --
85476    --
85477    ------------------------------------------------------------------------------------------------
85478    -- 4219869 Business Flow
85479    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85480    -- Prior Entry.  Currently, the following code is always generated.
85481    ------------------------------------------------------------------------------------------------
85482    XLA_AE_LINES_PKG.ValidateCurrentLine;
85483 
85484    ------------------------------------------------------------------------------------
85485    -- 4219869 Business Flow
85486    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85487    ------------------------------------------------------------------------------------
85488    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85489 
85490    ----------------------------------------------------------------------------------
85491    -- 4219869 Business Flow
85492    -- Update journal entry status -- Need to generate this within IF <condition>
85493    ----------------------------------------------------------------------------------
85494    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85495          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85496          ,p_balance_type_code => l_balance_type_code
85497          );
85498 
85499    -------------------------------------------------------------------------------------------
85500    -- 4262811 - Generate the Accrual Reversal lines
85501    -------------------------------------------------------------------------------------------
85502    BEGIN
85503       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85504                               (g_array_event(p_event_id).array_value_num('header_index'));
85505       IF l_acc_rev_flag IS NULL THEN
85506          l_acc_rev_flag := 'N';
85507       END IF;
85508    EXCEPTION
85509       WHEN OTHERS THEN
85510          l_acc_rev_flag := 'N';
85511    END;
85512    --
85513    IF (l_acc_rev_flag = 'Y') THEN
85514 
85515        -- 4645092  ------------------------------------------------------------------------------
85516        -- To allow MPA report to determine if it should generate report process
85517        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85518        ------------------------------------------------------------------------------------------
85519 
85520        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85521        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85522    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85523    -- call ADRs
85524    -- Bug 4922099
85525    --
85526    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85527         (NVL(l_actual_upg_option, 'N') = 'O') OR
85528         (NVL(l_enc_upg_option, 'N') = 'O')
85529       )
85530    THEN
85531    NULL;
85532    --
85533    --
85534    
85535   l_ccid := AcctDerRule_34(
85536            p_application_id           => p_application_id
85537          , p_ae_header_id             => l_ae_header_id 
85538 , p_source_34 => p_source_34
85542          , p_side                     => 'NA'
85539          , x_transaction_coa_id       => l_adr_transaction_coa_id
85540          , x_accounting_coa_id        => l_adr_accounting_coa_id
85541          , x_value_type_code          => l_adr_value_type_code
85543    );
85544 
85545    xla_ae_lines_pkg.set_ccid(
85546     p_code_combination_id          => l_ccid
85547   , p_value_type_code              => l_adr_value_type_code
85548   , p_transaction_coa_id           => l_adr_transaction_coa_id
85549   , p_accounting_coa_id            => l_adr_accounting_coa_id
85550   , p_adr_code                     => 'AP_LIAB'
85551   , p_adr_type_code                => 'S'
85552   , p_component_type               => l_component_type
85553   , p_component_code               => l_component_code
85554   , p_component_type_code          => l_component_type_code
85555   , p_component_appl_id            => l_component_appl_id
85556   , p_amb_context_code             => l_amb_context_code
85557   , p_side                         => 'NA'
85558   );
85559 
85560 
85561    --
85562    --
85563    END IF;
85564 
85565        --
85566        -- Update the line information that should be overwritten
85567        --
85568        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85569                                          p_header_num   => 1);
85570        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85571 
85572        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85573 
85574        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85575           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85576        END IF;
85577 
85578       --
85579       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85580       --
85581       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85582           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85583       ELSE
85584           ---------------------------------------------------------------------------------------------------
85585           -- 4262811a Switch Sign
85586           ---------------------------------------------------------------------------------------------------
85587           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85588           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85589                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85590           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85591                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85592           -- 5132302
85593           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85594                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85595 
85596       END IF;
85597 
85598       -- 4955764
85599       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85600       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85601 
85602 
85603       XLA_AE_LINES_PKG.ValidateCurrentLine;
85604       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85605 
85606       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85607                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85608                ,p_balance_type_code => l_balance_type_code);
85609 
85610    END IF;
85611 
85612    -----------------------------------------------------------------------------------------
85613    -- 4262811 Multiperiod Accounting
85614    -----------------------------------------------------------------------------------------
85615      -- No MPA option is assigned.
85616 
85617 
85618 END IF;
85619 END IF;
85620 --
85621 
85622 --
85623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85624    trace
85625       (p_msg      => 'END of AcctLineType_149'
85626       ,p_level    => C_LEVEL_PROCEDURE
85627       ,p_module   => l_log_module);
85628 END IF;
85629 --
85630 EXCEPTION
85631   WHEN xla_exceptions_pkg.application_exception THEN
85632       RAISE;
85633   WHEN OTHERS THEN
85634        xla_exceptions_pkg.raise_message
85635            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_149');
85636 END AcctLineType_149;
85637 --
85638 
85639 ---------------------------------------
85640 --
85641 -- PRIVATE FUNCTION
85642 --         AcctLineType_150
85643 --
85644 ---------------------------------------
85645 PROCEDURE AcctLineType_150 (
85646   p_application_id        IN NUMBER
85647  ,p_event_id              IN NUMBER
85648  ,p_calculate_acctd_flag  IN VARCHAR2
85649  ,p_calculate_g_l_flag    IN VARCHAR2
85650  ,p_actual_flag           IN OUT VARCHAR2
85651  ,p_balance_type_code     OUT VARCHAR2
85652  ,p_gain_or_loss_ref      OUT VARCHAR2
85653  
85654 --Invoice Distribution Description
85655  , p_source_1            IN VARCHAR2
85656 --Automatic Offsets Value
85657  , p_source_15            IN VARCHAR2
85661 --Invoice Liability Account
85658  , p_source_15_meaning    IN VARCHAR2
85659 --Invoice Distribution Ledger Amount
85660  , p_source_21            IN NUMBER
85662  , p_source_34            IN NUMBER
85663 --Accounting Reversal Indicator
85664  , p_source_52            IN VARCHAR2
85665 --Distribution Link Type
85666  , p_source_54            IN VARCHAR2
85667 --Allocation to Main Distribution Identifier
85668  , p_source_56            IN NUMBER
85669 --Invoice Identifier
85670  , p_source_57            IN NUMBER
85671 --Invoice Distribution Identifier
85672  , p_source_63            IN NUMBER
85673 --Payables Encumbrance Upgrade Credit Account
85674  , p_source_64            IN NUMBER
85675 --Payables Encumbrance Upgrade Credit Amount
85676  , p_source_65            IN NUMBER
85677 --Invoice Currency Code
85678  , p_source_66            IN VARCHAR2
85679 --Payables Encumbrance Upgrade Credit Base Amount
85680  , p_source_67            IN NUMBER
85681 --Payables Encumbrance Upgrade Debit Account
85682  , p_source_68            IN NUMBER
85683 --Payables Encumbrance Upgrade Debit Amount
85684  , p_source_69            IN NUMBER
85685 --Payables Encumbrance Upgrade Debit Base Amount
85686  , p_source_70            IN NUMBER
85687 --Payables Encumbrance Upgrade Option
85688  , p_source_71            IN VARCHAR2
85689 --Invoice Distribution Amount
85690  , p_source_72            IN NUMBER
85691 --Deferred Accounting End Date
85692  , p_source_76            IN DATE
85693 --Deferred Accounting Option
85694  , p_source_77            IN VARCHAR2
85695 --Deferred Accounting Start Date
85696  , p_source_78            IN DATE
85697 --Override Accounted Amount Indicator
85698  , p_source_79            IN VARCHAR2
85699  , p_source_79_meaning    IN VARCHAR2
85700 --Invoice Supplier Identifier
85701  , p_source_80            IN NUMBER
85702 --Invoice Supplier Site Identifier
85703  , p_source_81            IN NUMBER
85704 --Third Party Type
85705  , p_source_82            IN VARCHAR2
85706 --Parent Reversal Identifier
85707  , p_source_83            IN NUMBER
85708 --Invoice Distribution Tax Line Identifier
85709  , p_source_85            IN NUMBER
85710 --Invoice Distribution Tax Distribution Identifier from Tax
85711  , p_source_86            IN NUMBER
85712 --Invoice Distribution Summary Tax Line Identifier
85713  , p_source_87            IN NUMBER
85714 --Payables Upgrade Credit Encumbrance Type Identifier
85715  , p_source_88            IN NUMBER
85716 --Payables Upgrade Debit Encumbrance Type Identifier
85717  , p_source_89            IN NUMBER
85718 --Business Flow Accounts Payable Application Identifier
85719  , p_source_90            IN NUMBER
85720 --Business Flow Invoice Distribution Type
85721  , p_source_91            IN VARCHAR2
85722 --Business Flow Invoice Entity Code
85723  , p_source_92            IN VARCHAR2
85724 --Business Flow Invoice Distribution Identifier
85725  , p_source_93            IN NUMBER
85726 --Business Flow Invoice Identifier
85727  , p_source_94            IN NUMBER
85728 --Self-Assessed Tax Flag
85729  , p_source_135            IN VARCHAR2
85730  , p_source_135_meaning    IN VARCHAR2
85731 --Invoice Exchange Date
85732  , p_source_136            IN DATE
85733 --Invoice Exchange Rate
85734  , p_source_137            IN NUMBER
85735 --Invoice Exchange Rate Type
85736  , p_source_138            IN VARCHAR2
85737 --Invoice Source
85738  , p_source_163            IN VARCHAR2
85739 )
85740 IS
85741 
85742 l_component_type              VARCHAR2(80);
85743 l_component_code              VARCHAR2(30);
85744 l_component_type_code         VARCHAR2(1);
85745 l_component_appl_id           INTEGER;
85746 l_amb_context_code            VARCHAR2(30);
85747 l_entity_code                 VARCHAR2(30);
85748 l_event_class_code            VARCHAR2(30);
85749 l_ae_header_id                NUMBER;
85750 l_event_type_code             VARCHAR2(30);
85751 l_line_definition_code        VARCHAR2(30);
85752 l_line_definition_owner_code  VARCHAR2(1);
85753 --
85754 -- adr variables
85755 l_segment                     VARCHAR2(30);
85756 l_ccid                        NUMBER;
85757 l_adr_transaction_coa_id      NUMBER;
85758 l_adr_accounting_coa_id       NUMBER;
85759 l_adr_flexfield_segment_code  VARCHAR2(30);
85760 l_adr_flex_value_set_id       NUMBER;
85761 l_adr_value_type_code         VARCHAR2(30);
85762 l_adr_value_combination_id    NUMBER;
85763 l_adr_value_segment_code      VARCHAR2(30);
85764 
85765 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85766 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85767 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85768 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85769 
85770 -- 4262811 Variables ------------------------------------------------------------------------------------------
85771 l_entered_amt_idx             NUMBER;
85772 l_accted_amt_idx              NUMBER;
85773 l_acc_rev_flag                VARCHAR2(1);
85774 l_accrual_line_num            NUMBER;
85775 l_tmp_amt                     NUMBER;
85776 l_acc_rev_natural_side_code   VARCHAR2(1);
85777 
85778 l_num_entries                 NUMBER;
85779 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85780 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85781 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85785 
85782 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85783 l_recog_line_1                NUMBER;
85784 l_recog_line_2                NUMBER;
85786 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85787 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85788 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85789 
85790 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85791 
85792 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85793 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85794 
85795 ---------------------------------------------------------------------------------------------------------------
85796 
85797 
85798 --
85799 -- bulk performance
85800 --
85801 l_balance_type_code           VARCHAR2(1);
85802 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85803 l_log_module                  VARCHAR2(240);
85804 
85805 --
85806 -- Upgrade strategy
85807 --
85808 l_actual_upg_option           VARCHAR2(1);
85809 l_enc_upg_option           VARCHAR2(1);
85810 
85811 --
85812 BEGIN
85813 --
85814 IF g_log_enabled THEN
85815       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
85816 END IF;
85817 --
85818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85819 
85820       trace
85821          (p_msg      => 'BEGIN of AcctLineType_150'
85822          ,p_level    => C_LEVEL_PROCEDURE
85823          ,p_module   => l_log_module);
85824 
85825 END IF;
85826 --
85827 l_component_type             := 'AMB_JLT';
85828 l_component_code             := 'AP_LIAB_DM_AOS_AS';
85829 l_component_type_code        := 'S';
85830 l_component_appl_id          :=  200;
85831 l_amb_context_code           := 'DEFAULT';
85832 l_entity_code                := 'AP_INVOICES';
85833 l_event_class_code           := 'DEBIT MEMOS';
85834 l_event_type_code            := 'DEBIT MEMOS_ALL';
85835 l_line_definition_owner_code := 'S';
85836 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
85837 --
85838 l_balance_type_code          := 'A';
85839 l_segment                     := NULL;
85840 l_ccid                        := NULL;
85841 l_adr_transaction_coa_id      := NULL;
85842 l_adr_accounting_coa_id       := NULL;
85843 l_adr_flexfield_segment_code  := NULL;
85844 l_adr_flex_value_set_id       := NULL;
85845 l_adr_value_type_code         := NULL;
85846 l_adr_value_combination_id    := NULL;
85847 l_adr_value_segment_code      := NULL;
85848 
85849 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
85850 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
85851 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85852 l_budgetary_control_flag     := 'N';
85853 
85854 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85855 l_bflow_applied_to_amt       := NULL; -- 5132302
85856 l_entered_amt_idx            := NULL;          -- 4262811
85857 l_accted_amt_idx             := NULL;          -- 4262811
85858 l_acc_rev_flag               := NULL;          -- 4262811
85859 l_accrual_line_num           := NULL;          -- 4262811
85860 l_tmp_amt                    := NULL;          -- 4262811
85861 --
85862  
85863 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85864     l_balance_type_code <> 'B' THEN
85865 IF NVL(p_source_15,'
85866 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
85867 NVL(p_source_135,'
85868 ') <>  'Y'
85869  THEN 
85870 
85871    --
85872    XLA_AE_LINES_PKG.SetNewLine;
85873 
85874    p_balance_type_code          := l_balance_type_code;
85875    -- set the flag so later we will know whether the gain loss line needs to be created
85876    
85877    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85878      p_actual_flag :='A';
85879    END IF;
85880 
85881    --
85882    -- bulk performance
85883    --
85884    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85885                                       p_header_num   => 0); -- 4262811
85886    --
85887    -- set accounting line options
85888    --
85889    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85890            p_natural_side_code          => 'C'
85891          , p_gain_or_loss_flag          => 'N'
85892          , p_gl_transfer_mode_code      => 'S'
85893          , p_acct_entry_type_code       => 'A'
85894          , p_switch_side_flag           => 'Y'
85895          , p_merge_duplicate_code       => 'A'
85896          );
85897    --
85898    l_acc_rev_natural_side_code := 'D';  -- 4262811
85899    -- 
85900    --
85901    -- set accounting line type info
85902    --
85903    xla_ae_lines_pkg.SetAcctLineType
85904       (p_component_type             => l_component_type
85905       ,p_event_type_code            => l_event_type_code
85906       ,p_line_definition_owner_code => l_line_definition_owner_code
85907       ,p_line_definition_code       => l_line_definition_code
85908       ,p_accounting_line_code       => l_component_code
85909       ,p_accounting_line_type_code  => l_component_type_code
85910       ,p_accounting_line_appl_id    => l_component_appl_id
85911       ,p_amb_context_code           => l_amb_context_code
85912       ,p_entity_code                => l_entity_code
85913       ,p_event_class_code           => l_event_class_code);
85914    --
85918            p_accounting_class_code  => 'LIABILITY'
85915    -- set accounting class
85916    --
85917    xla_ae_lines_pkg.SetAcctClass(
85919          , p_ae_header_id           => l_ae_header_id
85920          );
85921 
85922    --
85923    -- set rounding class
85924    --
85925    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85926                       'LIABILITY';
85927 
85928    --
85929    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85930    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85931    --
85932    -- bulk performance
85933    --
85934    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85935 
85936    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85937       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85938 
85939    -- 4955764
85940    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85941       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85942 
85943    -- 4458381 Public Sector Enh
85944    
85945    --
85946    -- set accounting attributes for the line type
85947    --
85948    l_entered_amt_idx := 23;
85949    l_accted_amt_idx  := 28;
85950    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85951    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85952    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
85953    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85954    l_rec_acct_attrs.array_num_value(2)  := 
85955 xla_ae_sources_pkg.GetSystemSourceNum(
85956    p_source_code           => 'XLA_EVENT_APPL_ID'
85957  , p_source_type_code      => 'Y'
85958  , p_source_application_id =>  602
85959 );
85960    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85961    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
85962    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85963    l_rec_acct_attrs.array_char_value(4)  := 
85964 xla_ae_sources_pkg.GetSystemSourceChar(
85965    p_source_code           => 'XLA_ENTITY_CODE'
85966  , p_source_type_code      => 'Y'
85967  , p_source_application_id =>  602
85968 );
85969    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85970    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
85971    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85972    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
85973    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85974    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
85975    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85976    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
85977    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85978    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
85979    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85980    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
85981    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85982    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
85983    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85984    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
85985    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85986    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
85987    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
85988    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
85989    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
85990    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
85991    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
85992    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
85993    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
85994    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
85995    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
85996    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
85997    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
85998    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
85999    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
86000    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
86001    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
86002    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
86003    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
86004    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
86005    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
86006    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
86007    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
86008    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
86009    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
86010    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
86011    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
86012    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
86013    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
86014    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
86015    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
86019    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
86016    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
86017    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
86018    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
86020    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
86021    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
86022    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
86023    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
86024    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
86025    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
86026    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
86027    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
86028    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
86029    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
86030    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
86031    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
86032    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
86033    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
86034    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
86035    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
86036    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
86037    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
86038    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
86039    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
86040    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
86041    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
86042    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
86043    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
86044    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
86045 
86046    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86047    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86048 
86049    ---------------------------------------------------------------------------------------------------------------
86050    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86051    ---------------------------------------------------------------------------------------------------------------
86052    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86053 
86054    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86055    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86056 
86057    IF xla_accounting_cache_pkg.GetValueChar
86058          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86059          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86060    AND l_bflow_method_code = 'PRIOR_ENTRY'
86061 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86062    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86063          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86064        )
86065    THEN
86066          xla_ae_lines_pkg.BflowUpgEntry
86067            (p_business_method_code    => l_bflow_method_code
86068            ,p_business_class_code     => l_bflow_class_code
86069            ,p_balance_type            => l_balance_type_code);
86070    ELSE
86071       NULL;
86072 XLA_AE_LINES_PKG.business_flow_validation(
86073                                 p_business_method_code     => l_bflow_method_code
86074                                ,p_business_class_code      => l_bflow_class_code
86075                                ,p_inherit_description_flag => l_inherit_desc_flag);
86076    END IF;
86077 
86078    --
86079    -- call analytical criteria
86080    --
86081    
86082 
86083 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
86084 xla_ae_lines_pkg.SetAnalyticalCriteria(
86085    p_analytical_criterion_name    => 'Payables Custom Source'
86086  , p_analytical_criterion_owner   => 'S'
86087  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
86088  , p_amb_context_code             => 'DEFAULT'
86089  , p_balancing_flag               => 'N'
86090  
86091  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
86092 p_source_163
86093 , p_source_57
86094 , p_source_63))
86095  , p_analytical_detail_num_1     =>  NULL
86096  , p_analytical_detail_date_1    =>  NULL
86097 
86098  , p_ae_header_id                 => l_ae_header_id
86099 )
86100 ;
86101 --
86102 
86103    --
86104    -- call description
86105    --
86106    
86107 xla_ae_lines_pkg.SetLineDescription(
86108    p_ae_header_id => l_ae_header_id
86109   ,p_description  => Description_1 (
86110      p_application_id         => p_application_id
86111    , p_ae_header_id           => l_ae_header_id 
86112 , p_source_1 => p_source_1
86113    )
86114 );
86115 
86116 
86117    --
86118    -- call ADRs
86119    -- Bug 4922099
86120    --
86121    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86122         (NVL(l_actual_upg_option, 'N') = 'O') OR
86123         (NVL(l_enc_upg_option, 'N') = 'O')
86124       )
86125    THEN
86126    NULL;
86127    --
86128    --
86129    
86133    , p_transaction_coa_id       => null
86130    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
86131      p_code_combination_id      => TO_NUMBER(C_NUM)
86132    , p_value_type_code          => NULL
86134    , p_accounting_coa_id        => null
86135    , p_adr_code                 => NULL
86136    , p_adr_type_code            => NULL
86137    , p_component_type           => l_component_type
86138    , p_component_code           => l_component_code
86139    , p_component_type_code      => l_component_type_code
86140    , p_component_appl_id        => l_component_appl_id
86141    , p_amb_context_code         => l_amb_context_code
86142    , p_side                     => NULL
86143    );
86144 
86145    
86146   -- initialise segments
86147   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86148   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86149   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86150   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86151   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86152   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86153   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86154   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86155   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86156   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86157   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86158   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86159   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86160   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86161   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86162   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86163   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86164   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86165   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86166   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86167   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86168   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86169   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86170   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86171   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86172   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86173   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86174   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86175   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86176   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86177   --
86178 
86179    --
86180 
86181 
86182    l_segment := AcctDerRule_15(
86183            p_application_id           => p_application_id
86184          , p_ae_header_id             => l_ae_header_id 
86185 , p_source_34 => p_source_34
86186          , x_transaction_coa_id       => l_adr_transaction_coa_id
86187          , x_accounting_coa_id        => l_adr_accounting_coa_id
86188          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86189          , x_flex_value_set_id        => l_adr_flex_value_set_id
86190          , x_value_type_code          => l_adr_value_type_code
86191          , x_value_combination_id     => l_adr_value_combination_id
86192          , x_value_segment_code       => l_adr_value_segment_code
86193          , p_side                     => 'NA'
86194          , p_override_seg_flag        => 'Y'
86195    );
86196 
86197    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86198 
86199       xla_ae_lines_pkg.set_segment(
86200           p_to_segment_code         => 'GL_ACCOUNT'
86201         , p_segment_value           => l_segment
86202         , p_from_segment_code       => l_adr_value_segment_code
86203         , p_from_combination_id     => l_adr_value_combination_id
86204         , p_value_type_code         => l_adr_value_type_code
86205         , p_transaction_coa_id      => l_adr_transaction_coa_id
86206         , p_accounting_coa_id       => l_adr_accounting_coa_id
86207         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86208         , p_flex_value_set_id       => l_adr_flex_value_set_id
86209         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
86210         , p_adr_type_code           => 'S'
86211         , p_component_type          => l_component_type
86212         , p_component_code          => l_component_code
86213         , p_component_type_code     => l_component_type_code
86214         , p_component_appl_id       => l_component_appl_id
86215         , p_amb_context_code        => l_amb_context_code
86216         , p_entity_code             => 'AP_INVOICES'
86217         , p_event_class_code        => 'DEBIT MEMOS'
86218         , p_side                    => 'NA'
86219         );
86220 
86221   END IF;
86222 
86223    --
86227    -- Bug 4922099
86224    --
86225    END IF;
86226    --
86228    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86229           (NVL(l_enc_upg_option, 'N') = 'O')
86230         ) AND
86231         (l_bflow_method_code = 'PRIOR_ENTRY')
86232       )
86233    THEN
86234       IF
86235       --
86236       1 = 2
86237       --
86238       THEN
86239       xla_accounting_err_pkg.build_message
86240                                     (p_appli_s_name            => 'XLA'
86241                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86242                                     ,p_token_1                 => 'LINE_NUMBER'
86243                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86244                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86245                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86246                                                                              l_component_type
86247                                                                             ,l_component_code
86248                                                                             ,l_component_type_code
86249                                                                             ,l_component_appl_id
86250                                                                             ,l_amb_context_code
86251                                                                             ,l_entity_code
86252                                                                             ,l_event_class_code
86253                                                                            )
86254                                     ,p_token_3                 => 'OWNER'
86255                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86256                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86257                                                                           ,p_lookup_code    => l_component_type_code
86258                                                                          )
86259                                     ,p_token_4                 => 'PRODUCT_NAME'
86260                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86261                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86262                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86263                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86264                                     ,p_ae_header_id            =>  NULL
86265                                        );
86266 
86267         IF (C_LEVEL_ERROR>= g_log_level) THEN
86268                  trace
86269                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86270                       ,p_level    => C_LEVEL_ERROR
86271                       ,p_module   => l_log_module);
86272         END IF;
86273       END IF;
86274    END IF;
86275    --
86276    --
86277    ------------------------------------------------------------------------------------------------
86278    -- 4219869 Business Flow
86279    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86280    -- Prior Entry.  Currently, the following code is always generated.
86281    ------------------------------------------------------------------------------------------------
86282    XLA_AE_LINES_PKG.ValidateCurrentLine;
86283 
86284    ------------------------------------------------------------------------------------
86285    -- 4219869 Business Flow
86286    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86287    ------------------------------------------------------------------------------------
86288    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86289 
86290    ----------------------------------------------------------------------------------
86291    -- 4219869 Business Flow
86292    -- Update journal entry status -- Need to generate this within IF <condition>
86293    ----------------------------------------------------------------------------------
86294    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86295          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86296          ,p_balance_type_code => l_balance_type_code
86297          );
86298 
86299    -------------------------------------------------------------------------------------------
86300    -- 4262811 - Generate the Accrual Reversal lines
86301    -------------------------------------------------------------------------------------------
86302    BEGIN
86303       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86304                               (g_array_event(p_event_id).array_value_num('header_index'));
86305       IF l_acc_rev_flag IS NULL THEN
86306          l_acc_rev_flag := 'N';
86307       END IF;
86308    EXCEPTION
86309       WHEN OTHERS THEN
86310          l_acc_rev_flag := 'N';
86311    END;
86312    --
86313    IF (l_acc_rev_flag = 'Y') THEN
86314 
86315        -- 4645092  ------------------------------------------------------------------------------
86316        -- To allow MPA report to determine if it should generate report process
86317        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86321        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86318        ------------------------------------------------------------------------------------------
86319 
86320        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86322    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86323    -- call ADRs
86324    -- Bug 4922099
86325    --
86326    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86327         (NVL(l_actual_upg_option, 'N') = 'O') OR
86328         (NVL(l_enc_upg_option, 'N') = 'O')
86329       )
86330    THEN
86331    NULL;
86332    --
86333    --
86334    
86335    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
86336      p_code_combination_id      => TO_NUMBER(C_NUM)
86337    , p_value_type_code          => NULL
86338    , p_transaction_coa_id       => null
86339    , p_accounting_coa_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_side                     => NULL
86348    );
86349 
86350    
86351   -- initialise segments
86352   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86353   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86354   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86355   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86356   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86357   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86358   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86359   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86360   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
86361   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86362   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86363   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86364   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86365   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86366   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86367   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86368   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86369   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86370   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86371   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86372   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86373   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86374   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86375   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86376   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86377   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86378   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86379   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86380   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86381   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
86382   --
86383 
86384    --
86385 
86386 
86387    l_segment := AcctDerRule_15(
86388            p_application_id           => p_application_id
86389          , p_ae_header_id             => l_ae_header_id 
86390 , p_source_34 => p_source_34
86391          , x_transaction_coa_id       => l_adr_transaction_coa_id
86392          , x_accounting_coa_id        => l_adr_accounting_coa_id
86393          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
86394          , x_flex_value_set_id        => l_adr_flex_value_set_id
86395          , x_value_type_code          => l_adr_value_type_code
86396          , x_value_combination_id     => l_adr_value_combination_id
86397          , x_value_segment_code       => l_adr_value_segment_code
86398          , p_side                     => 'NA'
86399          , p_override_seg_flag        => 'Y'
86400    );
86401 
86402    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
86403 
86404       xla_ae_lines_pkg.set_segment(
86405           p_to_segment_code         => 'GL_ACCOUNT'
86406         , p_segment_value           => l_segment
86407         , p_from_segment_code       => l_adr_value_segment_code
86408         , p_from_combination_id     => l_adr_value_combination_id
86409         , p_value_type_code         => l_adr_value_type_code
86410         , p_transaction_coa_id      => l_adr_transaction_coa_id
86411         , p_accounting_coa_id       => l_adr_accounting_coa_id
86415         , p_adr_type_code           => 'S'
86412         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
86413         , p_flex_value_set_id       => l_adr_flex_value_set_id
86414         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
86416         , p_component_type          => l_component_type
86417         , p_component_code          => l_component_code
86418         , p_component_type_code     => l_component_type_code
86419         , p_component_appl_id       => l_component_appl_id
86420         , p_amb_context_code        => l_amb_context_code
86421         , p_entity_code             => 'AP_INVOICES'
86422         , p_event_class_code        => 'DEBIT MEMOS'
86423         , p_side                    => 'NA'
86424         );
86425 
86426   END IF;
86427 
86428    --
86429    --
86430    END IF;
86431 
86432        --
86433        -- Update the line information that should be overwritten
86434        --
86435        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86436                                          p_header_num   => 1);
86437        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86438 
86439        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86440 
86441        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86442           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86443        END IF;
86444 
86445       --
86446       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86447       --
86448       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86449           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86450       ELSE
86451           ---------------------------------------------------------------------------------------------------
86452           -- 4262811a Switch Sign
86453           ---------------------------------------------------------------------------------------------------
86454           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86455           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86456                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86457           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86458                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86459           -- 5132302
86460           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86461                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86462 
86463       END IF;
86464 
86465       -- 4955764
86466       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86467       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86468 
86469 
86470       XLA_AE_LINES_PKG.ValidateCurrentLine;
86471       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86472 
86473       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86474                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86475                ,p_balance_type_code => l_balance_type_code);
86476 
86477    END IF;
86478 
86479    -----------------------------------------------------------------------------------------
86480    -- 4262811 Multiperiod Accounting
86481    -----------------------------------------------------------------------------------------
86482      -- No MPA option is assigned.
86483 
86484 
86485 END IF;
86486 END IF;
86487 --
86488 
86489 --
86490 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86491    trace
86492       (p_msg      => 'END of AcctLineType_150'
86493       ,p_level    => C_LEVEL_PROCEDURE
86494       ,p_module   => l_log_module);
86495 END IF;
86496 --
86497 EXCEPTION
86498   WHEN xla_exceptions_pkg.application_exception THEN
86499       RAISE;
86500   WHEN OTHERS THEN
86501        xla_exceptions_pkg.raise_message
86502            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_150');
86503 END AcctLineType_150;
86504 --
86505 
86506 ---------------------------------------
86507 --
86508 -- PRIVATE FUNCTION
86509 --         AcctLineType_151
86510 --
86511 ---------------------------------------
86512 PROCEDURE AcctLineType_151 (
86513   p_application_id        IN NUMBER
86514  ,p_event_id              IN NUMBER
86515  ,p_calculate_acctd_flag  IN VARCHAR2
86516  ,p_calculate_g_l_flag    IN VARCHAR2
86517  ,p_actual_flag           IN OUT VARCHAR2
86518  ,p_balance_type_code     OUT VARCHAR2
86519  ,p_gain_or_loss_ref      OUT VARCHAR2
86520  
86521 --Invoice Distribution Description
86522  , p_source_1            IN VARCHAR2
86523 --Automatic Offsets Value
86524  , p_source_15            IN VARCHAR2
86525  , p_source_15_meaning    IN VARCHAR2
86526 --Invoice Distribution Ledger Amount
86527  , p_source_21            IN NUMBER
86528 --Invoice Liability Account
86529  , p_source_34            IN NUMBER
86530 --Accounting Reversal Indicator
86531  , p_source_52            IN VARCHAR2
86532 --Distribution Link Type
86533  , p_source_54            IN VARCHAR2
86534 --Allocation to Main Distribution Identifier
86538 --Invoice Distribution Identifier
86535  , p_source_56            IN NUMBER
86536 --Invoice Identifier
86537  , p_source_57            IN NUMBER
86539  , p_source_63            IN NUMBER
86540 --Payables Encumbrance Upgrade Credit Account
86541  , p_source_64            IN NUMBER
86542 --Payables Encumbrance Upgrade Credit Amount
86543  , p_source_65            IN NUMBER
86544 --Invoice Currency Code
86545  , p_source_66            IN VARCHAR2
86546 --Payables Encumbrance Upgrade Credit Base Amount
86547  , p_source_67            IN NUMBER
86548 --Payables Encumbrance Upgrade Debit Account
86549  , p_source_68            IN NUMBER
86550 --Payables Encumbrance Upgrade Debit Amount
86551  , p_source_69            IN NUMBER
86552 --Payables Encumbrance Upgrade Debit Base Amount
86553  , p_source_70            IN NUMBER
86554 --Payables Encumbrance Upgrade Option
86555  , p_source_71            IN VARCHAR2
86556 --Invoice Distribution Amount
86557  , p_source_72            IN NUMBER
86558 --Deferred Accounting End Date
86559  , p_source_76            IN DATE
86560 --Deferred Accounting Option
86561  , p_source_77            IN VARCHAR2
86562 --Deferred Accounting Start Date
86563  , p_source_78            IN DATE
86564 --Override Accounted Amount Indicator
86565  , p_source_79            IN VARCHAR2
86566  , p_source_79_meaning    IN VARCHAR2
86567 --Invoice Supplier Identifier
86568  , p_source_80            IN NUMBER
86569 --Invoice Supplier Site Identifier
86570  , p_source_81            IN NUMBER
86571 --Third Party Type
86572  , p_source_82            IN VARCHAR2
86573 --Parent Reversal Identifier
86574  , p_source_83            IN NUMBER
86575 --Invoice Distribution Tax Line Identifier
86576  , p_source_85            IN NUMBER
86577 --Invoice Distribution Tax Distribution Identifier from Tax
86578  , p_source_86            IN NUMBER
86579 --Invoice Distribution Summary Tax Line Identifier
86580  , p_source_87            IN NUMBER
86581 --Payables Upgrade Credit Encumbrance Type Identifier
86582  , p_source_88            IN NUMBER
86583 --Payables Upgrade Debit Encumbrance Type Identifier
86584  , p_source_89            IN NUMBER
86585 --Business Flow Accounts Payable Application Identifier
86586  , p_source_90            IN NUMBER
86587 --Business Flow Invoice Distribution Type
86588  , p_source_91            IN VARCHAR2
86589 --Business Flow Invoice Entity Code
86590  , p_source_92            IN VARCHAR2
86591 --Business Flow Invoice Distribution Identifier
86592  , p_source_93            IN NUMBER
86593 --Business Flow Invoice Identifier
86594  , p_source_94            IN NUMBER
86595 --Self-Assessed Tax Flag
86596  , p_source_135            IN VARCHAR2
86597  , p_source_135_meaning    IN VARCHAR2
86598 --Invoice Exchange Date
86599  , p_source_136            IN DATE
86600 --Invoice Exchange Rate
86601  , p_source_137            IN NUMBER
86602 --Invoice Exchange Rate Type
86603  , p_source_138            IN VARCHAR2
86604 --Invoice Source
86605  , p_source_163            IN VARCHAR2
86606 )
86607 IS
86608 
86609 l_component_type              VARCHAR2(80);
86610 l_component_code              VARCHAR2(30);
86611 l_component_type_code         VARCHAR2(1);
86612 l_component_appl_id           INTEGER;
86613 l_amb_context_code            VARCHAR2(30);
86614 l_entity_code                 VARCHAR2(30);
86615 l_event_class_code            VARCHAR2(30);
86616 l_ae_header_id                NUMBER;
86617 l_event_type_code             VARCHAR2(30);
86618 l_line_definition_code        VARCHAR2(30);
86619 l_line_definition_owner_code  VARCHAR2(1);
86620 --
86621 -- adr variables
86622 l_segment                     VARCHAR2(30);
86623 l_ccid                        NUMBER;
86624 l_adr_transaction_coa_id      NUMBER;
86625 l_adr_accounting_coa_id       NUMBER;
86626 l_adr_flexfield_segment_code  VARCHAR2(30);
86627 l_adr_flex_value_set_id       NUMBER;
86628 l_adr_value_type_code         VARCHAR2(30);
86629 l_adr_value_combination_id    NUMBER;
86630 l_adr_value_segment_code      VARCHAR2(30);
86631 
86632 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86633 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86634 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86635 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86636 
86637 -- 4262811 Variables ------------------------------------------------------------------------------------------
86638 l_entered_amt_idx             NUMBER;
86639 l_accted_amt_idx              NUMBER;
86640 l_acc_rev_flag                VARCHAR2(1);
86641 l_accrual_line_num            NUMBER;
86642 l_tmp_amt                     NUMBER;
86643 l_acc_rev_natural_side_code   VARCHAR2(1);
86644 
86645 l_num_entries                 NUMBER;
86646 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86647 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86648 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86649 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86650 l_recog_line_1                NUMBER;
86651 l_recog_line_2                NUMBER;
86652 
86653 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86654 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86655 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86656 
86660 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86657 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86658 
86659 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86661 
86662 ---------------------------------------------------------------------------------------------------------------
86663 
86664 
86665 --
86666 -- bulk performance
86667 --
86668 l_balance_type_code           VARCHAR2(1);
86669 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86670 l_log_module                  VARCHAR2(240);
86671 
86672 --
86673 -- Upgrade strategy
86674 --
86675 l_actual_upg_option           VARCHAR2(1);
86676 l_enc_upg_option           VARCHAR2(1);
86677 
86678 --
86679 BEGIN
86680 --
86681 IF g_log_enabled THEN
86682       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
86683 END IF;
86684 --
86685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86686 
86687       trace
86688          (p_msg      => 'BEGIN of AcctLineType_151'
86689          ,p_level    => C_LEVEL_PROCEDURE
86690          ,p_module   => l_log_module);
86691 
86692 END IF;
86693 --
86694 l_component_type             := 'AMB_JLT';
86695 l_component_code             := 'AP_LIAB_DM_AOS_BS';
86696 l_component_type_code        := 'S';
86697 l_component_appl_id          :=  200;
86698 l_amb_context_code           := 'DEFAULT';
86699 l_entity_code                := 'AP_INVOICES';
86700 l_event_class_code           := 'DEBIT MEMOS';
86701 l_event_type_code            := 'DEBIT MEMOS_ALL';
86702 l_line_definition_owner_code := 'S';
86703 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
86704 --
86705 l_balance_type_code          := 'A';
86706 l_segment                     := NULL;
86707 l_ccid                        := NULL;
86708 l_adr_transaction_coa_id      := NULL;
86709 l_adr_accounting_coa_id       := NULL;
86710 l_adr_flexfield_segment_code  := NULL;
86711 l_adr_flex_value_set_id       := NULL;
86712 l_adr_value_type_code         := NULL;
86713 l_adr_value_combination_id    := NULL;
86714 l_adr_value_segment_code      := NULL;
86715 
86716 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
86717 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
86718 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86719 l_budgetary_control_flag     := 'N';
86720 
86721 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86722 l_bflow_applied_to_amt       := NULL; -- 5132302
86723 l_entered_amt_idx            := NULL;          -- 4262811
86724 l_accted_amt_idx             := NULL;          -- 4262811
86725 l_acc_rev_flag               := NULL;          -- 4262811
86726 l_accrual_line_num           := NULL;          -- 4262811
86727 l_tmp_amt                    := NULL;          -- 4262811
86728 --
86729  
86730 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86731     l_balance_type_code <> 'B' THEN
86732 IF NVL(p_source_15,'
86733 ') =  'BALANCING_SEGMENT' AND 
86734 NVL(p_source_135,'
86735 ') <>  'Y'
86736  THEN 
86737 
86738    --
86739    XLA_AE_LINES_PKG.SetNewLine;
86740 
86741    p_balance_type_code          := l_balance_type_code;
86742    -- set the flag so later we will know whether the gain loss line needs to be created
86743    
86744    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86745      p_actual_flag :='A';
86746    END IF;
86747 
86748    --
86749    -- bulk performance
86750    --
86751    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86752                                       p_header_num   => 0); -- 4262811
86753    --
86754    -- set accounting line options
86755    --
86756    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86757            p_natural_side_code          => 'C'
86758          , p_gain_or_loss_flag          => 'N'
86759          , p_gl_transfer_mode_code      => 'S'
86760          , p_acct_entry_type_code       => 'A'
86761          , p_switch_side_flag           => 'Y'
86762          , p_merge_duplicate_code       => 'A'
86763          );
86764    --
86765    l_acc_rev_natural_side_code := 'D';  -- 4262811
86766    -- 
86767    --
86768    -- set accounting line type info
86769    --
86770    xla_ae_lines_pkg.SetAcctLineType
86771       (p_component_type             => l_component_type
86772       ,p_event_type_code            => l_event_type_code
86773       ,p_line_definition_owner_code => l_line_definition_owner_code
86774       ,p_line_definition_code       => l_line_definition_code
86775       ,p_accounting_line_code       => l_component_code
86776       ,p_accounting_line_type_code  => l_component_type_code
86777       ,p_accounting_line_appl_id    => l_component_appl_id
86778       ,p_amb_context_code           => l_amb_context_code
86779       ,p_entity_code                => l_entity_code
86780       ,p_event_class_code           => l_event_class_code);
86781    --
86782    -- set accounting class
86783    --
86784    xla_ae_lines_pkg.SetAcctClass(
86785            p_accounting_class_code  => 'LIABILITY'
86786          , p_ae_header_id           => l_ae_header_id
86787          );
86788 
86789    --
86790    -- set rounding class
86791    --
86792    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86796    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86793                       'LIABILITY';
86794 
86795    --
86797    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86798    --
86799    -- bulk performance
86800    --
86801    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86802 
86803    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86804       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86805 
86806    -- 4955764
86807    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86808       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86809 
86810    -- 4458381 Public Sector Enh
86811    
86812    --
86813    -- set accounting attributes for the line type
86814    --
86815    l_entered_amt_idx := 23;
86816    l_accted_amt_idx  := 28;
86817    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
86818    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86819    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
86820    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86821    l_rec_acct_attrs.array_num_value(2)  := 
86822 xla_ae_sources_pkg.GetSystemSourceNum(
86823    p_source_code           => 'XLA_EVENT_APPL_ID'
86824  , p_source_type_code      => 'Y'
86825  , p_source_application_id =>  602
86826 );
86827    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86828    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
86829    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86830    l_rec_acct_attrs.array_char_value(4)  := 
86831 xla_ae_sources_pkg.GetSystemSourceChar(
86832    p_source_code           => 'XLA_ENTITY_CODE'
86833  , p_source_type_code      => 'Y'
86834  , p_source_application_id =>  602
86835 );
86836    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86837    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
86838    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86839    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
86840    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
86841    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
86842    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86843    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
86844    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
86845    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
86846    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
86847    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
86848    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86849    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
86850    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86851    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
86852    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86853    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
86854    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
86855    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
86856    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
86857    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
86858    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
86859    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
86860    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
86861    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
86862    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
86863    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
86864    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
86865    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
86866    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
86867    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
86868    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
86869    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
86870    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
86871    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
86872    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
86873    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
86874    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
86875    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
86876    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
86877    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
86878    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
86879    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
86880    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
86881    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
86882    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
86883    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
86884    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
86885    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
86886    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
86887    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
86891    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
86888    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
86889    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
86890    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
86892    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
86893    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
86894    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
86895    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
86896    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
86897    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
86898    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
86899    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
86900    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
86901    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
86902    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
86903    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
86904    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
86905    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
86906    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
86907    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
86908    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
86909    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
86910    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
86911    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
86912 
86913    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86914    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86915 
86916    ---------------------------------------------------------------------------------------------------------------
86917    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86918    ---------------------------------------------------------------------------------------------------------------
86919    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86920 
86921    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86922    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86923 
86924    IF xla_accounting_cache_pkg.GetValueChar
86925          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86926          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86927    AND l_bflow_method_code = 'PRIOR_ENTRY'
86928 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86929    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86930          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86931        )
86932    THEN
86933          xla_ae_lines_pkg.BflowUpgEntry
86934            (p_business_method_code    => l_bflow_method_code
86935            ,p_business_class_code     => l_bflow_class_code
86936            ,p_balance_type            => l_balance_type_code);
86937    ELSE
86938       NULL;
86939 XLA_AE_LINES_PKG.business_flow_validation(
86940                                 p_business_method_code     => l_bflow_method_code
86941                                ,p_business_class_code      => l_bflow_class_code
86942                                ,p_inherit_description_flag => l_inherit_desc_flag);
86943    END IF;
86944 
86945    --
86946    -- call analytical criteria
86947    --
86948    
86949 
86950 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
86951 xla_ae_lines_pkg.SetAnalyticalCriteria(
86952    p_analytical_criterion_name    => 'Payables Custom Source'
86953  , p_analytical_criterion_owner   => 'S'
86954  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
86955  , p_amb_context_code             => 'DEFAULT'
86956  , p_balancing_flag               => 'N'
86957  
86958  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
86959 p_source_163
86960 , p_source_57
86961 , p_source_63))
86962  , p_analytical_detail_num_1     =>  NULL
86963  , p_analytical_detail_date_1    =>  NULL
86964 
86965  , p_ae_header_id                 => l_ae_header_id
86966 )
86967 ;
86968 --
86969 
86970    --
86971    -- call description
86972    --
86973    
86974 xla_ae_lines_pkg.SetLineDescription(
86975    p_ae_header_id => l_ae_header_id
86976   ,p_description  => Description_1 (
86977      p_application_id         => p_application_id
86978    , p_ae_header_id           => l_ae_header_id 
86979 , p_source_1 => p_source_1
86980    )
86981 );
86982 
86983 
86984    --
86985    -- call ADRs
86986    -- Bug 4922099
86987    --
86988    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86989         (NVL(l_actual_upg_option, 'N') = 'O') OR
86990         (NVL(l_enc_upg_option, 'N') = 'O')
86991       )
86992    THEN
86993    NULL;
86994    --
86995    --
86996    
86997   l_ccid := AcctDerRule_34(
86998            p_application_id           => p_application_id
86999          , p_ae_header_id             => l_ae_header_id 
87000 , p_source_34 => p_source_34
87001          , x_transaction_coa_id       => l_adr_transaction_coa_id
87005    );
87002          , x_accounting_coa_id        => l_adr_accounting_coa_id
87003          , x_value_type_code          => l_adr_value_type_code
87004          , p_side                     => 'NA'
87006 
87007    xla_ae_lines_pkg.set_ccid(
87008     p_code_combination_id          => l_ccid
87009   , p_value_type_code              => l_adr_value_type_code
87010   , p_transaction_coa_id           => l_adr_transaction_coa_id
87011   , p_accounting_coa_id            => l_adr_accounting_coa_id
87012   , p_adr_code                     => 'AP_LIAB'
87013   , p_adr_type_code                => 'S'
87014   , p_component_type               => l_component_type
87015   , p_component_code               => l_component_code
87016   , p_component_type_code          => l_component_type_code
87017   , p_component_appl_id            => l_component_appl_id
87018   , p_amb_context_code             => l_amb_context_code
87019   , p_side                         => 'NA'
87020   );
87021 
87022 
87023    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
87024      p_to_segment_code         => 'GL_BALANCING'
87025    , p_segment_value           => C_CHAR
87026    , p_from_segment_code       => NULL
87027    , p_from_combination_id     => NULL
87028    , p_value_type_code         => NULL
87029    , p_transaction_coa_id      => null
87030    , p_accounting_coa_id       => null
87031    , p_flexfield_segment_code  => NULL
87032    , p_flex_value_set_id       => NULL
87033    , p_adr_code                => NULL
87034    , p_adr_type_code           => NULL
87035    , p_component_type          => l_component_type
87036    , p_component_code          => l_component_code
87037    , p_component_type_code     => l_component_type_code
87038    , p_component_appl_id       => l_component_appl_id
87039    , p_amb_context_code        => l_amb_context_code
87040    , p_entity_code             => 'AP_INVOICES'
87041    , p_event_class_code        => 'DEBIT MEMOS'
87042    , p_side                    => 'NA'
87043    );
87044    --
87045 
87046 
87047    --
87048    --
87049    END IF;
87050    --
87051    -- Bug 4922099
87052    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87053           (NVL(l_enc_upg_option, 'N') = 'O')
87054         ) AND
87055         (l_bflow_method_code = 'PRIOR_ENTRY')
87056       )
87057    THEN
87058       IF
87059       --
87060       1 = 2
87061       --
87062       THEN
87063       xla_accounting_err_pkg.build_message
87064                                     (p_appli_s_name            => 'XLA'
87065                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87066                                     ,p_token_1                 => 'LINE_NUMBER'
87067                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87068                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87069                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87070                                                                              l_component_type
87071                                                                             ,l_component_code
87072                                                                             ,l_component_type_code
87073                                                                             ,l_component_appl_id
87074                                                                             ,l_amb_context_code
87075                                                                             ,l_entity_code
87076                                                                             ,l_event_class_code
87077                                                                            )
87078                                     ,p_token_3                 => 'OWNER'
87079                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87080                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87081                                                                           ,p_lookup_code    => l_component_type_code
87082                                                                          )
87083                                     ,p_token_4                 => 'PRODUCT_NAME'
87084                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87085                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87086                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87087                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87088                                     ,p_ae_header_id            =>  NULL
87089                                        );
87090 
87091         IF (C_LEVEL_ERROR>= g_log_level) THEN
87092                  trace
87093                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87094                       ,p_level    => C_LEVEL_ERROR
87095                       ,p_module   => l_log_module);
87096         END IF;
87097       END IF;
87098    END IF;
87099    --
87100    --
87101    ------------------------------------------------------------------------------------------------
87102    -- 4219869 Business Flow
87103    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87107 
87104    -- Prior Entry.  Currently, the following code is always generated.
87105    ------------------------------------------------------------------------------------------------
87106    XLA_AE_LINES_PKG.ValidateCurrentLine;
87108    ------------------------------------------------------------------------------------
87109    -- 4219869 Business Flow
87110    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87111    ------------------------------------------------------------------------------------
87112    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87113 
87114    ----------------------------------------------------------------------------------
87115    -- 4219869 Business Flow
87116    -- Update journal entry status -- Need to generate this within IF <condition>
87117    ----------------------------------------------------------------------------------
87118    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87119          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87120          ,p_balance_type_code => l_balance_type_code
87121          );
87122 
87123    -------------------------------------------------------------------------------------------
87124    -- 4262811 - Generate the Accrual Reversal lines
87125    -------------------------------------------------------------------------------------------
87126    BEGIN
87127       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87128                               (g_array_event(p_event_id).array_value_num('header_index'));
87129       IF l_acc_rev_flag IS NULL THEN
87130          l_acc_rev_flag := 'N';
87131       END IF;
87132    EXCEPTION
87133       WHEN OTHERS THEN
87134          l_acc_rev_flag := 'N';
87135    END;
87136    --
87137    IF (l_acc_rev_flag = 'Y') THEN
87138 
87139        -- 4645092  ------------------------------------------------------------------------------
87140        -- To allow MPA report to determine if it should generate report process
87141        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87142        ------------------------------------------------------------------------------------------
87143 
87144        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87145        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87146    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87147    -- call ADRs
87148    -- Bug 4922099
87149    --
87150    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87151         (NVL(l_actual_upg_option, 'N') = 'O') OR
87152         (NVL(l_enc_upg_option, 'N') = 'O')
87153       )
87154    THEN
87155    NULL;
87156    --
87157    --
87158    
87159   l_ccid := AcctDerRule_34(
87160            p_application_id           => p_application_id
87161          , p_ae_header_id             => l_ae_header_id 
87162 , p_source_34 => p_source_34
87163          , x_transaction_coa_id       => l_adr_transaction_coa_id
87164          , x_accounting_coa_id        => l_adr_accounting_coa_id
87165          , x_value_type_code          => l_adr_value_type_code
87166          , p_side                     => 'NA'
87167    );
87168 
87169    xla_ae_lines_pkg.set_ccid(
87170     p_code_combination_id          => l_ccid
87171   , p_value_type_code              => l_adr_value_type_code
87172   , p_transaction_coa_id           => l_adr_transaction_coa_id
87173   , p_accounting_coa_id            => l_adr_accounting_coa_id
87174   , p_adr_code                     => 'AP_LIAB'
87175   , p_adr_type_code                => 'S'
87176   , p_component_type               => l_component_type
87177   , p_component_code               => l_component_code
87178   , p_component_type_code          => l_component_type_code
87179   , p_component_appl_id            => l_component_appl_id
87180   , p_amb_context_code             => l_amb_context_code
87181   , p_side                         => 'NA'
87182   );
87183 
87184 
87185    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
87186      p_to_segment_code         => 'GL_BALANCING'
87187    , p_segment_value           => C_CHAR
87188    , p_from_segment_code       => NULL
87189    , p_from_combination_id     => NULL
87190    , p_value_type_code         => NULL
87191    , p_transaction_coa_id      => null
87192    , p_accounting_coa_id       => null
87193    , p_flexfield_segment_code  => NULL
87194    , p_flex_value_set_id       => NULL
87195    , p_adr_code                => NULL
87196    , p_adr_type_code           => NULL
87197    , p_component_type          => l_component_type
87198    , p_component_code          => l_component_code
87199    , p_component_type_code     => l_component_type_code
87200    , p_component_appl_id       => l_component_appl_id
87201    , p_amb_context_code        => l_amb_context_code
87202    , p_entity_code             => 'AP_INVOICES'
87203    , p_event_class_code        => 'DEBIT MEMOS'
87204    , p_side                    => 'NA'
87205    );
87206    --
87207 
87208 
87209    --
87210    --
87211    END IF;
87212 
87213        --
87214        -- Update the line information that should be overwritten
87215        --
87216        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87217                                          p_header_num   => 1);
87218        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87219 
87220        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87221 
87225 
87222        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87223           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87224        END IF;
87226       --
87227       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87228       --
87229       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87230           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87231       ELSE
87232           ---------------------------------------------------------------------------------------------------
87233           -- 4262811a Switch Sign
87234           ---------------------------------------------------------------------------------------------------
87235           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87236           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87237                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87238           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87239                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87240           -- 5132302
87241           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87242                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87243 
87244       END IF;
87245 
87246       -- 4955764
87247       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87248       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87249 
87250 
87251       XLA_AE_LINES_PKG.ValidateCurrentLine;
87252       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87253 
87254       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87255                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87256                ,p_balance_type_code => l_balance_type_code);
87257 
87258    END IF;
87259 
87260    -----------------------------------------------------------------------------------------
87261    -- 4262811 Multiperiod Accounting
87262    -----------------------------------------------------------------------------------------
87263      -- No MPA option is assigned.
87264 
87265 
87266 END IF;
87267 END IF;
87268 --
87269 
87270 --
87271 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87272    trace
87273       (p_msg      => 'END of AcctLineType_151'
87274       ,p_level    => C_LEVEL_PROCEDURE
87275       ,p_module   => l_log_module);
87276 END IF;
87277 --
87278 EXCEPTION
87279   WHEN xla_exceptions_pkg.application_exception THEN
87280       RAISE;
87281   WHEN OTHERS THEN
87282        xla_exceptions_pkg.raise_message
87283            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_151');
87284 END AcctLineType_151;
87285 --
87286 
87287 ---------------------------------------
87288 --
87289 -- PRIVATE FUNCTION
87290 --         AcctLineType_152
87291 --
87292 ---------------------------------------
87293 PROCEDURE AcctLineType_152 (
87294   p_application_id        IN NUMBER
87295  ,p_event_id              IN NUMBER
87296  ,p_calculate_acctd_flag  IN VARCHAR2
87297  ,p_calculate_g_l_flag    IN VARCHAR2
87298  ,p_actual_flag           IN OUT VARCHAR2
87299  ,p_balance_type_code     OUT VARCHAR2
87300  ,p_gain_or_loss_ref      OUT VARCHAR2
87301  
87302 --Invoice Distribution Description
87303  , p_source_1            IN VARCHAR2
87304 --Automatic Offsets Value
87305  , p_source_15            IN VARCHAR2
87306  , p_source_15_meaning    IN VARCHAR2
87307 --Invoice Distribution Ledger Amount
87308  , p_source_21            IN NUMBER
87309 --Invoice Liability Account
87310  , p_source_34            IN NUMBER
87311 --Accounting Reversal Indicator
87312  , p_source_52            IN VARCHAR2
87313 --Distribution Link Type
87314  , p_source_54            IN VARCHAR2
87315 --Allocation to Main Distribution Identifier
87316  , p_source_56            IN NUMBER
87317 --Invoice Identifier
87318  , p_source_57            IN NUMBER
87319 --Invoice Distribution Identifier
87320  , p_source_63            IN NUMBER
87321 --Payables Encumbrance Upgrade Credit Account
87322  , p_source_64            IN NUMBER
87323 --Payables Encumbrance Upgrade Credit Amount
87324  , p_source_65            IN NUMBER
87325 --Invoice Currency Code
87326  , p_source_66            IN VARCHAR2
87327 --Payables Encumbrance Upgrade Credit Base Amount
87328  , p_source_67            IN NUMBER
87329 --Payables Encumbrance Upgrade Debit Account
87330  , p_source_68            IN NUMBER
87331 --Payables Encumbrance Upgrade Debit Amount
87332  , p_source_69            IN NUMBER
87333 --Payables Encumbrance Upgrade Debit Base Amount
87334  , p_source_70            IN NUMBER
87335 --Payables Encumbrance Upgrade Option
87336  , p_source_71            IN VARCHAR2
87337 --Invoice Distribution Amount
87338  , p_source_72            IN NUMBER
87339 --Deferred Accounting End Date
87340  , p_source_76            IN DATE
87341 --Deferred Accounting Option
87342  , p_source_77            IN VARCHAR2
87343 --Deferred Accounting Start Date
87344  , p_source_78            IN DATE
87348 --Invoice Supplier Identifier
87345 --Override Accounted Amount Indicator
87346  , p_source_79            IN VARCHAR2
87347  , p_source_79_meaning    IN VARCHAR2
87349  , p_source_80            IN NUMBER
87350 --Invoice Supplier Site Identifier
87351  , p_source_81            IN NUMBER
87352 --Third Party Type
87353  , p_source_82            IN VARCHAR2
87354 --Parent Reversal Identifier
87355  , p_source_83            IN NUMBER
87356 --Invoice Distribution Statistical Amount
87357  , p_source_84            IN NUMBER
87358 --Invoice Distribution Tax Line Identifier
87359  , p_source_85            IN NUMBER
87360 --Invoice Distribution Tax Distribution Identifier from Tax
87361  , p_source_86            IN NUMBER
87362 --Invoice Distribution Summary Tax Line Identifier
87363  , p_source_87            IN NUMBER
87364 --Payables Upgrade Credit Encumbrance Type Identifier
87365  , p_source_88            IN NUMBER
87366 --Payables Upgrade Debit Encumbrance Type Identifier
87367  , p_source_89            IN NUMBER
87368 --Business Flow Accounts Payable Application Identifier
87369  , p_source_90            IN NUMBER
87370 --Business Flow Invoice Distribution Type
87371  , p_source_91            IN VARCHAR2
87372 --Business Flow Invoice Entity Code
87373  , p_source_92            IN VARCHAR2
87374 --Business Flow Invoice Distribution Identifier
87375  , p_source_93            IN NUMBER
87376 --Business Flow Invoice Identifier
87377  , p_source_94            IN NUMBER
87378 --Self-Assessed Tax Flag
87379  , p_source_135            IN VARCHAR2
87380  , p_source_135_meaning    IN VARCHAR2
87381 --Invoice Exchange Date
87382  , p_source_136            IN DATE
87383 --Invoice Exchange Rate
87384  , p_source_137            IN NUMBER
87385 --Invoice Exchange Rate Type
87386  , p_source_138            IN VARCHAR2
87387 --Invoice Source
87388  , p_source_163            IN VARCHAR2
87389 --Invoice Type
87390  , p_source_164            IN VARCHAR2
87391  , p_source_164_meaning    IN VARCHAR2
87392 )
87393 IS
87394 
87395 l_component_type              VARCHAR2(80);
87396 l_component_code              VARCHAR2(30);
87397 l_component_type_code         VARCHAR2(1);
87398 l_component_appl_id           INTEGER;
87399 l_amb_context_code            VARCHAR2(30);
87400 l_entity_code                 VARCHAR2(30);
87401 l_event_class_code            VARCHAR2(30);
87402 l_ae_header_id                NUMBER;
87403 l_event_type_code             VARCHAR2(30);
87404 l_line_definition_code        VARCHAR2(30);
87405 l_line_definition_owner_code  VARCHAR2(1);
87406 --
87407 -- adr variables
87408 l_segment                     VARCHAR2(30);
87409 l_ccid                        NUMBER;
87410 l_adr_transaction_coa_id      NUMBER;
87411 l_adr_accounting_coa_id       NUMBER;
87412 l_adr_flexfield_segment_code  VARCHAR2(30);
87413 l_adr_flex_value_set_id       NUMBER;
87414 l_adr_value_type_code         VARCHAR2(30);
87415 l_adr_value_combination_id    NUMBER;
87416 l_adr_value_segment_code      VARCHAR2(30);
87417 
87418 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87419 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87420 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87421 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87422 
87423 -- 4262811 Variables ------------------------------------------------------------------------------------------
87424 l_entered_amt_idx             NUMBER;
87425 l_accted_amt_idx              NUMBER;
87426 l_acc_rev_flag                VARCHAR2(1);
87427 l_accrual_line_num            NUMBER;
87428 l_tmp_amt                     NUMBER;
87429 l_acc_rev_natural_side_code   VARCHAR2(1);
87430 
87431 l_num_entries                 NUMBER;
87432 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87433 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87434 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87435 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87436 l_recog_line_1                NUMBER;
87437 l_recog_line_2                NUMBER;
87438 
87439 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87440 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87441 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87442 
87443 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87444 
87445 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87446 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87447 
87448 ---------------------------------------------------------------------------------------------------------------
87449 
87450 
87451 --
87452 -- bulk performance
87453 --
87454 l_balance_type_code           VARCHAR2(1);
87455 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87456 l_log_module                  VARCHAR2(240);
87457 
87458 --
87459 -- Upgrade strategy
87460 --
87461 l_actual_upg_option           VARCHAR2(1);
87462 l_enc_upg_option           VARCHAR2(1);
87463 
87464 --
87465 BEGIN
87466 --
87467 IF g_log_enabled THEN
87468       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
87469 END IF;
87470 --
87471 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87472 
87473       trace
87474          (p_msg      => 'BEGIN of AcctLineType_152'
87478 END IF;
87475          ,p_level    => C_LEVEL_PROCEDURE
87476          ,p_module   => l_log_module);
87477 
87479 --
87480 l_component_type             := 'AMB_JLT';
87481 l_component_code             := 'AP_LIAB_INV';
87482 l_component_type_code        := 'S';
87483 l_component_appl_id          :=  200;
87484 l_amb_context_code           := 'DEFAULT';
87485 l_entity_code                := 'AP_INVOICES';
87486 l_event_class_code           := 'INVOICES';
87487 l_event_type_code            := 'INVOICES_ALL';
87488 l_line_definition_owner_code := 'S';
87489 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
87490 --
87491 l_balance_type_code          := 'A';
87492 l_segment                     := NULL;
87493 l_ccid                        := NULL;
87494 l_adr_transaction_coa_id      := NULL;
87495 l_adr_accounting_coa_id       := NULL;
87496 l_adr_flexfield_segment_code  := NULL;
87497 l_adr_flex_value_set_id       := NULL;
87498 l_adr_value_type_code         := NULL;
87499 l_adr_value_combination_id    := NULL;
87500 l_adr_value_segment_code      := NULL;
87501 
87502 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
87503 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
87504 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87505 l_budgetary_control_flag     := 'N';
87506 
87507 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87508 l_bflow_applied_to_amt       := NULL; -- 5132302
87509 l_entered_amt_idx            := NULL;          -- 4262811
87510 l_accted_amt_idx             := NULL;          -- 4262811
87511 l_acc_rev_flag               := NULL;          -- 4262811
87512 l_accrual_line_num           := NULL;          -- 4262811
87513 l_tmp_amt                    := NULL;          -- 4262811
87514 --
87515  
87516 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87517     l_balance_type_code <> 'B' THEN
87518 IF (NVL(p_source_15,'
87519 ') <>  'BALANCING_SEGMENT' AND 
87520 NVL(p_source_15,'
87521 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
87522 (NVL(p_source_164,'
87523 ') =  'STANDARD' OR 
87524 NVL(p_source_164,'
87525 ') =  'MIXED' OR 
87526 NVL(p_source_164,'
87527 ') =  'AWT' OR 
87528 NVL(p_source_164,'
87529 ') =  'PO PRICE ADJUST' OR 
87530 NVL(p_source_164,'
87531 ') =  'EXPENSE REPORT' OR 
87532 NVL(p_source_164,'
87533 ') =  'PAYMENT REQUEST' OR 
87534 NVL(p_source_164,'
87535 ') =  'RETAINAGE RELEASE') AND 
87536 NVL(p_source_135,'
87537 ') <>  'Y'
87538  THEN 
87539 
87540    --
87541    XLA_AE_LINES_PKG.SetNewLine;
87542 
87543    p_balance_type_code          := l_balance_type_code;
87544    -- set the flag so later we will know whether the gain loss line needs to be created
87545    
87546    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87547      p_actual_flag :='A';
87548    END IF;
87549 
87550    --
87551    -- bulk performance
87552    --
87553    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87554                                       p_header_num   => 0); -- 4262811
87555    --
87556    -- set accounting line options
87557    --
87558    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87559            p_natural_side_code          => 'C'
87560          , p_gain_or_loss_flag          => 'N'
87561          , p_gl_transfer_mode_code      => 'S'
87562          , p_acct_entry_type_code       => 'A'
87563          , p_switch_side_flag           => 'Y'
87564          , p_merge_duplicate_code       => 'A'
87565          );
87566    --
87567    l_acc_rev_natural_side_code := 'D';  -- 4262811
87568    -- 
87569    --
87570    -- set accounting line type info
87571    --
87572    xla_ae_lines_pkg.SetAcctLineType
87573       (p_component_type             => l_component_type
87574       ,p_event_type_code            => l_event_type_code
87575       ,p_line_definition_owner_code => l_line_definition_owner_code
87576       ,p_line_definition_code       => l_line_definition_code
87577       ,p_accounting_line_code       => l_component_code
87578       ,p_accounting_line_type_code  => l_component_type_code
87579       ,p_accounting_line_appl_id    => l_component_appl_id
87580       ,p_amb_context_code           => l_amb_context_code
87581       ,p_entity_code                => l_entity_code
87582       ,p_event_class_code           => l_event_class_code);
87583    --
87584    -- set accounting class
87585    --
87586    xla_ae_lines_pkg.SetAcctClass(
87587            p_accounting_class_code  => 'LIABILITY'
87588          , p_ae_header_id           => l_ae_header_id
87589          );
87590 
87591    --
87592    -- set rounding class
87593    --
87594    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87595                       'LIABILITY';
87596 
87597    --
87598    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87599    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87600    --
87601    -- bulk performance
87602    --
87603    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87604 
87605    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87609    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87606       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87607 
87608    -- 4955764
87610       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87611 
87612    -- 4458381 Public Sector Enh
87613    
87614    --
87615    -- set accounting attributes for the line type
87616    --
87617    l_entered_amt_idx := 24;
87618    l_accted_amt_idx  := 29;
87619    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
87620    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87621    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
87622    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
87623    l_rec_acct_attrs.array_num_value(2)  := 
87624 xla_ae_sources_pkg.GetSystemSourceNum(
87625    p_source_code           => 'XLA_EVENT_APPL_ID'
87626  , p_source_type_code      => 'Y'
87627  , p_source_application_id =>  602
87628 );
87629    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
87630    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
87631    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
87632    l_rec_acct_attrs.array_char_value(4)  := 
87633 xla_ae_sources_pkg.GetSystemSourceChar(
87634    p_source_code           => 'XLA_ENTITY_CODE'
87635  , p_source_type_code      => 'Y'
87636  , p_source_application_id =>  602
87637 );
87638    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
87639    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
87640    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
87641    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
87642    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
87643    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
87644    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
87645    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
87646    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87647    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
87648    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
87649    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
87650    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
87651    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
87652    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87653    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
87654    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
87655    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
87656    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
87657    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
87658    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
87659    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
87660    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
87661    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
87662    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
87663    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
87664    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
87665    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
87666    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
87667    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
87668    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
87669    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
87670    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
87671    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
87672    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
87673    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
87674    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
87675    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
87676    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
87677    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
87678    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
87679    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
87680    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
87681    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
87682    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
87683    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
87684    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
87685    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
87686    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
87687    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
87688    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
87689    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
87690    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
87691    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
87692    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
87693    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
87694    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
87695    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
87696    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
87697    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
87701    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
87698    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
87699    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
87700    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
87702    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
87703    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
87704    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
87705    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
87706    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
87707    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
87708    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
87709    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
87710    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
87711    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
87712    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
87713    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
87714    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
87715    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
87716    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
87717    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
87718 
87719    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87720    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87721 
87722    ---------------------------------------------------------------------------------------------------------------
87723    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87724    ---------------------------------------------------------------------------------------------------------------
87725    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87726 
87727    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87728    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87729 
87730    IF xla_accounting_cache_pkg.GetValueChar
87731          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87732          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87733    AND l_bflow_method_code = 'PRIOR_ENTRY'
87734 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87735    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87736          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87737        )
87738    THEN
87739          xla_ae_lines_pkg.BflowUpgEntry
87740            (p_business_method_code    => l_bflow_method_code
87741            ,p_business_class_code     => l_bflow_class_code
87742            ,p_balance_type            => l_balance_type_code);
87743    ELSE
87744       NULL;
87745 -- No business flow processing for business flow method of NONE.
87746    END IF;
87747 
87748    --
87749    -- call analytical criteria
87750    --
87751    
87752 
87753 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
87754 xla_ae_lines_pkg.SetAnalyticalCriteria(
87755    p_analytical_criterion_name    => 'Payables Custom Source'
87756  , p_analytical_criterion_owner   => 'S'
87757  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
87758  , p_amb_context_code             => 'DEFAULT'
87759  , p_balancing_flag               => 'N'
87760  
87761  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
87762 p_source_163
87763 , p_source_57
87764 , p_source_63))
87765  , p_analytical_detail_num_1     =>  NULL
87766  , p_analytical_detail_date_1    =>  NULL
87767 
87768  , p_ae_header_id                 => l_ae_header_id
87769 )
87770 ;
87771 --
87772 
87773    --
87774    -- call description
87775    --
87776    
87777 xla_ae_lines_pkg.SetLineDescription(
87778    p_ae_header_id => l_ae_header_id
87779   ,p_description  => Description_1 (
87780      p_application_id         => p_application_id
87781    , p_ae_header_id           => l_ae_header_id 
87782 , p_source_1 => p_source_1
87783    )
87784 );
87785 
87786 
87787    --
87788    -- call ADRs
87789    -- Bug 4922099
87790    --
87791    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87792         (NVL(l_actual_upg_option, 'N') = 'O') OR
87793         (NVL(l_enc_upg_option, 'N') = 'O')
87794       )
87795    THEN
87796    NULL;
87797    --
87798    --
87799    
87800   l_ccid := AcctDerRule_34(
87801            p_application_id           => p_application_id
87802          , p_ae_header_id             => l_ae_header_id 
87803 , p_source_34 => p_source_34
87804          , x_transaction_coa_id       => l_adr_transaction_coa_id
87805          , x_accounting_coa_id        => l_adr_accounting_coa_id
87806          , x_value_type_code          => l_adr_value_type_code
87807          , p_side                     => 'NA'
87808    );
87809 
87810    xla_ae_lines_pkg.set_ccid(
87811     p_code_combination_id          => l_ccid
87812   , p_value_type_code              => l_adr_value_type_code
87813   , p_transaction_coa_id           => l_adr_transaction_coa_id
87814   , p_accounting_coa_id            => l_adr_accounting_coa_id
87815   , p_adr_code                     => 'AP_LIAB'
87816   , p_adr_type_code                => 'S'
87820   , p_component_appl_id            => l_component_appl_id
87817   , p_component_type               => l_component_type
87818   , p_component_code               => l_component_code
87819   , p_component_type_code          => l_component_type_code
87821   , p_amb_context_code             => l_amb_context_code
87822   , p_side                         => 'NA'
87823   );
87824 
87825 
87826    --
87827    --
87828    END IF;
87829    --
87830    -- Bug 4922099
87831    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87832           (NVL(l_enc_upg_option, 'N') = 'O')
87833         ) AND
87834         (l_bflow_method_code = 'PRIOR_ENTRY')
87835       )
87836    THEN
87837       IF
87838       --
87839       1 = 2
87840       --
87841       THEN
87842       xla_accounting_err_pkg.build_message
87843                                     (p_appli_s_name            => 'XLA'
87844                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87845                                     ,p_token_1                 => 'LINE_NUMBER'
87846                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87847                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87848                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87849                                                                              l_component_type
87850                                                                             ,l_component_code
87851                                                                             ,l_component_type_code
87852                                                                             ,l_component_appl_id
87853                                                                             ,l_amb_context_code
87854                                                                             ,l_entity_code
87855                                                                             ,l_event_class_code
87856                                                                            )
87857                                     ,p_token_3                 => 'OWNER'
87858                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87859                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87860                                                                           ,p_lookup_code    => l_component_type_code
87861                                                                          )
87862                                     ,p_token_4                 => 'PRODUCT_NAME'
87863                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87864                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87865                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87866                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87867                                     ,p_ae_header_id            =>  NULL
87868                                        );
87869 
87870         IF (C_LEVEL_ERROR>= g_log_level) THEN
87871                  trace
87872                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87873                       ,p_level    => C_LEVEL_ERROR
87874                       ,p_module   => l_log_module);
87875         END IF;
87876       END IF;
87877    END IF;
87878    --
87879    --
87880    ------------------------------------------------------------------------------------------------
87881    -- 4219869 Business Flow
87882    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87883    -- Prior Entry.  Currently, the following code is always generated.
87884    ------------------------------------------------------------------------------------------------
87885    XLA_AE_LINES_PKG.ValidateCurrentLine;
87886 
87887    ------------------------------------------------------------------------------------
87888    -- 4219869 Business Flow
87889    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87890    ------------------------------------------------------------------------------------
87891    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87892 
87893    ----------------------------------------------------------------------------------
87894    -- 4219869 Business Flow
87895    -- Update journal entry status -- Need to generate this within IF <condition>
87896    ----------------------------------------------------------------------------------
87897    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87898          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87899          ,p_balance_type_code => l_balance_type_code
87900          );
87901 
87902    -------------------------------------------------------------------------------------------
87903    -- 4262811 - Generate the Accrual Reversal lines
87904    -------------------------------------------------------------------------------------------
87905    BEGIN
87906       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87907                               (g_array_event(p_event_id).array_value_num('header_index'));
87908       IF l_acc_rev_flag IS NULL THEN
87909          l_acc_rev_flag := 'N';
87910       END IF;
87911    EXCEPTION
87912       WHEN OTHERS THEN
87913          l_acc_rev_flag := 'N';
87914    END;
87915    --
87916    IF (l_acc_rev_flag = 'Y') THEN
87917 
87921        ------------------------------------------------------------------------------------------
87918        -- 4645092  ------------------------------------------------------------------------------
87919        -- To allow MPA report to determine if it should generate report process
87920        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87922 
87923        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87924        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87925    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87926    -- call ADRs
87927    -- Bug 4922099
87928    --
87929    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87930         (NVL(l_actual_upg_option, 'N') = 'O') OR
87931         (NVL(l_enc_upg_option, 'N') = 'O')
87932       )
87933    THEN
87934    NULL;
87935    --
87936    --
87937    
87938   l_ccid := AcctDerRule_34(
87939            p_application_id           => p_application_id
87940          , p_ae_header_id             => l_ae_header_id 
87941 , p_source_34 => p_source_34
87942          , x_transaction_coa_id       => l_adr_transaction_coa_id
87943          , x_accounting_coa_id        => l_adr_accounting_coa_id
87944          , x_value_type_code          => l_adr_value_type_code
87945          , p_side                     => 'NA'
87946    );
87947 
87948    xla_ae_lines_pkg.set_ccid(
87949     p_code_combination_id          => l_ccid
87950   , p_value_type_code              => l_adr_value_type_code
87951   , p_transaction_coa_id           => l_adr_transaction_coa_id
87952   , p_accounting_coa_id            => l_adr_accounting_coa_id
87953   , p_adr_code                     => 'AP_LIAB'
87954   , p_adr_type_code                => 'S'
87955   , p_component_type               => l_component_type
87956   , p_component_code               => l_component_code
87957   , p_component_type_code          => l_component_type_code
87958   , p_component_appl_id            => l_component_appl_id
87959   , p_amb_context_code             => l_amb_context_code
87960   , p_side                         => 'NA'
87961   );
87962 
87963 
87964    --
87965    --
87966    END IF;
87967 
87968        --
87969        -- Update the line information that should be overwritten
87970        --
87971        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87972                                          p_header_num   => 1);
87973        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87974 
87975        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87976 
87977        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87978           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87979        END IF;
87980 
87981       --
87982       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87983       --
87984       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87985           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87986       ELSE
87987           ---------------------------------------------------------------------------------------------------
87988           -- 4262811a Switch Sign
87989           ---------------------------------------------------------------------------------------------------
87990           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87991           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87992                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87993           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87994                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87995           -- 5132302
87996           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87997                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87998 
87999       END IF;
88000 
88001       -- 4955764
88002       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88003       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88004 
88005 
88006       XLA_AE_LINES_PKG.ValidateCurrentLine;
88007       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88008 
88009       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88010                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88011                ,p_balance_type_code => l_balance_type_code);
88012 
88013    END IF;
88014 
88015    -----------------------------------------------------------------------------------------
88016    -- 4262811 Multiperiod Accounting
88017    -----------------------------------------------------------------------------------------
88018      -- No MPA option is assigned.
88019 
88020 
88021 END IF;
88022 END IF;
88023 --
88024 
88025 --
88026 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88027    trace
88028       (p_msg      => 'END of AcctLineType_152'
88029       ,p_level    => C_LEVEL_PROCEDURE
88030       ,p_module   => l_log_module);
88031 END IF;
88032 --
88033 EXCEPTION
88037        xla_exceptions_pkg.raise_message
88034   WHEN xla_exceptions_pkg.application_exception THEN
88035       RAISE;
88036   WHEN OTHERS THEN
88038            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_152');
88039 END AcctLineType_152;
88040 --
88041 
88042 ---------------------------------------
88043 --
88044 -- PRIVATE FUNCTION
88045 --         AcctLineType_153
88046 --
88047 ---------------------------------------
88048 PROCEDURE AcctLineType_153 (
88049   p_application_id        IN NUMBER
88050  ,p_event_id              IN NUMBER
88051  ,p_calculate_acctd_flag  IN VARCHAR2
88052  ,p_calculate_g_l_flag    IN VARCHAR2
88053  ,p_actual_flag           IN OUT VARCHAR2
88054  ,p_balance_type_code     OUT VARCHAR2
88055  ,p_gain_or_loss_ref      OUT VARCHAR2
88056  
88057 --Invoice Distribution Description
88058  , p_source_1            IN VARCHAR2
88059 --Automatic Offsets Value
88060  , p_source_15            IN VARCHAR2
88061  , p_source_15_meaning    IN VARCHAR2
88062 --Invoice Distribution Ledger Amount
88063  , p_source_21            IN NUMBER
88064 --Invoice Liability Account
88065  , p_source_34            IN NUMBER
88066 --Accounting Reversal Indicator
88067  , p_source_52            IN VARCHAR2
88068 --Distribution Link Type
88069  , p_source_54            IN VARCHAR2
88070 --Allocation to Main Distribution Identifier
88071  , p_source_56            IN NUMBER
88072 --Invoice Identifier
88073  , p_source_57            IN NUMBER
88074 --Invoice Distribution Identifier
88075  , p_source_63            IN NUMBER
88076 --Payables Encumbrance Upgrade Credit Account
88077  , p_source_64            IN NUMBER
88078 --Payables Encumbrance Upgrade Credit Amount
88079  , p_source_65            IN NUMBER
88080 --Invoice Currency Code
88081  , p_source_66            IN VARCHAR2
88082 --Payables Encumbrance Upgrade Credit Base Amount
88083  , p_source_67            IN NUMBER
88084 --Payables Encumbrance Upgrade Debit Account
88085  , p_source_68            IN NUMBER
88086 --Payables Encumbrance Upgrade Debit Amount
88087  , p_source_69            IN NUMBER
88088 --Payables Encumbrance Upgrade Debit Base Amount
88089  , p_source_70            IN NUMBER
88090 --Payables Encumbrance Upgrade Option
88091  , p_source_71            IN VARCHAR2
88092 --Invoice Distribution Amount
88093  , p_source_72            IN NUMBER
88094 --Deferred Accounting End Date
88095  , p_source_76            IN DATE
88096 --Deferred Accounting Option
88097  , p_source_77            IN VARCHAR2
88098 --Deferred Accounting Start Date
88099  , p_source_78            IN DATE
88100 --Override Accounted Amount Indicator
88101  , p_source_79            IN VARCHAR2
88102  , p_source_79_meaning    IN VARCHAR2
88103 --Invoice Supplier Identifier
88104  , p_source_80            IN NUMBER
88105 --Invoice Supplier Site Identifier
88106  , p_source_81            IN NUMBER
88107 --Third Party Type
88108  , p_source_82            IN VARCHAR2
88109 --Parent Reversal Identifier
88110  , p_source_83            IN NUMBER
88111 --Invoice Distribution Statistical Amount
88112  , p_source_84            IN NUMBER
88113 --Invoice Distribution Tax Line Identifier
88114  , p_source_85            IN NUMBER
88115 --Invoice Distribution Tax Distribution Identifier from Tax
88116  , p_source_86            IN NUMBER
88117 --Invoice Distribution Summary Tax Line Identifier
88118  , p_source_87            IN NUMBER
88119 --Payables Upgrade Credit Encumbrance Type Identifier
88120  , p_source_88            IN NUMBER
88121 --Payables Upgrade Debit Encumbrance Type Identifier
88122  , p_source_89            IN NUMBER
88123 --Business Flow Accounts Payable Application Identifier
88124  , p_source_90            IN NUMBER
88125 --Business Flow Invoice Distribution Type
88126  , p_source_91            IN VARCHAR2
88127 --Business Flow Invoice Entity Code
88128  , p_source_92            IN VARCHAR2
88129 --Business Flow Invoice Distribution Identifier
88130  , p_source_93            IN NUMBER
88131 --Business Flow Invoice Identifier
88132  , p_source_94            IN NUMBER
88133 --Self-Assessed Tax Flag
88134  , p_source_135            IN VARCHAR2
88135  , p_source_135_meaning    IN VARCHAR2
88136 --Invoice Exchange Date
88137  , p_source_136            IN DATE
88138 --Invoice Exchange Rate
88139  , p_source_137            IN NUMBER
88140 --Invoice Exchange Rate Type
88141  , p_source_138            IN VARCHAR2
88142 --Invoice Source
88143  , p_source_163            IN VARCHAR2
88144 --Invoice Type
88145  , p_source_164            IN VARCHAR2
88146  , p_source_164_meaning    IN VARCHAR2
88147 )
88148 IS
88149 
88150 l_component_type              VARCHAR2(80);
88151 l_component_code              VARCHAR2(30);
88152 l_component_type_code         VARCHAR2(1);
88153 l_component_appl_id           INTEGER;
88154 l_amb_context_code            VARCHAR2(30);
88155 l_entity_code                 VARCHAR2(30);
88156 l_event_class_code            VARCHAR2(30);
88157 l_ae_header_id                NUMBER;
88158 l_event_type_code             VARCHAR2(30);
88159 l_line_definition_code        VARCHAR2(30);
88160 l_line_definition_owner_code  VARCHAR2(1);
88161 --
88162 -- adr variables
88163 l_segment                     VARCHAR2(30);
88164 l_ccid                        NUMBER;
88165 l_adr_transaction_coa_id      NUMBER;
88166 l_adr_accounting_coa_id       NUMBER;
88167 l_adr_flexfield_segment_code  VARCHAR2(30);
88171 l_adr_value_segment_code      VARCHAR2(30);
88168 l_adr_flex_value_set_id       NUMBER;
88169 l_adr_value_type_code         VARCHAR2(30);
88170 l_adr_value_combination_id    NUMBER;
88172 
88173 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88174 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88175 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88176 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88177 
88178 -- 4262811 Variables ------------------------------------------------------------------------------------------
88179 l_entered_amt_idx             NUMBER;
88180 l_accted_amt_idx              NUMBER;
88181 l_acc_rev_flag                VARCHAR2(1);
88182 l_accrual_line_num            NUMBER;
88183 l_tmp_amt                     NUMBER;
88184 l_acc_rev_natural_side_code   VARCHAR2(1);
88185 
88186 l_num_entries                 NUMBER;
88187 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88188 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88189 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88190 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88191 l_recog_line_1                NUMBER;
88192 l_recog_line_2                NUMBER;
88193 
88194 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88195 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88196 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88197 
88198 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88199 
88200 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88201 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88202 
88203 ---------------------------------------------------------------------------------------------------------------
88204 
88205 
88206 --
88207 -- bulk performance
88208 --
88209 l_balance_type_code           VARCHAR2(1);
88210 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88211 l_log_module                  VARCHAR2(240);
88212 
88213 --
88214 -- Upgrade strategy
88215 --
88216 l_actual_upg_option           VARCHAR2(1);
88217 l_enc_upg_option           VARCHAR2(1);
88218 
88219 --
88220 BEGIN
88221 --
88222 IF g_log_enabled THEN
88223       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
88224 END IF;
88225 --
88226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88227 
88228       trace
88229          (p_msg      => 'BEGIN of AcctLineType_153'
88230          ,p_level    => C_LEVEL_PROCEDURE
88231          ,p_module   => l_log_module);
88232 
88233 END IF;
88234 --
88235 l_component_type             := 'AMB_JLT';
88236 l_component_code             := 'AP_LIAB_INV_AOS_AS';
88237 l_component_type_code        := 'S';
88238 l_component_appl_id          :=  200;
88239 l_amb_context_code           := 'DEFAULT';
88240 l_entity_code                := 'AP_INVOICES';
88241 l_event_class_code           := 'INVOICES';
88242 l_event_type_code            := 'INVOICES_ALL';
88243 l_line_definition_owner_code := 'S';
88244 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
88245 --
88246 l_balance_type_code          := 'A';
88247 l_segment                     := NULL;
88248 l_ccid                        := NULL;
88249 l_adr_transaction_coa_id      := NULL;
88250 l_adr_accounting_coa_id       := NULL;
88251 l_adr_flexfield_segment_code  := NULL;
88252 l_adr_flex_value_set_id       := NULL;
88253 l_adr_value_type_code         := NULL;
88254 l_adr_value_combination_id    := NULL;
88255 l_adr_value_segment_code      := NULL;
88256 
88257 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
88258 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
88259 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88260 l_budgetary_control_flag     := 'N';
88261 
88262 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88263 l_bflow_applied_to_amt       := NULL; -- 5132302
88264 l_entered_amt_idx            := NULL;          -- 4262811
88265 l_accted_amt_idx             := NULL;          -- 4262811
88266 l_acc_rev_flag               := NULL;          -- 4262811
88267 l_accrual_line_num           := NULL;          -- 4262811
88268 l_tmp_amt                    := NULL;          -- 4262811
88269 --
88270  
88271 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88272     l_balance_type_code <> 'B' THEN
88273 IF NVL(p_source_15,'
88274 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
88275 (NVL(p_source_164,'
88276 ') =  'STANDARD' OR 
88277 NVL(p_source_164,'
88278 ') =  'MIXED' OR 
88279 NVL(p_source_164,'
88280 ') =  'AWT' OR 
88281 NVL(p_source_164,'
88282 ') =  'PO PRICE ADJUST' OR 
88283 NVL(p_source_164,'
88284 ') =  'EXPENSE REPORT' OR 
88285 NVL(p_source_164,'
88286 ') =  'PAYMENT REQUEST' OR 
88287 NVL(p_source_164,'
88288 ') =  'RETAINAGE RELEASE') AND 
88289 NVL(p_source_135,'
88290 ') <>  'Y'
88291  THEN 
88292 
88293    --
88294    XLA_AE_LINES_PKG.SetNewLine;
88295 
88296    p_balance_type_code          := l_balance_type_code;
88297    -- set the flag so later we will know whether the gain loss line needs to be created
88298    
88302 
88299    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88300      p_actual_flag :='A';
88301    END IF;
88303    --
88304    -- bulk performance
88305    --
88306    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88307                                       p_header_num   => 0); -- 4262811
88308    --
88309    -- set accounting line options
88310    --
88311    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88312            p_natural_side_code          => 'C'
88313          , p_gain_or_loss_flag          => 'N'
88314          , p_gl_transfer_mode_code      => 'S'
88315          , p_acct_entry_type_code       => 'A'
88316          , p_switch_side_flag           => 'Y'
88317          , p_merge_duplicate_code       => 'A'
88318          );
88319    --
88320    l_acc_rev_natural_side_code := 'D';  -- 4262811
88321    -- 
88322    --
88323    -- set accounting line type info
88324    --
88325    xla_ae_lines_pkg.SetAcctLineType
88326       (p_component_type             => l_component_type
88327       ,p_event_type_code            => l_event_type_code
88328       ,p_line_definition_owner_code => l_line_definition_owner_code
88329       ,p_line_definition_code       => l_line_definition_code
88330       ,p_accounting_line_code       => l_component_code
88331       ,p_accounting_line_type_code  => l_component_type_code
88332       ,p_accounting_line_appl_id    => l_component_appl_id
88333       ,p_amb_context_code           => l_amb_context_code
88334       ,p_entity_code                => l_entity_code
88335       ,p_event_class_code           => l_event_class_code);
88336    --
88337    -- set accounting class
88338    --
88339    xla_ae_lines_pkg.SetAcctClass(
88340            p_accounting_class_code  => 'LIABILITY'
88341          , p_ae_header_id           => l_ae_header_id
88342          );
88343 
88344    --
88345    -- set rounding class
88346    --
88347    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88348                       'LIABILITY';
88349 
88350    --
88351    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88352    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88353    --
88354    -- bulk performance
88355    --
88356    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88357 
88358    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88359       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88360 
88361    -- 4955764
88362    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88363       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88364 
88365    -- 4458381 Public Sector Enh
88366    
88367    --
88368    -- set accounting attributes for the line type
88369    --
88370    l_entered_amt_idx := 24;
88371    l_accted_amt_idx  := 29;
88372    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
88373    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88374    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
88375    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88376    l_rec_acct_attrs.array_num_value(2)  := 
88377 xla_ae_sources_pkg.GetSystemSourceNum(
88378    p_source_code           => 'XLA_EVENT_APPL_ID'
88379  , p_source_type_code      => 'Y'
88380  , p_source_application_id =>  602
88381 );
88382    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88383    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
88384    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88385    l_rec_acct_attrs.array_char_value(4)  := 
88386 xla_ae_sources_pkg.GetSystemSourceChar(
88387    p_source_code           => 'XLA_ENTITY_CODE'
88388  , p_source_type_code      => 'Y'
88389  , p_source_application_id =>  602
88390 );
88391    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88392    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
88393    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88394    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
88395    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
88396    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
88397    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
88398    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
88399    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88400    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
88401    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
88402    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
88403    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
88404    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
88405    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88406    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
88407    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
88408    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
88409    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
88410    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
88414    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
88411    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88412    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
88413    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88415    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88416    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
88417    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88418    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
88419    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
88420    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
88421    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
88422    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
88423    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
88424    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
88425    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
88426    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
88427    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
88428    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
88429    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
88430    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
88431    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
88432    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
88433    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
88434    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
88435    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
88436    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
88437    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
88438    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
88439    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
88440    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
88441    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
88442    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
88443    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
88444    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
88445    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
88446    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
88447    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
88448    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
88449    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
88450    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
88451    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
88452    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
88453    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
88454    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
88455    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
88456    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
88457    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
88458    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
88459    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
88460    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
88461    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88462    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
88463    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88464    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
88465    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88466    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
88467    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88468    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
88469    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88470    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
88471 
88472    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88473    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88474 
88475    ---------------------------------------------------------------------------------------------------------------
88476    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88477    ---------------------------------------------------------------------------------------------------------------
88478    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88479 
88480    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88481    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88482 
88483    IF xla_accounting_cache_pkg.GetValueChar
88484          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88485          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88486    AND l_bflow_method_code = 'PRIOR_ENTRY'
88487 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88488    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88489          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88490        )
88491    THEN
88492          xla_ae_lines_pkg.BflowUpgEntry
88493            (p_business_method_code    => l_bflow_method_code
88494            ,p_business_class_code     => l_bflow_class_code
88495            ,p_balance_type            => l_balance_type_code);
88496    ELSE
88500                                ,p_business_class_code      => l_bflow_class_code
88497       NULL;
88498 XLA_AE_LINES_PKG.business_flow_validation(
88499                                 p_business_method_code     => l_bflow_method_code
88501                                ,p_inherit_description_flag => l_inherit_desc_flag);
88502    END IF;
88503 
88504    --
88505    -- call analytical criteria
88506    --
88507    
88508 
88509 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
88510 xla_ae_lines_pkg.SetAnalyticalCriteria(
88511    p_analytical_criterion_name    => 'Payables Custom Source'
88512  , p_analytical_criterion_owner   => 'S'
88513  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
88514  , p_amb_context_code             => 'DEFAULT'
88515  , p_balancing_flag               => 'N'
88516  
88517  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
88518 p_source_163
88519 , p_source_57
88520 , p_source_63))
88521  , p_analytical_detail_num_1     =>  NULL
88522  , p_analytical_detail_date_1    =>  NULL
88523 
88524  , p_ae_header_id                 => l_ae_header_id
88525 )
88526 ;
88527 --
88528 
88529    --
88530    -- call description
88531    --
88532    
88533 xla_ae_lines_pkg.SetLineDescription(
88534    p_ae_header_id => l_ae_header_id
88535   ,p_description  => Description_1 (
88536      p_application_id         => p_application_id
88537    , p_ae_header_id           => l_ae_header_id 
88538 , p_source_1 => p_source_1
88539    )
88540 );
88541 
88542 
88543    --
88544    -- call ADRs
88545    -- Bug 4922099
88546    --
88547    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88548         (NVL(l_actual_upg_option, 'N') = 'O') OR
88549         (NVL(l_enc_upg_option, 'N') = 'O')
88550       )
88551    THEN
88552    NULL;
88553    --
88554    --
88555    
88556    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
88557      p_code_combination_id      => TO_NUMBER(C_NUM)
88558    , p_value_type_code          => NULL
88559    , p_transaction_coa_id       => null
88560    , p_accounting_coa_id        => null
88561    , p_adr_code                 => NULL
88562    , p_adr_type_code            => NULL
88563    , p_component_type           => l_component_type
88564    , p_component_code           => l_component_code
88565    , p_component_type_code      => l_component_type_code
88566    , p_component_appl_id        => l_component_appl_id
88567    , p_amb_context_code         => l_amb_context_code
88568    , p_side                     => NULL
88569    );
88570 
88571    
88572   -- initialise segments
88573   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88574   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88575   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88576   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88577   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88578   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88579   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88580   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88581   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88582   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88583   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88584   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88585   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88586   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88587   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88588   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88589   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88590   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88591   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88592   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88593   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88594   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88595   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88596   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88597   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88598   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88599   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88600   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88601   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88602   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88603   --
88604 
88605    --
88606 
88607 
88608    l_segment := AcctDerRule_15(
88609            p_application_id           => p_application_id
88610          , p_ae_header_id             => l_ae_header_id 
88614          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
88611 , p_source_34 => p_source_34
88612          , x_transaction_coa_id       => l_adr_transaction_coa_id
88613          , x_accounting_coa_id        => l_adr_accounting_coa_id
88615          , x_flex_value_set_id        => l_adr_flex_value_set_id
88616          , x_value_type_code          => l_adr_value_type_code
88617          , x_value_combination_id     => l_adr_value_combination_id
88618          , x_value_segment_code       => l_adr_value_segment_code
88619          , p_side                     => 'NA'
88620          , p_override_seg_flag        => 'Y'
88621    );
88622 
88623    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
88624 
88625       xla_ae_lines_pkg.set_segment(
88626           p_to_segment_code         => 'GL_ACCOUNT'
88627         , p_segment_value           => l_segment
88628         , p_from_segment_code       => l_adr_value_segment_code
88629         , p_from_combination_id     => l_adr_value_combination_id
88630         , p_value_type_code         => l_adr_value_type_code
88631         , p_transaction_coa_id      => l_adr_transaction_coa_id
88632         , p_accounting_coa_id       => l_adr_accounting_coa_id
88633         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
88634         , p_flex_value_set_id       => l_adr_flex_value_set_id
88635         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
88636         , p_adr_type_code           => 'S'
88637         , p_component_type          => l_component_type
88638         , p_component_code          => l_component_code
88639         , p_component_type_code     => l_component_type_code
88640         , p_component_appl_id       => l_component_appl_id
88641         , p_amb_context_code        => l_amb_context_code
88642         , p_entity_code             => 'AP_INVOICES'
88643         , p_event_class_code        => 'INVOICES'
88644         , p_side                    => 'NA'
88645         );
88646 
88647   END IF;
88648 
88649    --
88650    --
88651    END IF;
88652    --
88653    -- Bug 4922099
88654    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88655           (NVL(l_enc_upg_option, 'N') = 'O')
88656         ) AND
88657         (l_bflow_method_code = 'PRIOR_ENTRY')
88658       )
88659    THEN
88660       IF
88661       --
88662       1 = 2
88663       --
88664       THEN
88665       xla_accounting_err_pkg.build_message
88666                                     (p_appli_s_name            => 'XLA'
88667                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88668                                     ,p_token_1                 => 'LINE_NUMBER'
88669                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88670                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88671                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88672                                                                              l_component_type
88673                                                                             ,l_component_code
88674                                                                             ,l_component_type_code
88675                                                                             ,l_component_appl_id
88676                                                                             ,l_amb_context_code
88677                                                                             ,l_entity_code
88678                                                                             ,l_event_class_code
88679                                                                            )
88680                                     ,p_token_3                 => 'OWNER'
88681                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88682                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88683                                                                           ,p_lookup_code    => l_component_type_code
88684                                                                          )
88685                                     ,p_token_4                 => 'PRODUCT_NAME'
88686                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88687                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88688                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88689                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88690                                     ,p_ae_header_id            =>  NULL
88691                                        );
88692 
88693         IF (C_LEVEL_ERROR>= g_log_level) THEN
88694                  trace
88695                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88696                       ,p_level    => C_LEVEL_ERROR
88697                       ,p_module   => l_log_module);
88698         END IF;
88699       END IF;
88700    END IF;
88701    --
88702    --
88703    ------------------------------------------------------------------------------------------------
88704    -- 4219869 Business Flow
88705    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88706    -- Prior Entry.  Currently, the following code is always generated.
88707    ------------------------------------------------------------------------------------------------
88711    -- 4219869 Business Flow
88708    XLA_AE_LINES_PKG.ValidateCurrentLine;
88709 
88710    ------------------------------------------------------------------------------------
88712    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88713    ------------------------------------------------------------------------------------
88714    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88715 
88716    ----------------------------------------------------------------------------------
88717    -- 4219869 Business Flow
88718    -- Update journal entry status -- Need to generate this within IF <condition>
88719    ----------------------------------------------------------------------------------
88720    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88721          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88722          ,p_balance_type_code => l_balance_type_code
88723          );
88724 
88725    -------------------------------------------------------------------------------------------
88726    -- 4262811 - Generate the Accrual Reversal lines
88727    -------------------------------------------------------------------------------------------
88728    BEGIN
88729       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88730                               (g_array_event(p_event_id).array_value_num('header_index'));
88731       IF l_acc_rev_flag IS NULL THEN
88732          l_acc_rev_flag := 'N';
88733       END IF;
88734    EXCEPTION
88735       WHEN OTHERS THEN
88736          l_acc_rev_flag := 'N';
88737    END;
88738    --
88739    IF (l_acc_rev_flag = 'Y') THEN
88740 
88741        -- 4645092  ------------------------------------------------------------------------------
88742        -- To allow MPA report to determine if it should generate report process
88743        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88744        ------------------------------------------------------------------------------------------
88745 
88746        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88747        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88748    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88749    -- call ADRs
88750    -- Bug 4922099
88751    --
88752    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88753         (NVL(l_actual_upg_option, 'N') = 'O') OR
88754         (NVL(l_enc_upg_option, 'N') = 'O')
88755       )
88756    THEN
88757    NULL;
88758    --
88759    --
88760    
88761    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
88762      p_code_combination_id      => TO_NUMBER(C_NUM)
88763    , p_value_type_code          => NULL
88764    , p_transaction_coa_id       => null
88765    , p_accounting_coa_id        => null
88766    , p_adr_code                 => NULL
88767    , p_adr_type_code            => NULL
88768    , p_component_type           => l_component_type
88769    , p_component_code           => l_component_code
88770    , p_component_type_code      => l_component_type_code
88771    , p_component_appl_id        => l_component_appl_id
88772    , p_amb_context_code         => l_amb_context_code
88773    , p_side                     => NULL
88774    );
88775 
88776    
88777   -- initialise segments
88778   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88779   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88780   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88781   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88782   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88783   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88784   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88785   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88786   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88787   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88788   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88789   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88790   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88791   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88792   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88793   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88794   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88795   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88796   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88797   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88798   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88799   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88800   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88801   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88802   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88803   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88807   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88804   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88805   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88806   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88808   --
88809 
88810    --
88811 
88812 
88813    l_segment := AcctDerRule_15(
88814            p_application_id           => p_application_id
88815          , p_ae_header_id             => l_ae_header_id 
88816 , p_source_34 => p_source_34
88817          , x_transaction_coa_id       => l_adr_transaction_coa_id
88818          , x_accounting_coa_id        => l_adr_accounting_coa_id
88819          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
88820          , x_flex_value_set_id        => l_adr_flex_value_set_id
88821          , x_value_type_code          => l_adr_value_type_code
88822          , x_value_combination_id     => l_adr_value_combination_id
88823          , x_value_segment_code       => l_adr_value_segment_code
88824          , p_side                     => 'NA'
88825          , p_override_seg_flag        => 'Y'
88826    );
88827 
88828    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
88829 
88830       xla_ae_lines_pkg.set_segment(
88831           p_to_segment_code         => 'GL_ACCOUNT'
88832         , p_segment_value           => l_segment
88833         , p_from_segment_code       => l_adr_value_segment_code
88834         , p_from_combination_id     => l_adr_value_combination_id
88835         , p_value_type_code         => l_adr_value_type_code
88836         , p_transaction_coa_id      => l_adr_transaction_coa_id
88837         , p_accounting_coa_id       => l_adr_accounting_coa_id
88838         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
88839         , p_flex_value_set_id       => l_adr_flex_value_set_id
88840         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
88841         , p_adr_type_code           => 'S'
88842         , p_component_type          => l_component_type
88843         , p_component_code          => l_component_code
88844         , p_component_type_code     => l_component_type_code
88845         , p_component_appl_id       => l_component_appl_id
88846         , p_amb_context_code        => l_amb_context_code
88847         , p_entity_code             => 'AP_INVOICES'
88848         , p_event_class_code        => 'INVOICES'
88849         , p_side                    => 'NA'
88850         );
88851 
88852   END IF;
88853 
88854    --
88855    --
88856    END IF;
88857 
88858        --
88859        -- Update the line information that should be overwritten
88860        --
88861        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88862                                          p_header_num   => 1);
88863        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88864 
88865        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88866 
88867        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88868           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88869        END IF;
88870 
88871       --
88872       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88873       --
88874       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88875           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88876       ELSE
88877           ---------------------------------------------------------------------------------------------------
88878           -- 4262811a Switch Sign
88879           ---------------------------------------------------------------------------------------------------
88880           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88881           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88882                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88883           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88884                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88885           -- 5132302
88886           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88887                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88888 
88889       END IF;
88890 
88891       -- 4955764
88892       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88893       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88894 
88895 
88896       XLA_AE_LINES_PKG.ValidateCurrentLine;
88897       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88898 
88899       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88900                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88901                ,p_balance_type_code => l_balance_type_code);
88902 
88903    END IF;
88904 
88905    -----------------------------------------------------------------------------------------
88906    -- 4262811 Multiperiod Accounting
88907    -----------------------------------------------------------------------------------------
88908      -- No MPA option is assigned.
88909 
88913 --
88910 
88911 END IF;
88912 END IF;
88914 
88915 --
88916 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88917    trace
88918       (p_msg      => 'END of AcctLineType_153'
88919       ,p_level    => C_LEVEL_PROCEDURE
88920       ,p_module   => l_log_module);
88921 END IF;
88922 --
88923 EXCEPTION
88924   WHEN xla_exceptions_pkg.application_exception THEN
88925       RAISE;
88926   WHEN OTHERS THEN
88927        xla_exceptions_pkg.raise_message
88928            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_153');
88929 END AcctLineType_153;
88930 --
88931 
88932 ---------------------------------------
88933 --
88934 -- PRIVATE FUNCTION
88935 --         AcctLineType_154
88936 --
88937 ---------------------------------------
88938 PROCEDURE AcctLineType_154 (
88939   p_application_id        IN NUMBER
88940  ,p_event_id              IN NUMBER
88941  ,p_calculate_acctd_flag  IN VARCHAR2
88942  ,p_calculate_g_l_flag    IN VARCHAR2
88943  ,p_actual_flag           IN OUT VARCHAR2
88944  ,p_balance_type_code     OUT VARCHAR2
88945  ,p_gain_or_loss_ref      OUT VARCHAR2
88946  
88947 --Invoice Distribution Description
88948  , p_source_1            IN VARCHAR2
88949 --Automatic Offsets Value
88950  , p_source_15            IN VARCHAR2
88951  , p_source_15_meaning    IN VARCHAR2
88952 --Invoice Distribution Ledger Amount
88953  , p_source_21            IN NUMBER
88954 --Invoice Liability Account
88955  , p_source_34            IN NUMBER
88956 --Accounting Reversal Indicator
88957  , p_source_52            IN VARCHAR2
88958 --Distribution Link Type
88959  , p_source_54            IN VARCHAR2
88960 --Allocation to Main Distribution Identifier
88961  , p_source_56            IN NUMBER
88962 --Invoice Identifier
88963  , p_source_57            IN NUMBER
88964 --Invoice Distribution Identifier
88965  , p_source_63            IN NUMBER
88966 --Payables Encumbrance Upgrade Credit Account
88967  , p_source_64            IN NUMBER
88968 --Payables Encumbrance Upgrade Credit Amount
88969  , p_source_65            IN NUMBER
88970 --Invoice Currency Code
88971  , p_source_66            IN VARCHAR2
88972 --Payables Encumbrance Upgrade Credit Base Amount
88973  , p_source_67            IN NUMBER
88974 --Payables Encumbrance Upgrade Debit Account
88975  , p_source_68            IN NUMBER
88976 --Payables Encumbrance Upgrade Debit Amount
88977  , p_source_69            IN NUMBER
88978 --Payables Encumbrance Upgrade Debit Base Amount
88979  , p_source_70            IN NUMBER
88980 --Payables Encumbrance Upgrade Option
88981  , p_source_71            IN VARCHAR2
88982 --Invoice Distribution Amount
88983  , p_source_72            IN NUMBER
88984 --Deferred Accounting End Date
88985  , p_source_76            IN DATE
88986 --Deferred Accounting Option
88987  , p_source_77            IN VARCHAR2
88988 --Deferred Accounting Start Date
88989  , p_source_78            IN DATE
88990 --Override Accounted Amount Indicator
88991  , p_source_79            IN VARCHAR2
88992  , p_source_79_meaning    IN VARCHAR2
88993 --Invoice Supplier Identifier
88994  , p_source_80            IN NUMBER
88995 --Invoice Supplier Site Identifier
88996  , p_source_81            IN NUMBER
88997 --Third Party Type
88998  , p_source_82            IN VARCHAR2
88999 --Parent Reversal Identifier
89000  , p_source_83            IN NUMBER
89001 --Invoice Distribution Statistical Amount
89002  , p_source_84            IN NUMBER
89003 --Invoice Distribution Tax Line Identifier
89004  , p_source_85            IN NUMBER
89005 --Invoice Distribution Tax Distribution Identifier from Tax
89006  , p_source_86            IN NUMBER
89007 --Invoice Distribution Summary Tax Line Identifier
89008  , p_source_87            IN NUMBER
89009 --Payables Upgrade Credit Encumbrance Type Identifier
89010  , p_source_88            IN NUMBER
89011 --Payables Upgrade Debit Encumbrance Type Identifier
89012  , p_source_89            IN NUMBER
89013 --Business Flow Accounts Payable Application Identifier
89014  , p_source_90            IN NUMBER
89015 --Business Flow Invoice Distribution Type
89016  , p_source_91            IN VARCHAR2
89017 --Business Flow Invoice Entity Code
89018  , p_source_92            IN VARCHAR2
89019 --Business Flow Invoice Distribution Identifier
89020  , p_source_93            IN NUMBER
89021 --Business Flow Invoice Identifier
89022  , p_source_94            IN NUMBER
89023 --Self-Assessed Tax Flag
89024  , p_source_135            IN VARCHAR2
89025  , p_source_135_meaning    IN VARCHAR2
89026 --Invoice Exchange Date
89027  , p_source_136            IN DATE
89028 --Invoice Exchange Rate
89029  , p_source_137            IN NUMBER
89030 --Invoice Exchange Rate Type
89031  , p_source_138            IN VARCHAR2
89032 --Invoice Source
89033  , p_source_163            IN VARCHAR2
89034 --Invoice Type
89035  , p_source_164            IN VARCHAR2
89036  , p_source_164_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;
89051 --
89048 l_event_type_code             VARCHAR2(30);
89049 l_line_definition_code        VARCHAR2(30);
89050 l_line_definition_owner_code  VARCHAR2(1);
89052 -- adr variables
89053 l_segment                     VARCHAR2(30);
89054 l_ccid                        NUMBER;
89055 l_adr_transaction_coa_id      NUMBER;
89056 l_adr_accounting_coa_id       NUMBER;
89057 l_adr_flexfield_segment_code  VARCHAR2(30);
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_154';
89114 END IF;
89115 --
89116 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89117 
89118       trace
89119          (p_msg      => 'BEGIN of AcctLineType_154'
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_INV_AOS_BS';
89127 l_component_type_code        := 'S';
89128 l_component_appl_id          :=  200;
89129 l_amb_context_code           := 'DEFAULT';
89130 l_entity_code                := 'AP_INVOICES';
89131 l_event_class_code           := 'INVOICES';
89132 l_event_type_code            := 'INVOICES_ALL';
89133 l_line_definition_owner_code := 'S';
89134 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_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          := 'SAME_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_15,'
89164 ') =  'BALANCING_SEGMENT' AND 
89165 (NVL(p_source_164,'
89166 ') =  'STANDARD' OR 
89167 NVL(p_source_164,'
89168 ') =  'MIXED' OR 
89169 NVL(p_source_164,'
89170 ') =  'AWT' OR 
89171 NVL(p_source_164,'
89172 ') =  'PO PRICE ADJUST' OR 
89173 NVL(p_source_164,'
89174 ') =  'EXPENSE REPORT' OR 
89175 NVL(p_source_164,'
89179 NVL(p_source_135,'
89176 ') =  'PAYMENT REQUEST' OR 
89177 NVL(p_source_164,'
89178 ') =  'RETAINAGE RELEASE') AND 
89180 ') <>  'Y'
89181  THEN 
89182 
89183    --
89184    XLA_AE_LINES_PKG.SetNewLine;
89185 
89186    p_balance_type_code          := l_balance_type_code;
89187    -- set the flag so later we will know whether the gain loss line needs to be created
89188    
89189    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89190      p_actual_flag :='A';
89191    END IF;
89192 
89193    --
89194    -- bulk performance
89195    --
89196    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89197                                       p_header_num   => 0); -- 4262811
89198    --
89199    -- set accounting line options
89200    --
89201    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89202            p_natural_side_code          => 'C'
89203          , p_gain_or_loss_flag          => 'N'
89204          , p_gl_transfer_mode_code      => 'S'
89205          , p_acct_entry_type_code       => 'A'
89206          , p_switch_side_flag           => 'Y'
89207          , p_merge_duplicate_code       => 'A'
89208          );
89209    --
89210    l_acc_rev_natural_side_code := 'D';  -- 4262811
89211    -- 
89212    --
89213    -- set accounting line type info
89214    --
89215    xla_ae_lines_pkg.SetAcctLineType
89216       (p_component_type             => l_component_type
89217       ,p_event_type_code            => l_event_type_code
89218       ,p_line_definition_owner_code => l_line_definition_owner_code
89219       ,p_line_definition_code       => l_line_definition_code
89220       ,p_accounting_line_code       => l_component_code
89221       ,p_accounting_line_type_code  => l_component_type_code
89222       ,p_accounting_line_appl_id    => l_component_appl_id
89223       ,p_amb_context_code           => l_amb_context_code
89224       ,p_entity_code                => l_entity_code
89225       ,p_event_class_code           => l_event_class_code);
89226    --
89227    -- set accounting class
89228    --
89229    xla_ae_lines_pkg.SetAcctClass(
89230            p_accounting_class_code  => 'LIABILITY'
89231          , p_ae_header_id           => l_ae_header_id
89232          );
89233 
89234    --
89235    -- set rounding class
89236    --
89237    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89238                       'LIABILITY';
89239 
89240    --
89241    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89242    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89243    --
89244    -- bulk performance
89245    --
89246    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89247 
89248    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89249       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89250 
89251    -- 4955764
89252    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89253       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89254 
89255    -- 4458381 Public Sector Enh
89256    
89257    --
89258    -- set accounting attributes for the line type
89259    --
89260    l_entered_amt_idx := 24;
89261    l_accted_amt_idx  := 29;
89262    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
89263    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89264    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
89265    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89266    l_rec_acct_attrs.array_num_value(2)  := 
89267 xla_ae_sources_pkg.GetSystemSourceNum(
89268    p_source_code           => 'XLA_EVENT_APPL_ID'
89269  , p_source_type_code      => 'Y'
89270  , p_source_application_id =>  602
89271 );
89272    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89273    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
89274    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89275    l_rec_acct_attrs.array_char_value(4)  := 
89276 xla_ae_sources_pkg.GetSystemSourceChar(
89277    p_source_code           => 'XLA_ENTITY_CODE'
89278  , p_source_type_code      => 'Y'
89279  , p_source_application_id =>  602
89280 );
89281    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89282    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
89283    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89284    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
89285    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
89286    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
89287    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
89288    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
89289    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89290    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
89291    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
89292    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
89293    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
89294    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
89295    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89299    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
89296    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
89297    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
89298    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
89300    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
89301    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
89302    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
89303    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
89304    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
89305    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
89306    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
89307    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
89308    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
89309    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
89310    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
89311    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
89312    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
89313    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
89314    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
89315    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
89316    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
89317    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
89318    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
89319    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
89320    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
89321    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
89322    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
89323    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
89324    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
89325    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
89326    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
89327    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
89328    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
89329    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
89330    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
89331    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
89332    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
89333    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
89334    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
89335    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
89336    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
89337    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
89338    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
89339    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
89340    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
89341    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
89342    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
89343    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
89344    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
89345    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
89346    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
89347    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
89348    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
89349    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
89350    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
89351    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
89352    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
89353    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
89354    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
89355    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
89356    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
89357    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
89358    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
89359    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
89360    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
89361 
89362    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89363    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89364 
89365    ---------------------------------------------------------------------------------------------------------------
89366    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89367    ---------------------------------------------------------------------------------------------------------------
89368    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89369 
89370    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89371    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89372 
89373    IF xla_accounting_cache_pkg.GetValueChar
89374          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89375          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89376    AND l_bflow_method_code = 'PRIOR_ENTRY'
89377 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89378    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89379          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89380        )
89384            ,p_business_class_code     => l_bflow_class_code
89381    THEN
89382          xla_ae_lines_pkg.BflowUpgEntry
89383            (p_business_method_code    => l_bflow_method_code
89385            ,p_balance_type            => l_balance_type_code);
89386    ELSE
89387       NULL;
89388 XLA_AE_LINES_PKG.business_flow_validation(
89389                                 p_business_method_code     => l_bflow_method_code
89390                                ,p_business_class_code      => l_bflow_class_code
89391                                ,p_inherit_description_flag => l_inherit_desc_flag);
89392    END IF;
89393 
89394    --
89395    -- call analytical criteria
89396    --
89397    
89398 
89399 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
89400 xla_ae_lines_pkg.SetAnalyticalCriteria(
89401    p_analytical_criterion_name    => 'Payables Custom Source'
89402  , p_analytical_criterion_owner   => 'S'
89403  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
89404  , p_amb_context_code             => 'DEFAULT'
89405  , p_balancing_flag               => 'N'
89406  
89407  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
89408 p_source_163
89409 , p_source_57
89410 , p_source_63))
89411  , p_analytical_detail_num_1     =>  NULL
89412  , p_analytical_detail_date_1    =>  NULL
89413 
89414  , p_ae_header_id                 => l_ae_header_id
89415 )
89416 ;
89417 --
89418 
89419    --
89420    -- call description
89421    --
89422    
89423 xla_ae_lines_pkg.SetLineDescription(
89424    p_ae_header_id => l_ae_header_id
89425   ,p_description  => Description_1 (
89426      p_application_id         => p_application_id
89427    , p_ae_header_id           => l_ae_header_id 
89428 , p_source_1 => p_source_1
89429    )
89430 );
89431 
89432 
89433    --
89434    -- call ADRs
89435    -- Bug 4922099
89436    --
89437    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89438         (NVL(l_actual_upg_option, 'N') = 'O') OR
89439         (NVL(l_enc_upg_option, 'N') = 'O')
89440       )
89441    THEN
89442    NULL;
89443    --
89444    --
89445    
89446   l_ccid := AcctDerRule_34(
89447            p_application_id           => p_application_id
89448          , p_ae_header_id             => l_ae_header_id 
89449 , p_source_34 => p_source_34
89450          , x_transaction_coa_id       => l_adr_transaction_coa_id
89451          , x_accounting_coa_id        => l_adr_accounting_coa_id
89452          , x_value_type_code          => l_adr_value_type_code
89453          , p_side                     => 'NA'
89454    );
89455 
89456    xla_ae_lines_pkg.set_ccid(
89457     p_code_combination_id          => l_ccid
89458   , p_value_type_code              => l_adr_value_type_code
89459   , p_transaction_coa_id           => l_adr_transaction_coa_id
89460   , p_accounting_coa_id            => l_adr_accounting_coa_id
89461   , p_adr_code                     => 'AP_LIAB'
89462   , p_adr_type_code                => 'S'
89463   , p_component_type               => l_component_type
89464   , p_component_code               => l_component_code
89465   , p_component_type_code          => l_component_type_code
89466   , p_component_appl_id            => l_component_appl_id
89467   , p_amb_context_code             => l_amb_context_code
89468   , p_side                         => 'NA'
89469   );
89470 
89471 
89472    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
89473      p_to_segment_code         => 'GL_BALANCING'
89474    , p_segment_value           => C_CHAR
89475    , p_from_segment_code       => NULL
89476    , p_from_combination_id     => NULL
89477    , p_value_type_code         => NULL
89478    , p_transaction_coa_id      => null
89479    , p_accounting_coa_id       => null
89480    , p_flexfield_segment_code  => NULL
89481    , p_flex_value_set_id       => NULL
89482    , p_adr_code                => NULL
89483    , p_adr_type_code           => NULL
89484    , p_component_type          => l_component_type
89485    , p_component_code          => l_component_code
89486    , p_component_type_code     => l_component_type_code
89487    , p_component_appl_id       => l_component_appl_id
89488    , p_amb_context_code        => l_amb_context_code
89489    , p_entity_code             => 'AP_INVOICES'
89490    , p_event_class_code        => 'INVOICES'
89491    , p_side                    => 'NA'
89492    );
89493    --
89494 
89495 
89496    --
89497    --
89498    END IF;
89499    --
89500    -- Bug 4922099
89501    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89502           (NVL(l_enc_upg_option, 'N') = 'O')
89503         ) AND
89504         (l_bflow_method_code = 'PRIOR_ENTRY')
89505       )
89506    THEN
89507       IF
89508       --
89509       1 = 2
89510       --
89511       THEN
89512       xla_accounting_err_pkg.build_message
89513                                     (p_appli_s_name            => 'XLA'
89514                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89515                                     ,p_token_1                 => 'LINE_NUMBER'
89516                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89517                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89521                                                                             ,l_component_type_code
89518                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89519                                                                              l_component_type
89520                                                                             ,l_component_code
89522                                                                             ,l_component_appl_id
89523                                                                             ,l_amb_context_code
89524                                                                             ,l_entity_code
89525                                                                             ,l_event_class_code
89526                                                                            )
89527                                     ,p_token_3                 => 'OWNER'
89528                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89529                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89530                                                                           ,p_lookup_code    => l_component_type_code
89531                                                                          )
89532                                     ,p_token_4                 => 'PRODUCT_NAME'
89533                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89534                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89535                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89536                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89537                                     ,p_ae_header_id            =>  NULL
89538                                        );
89539 
89540         IF (C_LEVEL_ERROR>= g_log_level) THEN
89541                  trace
89542                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89543                       ,p_level    => C_LEVEL_ERROR
89544                       ,p_module   => l_log_module);
89545         END IF;
89546       END IF;
89547    END IF;
89548    --
89549    --
89550    ------------------------------------------------------------------------------------------------
89551    -- 4219869 Business Flow
89552    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89553    -- Prior Entry.  Currently, the following code is always generated.
89554    ------------------------------------------------------------------------------------------------
89555    XLA_AE_LINES_PKG.ValidateCurrentLine;
89556 
89557    ------------------------------------------------------------------------------------
89558    -- 4219869 Business Flow
89559    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89560    ------------------------------------------------------------------------------------
89561    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89562 
89563    ----------------------------------------------------------------------------------
89564    -- 4219869 Business Flow
89565    -- Update journal entry status -- Need to generate this within IF <condition>
89566    ----------------------------------------------------------------------------------
89567    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89568          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89569          ,p_balance_type_code => l_balance_type_code
89570          );
89571 
89572    -------------------------------------------------------------------------------------------
89573    -- 4262811 - Generate the Accrual Reversal lines
89574    -------------------------------------------------------------------------------------------
89575    BEGIN
89576       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89577                               (g_array_event(p_event_id).array_value_num('header_index'));
89578       IF l_acc_rev_flag IS NULL THEN
89579          l_acc_rev_flag := 'N';
89580       END IF;
89581    EXCEPTION
89582       WHEN OTHERS THEN
89583          l_acc_rev_flag := 'N';
89584    END;
89585    --
89586    IF (l_acc_rev_flag = 'Y') THEN
89587 
89588        -- 4645092  ------------------------------------------------------------------------------
89589        -- To allow MPA report to determine if it should generate report process
89590        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89591        ------------------------------------------------------------------------------------------
89592 
89593        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89594        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89595    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89596    -- call ADRs
89597    -- Bug 4922099
89598    --
89599    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89600         (NVL(l_actual_upg_option, 'N') = 'O') OR
89601         (NVL(l_enc_upg_option, 'N') = 'O')
89602       )
89603    THEN
89604    NULL;
89605    --
89606    --
89607    
89608   l_ccid := AcctDerRule_34(
89609            p_application_id           => p_application_id
89610          , p_ae_header_id             => l_ae_header_id 
89611 , p_source_34 => p_source_34
89612          , x_transaction_coa_id       => l_adr_transaction_coa_id
89613          , x_accounting_coa_id        => l_adr_accounting_coa_id
89617 
89614          , x_value_type_code          => l_adr_value_type_code
89615          , p_side                     => 'NA'
89616    );
89618    xla_ae_lines_pkg.set_ccid(
89619     p_code_combination_id          => l_ccid
89620   , p_value_type_code              => l_adr_value_type_code
89621   , p_transaction_coa_id           => l_adr_transaction_coa_id
89622   , p_accounting_coa_id            => l_adr_accounting_coa_id
89623   , p_adr_code                     => 'AP_LIAB'
89624   , p_adr_type_code                => 'S'
89625   , p_component_type               => l_component_type
89626   , p_component_code               => l_component_code
89627   , p_component_type_code          => l_component_type_code
89628   , p_component_appl_id            => l_component_appl_id
89629   , p_amb_context_code             => l_amb_context_code
89630   , p_side                         => 'NA'
89631   );
89632 
89633 
89634    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
89635      p_to_segment_code         => 'GL_BALANCING'
89636    , p_segment_value           => C_CHAR
89637    , p_from_segment_code       => NULL
89638    , p_from_combination_id     => NULL
89639    , p_value_type_code         => NULL
89640    , p_transaction_coa_id      => null
89641    , p_accounting_coa_id       => null
89642    , p_flexfield_segment_code  => NULL
89643    , p_flex_value_set_id       => NULL
89644    , p_adr_code                => NULL
89645    , p_adr_type_code           => NULL
89646    , p_component_type          => l_component_type
89647    , p_component_code          => l_component_code
89648    , p_component_type_code     => l_component_type_code
89649    , p_component_appl_id       => l_component_appl_id
89650    , p_amb_context_code        => l_amb_context_code
89651    , p_entity_code             => 'AP_INVOICES'
89652    , p_event_class_code        => 'INVOICES'
89653    , p_side                    => 'NA'
89654    );
89655    --
89656 
89657 
89658    --
89659    --
89660    END IF;
89661 
89662        --
89663        -- Update the line information that should be overwritten
89664        --
89665        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89666                                          p_header_num   => 1);
89667        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89668 
89669        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89670 
89671        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89672           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89673        END IF;
89674 
89675       --
89676       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89677       --
89678       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89679           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89680       ELSE
89681           ---------------------------------------------------------------------------------------------------
89682           -- 4262811a Switch Sign
89683           ---------------------------------------------------------------------------------------------------
89684           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89685           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89686                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89687           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89688                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89689           -- 5132302
89690           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89691                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89692 
89693       END IF;
89694 
89695       -- 4955764
89696       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89697       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89698 
89699 
89700       XLA_AE_LINES_PKG.ValidateCurrentLine;
89701       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89702 
89703       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89704                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89705                ,p_balance_type_code => l_balance_type_code);
89706 
89707    END IF;
89708 
89709    -----------------------------------------------------------------------------------------
89710    -- 4262811 Multiperiod Accounting
89711    -----------------------------------------------------------------------------------------
89712      -- No MPA option is assigned.
89713 
89714 
89715 END IF;
89716 END IF;
89717 --
89718 
89719 --
89720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89721    trace
89722       (p_msg      => 'END of AcctLineType_154'
89723       ,p_level    => C_LEVEL_PROCEDURE
89724       ,p_module   => l_log_module);
89725 END IF;
89726 --
89727 EXCEPTION
89728   WHEN xla_exceptions_pkg.application_exception THEN
89729       RAISE;
89730   WHEN OTHERS THEN
89734 --
89731        xla_exceptions_pkg.raise_message
89732            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_154');
89733 END AcctLineType_154;
89735 
89736 ---------------------------------------
89737 --
89738 -- PRIVATE FUNCTION
89739 --         AcctLineType_155
89740 --
89741 ---------------------------------------
89742 PROCEDURE AcctLineType_155 (
89743   p_application_id        IN NUMBER
89744  ,p_event_id              IN NUMBER
89745  ,p_calculate_acctd_flag  IN VARCHAR2
89746  ,p_calculate_g_l_flag    IN VARCHAR2
89747  ,p_actual_flag           IN OUT VARCHAR2
89748  ,p_balance_type_code     OUT VARCHAR2
89749  ,p_gain_or_loss_ref      OUT VARCHAR2
89750  
89751 --Payment Currency Code
89752  , p_source_13            IN VARCHAR2
89753 --Accounting Reversal Indicator
89754  , p_source_52            IN VARCHAR2
89755 --Distribution Link Type
89756  , p_source_54            IN VARCHAR2
89757 --Override Accounted Amount Indicator
89758  , p_source_79            IN VARCHAR2
89759  , p_source_79_meaning    IN VARCHAR2
89760 --Third Party Type
89761  , p_source_82            IN VARCHAR2
89762 --Invoice Distribution Tax Line Identifier
89763  , p_source_85            IN NUMBER
89764 --Invoice Distribution Tax Distribution Identifier from Tax
89765  , p_source_86            IN NUMBER
89766 --Invoice Distribution Summary Tax Line Identifier
89767  , p_source_87            IN NUMBER
89768 --Business Flow Accounts Payable Application Identifier
89769  , p_source_90            IN NUMBER
89770 --Business Flow Invoice Distribution Type
89771  , p_source_91            IN VARCHAR2
89772 --Business Flow Invoice Entity Code
89773  , p_source_92            IN VARCHAR2
89774 --Business Flow Invoice Distribution Identifier
89775  , p_source_93            IN NUMBER
89776 --Business Flow Invoice Identifier
89777  , p_source_94            IN NUMBER
89778 --When to Account for Payment Option
89779  , p_source_96            IN VARCHAR2
89780 --Payment Distribution Type
89781  , p_source_97            IN VARCHAR2
89782  , p_source_97_meaning    IN VARCHAR2
89783 --Payment Distribution Amount
89784  , p_source_98            IN NUMBER
89785 --Payment Distribution Identifier
89786  , p_source_103            IN NUMBER
89787 --Payment Distribution Reversed Identifier
89788  , p_source_111            IN NUMBER
89789 --Payment Distribution (Invoice Rate) Ledger Amount
89790  , p_source_116            IN NUMBER
89791 --Payment Type
89792  , p_source_122            IN VARCHAR2
89793  , p_source_122_meaning    IN VARCHAR2
89794 --Invoice Distribution Amount of the Payment Distribution
89795  , p_source_124            IN NUMBER
89796 --Invoice Type Paid
89797  , p_source_160            IN VARCHAR2
89798  , p_source_160_meaning    IN VARCHAR2
89799 )
89800 IS
89801 
89802 l_component_type              VARCHAR2(80);
89803 l_component_code              VARCHAR2(30);
89804 l_component_type_code         VARCHAR2(1);
89805 l_component_appl_id           INTEGER;
89806 l_amb_context_code            VARCHAR2(30);
89807 l_entity_code                 VARCHAR2(30);
89808 l_event_class_code            VARCHAR2(30);
89809 l_ae_header_id                NUMBER;
89810 l_event_type_code             VARCHAR2(30);
89811 l_line_definition_code        VARCHAR2(30);
89812 l_line_definition_owner_code  VARCHAR2(1);
89813 --
89814 -- adr variables
89815 l_segment                     VARCHAR2(30);
89816 l_ccid                        NUMBER;
89817 l_adr_transaction_coa_id      NUMBER;
89818 l_adr_accounting_coa_id       NUMBER;
89819 l_adr_flexfield_segment_code  VARCHAR2(30);
89820 l_adr_flex_value_set_id       NUMBER;
89821 l_adr_value_type_code         VARCHAR2(30);
89822 l_adr_value_combination_id    NUMBER;
89823 l_adr_value_segment_code      VARCHAR2(30);
89824 
89825 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89826 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89827 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89828 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89829 
89830 -- 4262811 Variables ------------------------------------------------------------------------------------------
89831 l_entered_amt_idx             NUMBER;
89832 l_accted_amt_idx              NUMBER;
89833 l_acc_rev_flag                VARCHAR2(1);
89834 l_accrual_line_num            NUMBER;
89835 l_tmp_amt                     NUMBER;
89836 l_acc_rev_natural_side_code   VARCHAR2(1);
89837 
89838 l_num_entries                 NUMBER;
89839 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89840 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89841 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89842 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89843 l_recog_line_1                NUMBER;
89844 l_recog_line_2                NUMBER;
89845 
89846 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89847 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89848 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89849 
89850 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89851 
89852 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89856 
89853 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89854 
89855 ---------------------------------------------------------------------------------------------------------------
89857 
89858 --
89859 -- bulk performance
89860 --
89861 l_balance_type_code           VARCHAR2(1);
89862 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89863 l_log_module                  VARCHAR2(240);
89864 
89865 --
89866 -- Upgrade strategy
89867 --
89868 l_actual_upg_option           VARCHAR2(1);
89869 l_enc_upg_option           VARCHAR2(1);
89870 
89871 --
89872 BEGIN
89873 --
89874 IF g_log_enabled THEN
89875       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
89876 END IF;
89877 --
89878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89879 
89880       trace
89881          (p_msg      => 'BEGIN of AcctLineType_155'
89882          ,p_level    => C_LEVEL_PROCEDURE
89883          ,p_module   => l_log_module);
89884 
89885 END IF;
89886 --
89887 l_component_type             := 'AMB_JLT';
89888 l_component_code             := 'AP_LIAB_PMT';
89889 l_component_type_code        := 'S';
89890 l_component_appl_id          :=  200;
89891 l_amb_context_code           := 'DEFAULT';
89892 l_entity_code                := 'AP_PAYMENTS';
89893 l_event_class_code           := 'PAYMENTS';
89894 l_event_type_code            := 'PAYMENTS_ALL';
89895 l_line_definition_owner_code := 'S';
89896 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
89897 --
89898 l_balance_type_code          := 'A';
89899 l_segment                     := NULL;
89900 l_ccid                        := NULL;
89901 l_adr_transaction_coa_id      := NULL;
89902 l_adr_accounting_coa_id       := NULL;
89903 l_adr_flexfield_segment_code  := NULL;
89904 l_adr_flex_value_set_id       := NULL;
89905 l_adr_value_type_code         := NULL;
89906 l_adr_value_combination_id    := NULL;
89907 l_adr_value_segment_code      := NULL;
89908 
89909 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
89910 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
89911 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89912 l_budgetary_control_flag     := 'N';
89913 
89914 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89915 l_bflow_applied_to_amt       := NULL; -- 5132302
89916 l_entered_amt_idx            := NULL;          -- 4262811
89917 l_accted_amt_idx             := NULL;          -- 4262811
89918 l_acc_rev_flag               := NULL;          -- 4262811
89919 l_accrual_line_num           := NULL;          -- 4262811
89920 l_tmp_amt                    := NULL;          -- 4262811
89921 --
89922  
89923 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89924     l_balance_type_code <> 'B' THEN
89925 IF NVL(p_source_96,'
89926 ') <>  'CLEAR_CLEAR' AND 
89927 NVL(p_source_160,'
89928 ') <>  'INTEREST' AND 
89929 (NVL(p_source_97,'
89930 ') =  'ROUNDING' OR 
89931 NVL(p_source_97,'
89932 ') =  'CASH' OR 
89933 NVL(p_source_97,'
89934 ') =  'DISCOUNT') AND 
89935 NVL(p_source_122,'
89936 ') <>  'R'
89937  THEN 
89938 
89939    --
89940    XLA_AE_LINES_PKG.SetNewLine;
89941 
89942    p_balance_type_code          := l_balance_type_code;
89943    -- set the flag so later we will know whether the gain loss line needs to be created
89944    
89945    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89946      p_actual_flag :='A';
89947    END IF;
89948 
89949    --
89950    -- bulk performance
89951    --
89952    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89953                                       p_header_num   => 0); -- 4262811
89954    --
89955    -- set accounting line options
89956    --
89957    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89958            p_natural_side_code          => 'D'
89959          , p_gain_or_loss_flag          => 'N'
89960          , p_gl_transfer_mode_code      => 'S'
89961          , p_acct_entry_type_code       => 'A'
89962          , p_switch_side_flag           => 'Y'
89963          , p_merge_duplicate_code       => 'A'
89964          );
89965    --
89966    l_acc_rev_natural_side_code := 'C';  -- 4262811
89967    -- 
89968    --
89969    -- set accounting line type info
89970    --
89971    xla_ae_lines_pkg.SetAcctLineType
89972       (p_component_type             => l_component_type
89973       ,p_event_type_code            => l_event_type_code
89974       ,p_line_definition_owner_code => l_line_definition_owner_code
89975       ,p_line_definition_code       => l_line_definition_code
89976       ,p_accounting_line_code       => l_component_code
89977       ,p_accounting_line_type_code  => l_component_type_code
89978       ,p_accounting_line_appl_id    => l_component_appl_id
89979       ,p_amb_context_code           => l_amb_context_code
89980       ,p_entity_code                => l_entity_code
89981       ,p_event_class_code           => l_event_class_code);
89982    --
89983    -- set accounting class
89984    --
89985    xla_ae_lines_pkg.SetAcctClass(
89986            p_accounting_class_code  => 'LIABILITY'
89987          , p_ae_header_id           => l_ae_header_id
89988          );
89989 
89990    --
89991    -- set rounding class
89992    --
89996    --
89993    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89994                       'LIABILITY';
89995 
89997    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89998    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89999    --
90000    -- bulk performance
90001    --
90002    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90003 
90004    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90005       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90006 
90007    -- 4955764
90008    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90009       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90010 
90011    -- 4458381 Public Sector Enh
90012    
90013    --
90014    -- set accounting attributes for the line type
90015    --
90016    l_entered_amt_idx := 10;
90017    l_accted_amt_idx  := 12;
90018    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
90019    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90020    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
90021    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
90022    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
90023    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
90024    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
90025    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90026    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
90027    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
90028    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
90029    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
90030    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
90031    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90032    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
90033    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
90034    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
90035    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
90036    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
90037    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
90038    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
90039    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
90040    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
90041    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
90042    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
90043    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
90044    l_rec_acct_attrs.array_char_value(13)  := p_source_79;
90045    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
90046    l_rec_acct_attrs.array_char_value(14)  := p_source_82;
90047    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
90048    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_111);
90049    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
90050    l_rec_acct_attrs.array_char_value(16)  := p_source_54;
90051    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
90052    l_rec_acct_attrs.array_num_value(17)  := p_source_85;
90053    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
90054    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
90055    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
90056    l_rec_acct_attrs.array_num_value(19)  := p_source_87;
90057 
90058    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90059    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90060 
90061    ---------------------------------------------------------------------------------------------------------------
90062    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90063    ---------------------------------------------------------------------------------------------------------------
90064    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90065 
90066    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90067    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90068 
90069    IF xla_accounting_cache_pkg.GetValueChar
90070          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90071          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90072    AND l_bflow_method_code = 'PRIOR_ENTRY'
90073 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90074    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90075          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90076        )
90077    THEN
90078          xla_ae_lines_pkg.BflowUpgEntry
90079            (p_business_method_code    => l_bflow_method_code
90080            ,p_business_class_code     => l_bflow_class_code
90081            ,p_balance_type            => l_balance_type_code);
90082    ELSE
90083       NULL;
90084 XLA_AE_LINES_PKG.business_flow_validation(
90085                                 p_business_method_code     => l_bflow_method_code
90086                                ,p_business_class_code      => l_bflow_class_code
90090    --
90087                                ,p_inherit_description_flag => l_inherit_desc_flag);
90088    END IF;
90089 
90091    -- call analytical criteria
90092    --
90093    -- Inherited Analytical Criteria for business flow method of Prior Entry.
90094    --
90095    -- call description
90096    --
90097    -- No description or it is inherited.
90098    --
90099    -- call ADRs
90100    -- Bug 4922099
90101    --
90102    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90103         (NVL(l_actual_upg_option, 'N') = 'O') OR
90104         (NVL(l_enc_upg_option, 'N') = 'O')
90105       )
90106    THEN
90107    NULL;
90108    --
90109    --
90110    
90111    --
90112    --
90113    END IF;
90114    --
90115    -- Bug 4922099
90116    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90117           (NVL(l_enc_upg_option, 'N') = 'O')
90118         ) AND
90119         (l_bflow_method_code = 'PRIOR_ENTRY')
90120       )
90121    THEN
90122       IF
90123       --
90124       1 = 1
90125       --
90126       THEN
90127       xla_accounting_err_pkg.build_message
90128                                     (p_appli_s_name            => 'XLA'
90129                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90130                                     ,p_token_1                 => 'LINE_NUMBER'
90131                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90132                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90133                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90134                                                                              l_component_type
90135                                                                             ,l_component_code
90136                                                                             ,l_component_type_code
90137                                                                             ,l_component_appl_id
90138                                                                             ,l_amb_context_code
90139                                                                             ,l_entity_code
90140                                                                             ,l_event_class_code
90141                                                                            )
90142                                     ,p_token_3                 => 'OWNER'
90143                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90144                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90145                                                                           ,p_lookup_code    => l_component_type_code
90146                                                                          )
90147                                     ,p_token_4                 => 'PRODUCT_NAME'
90148                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90149                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90150                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90151                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90152                                     ,p_ae_header_id            =>  NULL
90153                                        );
90154 
90155         IF (C_LEVEL_ERROR>= g_log_level) THEN
90156                  trace
90157                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90158                       ,p_level    => C_LEVEL_ERROR
90159                       ,p_module   => l_log_module);
90160         END IF;
90161       END IF;
90162    END IF;
90163    --
90164    --
90165    ------------------------------------------------------------------------------------------------
90166    -- 4219869 Business Flow
90167    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90168    -- Prior Entry.  Currently, the following code is always generated.
90169    ------------------------------------------------------------------------------------------------
90170    -- No ValidateCurrentLine for business flow method of Prior Entry
90171 
90172    ------------------------------------------------------------------------------------
90173    -- 4219869 Business Flow
90174    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90175    ------------------------------------------------------------------------------------
90176    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90177 
90178    ----------------------------------------------------------------------------------
90179    -- 4219869 Business Flow
90180    -- Update journal entry status -- Need to generate this within IF <condition>
90181    ----------------------------------------------------------------------------------
90182    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90183          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90184          ,p_balance_type_code => l_balance_type_code
90185          );
90186 
90187    -------------------------------------------------------------------------------------------
90188    -- 4262811 - Generate the Accrual Reversal lines
90189    -------------------------------------------------------------------------------------------
90190    BEGIN
90194          l_acc_rev_flag := 'N';
90191       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90192                               (g_array_event(p_event_id).array_value_num('header_index'));
90193       IF l_acc_rev_flag IS NULL THEN
90195       END IF;
90196    EXCEPTION
90197       WHEN OTHERS THEN
90198          l_acc_rev_flag := 'N';
90199    END;
90200    --
90201    IF (l_acc_rev_flag = 'Y') THEN
90202 
90203        -- 4645092  ------------------------------------------------------------------------------
90204        -- To allow MPA report to determine if it should generate report process
90205        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90206        ------------------------------------------------------------------------------------------
90207 
90208        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90209        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90210    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90211    -- call ADRs
90212    -- Bug 4922099
90213    --
90214    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90215         (NVL(l_actual_upg_option, 'N') = 'O') OR
90216         (NVL(l_enc_upg_option, 'N') = 'O')
90217       )
90218    THEN
90219    NULL;
90220    --
90221    --
90222    
90223    --
90224    --
90225    END IF;
90226 
90227        --
90228        -- Update the line information that should be overwritten
90229        --
90230        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90231                                          p_header_num   => 1);
90232        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90233 
90234        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90235 
90236        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90237           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90238        END IF;
90239 
90240       --
90241       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90242       --
90243       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90244           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90245       ELSE
90246           ---------------------------------------------------------------------------------------------------
90247           -- 4262811a Switch Sign
90248           ---------------------------------------------------------------------------------------------------
90249           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90250           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90251                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90252           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90253                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90254           -- 5132302
90255           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90256                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90257 
90258       END IF;
90259 
90260       -- 4955764
90261       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90262       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90263 
90264 
90265       XLA_AE_LINES_PKG.ValidateCurrentLine;
90266       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90267 
90268       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90269                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90270                ,p_balance_type_code => l_balance_type_code);
90271 
90272    END IF;
90273 
90274    -----------------------------------------------------------------------------------------
90275    -- 4262811 Multiperiod Accounting
90276    -----------------------------------------------------------------------------------------
90277      -- No MPA option is assigned.
90278 
90279 
90280 END IF;
90281 END IF;
90282 --
90283 
90284 --
90285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90286    trace
90287       (p_msg      => 'END of AcctLineType_155'
90288       ,p_level    => C_LEVEL_PROCEDURE
90289       ,p_module   => l_log_module);
90290 END IF;
90291 --
90292 EXCEPTION
90293   WHEN xla_exceptions_pkg.application_exception THEN
90294       RAISE;
90295   WHEN OTHERS THEN
90296        xla_exceptions_pkg.raise_message
90297            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_155');
90298 END AcctLineType_155;
90299 --
90300 
90301 ---------------------------------------
90302 --
90303 -- PRIVATE FUNCTION
90304 --         AcctLineType_156
90305 --
90306 ---------------------------------------
90307 PROCEDURE AcctLineType_156 (
90308   p_application_id        IN NUMBER
90309  ,p_event_id              IN NUMBER
90310  ,p_calculate_acctd_flag  IN VARCHAR2
90311  ,p_calculate_g_l_flag    IN VARCHAR2
90312  ,p_actual_flag           IN OUT VARCHAR2
90313  ,p_balance_type_code     OUT VARCHAR2
90317  , p_source_1            IN VARCHAR2
90314  ,p_gain_or_loss_ref      OUT VARCHAR2
90315  
90316 --Invoice Distribution Description
90318 --Automatic Offsets Value
90319  , p_source_15            IN VARCHAR2
90320  , p_source_15_meaning    IN VARCHAR2
90321 --Invoice Distribution Ledger Amount
90322  , p_source_21            IN NUMBER
90323 --Invoice Liability Account
90324  , p_source_34            IN NUMBER
90325 --Accounting Reversal Indicator
90326  , p_source_52            IN VARCHAR2
90327 --Distribution Link Type
90328  , p_source_54            IN VARCHAR2
90329 --Allocation to Main Distribution Identifier
90330  , p_source_56            IN NUMBER
90331 --Invoice Identifier
90332  , p_source_57            IN NUMBER
90333 --Invoice Distribution Identifier
90334  , p_source_63            IN NUMBER
90335 --Payables Encumbrance Upgrade Credit Account
90336  , p_source_64            IN NUMBER
90337 --Payables Encumbrance Upgrade Credit Amount
90338  , p_source_65            IN NUMBER
90339 --Invoice Currency Code
90340  , p_source_66            IN VARCHAR2
90341 --Payables Encumbrance Upgrade Credit Base Amount
90342  , p_source_67            IN NUMBER
90343 --Payables Encumbrance Upgrade Debit Account
90344  , p_source_68            IN NUMBER
90345 --Payables Encumbrance Upgrade Debit Amount
90346  , p_source_69            IN NUMBER
90347 --Payables Encumbrance Upgrade Debit Base Amount
90348  , p_source_70            IN NUMBER
90349 --Payables Encumbrance Upgrade Option
90350  , p_source_71            IN VARCHAR2
90351 --Invoice Distribution Amount
90352  , p_source_72            IN NUMBER
90353 --Deferred Accounting End Date
90354  , p_source_76            IN DATE
90355 --Deferred Accounting Option
90356  , p_source_77            IN VARCHAR2
90357 --Deferred Accounting Start Date
90358  , p_source_78            IN DATE
90359 --Override Accounted Amount Indicator
90360  , p_source_79            IN VARCHAR2
90361  , p_source_79_meaning    IN VARCHAR2
90362 --Invoice Supplier Identifier
90363  , p_source_80            IN NUMBER
90364 --Invoice Supplier Site Identifier
90365  , p_source_81            IN NUMBER
90366 --Third Party Type
90367  , p_source_82            IN VARCHAR2
90368 --Parent Reversal Identifier
90369  , p_source_83            IN NUMBER
90370 --Invoice Distribution Statistical Amount
90371  , p_source_84            IN NUMBER
90372 --Invoice Distribution Tax Line Identifier
90373  , p_source_85            IN NUMBER
90374 --Invoice Distribution Tax Distribution Identifier from Tax
90375  , p_source_86            IN NUMBER
90376 --Invoice Distribution Summary Tax Line Identifier
90377  , p_source_87            IN NUMBER
90378 --Payables Upgrade Credit Encumbrance Type Identifier
90379  , p_source_88            IN NUMBER
90380 --Payables Upgrade Debit Encumbrance Type Identifier
90381  , p_source_89            IN NUMBER
90382 --Business Flow Accounts Payable Application Identifier
90383  , p_source_90            IN NUMBER
90384 --Business Flow Invoice Distribution Type
90385  , p_source_91            IN VARCHAR2
90386 --Business Flow Invoice Entity Code
90387  , p_source_92            IN VARCHAR2
90388 --Business Flow Invoice Distribution Identifier
90389  , p_source_93            IN NUMBER
90390 --Business Flow Invoice Identifier
90391  , p_source_94            IN NUMBER
90392 --Self-Assessed Tax Flag
90393  , p_source_135            IN VARCHAR2
90394  , p_source_135_meaning    IN VARCHAR2
90395 --Invoice Exchange Date
90396  , p_source_136            IN DATE
90397 --Invoice Exchange Rate
90398  , p_source_137            IN NUMBER
90399 --Invoice Exchange Rate Type
90400  , p_source_138            IN VARCHAR2
90401 --Invoice Source
90402  , p_source_163            IN VARCHAR2
90403 )
90404 IS
90405 
90406 l_component_type              VARCHAR2(80);
90407 l_component_code              VARCHAR2(30);
90408 l_component_type_code         VARCHAR2(1);
90409 l_component_appl_id           INTEGER;
90410 l_amb_context_code            VARCHAR2(30);
90411 l_entity_code                 VARCHAR2(30);
90412 l_event_class_code            VARCHAR2(30);
90413 l_ae_header_id                NUMBER;
90414 l_event_type_code             VARCHAR2(30);
90415 l_line_definition_code        VARCHAR2(30);
90416 l_line_definition_owner_code  VARCHAR2(1);
90417 --
90418 -- adr variables
90419 l_segment                     VARCHAR2(30);
90420 l_ccid                        NUMBER;
90421 l_adr_transaction_coa_id      NUMBER;
90422 l_adr_accounting_coa_id       NUMBER;
90423 l_adr_flexfield_segment_code  VARCHAR2(30);
90424 l_adr_flex_value_set_id       NUMBER;
90425 l_adr_value_type_code         VARCHAR2(30);
90426 l_adr_value_combination_id    NUMBER;
90427 l_adr_value_segment_code      VARCHAR2(30);
90428 
90429 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90430 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90431 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90432 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90433 
90434 -- 4262811 Variables ------------------------------------------------------------------------------------------
90435 l_entered_amt_idx             NUMBER;
90436 l_accted_amt_idx              NUMBER;
90437 l_acc_rev_flag                VARCHAR2(1);
90438 l_accrual_line_num            NUMBER;
90439 l_tmp_amt                     NUMBER;
90440 l_acc_rev_natural_side_code   VARCHAR2(1);
90444 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90441 
90442 l_num_entries                 NUMBER;
90443 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90445 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90446 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90447 l_recog_line_1                NUMBER;
90448 l_recog_line_2                NUMBER;
90449 
90450 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90451 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90452 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90453 
90454 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90455 
90456 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90457 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90458 
90459 ---------------------------------------------------------------------------------------------------------------
90460 
90461 
90462 --
90463 -- bulk performance
90464 --
90465 l_balance_type_code           VARCHAR2(1);
90466 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90467 l_log_module                  VARCHAR2(240);
90468 
90469 --
90470 -- Upgrade strategy
90471 --
90472 l_actual_upg_option           VARCHAR2(1);
90473 l_enc_upg_option           VARCHAR2(1);
90474 
90475 --
90476 BEGIN
90477 --
90478 IF g_log_enabled THEN
90479       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
90480 END IF;
90481 --
90482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90483 
90484       trace
90485          (p_msg      => 'BEGIN of AcctLineType_156'
90486          ,p_level    => C_LEVEL_PROCEDURE
90487          ,p_module   => l_log_module);
90488 
90489 END IF;
90490 --
90491 l_component_type             := 'AMB_JLT';
90492 l_component_code             := 'AP_LIAB_PREPAY';
90493 l_component_type_code        := 'S';
90494 l_component_appl_id          :=  200;
90495 l_amb_context_code           := 'DEFAULT';
90496 l_entity_code                := 'AP_INVOICES';
90497 l_event_class_code           := 'PREPAYMENTS';
90498 l_event_type_code            := 'PREPAYMENTS_ALL';
90499 l_line_definition_owner_code := 'S';
90500 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
90501 --
90502 l_balance_type_code          := 'A';
90503 l_segment                     := NULL;
90504 l_ccid                        := NULL;
90505 l_adr_transaction_coa_id      := NULL;
90506 l_adr_accounting_coa_id       := NULL;
90507 l_adr_flexfield_segment_code  := NULL;
90508 l_adr_flex_value_set_id       := NULL;
90509 l_adr_value_type_code         := NULL;
90510 l_adr_value_combination_id    := NULL;
90511 l_adr_value_segment_code      := NULL;
90512 
90513 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
90514 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
90515 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90516 l_budgetary_control_flag     := 'N';
90517 
90518 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90519 l_bflow_applied_to_amt       := NULL; -- 5132302
90520 l_entered_amt_idx            := NULL;          -- 4262811
90521 l_accted_amt_idx             := NULL;          -- 4262811
90522 l_acc_rev_flag               := NULL;          -- 4262811
90523 l_accrual_line_num           := NULL;          -- 4262811
90524 l_tmp_amt                    := NULL;          -- 4262811
90525 --
90526  
90527 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90528     l_balance_type_code <> 'B' THEN
90529 IF (NVL(p_source_15,'
90530 ') <>  'BALANCING_SEGMENT' AND 
90531 NVL(p_source_15,'
90532 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
90533 NVL(p_source_135,'
90534 ') <>  'Y'
90535  THEN 
90536 
90537    --
90538    XLA_AE_LINES_PKG.SetNewLine;
90539 
90540    p_balance_type_code          := l_balance_type_code;
90541    -- set the flag so later we will know whether the gain loss line needs to be created
90542    
90543    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90544      p_actual_flag :='A';
90545    END IF;
90546 
90547    --
90548    -- bulk performance
90549    --
90550    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90551                                       p_header_num   => 0); -- 4262811
90552    --
90553    -- set accounting line options
90554    --
90555    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90556            p_natural_side_code          => 'C'
90557          , p_gain_or_loss_flag          => 'N'
90558          , p_gl_transfer_mode_code      => 'S'
90559          , p_acct_entry_type_code       => 'A'
90560          , p_switch_side_flag           => 'Y'
90561          , p_merge_duplicate_code       => 'A'
90562          );
90563    --
90564    l_acc_rev_natural_side_code := 'D';  -- 4262811
90565    -- 
90566    --
90567    -- set accounting line type info
90568    --
90569    xla_ae_lines_pkg.SetAcctLineType
90570       (p_component_type             => l_component_type
90571       ,p_event_type_code            => l_event_type_code
90572       ,p_line_definition_owner_code => l_line_definition_owner_code
90576       ,p_accounting_line_appl_id    => l_component_appl_id
90573       ,p_line_definition_code       => l_line_definition_code
90574       ,p_accounting_line_code       => l_component_code
90575       ,p_accounting_line_type_code  => l_component_type_code
90577       ,p_amb_context_code           => l_amb_context_code
90578       ,p_entity_code                => l_entity_code
90579       ,p_event_class_code           => l_event_class_code);
90580    --
90581    -- set accounting class
90582    --
90583    xla_ae_lines_pkg.SetAcctClass(
90584            p_accounting_class_code  => 'LIABILITY'
90585          , p_ae_header_id           => l_ae_header_id
90586          );
90587 
90588    --
90589    -- set rounding class
90590    --
90591    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90592                       'LIABILITY';
90593 
90594    --
90595    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90596    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90597    --
90598    -- bulk performance
90599    --
90600    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90601 
90602    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90603       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90604 
90605    -- 4955764
90606    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90607       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90608 
90609    -- 4458381 Public Sector Enh
90610    
90611    --
90612    -- set accounting attributes for the line type
90613    --
90614    l_entered_amt_idx := 23;
90615    l_accted_amt_idx  := 28;
90616    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
90617    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90618    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
90619    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90620    l_rec_acct_attrs.array_num_value(2)  := 
90621 xla_ae_sources_pkg.GetSystemSourceNum(
90622    p_source_code           => 'XLA_EVENT_APPL_ID'
90623  , p_source_type_code      => 'Y'
90624  , p_source_application_id =>  602
90625 );
90626    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90627    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
90628    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90629    l_rec_acct_attrs.array_char_value(4)  := 
90630 xla_ae_sources_pkg.GetSystemSourceChar(
90631    p_source_code           => 'XLA_ENTITY_CODE'
90632  , p_source_type_code      => 'Y'
90633  , p_source_application_id =>  602
90634 );
90635    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90636    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
90637    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90638    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
90639    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90640    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
90641    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90642    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
90643    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
90644    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
90645    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
90646    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
90647    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90648    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
90649    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
90650    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
90651    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
90652    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
90653    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
90654    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
90655    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
90656    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
90657    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
90658    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
90659    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
90660    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
90661    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
90662    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
90663    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
90664    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
90665    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
90666    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
90667    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
90668    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
90669    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
90670    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
90671    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
90672    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
90673    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
90677    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
90674    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
90675    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
90676    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
90678    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
90679    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
90680    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
90681    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
90682    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
90683    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
90684    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
90685    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
90686    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
90687    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
90688    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
90689    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
90690    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
90691    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
90692    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
90693    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
90694    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
90695    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
90696    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
90697    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
90698    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
90699    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
90700    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
90701    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
90702    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
90703    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
90704    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
90705    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
90706    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
90707    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
90708    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
90709    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
90710    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
90711    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
90712    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
90713 
90714    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90715    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90716 
90717    ---------------------------------------------------------------------------------------------------------------
90718    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90719    ---------------------------------------------------------------------------------------------------------------
90720    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90721 
90722    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90723    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90724 
90725    IF xla_accounting_cache_pkg.GetValueChar
90726          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90727          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90728    AND l_bflow_method_code = 'PRIOR_ENTRY'
90729 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90730    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90731          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90732        )
90733    THEN
90734          xla_ae_lines_pkg.BflowUpgEntry
90735            (p_business_method_code    => l_bflow_method_code
90736            ,p_business_class_code     => l_bflow_class_code
90737            ,p_balance_type            => l_balance_type_code);
90738    ELSE
90739       NULL;
90740 -- No business flow processing for business flow method of NONE.
90741    END IF;
90742 
90743    --
90744    -- call analytical criteria
90745    --
90746    
90747 
90748 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
90749 xla_ae_lines_pkg.SetAnalyticalCriteria(
90750    p_analytical_criterion_name    => 'Payables Custom Source'
90751  , p_analytical_criterion_owner   => 'S'
90752  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
90753  , p_amb_context_code             => 'DEFAULT'
90754  , p_balancing_flag               => 'N'
90755  
90756  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
90757 p_source_163
90758 , p_source_57
90759 , p_source_63))
90760  , p_analytical_detail_num_1     =>  NULL
90761  , p_analytical_detail_date_1    =>  NULL
90762 
90763  , p_ae_header_id                 => l_ae_header_id
90764 )
90765 ;
90766 --
90767 
90768    --
90769    -- call description
90770    --
90771    
90772 xla_ae_lines_pkg.SetLineDescription(
90773    p_ae_header_id => l_ae_header_id
90774   ,p_description  => Description_1 (
90775      p_application_id         => p_application_id
90776    , p_ae_header_id           => l_ae_header_id 
90777 , p_source_1 => p_source_1
90778    )
90779 );
90780 
90781 
90782    --
90783    -- call ADRs
90787         (NVL(l_actual_upg_option, 'N') = 'O') OR
90784    -- Bug 4922099
90785    --
90786    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90788         (NVL(l_enc_upg_option, 'N') = 'O')
90789       )
90790    THEN
90791    NULL;
90792    --
90793    --
90794    
90795   l_ccid := AcctDerRule_34(
90796            p_application_id           => p_application_id
90797          , p_ae_header_id             => l_ae_header_id 
90798 , p_source_34 => p_source_34
90799          , x_transaction_coa_id       => l_adr_transaction_coa_id
90800          , x_accounting_coa_id        => l_adr_accounting_coa_id
90801          , x_value_type_code          => l_adr_value_type_code
90802          , p_side                     => 'NA'
90803    );
90804 
90805    xla_ae_lines_pkg.set_ccid(
90806     p_code_combination_id          => l_ccid
90807   , p_value_type_code              => l_adr_value_type_code
90808   , p_transaction_coa_id           => l_adr_transaction_coa_id
90809   , p_accounting_coa_id            => l_adr_accounting_coa_id
90810   , p_adr_code                     => 'AP_LIAB'
90811   , p_adr_type_code                => 'S'
90812   , p_component_type               => l_component_type
90813   , p_component_code               => l_component_code
90814   , p_component_type_code          => l_component_type_code
90815   , p_component_appl_id            => l_component_appl_id
90816   , p_amb_context_code             => l_amb_context_code
90817   , p_side                         => 'NA'
90818   );
90819 
90820 
90821    --
90822    --
90823    END IF;
90824    --
90825    -- Bug 4922099
90826    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90827           (NVL(l_enc_upg_option, 'N') = 'O')
90828         ) AND
90829         (l_bflow_method_code = 'PRIOR_ENTRY')
90830       )
90831    THEN
90832       IF
90833       --
90834       1 = 2
90835       --
90836       THEN
90837       xla_accounting_err_pkg.build_message
90838                                     (p_appli_s_name            => 'XLA'
90839                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90840                                     ,p_token_1                 => 'LINE_NUMBER'
90841                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90842                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90843                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90844                                                                              l_component_type
90845                                                                             ,l_component_code
90846                                                                             ,l_component_type_code
90847                                                                             ,l_component_appl_id
90848                                                                             ,l_amb_context_code
90849                                                                             ,l_entity_code
90850                                                                             ,l_event_class_code
90851                                                                            )
90852                                     ,p_token_3                 => 'OWNER'
90853                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90854                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90855                                                                           ,p_lookup_code    => l_component_type_code
90856                                                                          )
90857                                     ,p_token_4                 => 'PRODUCT_NAME'
90858                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90859                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90860                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90861                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90862                                     ,p_ae_header_id            =>  NULL
90863                                        );
90864 
90865         IF (C_LEVEL_ERROR>= g_log_level) THEN
90866                  trace
90867                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90868                       ,p_level    => C_LEVEL_ERROR
90869                       ,p_module   => l_log_module);
90870         END IF;
90871       END IF;
90872    END IF;
90873    --
90874    --
90875    ------------------------------------------------------------------------------------------------
90876    -- 4219869 Business Flow
90877    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90878    -- Prior Entry.  Currently, the following code is always generated.
90879    ------------------------------------------------------------------------------------------------
90880    XLA_AE_LINES_PKG.ValidateCurrentLine;
90881 
90882    ------------------------------------------------------------------------------------
90883    -- 4219869 Business Flow
90884    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90885    ------------------------------------------------------------------------------------
90886    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90887 
90891    ----------------------------------------------------------------------------------
90888    ----------------------------------------------------------------------------------
90889    -- 4219869 Business Flow
90890    -- Update journal entry status -- Need to generate this within IF <condition>
90892    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90893          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90894          ,p_balance_type_code => l_balance_type_code
90895          );
90896 
90897    -------------------------------------------------------------------------------------------
90898    -- 4262811 - Generate the Accrual Reversal lines
90899    -------------------------------------------------------------------------------------------
90900    BEGIN
90901       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90902                               (g_array_event(p_event_id).array_value_num('header_index'));
90903       IF l_acc_rev_flag IS NULL THEN
90904          l_acc_rev_flag := 'N';
90905       END IF;
90906    EXCEPTION
90907       WHEN OTHERS THEN
90908          l_acc_rev_flag := 'N';
90909    END;
90910    --
90911    IF (l_acc_rev_flag = 'Y') THEN
90912 
90913        -- 4645092  ------------------------------------------------------------------------------
90914        -- To allow MPA report to determine if it should generate report process
90915        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90916        ------------------------------------------------------------------------------------------
90917 
90918        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90919        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90920    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90921    -- call ADRs
90922    -- Bug 4922099
90923    --
90924    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90925         (NVL(l_actual_upg_option, 'N') = 'O') OR
90926         (NVL(l_enc_upg_option, 'N') = 'O')
90927       )
90928    THEN
90929    NULL;
90930    --
90931    --
90932    
90933   l_ccid := AcctDerRule_34(
90934            p_application_id           => p_application_id
90935          , p_ae_header_id             => l_ae_header_id 
90936 , p_source_34 => p_source_34
90937          , x_transaction_coa_id       => l_adr_transaction_coa_id
90938          , x_accounting_coa_id        => l_adr_accounting_coa_id
90939          , x_value_type_code          => l_adr_value_type_code
90940          , p_side                     => 'NA'
90941    );
90942 
90943    xla_ae_lines_pkg.set_ccid(
90944     p_code_combination_id          => l_ccid
90945   , p_value_type_code              => l_adr_value_type_code
90946   , p_transaction_coa_id           => l_adr_transaction_coa_id
90947   , p_accounting_coa_id            => l_adr_accounting_coa_id
90948   , p_adr_code                     => 'AP_LIAB'
90949   , p_adr_type_code                => 'S'
90950   , p_component_type               => l_component_type
90951   , p_component_code               => l_component_code
90952   , p_component_type_code          => l_component_type_code
90953   , p_component_appl_id            => l_component_appl_id
90954   , p_amb_context_code             => l_amb_context_code
90955   , p_side                         => 'NA'
90956   );
90957 
90958 
90959    --
90960    --
90961    END IF;
90962 
90963        --
90964        -- Update the line information that should be overwritten
90965        --
90966        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90967                                          p_header_num   => 1);
90968        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90969 
90970        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90971 
90972        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90973           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90974        END IF;
90975 
90976       --
90977       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90978       --
90979       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90980           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90981       ELSE
90982           ---------------------------------------------------------------------------------------------------
90983           -- 4262811a Switch Sign
90984           ---------------------------------------------------------------------------------------------------
90985           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90986           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90987                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90988           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90989                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90990           -- 5132302
90991           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90992                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90993 
90994       END IF;
90995 
90996       -- 4955764
91000 
90997       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90998       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90999 
91001       XLA_AE_LINES_PKG.ValidateCurrentLine;
91002       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91003 
91004       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91005                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91006                ,p_balance_type_code => l_balance_type_code);
91007 
91008    END IF;
91009 
91010    -----------------------------------------------------------------------------------------
91011    -- 4262811 Multiperiod Accounting
91012    -----------------------------------------------------------------------------------------
91013      -- No MPA option is assigned.
91014 
91015 
91016 END IF;
91017 END IF;
91018 --
91019 
91020 --
91021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91022    trace
91023       (p_msg      => 'END of AcctLineType_156'
91024       ,p_level    => C_LEVEL_PROCEDURE
91025       ,p_module   => l_log_module);
91026 END IF;
91027 --
91028 EXCEPTION
91029   WHEN xla_exceptions_pkg.application_exception THEN
91030       RAISE;
91031   WHEN OTHERS THEN
91032        xla_exceptions_pkg.raise_message
91033            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_156');
91034 END AcctLineType_156;
91035 --
91036 
91037 ---------------------------------------
91038 --
91039 -- PRIVATE FUNCTION
91040 --         AcctLineType_157
91041 --
91042 ---------------------------------------
91043 PROCEDURE AcctLineType_157 (
91044   p_application_id        IN NUMBER
91045  ,p_event_id              IN NUMBER
91046  ,p_calculate_acctd_flag  IN VARCHAR2
91047  ,p_calculate_g_l_flag    IN VARCHAR2
91048  ,p_actual_flag           IN OUT VARCHAR2
91049  ,p_balance_type_code     OUT VARCHAR2
91050  ,p_gain_or_loss_ref      OUT VARCHAR2
91051  
91052 --Invoice Distribution Description
91053  , p_source_1            IN VARCHAR2
91054 --Automatic Offsets Value
91055  , p_source_15            IN VARCHAR2
91056  , p_source_15_meaning    IN VARCHAR2
91057 --Invoice Distribution Ledger Amount
91058  , p_source_21            IN NUMBER
91059 --Invoice Liability Account
91060  , p_source_34            IN NUMBER
91061 --Accounting Reversal Indicator
91062  , p_source_52            IN VARCHAR2
91063 --Distribution Link Type
91064  , p_source_54            IN VARCHAR2
91065 --Allocation to Main Distribution Identifier
91066  , p_source_56            IN NUMBER
91067 --Invoice Identifier
91068  , p_source_57            IN NUMBER
91069 --Invoice Distribution Identifier
91070  , p_source_63            IN NUMBER
91071 --Payables Encumbrance Upgrade Credit Account
91072  , p_source_64            IN NUMBER
91073 --Payables Encumbrance Upgrade Credit Amount
91074  , p_source_65            IN NUMBER
91075 --Invoice Currency Code
91076  , p_source_66            IN VARCHAR2
91077 --Payables Encumbrance Upgrade Credit Base Amount
91078  , p_source_67            IN NUMBER
91079 --Payables Encumbrance Upgrade Debit Account
91080  , p_source_68            IN NUMBER
91081 --Payables Encumbrance Upgrade Debit Amount
91082  , p_source_69            IN NUMBER
91083 --Payables Encumbrance Upgrade Debit Base Amount
91084  , p_source_70            IN NUMBER
91085 --Payables Encumbrance Upgrade Option
91086  , p_source_71            IN VARCHAR2
91087 --Invoice Distribution Amount
91088  , p_source_72            IN NUMBER
91089 --Deferred Accounting End Date
91090  , p_source_76            IN DATE
91091 --Deferred Accounting Option
91092  , p_source_77            IN VARCHAR2
91093 --Deferred Accounting Start Date
91094  , p_source_78            IN DATE
91095 --Override Accounted Amount Indicator
91096  , p_source_79            IN VARCHAR2
91097  , p_source_79_meaning    IN VARCHAR2
91098 --Invoice Supplier Identifier
91099  , p_source_80            IN NUMBER
91100 --Invoice Supplier Site Identifier
91101  , p_source_81            IN NUMBER
91102 --Third Party Type
91103  , p_source_82            IN VARCHAR2
91104 --Parent Reversal Identifier
91105  , p_source_83            IN NUMBER
91106 --Invoice Distribution Statistical Amount
91107  , p_source_84            IN NUMBER
91108 --Invoice Distribution Tax Line Identifier
91109  , p_source_85            IN NUMBER
91110 --Invoice Distribution Tax Distribution Identifier from Tax
91111  , p_source_86            IN NUMBER
91112 --Invoice Distribution Summary Tax Line Identifier
91113  , p_source_87            IN NUMBER
91114 --Payables Upgrade Credit Encumbrance Type Identifier
91115  , p_source_88            IN NUMBER
91116 --Payables Upgrade Debit Encumbrance Type Identifier
91117  , p_source_89            IN NUMBER
91118 --Business Flow Accounts Payable Application Identifier
91119  , p_source_90            IN NUMBER
91120 --Business Flow Invoice Distribution Type
91121  , p_source_91            IN VARCHAR2
91122 --Business Flow Invoice Entity Code
91123  , p_source_92            IN VARCHAR2
91124 --Business Flow Invoice Distribution Identifier
91125  , p_source_93            IN NUMBER
91126 --Business Flow Invoice Identifier
91127  , p_source_94            IN NUMBER
91128 --Self-Assessed Tax Flag
91129  , p_source_135            IN VARCHAR2
91130  , p_source_135_meaning    IN VARCHAR2
91134  , p_source_137            IN NUMBER
91131 --Invoice Exchange Date
91132  , p_source_136            IN DATE
91133 --Invoice Exchange Rate
91135 --Invoice Exchange Rate Type
91136  , p_source_138            IN VARCHAR2
91137 --Project Identifier
91138  , p_source_146            IN NUMBER
91139 --Invoice Source
91140  , p_source_163            IN VARCHAR2
91141 )
91142 IS
91143 
91144 l_component_type              VARCHAR2(80);
91145 l_component_code              VARCHAR2(30);
91146 l_component_type_code         VARCHAR2(1);
91147 l_component_appl_id           INTEGER;
91148 l_amb_context_code            VARCHAR2(30);
91149 l_entity_code                 VARCHAR2(30);
91150 l_event_class_code            VARCHAR2(30);
91151 l_ae_header_id                NUMBER;
91152 l_event_type_code             VARCHAR2(30);
91153 l_line_definition_code        VARCHAR2(30);
91154 l_line_definition_owner_code  VARCHAR2(1);
91155 --
91156 -- adr variables
91157 l_segment                     VARCHAR2(30);
91158 l_ccid                        NUMBER;
91159 l_adr_transaction_coa_id      NUMBER;
91160 l_adr_accounting_coa_id       NUMBER;
91161 l_adr_flexfield_segment_code  VARCHAR2(30);
91162 l_adr_flex_value_set_id       NUMBER;
91163 l_adr_value_type_code         VARCHAR2(30);
91164 l_adr_value_combination_id    NUMBER;
91165 l_adr_value_segment_code      VARCHAR2(30);
91166 
91167 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91168 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91169 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91170 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91171 
91172 -- 4262811 Variables ------------------------------------------------------------------------------------------
91173 l_entered_amt_idx             NUMBER;
91174 l_accted_amt_idx              NUMBER;
91175 l_acc_rev_flag                VARCHAR2(1);
91176 l_accrual_line_num            NUMBER;
91177 l_tmp_amt                     NUMBER;
91178 l_acc_rev_natural_side_code   VARCHAR2(1);
91179 
91180 l_num_entries                 NUMBER;
91181 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91182 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91183 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91184 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91185 l_recog_line_1                NUMBER;
91186 l_recog_line_2                NUMBER;
91187 
91188 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91189 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91190 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91191 
91192 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91193 
91194 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91195 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91196 
91197 ---------------------------------------------------------------------------------------------------------------
91198 
91199 
91200 --
91201 -- bulk performance
91202 --
91203 l_balance_type_code           VARCHAR2(1);
91204 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91205 l_log_module                  VARCHAR2(240);
91206 
91207 --
91208 -- Upgrade strategy
91209 --
91210 l_actual_upg_option           VARCHAR2(1);
91211 l_enc_upg_option           VARCHAR2(1);
91212 
91213 --
91214 BEGIN
91215 --
91216 IF g_log_enabled THEN
91217       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
91218 END IF;
91219 --
91220 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91221 
91222       trace
91223          (p_msg      => 'BEGIN of AcctLineType_157'
91224          ,p_level    => C_LEVEL_PROCEDURE
91225          ,p_module   => l_log_module);
91226 
91227 END IF;
91228 --
91229 l_component_type             := 'AMB_JLT';
91230 l_component_code             := 'AP_LIAB_PREPAY_AOS_AS';
91231 l_component_type_code        := 'S';
91232 l_component_appl_id          :=  200;
91233 l_amb_context_code           := 'DEFAULT';
91234 l_entity_code                := 'AP_INVOICES';
91235 l_event_class_code           := 'PREPAYMENTS';
91236 l_event_type_code            := 'PREPAYMENTS_ALL';
91237 l_line_definition_owner_code := 'S';
91238 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
91239 --
91240 l_balance_type_code          := 'A';
91241 l_segment                     := NULL;
91242 l_ccid                        := NULL;
91243 l_adr_transaction_coa_id      := NULL;
91244 l_adr_accounting_coa_id       := NULL;
91245 l_adr_flexfield_segment_code  := NULL;
91246 l_adr_flex_value_set_id       := NULL;
91247 l_adr_value_type_code         := NULL;
91248 l_adr_value_combination_id    := NULL;
91249 l_adr_value_segment_code      := NULL;
91250 
91251 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
91252 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
91253 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91254 l_budgetary_control_flag     := 'N';
91255 
91256 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91257 l_bflow_applied_to_amt       := NULL; -- 5132302
91258 l_entered_amt_idx            := NULL;          -- 4262811
91262 l_tmp_amt                    := NULL;          -- 4262811
91259 l_accted_amt_idx             := NULL;          -- 4262811
91260 l_acc_rev_flag               := NULL;          -- 4262811
91261 l_accrual_line_num           := NULL;          -- 4262811
91263 --
91264  
91265 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91266     l_balance_type_code <> 'B' THEN
91267 IF NVL(p_source_15,'
91268 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
91269 NVL(p_source_135,'
91270 ') <>  'Y'
91271  THEN 
91272 
91273    --
91274    XLA_AE_LINES_PKG.SetNewLine;
91275 
91276    p_balance_type_code          := l_balance_type_code;
91277    -- set the flag so later we will know whether the gain loss line needs to be created
91278    
91279    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
91280      p_actual_flag :='A';
91281    END IF;
91282 
91283    --
91284    -- bulk performance
91285    --
91286    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91287                                       p_header_num   => 0); -- 4262811
91288    --
91289    -- set accounting line options
91290    --
91291    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91292            p_natural_side_code          => 'C'
91293          , p_gain_or_loss_flag          => 'N'
91294          , p_gl_transfer_mode_code      => 'S'
91295          , p_acct_entry_type_code       => 'A'
91296          , p_switch_side_flag           => 'Y'
91297          , p_merge_duplicate_code       => 'A'
91298          );
91299    --
91300    l_acc_rev_natural_side_code := 'D';  -- 4262811
91301    -- 
91302    --
91303    -- set accounting line type info
91304    --
91305    xla_ae_lines_pkg.SetAcctLineType
91306       (p_component_type             => l_component_type
91307       ,p_event_type_code            => l_event_type_code
91308       ,p_line_definition_owner_code => l_line_definition_owner_code
91309       ,p_line_definition_code       => l_line_definition_code
91310       ,p_accounting_line_code       => l_component_code
91311       ,p_accounting_line_type_code  => l_component_type_code
91312       ,p_accounting_line_appl_id    => l_component_appl_id
91313       ,p_amb_context_code           => l_amb_context_code
91314       ,p_entity_code                => l_entity_code
91315       ,p_event_class_code           => l_event_class_code);
91316    --
91317    -- set accounting class
91318    --
91319    xla_ae_lines_pkg.SetAcctClass(
91320            p_accounting_class_code  => 'LIABILITY'
91321          , p_ae_header_id           => l_ae_header_id
91322          );
91323 
91324    --
91325    -- set rounding class
91326    --
91327    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91328                       'LIABILITY';
91329 
91330    --
91331    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91332    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91333    --
91334    -- bulk performance
91335    --
91336    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91337 
91338    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91339       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91340 
91341    -- 4955764
91342    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91343       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91344 
91345    -- 4458381 Public Sector Enh
91346    
91347    --
91348    -- set accounting attributes for the line type
91349    --
91350    l_entered_amt_idx := 23;
91351    l_accted_amt_idx  := 28;
91352    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
91353    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91354    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
91355    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91356    l_rec_acct_attrs.array_num_value(2)  := 
91357 xla_ae_sources_pkg.GetSystemSourceNum(
91358    p_source_code           => 'XLA_EVENT_APPL_ID'
91359  , p_source_type_code      => 'Y'
91360  , p_source_application_id =>  602
91361 );
91362    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91363    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
91364    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91365    l_rec_acct_attrs.array_char_value(4)  := 
91366 xla_ae_sources_pkg.GetSystemSourceChar(
91367    p_source_code           => 'XLA_ENTITY_CODE'
91368  , p_source_type_code      => 'Y'
91369  , p_source_application_id =>  602
91370 );
91371    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91372    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
91373    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91374    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
91375    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
91376    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
91377    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91378    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
91379    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91383    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91380    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
91381    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91382    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
91384    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
91385    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91386    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
91387    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91388    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
91389    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
91390    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
91391    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
91392    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
91393    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
91394    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
91395    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
91396    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
91397    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
91398    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
91399    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
91400    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
91401    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
91402    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
91403    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
91404    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
91405    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
91406    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
91407    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
91408    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
91409    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
91410    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
91411    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
91412    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
91413    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
91414    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
91415    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
91416    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
91417    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
91418    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
91419    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
91420    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
91421    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
91422    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
91423    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
91424    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
91425    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
91426    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
91427    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
91428    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
91429    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
91430    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
91431    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
91432    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
91433    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
91434    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
91435    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
91436    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
91437    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
91438    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
91439    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
91440    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
91441    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
91442    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
91443    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
91444    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
91445    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
91446    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
91447    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
91448    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
91449 
91450    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91451    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91452 
91453    ---------------------------------------------------------------------------------------------------------------
91454    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91455    ---------------------------------------------------------------------------------------------------------------
91456    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91457 
91458    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91459    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91460 
91461    IF xla_accounting_cache_pkg.GetValueChar
91462          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91463          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91467          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91464    AND l_bflow_method_code = 'PRIOR_ENTRY'
91465 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91466    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91468        )
91469    THEN
91470          xla_ae_lines_pkg.BflowUpgEntry
91471            (p_business_method_code    => l_bflow_method_code
91472            ,p_business_class_code     => l_bflow_class_code
91473            ,p_balance_type            => l_balance_type_code);
91474    ELSE
91475       NULL;
91476 XLA_AE_LINES_PKG.business_flow_validation(
91477                                 p_business_method_code     => l_bflow_method_code
91478                                ,p_business_class_code      => l_bflow_class_code
91479                                ,p_inherit_description_flag => l_inherit_desc_flag);
91480    END IF;
91481 
91482    --
91483    -- call analytical criteria
91484    --
91485    
91486 
91487 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
91488 xla_ae_lines_pkg.SetAnalyticalCriteria(
91489    p_analytical_criterion_name    => 'Payables Custom Source'
91490  , p_analytical_criterion_owner   => 'S'
91491  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
91492  , p_amb_context_code             => 'DEFAULT'
91493  , p_balancing_flag               => 'N'
91494  
91495  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
91496 p_source_163
91497 , p_source_57
91498 , p_source_63))
91499  , p_analytical_detail_num_1     =>  NULL
91500  , p_analytical_detail_date_1    =>  NULL
91501 
91502  , p_ae_header_id                 => l_ae_header_id
91503 )
91504 ;
91505 --
91506 
91507 
91508 xla_ae_lines_pkg.g_rec_lines.array_anc_id_2(xla_ae_lines_pkg.g_LineNumber) :=
91509 xla_ae_lines_pkg.SetAnalyticalCriteria(
91510    p_analytical_criterion_name    => 'Project Number'
91511  , p_analytical_criterion_owner   => 'S'
91512  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
91513  , p_amb_context_code             => 'DEFAULT'
91514  , p_balancing_flag               => 'N'
91515  
91516  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
91517 p_source_146))
91518  , p_analytical_detail_num_1     =>  NULL
91519  , p_analytical_detail_date_1    =>  NULL
91520 
91521  , p_ae_header_id                 => l_ae_header_id
91522 )
91523 ;
91524 --
91525 
91526    --
91527    -- call description
91528    --
91529    
91530 xla_ae_lines_pkg.SetLineDescription(
91531    p_ae_header_id => l_ae_header_id
91532   ,p_description  => Description_1 (
91533      p_application_id         => p_application_id
91534    , p_ae_header_id           => l_ae_header_id 
91535 , p_source_1 => p_source_1
91536    )
91537 );
91538 
91539 
91540    --
91541    -- call ADRs
91542    -- Bug 4922099
91543    --
91544    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91545         (NVL(l_actual_upg_option, 'N') = 'O') OR
91546         (NVL(l_enc_upg_option, 'N') = 'O')
91547       )
91548    THEN
91549    NULL;
91550    --
91551    --
91552    
91553    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
91554      p_code_combination_id      => TO_NUMBER(C_NUM)
91555    , p_value_type_code          => NULL
91556    , p_transaction_coa_id       => null
91557    , p_accounting_coa_id        => null
91558    , p_adr_code                 => NULL
91559    , p_adr_type_code            => NULL
91560    , p_component_type           => l_component_type
91561    , p_component_code           => l_component_code
91562    , p_component_type_code      => l_component_type_code
91563    , p_component_appl_id        => l_component_appl_id
91564    , p_amb_context_code         => l_amb_context_code
91565    , p_side                     => NULL
91566    );
91567 
91568    
91569   -- initialise segments
91570   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91571   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91572   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91573   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91574   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91575   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91576   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91577   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91578   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91579   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91580   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91581   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91582   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91583   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91584   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91585   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91586   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91590   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91587   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91588   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91589   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91591   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91592   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91593   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91594   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91595   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91596   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91597   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91598   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91599   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91600   --
91601 
91602    --
91603 
91604 
91605    l_segment := AcctDerRule_15(
91606            p_application_id           => p_application_id
91607          , p_ae_header_id             => l_ae_header_id 
91608 , p_source_34 => p_source_34
91609          , x_transaction_coa_id       => l_adr_transaction_coa_id
91610          , x_accounting_coa_id        => l_adr_accounting_coa_id
91611          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91612          , x_flex_value_set_id        => l_adr_flex_value_set_id
91613          , x_value_type_code          => l_adr_value_type_code
91614          , x_value_combination_id     => l_adr_value_combination_id
91615          , x_value_segment_code       => l_adr_value_segment_code
91616          , p_side                     => 'NA'
91617          , p_override_seg_flag        => 'Y'
91618    );
91619 
91620    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91621 
91622       xla_ae_lines_pkg.set_segment(
91623           p_to_segment_code         => 'GL_ACCOUNT'
91624         , p_segment_value           => l_segment
91625         , p_from_segment_code       => l_adr_value_segment_code
91626         , p_from_combination_id     => l_adr_value_combination_id
91627         , p_value_type_code         => l_adr_value_type_code
91628         , p_transaction_coa_id      => l_adr_transaction_coa_id
91629         , p_accounting_coa_id       => l_adr_accounting_coa_id
91630         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91631         , p_flex_value_set_id       => l_adr_flex_value_set_id
91632         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
91633         , p_adr_type_code           => 'S'
91634         , p_component_type          => l_component_type
91635         , p_component_code          => l_component_code
91636         , p_component_type_code     => l_component_type_code
91637         , p_component_appl_id       => l_component_appl_id
91638         , p_amb_context_code        => l_amb_context_code
91639         , p_entity_code             => 'AP_INVOICES'
91640         , p_event_class_code        => 'PREPAYMENTS'
91641         , p_side                    => 'NA'
91642         );
91643 
91644   END IF;
91645 
91646    --
91647    --
91648    END IF;
91649    --
91650    -- Bug 4922099
91651    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91652           (NVL(l_enc_upg_option, 'N') = 'O')
91653         ) AND
91654         (l_bflow_method_code = 'PRIOR_ENTRY')
91655       )
91656    THEN
91657       IF
91658       --
91659       1 = 2
91660       --
91661       THEN
91662       xla_accounting_err_pkg.build_message
91663                                     (p_appli_s_name            => 'XLA'
91664                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91665                                     ,p_token_1                 => 'LINE_NUMBER'
91666                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91667                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91668                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91669                                                                              l_component_type
91670                                                                             ,l_component_code
91671                                                                             ,l_component_type_code
91672                                                                             ,l_component_appl_id
91673                                                                             ,l_amb_context_code
91674                                                                             ,l_entity_code
91675                                                                             ,l_event_class_code
91676                                                                            )
91677                                     ,p_token_3                 => 'OWNER'
91678                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91679                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91680                                                                           ,p_lookup_code    => l_component_type_code
91681                                                                          )
91682                                     ,p_token_4                 => 'PRODUCT_NAME'
91686                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91683                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91684                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91685                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91687                                     ,p_ae_header_id            =>  NULL
91688                                        );
91689 
91690         IF (C_LEVEL_ERROR>= g_log_level) THEN
91691                  trace
91692                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91693                       ,p_level    => C_LEVEL_ERROR
91694                       ,p_module   => l_log_module);
91695         END IF;
91696       END IF;
91697    END IF;
91698    --
91699    --
91700    ------------------------------------------------------------------------------------------------
91701    -- 4219869 Business Flow
91702    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91703    -- Prior Entry.  Currently, the following code is always generated.
91704    ------------------------------------------------------------------------------------------------
91705    XLA_AE_LINES_PKG.ValidateCurrentLine;
91706 
91707    ------------------------------------------------------------------------------------
91708    -- 4219869 Business Flow
91709    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91710    ------------------------------------------------------------------------------------
91711    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91712 
91713    ----------------------------------------------------------------------------------
91714    -- 4219869 Business Flow
91715    -- Update journal entry status -- Need to generate this within IF <condition>
91716    ----------------------------------------------------------------------------------
91717    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91718          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91719          ,p_balance_type_code => l_balance_type_code
91720          );
91721 
91722    -------------------------------------------------------------------------------------------
91723    -- 4262811 - Generate the Accrual Reversal lines
91724    -------------------------------------------------------------------------------------------
91725    BEGIN
91726       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91727                               (g_array_event(p_event_id).array_value_num('header_index'));
91728       IF l_acc_rev_flag IS NULL THEN
91729          l_acc_rev_flag := 'N';
91730       END IF;
91731    EXCEPTION
91732       WHEN OTHERS THEN
91733          l_acc_rev_flag := 'N';
91734    END;
91735    --
91736    IF (l_acc_rev_flag = 'Y') THEN
91737 
91738        -- 4645092  ------------------------------------------------------------------------------
91739        -- To allow MPA report to determine if it should generate report process
91740        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91741        ------------------------------------------------------------------------------------------
91742 
91743        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91744        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91745    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91746    -- call ADRs
91747    -- Bug 4922099
91748    --
91749    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91750         (NVL(l_actual_upg_option, 'N') = 'O') OR
91751         (NVL(l_enc_upg_option, 'N') = 'O')
91752       )
91753    THEN
91754    NULL;
91755    --
91756    --
91757    
91758    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
91759      p_code_combination_id      => TO_NUMBER(C_NUM)
91760    , p_value_type_code          => NULL
91761    , p_transaction_coa_id       => null
91762    , p_accounting_coa_id        => null
91763    , p_adr_code                 => NULL
91764    , p_adr_type_code            => NULL
91765    , p_component_type           => l_component_type
91766    , p_component_code           => l_component_code
91767    , p_component_type_code      => l_component_type_code
91768    , p_component_appl_id        => l_component_appl_id
91769    , p_amb_context_code         => l_amb_context_code
91770    , p_side                     => NULL
91771    );
91772 
91773    
91774   -- initialise segments
91775   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91776   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91777   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91778   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91779   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91780   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91781   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91782   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91783   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
91784   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91788   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91785   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91786   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91787   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91789   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91790   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91791   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91792   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91793   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91794   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91795   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91796   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91797   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91798   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91799   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91800   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91801   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91802   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91803   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91804   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
91805   --
91806 
91807    --
91808 
91809 
91810    l_segment := AcctDerRule_15(
91811            p_application_id           => p_application_id
91812          , p_ae_header_id             => l_ae_header_id 
91813 , p_source_34 => p_source_34
91814          , x_transaction_coa_id       => l_adr_transaction_coa_id
91815          , x_accounting_coa_id        => l_adr_accounting_coa_id
91816          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
91817          , x_flex_value_set_id        => l_adr_flex_value_set_id
91818          , x_value_type_code          => l_adr_value_type_code
91819          , x_value_combination_id     => l_adr_value_combination_id
91820          , x_value_segment_code       => l_adr_value_segment_code
91821          , p_side                     => 'NA'
91822          , p_override_seg_flag        => 'Y'
91823    );
91824 
91825    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
91826 
91827       xla_ae_lines_pkg.set_segment(
91828           p_to_segment_code         => 'GL_ACCOUNT'
91829         , p_segment_value           => l_segment
91830         , p_from_segment_code       => l_adr_value_segment_code
91831         , p_from_combination_id     => l_adr_value_combination_id
91832         , p_value_type_code         => l_adr_value_type_code
91833         , p_transaction_coa_id      => l_adr_transaction_coa_id
91834         , p_accounting_coa_id       => l_adr_accounting_coa_id
91835         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91836         , p_flex_value_set_id       => l_adr_flex_value_set_id
91837         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
91838         , p_adr_type_code           => 'S'
91839         , p_component_type          => l_component_type
91840         , p_component_code          => l_component_code
91841         , p_component_type_code     => l_component_type_code
91842         , p_component_appl_id       => l_component_appl_id
91843         , p_amb_context_code        => l_amb_context_code
91844         , p_entity_code             => 'AP_INVOICES'
91845         , p_event_class_code        => 'PREPAYMENTS'
91846         , p_side                    => 'NA'
91847         );
91848 
91849   END IF;
91850 
91851    --
91852    --
91853    END IF;
91854 
91855        --
91856        -- Update the line information that should be overwritten
91857        --
91858        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91859                                          p_header_num   => 1);
91860        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91861 
91862        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91863 
91864        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91865           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91866        END IF;
91867 
91868       --
91869       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91870       --
91871       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91872           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91873       ELSE
91874           ---------------------------------------------------------------------------------------------------
91875           -- 4262811a Switch Sign
91876           ---------------------------------------------------------------------------------------------------
91877           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91878           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91882           -- 5132302
91879                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91880           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91881                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91883           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91884                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91885 
91886       END IF;
91887 
91888       -- 4955764
91889       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91890       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91891 
91892 
91893       XLA_AE_LINES_PKG.ValidateCurrentLine;
91894       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91895 
91896       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91897                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91898                ,p_balance_type_code => l_balance_type_code);
91899 
91900    END IF;
91901 
91902    -----------------------------------------------------------------------------------------
91903    -- 4262811 Multiperiod Accounting
91904    -----------------------------------------------------------------------------------------
91905      -- No MPA option is assigned.
91906 
91907 
91908 END IF;
91909 END IF;
91910 --
91911 
91912 --
91913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91914    trace
91915       (p_msg      => 'END of AcctLineType_157'
91916       ,p_level    => C_LEVEL_PROCEDURE
91917       ,p_module   => l_log_module);
91918 END IF;
91919 --
91920 EXCEPTION
91921   WHEN xla_exceptions_pkg.application_exception THEN
91922       RAISE;
91923   WHEN OTHERS THEN
91924        xla_exceptions_pkg.raise_message
91925            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_157');
91926 END AcctLineType_157;
91927 --
91928 
91929 ---------------------------------------
91930 --
91931 -- PRIVATE FUNCTION
91932 --         AcctLineType_158
91933 --
91934 ---------------------------------------
91935 PROCEDURE AcctLineType_158 (
91936   p_application_id        IN NUMBER
91937  ,p_event_id              IN NUMBER
91938  ,p_calculate_acctd_flag  IN VARCHAR2
91939  ,p_calculate_g_l_flag    IN VARCHAR2
91940  ,p_actual_flag           IN OUT VARCHAR2
91941  ,p_balance_type_code     OUT VARCHAR2
91942  ,p_gain_or_loss_ref      OUT VARCHAR2
91943  
91944 --Invoice Distribution Description
91945  , p_source_1            IN VARCHAR2
91946 --Automatic Offsets Value
91947  , p_source_15            IN VARCHAR2
91948  , p_source_15_meaning    IN VARCHAR2
91949 --Invoice Distribution Ledger Amount
91950  , p_source_21            IN NUMBER
91951 --Invoice Liability Account
91952  , p_source_34            IN NUMBER
91953 --Accounting Reversal Indicator
91954  , p_source_52            IN VARCHAR2
91955 --Distribution Link Type
91956  , p_source_54            IN VARCHAR2
91957 --Allocation to Main Distribution Identifier
91958  , p_source_56            IN NUMBER
91959 --Invoice Identifier
91960  , p_source_57            IN NUMBER
91961 --Invoice Distribution Identifier
91962  , p_source_63            IN NUMBER
91963 --Payables Encumbrance Upgrade Credit Account
91964  , p_source_64            IN NUMBER
91965 --Payables Encumbrance Upgrade Credit Amount
91966  , p_source_65            IN NUMBER
91967 --Invoice Currency Code
91968  , p_source_66            IN VARCHAR2
91969 --Payables Encumbrance Upgrade Credit Base Amount
91970  , p_source_67            IN NUMBER
91971 --Payables Encumbrance Upgrade Debit Account
91972  , p_source_68            IN NUMBER
91973 --Payables Encumbrance Upgrade Debit Amount
91974  , p_source_69            IN NUMBER
91975 --Payables Encumbrance Upgrade Debit Base Amount
91976  , p_source_70            IN NUMBER
91977 --Payables Encumbrance Upgrade Option
91978  , p_source_71            IN VARCHAR2
91979 --Invoice Distribution Amount
91980  , p_source_72            IN NUMBER
91981 --Deferred Accounting End Date
91982  , p_source_76            IN DATE
91983 --Deferred Accounting Option
91984  , p_source_77            IN VARCHAR2
91985 --Deferred Accounting Start Date
91986  , p_source_78            IN DATE
91987 --Override Accounted Amount Indicator
91988  , p_source_79            IN VARCHAR2
91989  , p_source_79_meaning    IN VARCHAR2
91990 --Invoice Supplier Identifier
91991  , p_source_80            IN NUMBER
91992 --Invoice Supplier Site Identifier
91993  , p_source_81            IN NUMBER
91994 --Third Party Type
91995  , p_source_82            IN VARCHAR2
91996 --Parent Reversal Identifier
91997  , p_source_83            IN NUMBER
91998 --Invoice Distribution Statistical Amount
91999  , p_source_84            IN NUMBER
92000 --Invoice Distribution Tax Line Identifier
92001  , p_source_85            IN NUMBER
92002 --Invoice Distribution Tax Distribution Identifier from Tax
92003  , p_source_86            IN NUMBER
92004 --Invoice Distribution Summary Tax Line Identifier
92005  , p_source_87            IN NUMBER
92006 --Payables Upgrade Credit Encumbrance Type Identifier
92007  , p_source_88            IN NUMBER
92008 --Payables Upgrade Debit Encumbrance Type Identifier
92012 --Business Flow Invoice Distribution Type
92009  , p_source_89            IN NUMBER
92010 --Business Flow Accounts Payable Application Identifier
92011  , p_source_90            IN NUMBER
92013  , p_source_91            IN VARCHAR2
92014 --Business Flow Invoice Entity Code
92015  , p_source_92            IN VARCHAR2
92016 --Business Flow Invoice Distribution Identifier
92017  , p_source_93            IN NUMBER
92018 --Business Flow Invoice Identifier
92019  , p_source_94            IN NUMBER
92020 --Self-Assessed Tax Flag
92021  , p_source_135            IN VARCHAR2
92022  , p_source_135_meaning    IN VARCHAR2
92023 --Invoice Exchange Date
92024  , p_source_136            IN DATE
92025 --Invoice Exchange Rate
92026  , p_source_137            IN NUMBER
92027 --Invoice Exchange Rate Type
92028  , p_source_138            IN VARCHAR2
92029 --Invoice Source
92030  , p_source_163            IN VARCHAR2
92031 )
92032 IS
92033 
92034 l_component_type              VARCHAR2(80);
92035 l_component_code              VARCHAR2(30);
92036 l_component_type_code         VARCHAR2(1);
92037 l_component_appl_id           INTEGER;
92038 l_amb_context_code            VARCHAR2(30);
92039 l_entity_code                 VARCHAR2(30);
92040 l_event_class_code            VARCHAR2(30);
92041 l_ae_header_id                NUMBER;
92042 l_event_type_code             VARCHAR2(30);
92043 l_line_definition_code        VARCHAR2(30);
92044 l_line_definition_owner_code  VARCHAR2(1);
92045 --
92046 -- adr variables
92047 l_segment                     VARCHAR2(30);
92048 l_ccid                        NUMBER;
92049 l_adr_transaction_coa_id      NUMBER;
92050 l_adr_accounting_coa_id       NUMBER;
92051 l_adr_flexfield_segment_code  VARCHAR2(30);
92052 l_adr_flex_value_set_id       NUMBER;
92053 l_adr_value_type_code         VARCHAR2(30);
92054 l_adr_value_combination_id    NUMBER;
92055 l_adr_value_segment_code      VARCHAR2(30);
92056 
92057 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92058 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92059 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92060 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92061 
92062 -- 4262811 Variables ------------------------------------------------------------------------------------------
92063 l_entered_amt_idx             NUMBER;
92064 l_accted_amt_idx              NUMBER;
92065 l_acc_rev_flag                VARCHAR2(1);
92066 l_accrual_line_num            NUMBER;
92067 l_tmp_amt                     NUMBER;
92068 l_acc_rev_natural_side_code   VARCHAR2(1);
92069 
92070 l_num_entries                 NUMBER;
92071 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92072 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92073 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92074 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92075 l_recog_line_1                NUMBER;
92076 l_recog_line_2                NUMBER;
92077 
92078 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92079 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92080 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92081 
92082 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92083 
92084 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92085 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92086 
92087 ---------------------------------------------------------------------------------------------------------------
92088 
92089 
92090 --
92091 -- bulk performance
92092 --
92093 l_balance_type_code           VARCHAR2(1);
92094 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92095 l_log_module                  VARCHAR2(240);
92096 
92097 --
92098 -- Upgrade strategy
92099 --
92100 l_actual_upg_option           VARCHAR2(1);
92101 l_enc_upg_option           VARCHAR2(1);
92102 
92103 --
92104 BEGIN
92105 --
92106 IF g_log_enabled THEN
92107       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
92108 END IF;
92109 --
92110 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92111 
92112       trace
92113          (p_msg      => 'BEGIN of AcctLineType_158'
92114          ,p_level    => C_LEVEL_PROCEDURE
92115          ,p_module   => l_log_module);
92116 
92117 END IF;
92118 --
92119 l_component_type             := 'AMB_JLT';
92120 l_component_code             := 'AP_LIAB_PREPAY_AOS_BS';
92121 l_component_type_code        := 'S';
92122 l_component_appl_id          :=  200;
92123 l_amb_context_code           := 'DEFAULT';
92124 l_entity_code                := 'AP_INVOICES';
92125 l_event_class_code           := 'PREPAYMENTS';
92126 l_event_type_code            := 'PREPAYMENTS_ALL';
92127 l_line_definition_owner_code := 'S';
92128 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
92129 --
92130 l_balance_type_code          := 'A';
92131 l_segment                     := NULL;
92132 l_ccid                        := NULL;
92133 l_adr_transaction_coa_id      := NULL;
92134 l_adr_accounting_coa_id       := NULL;
92135 l_adr_flexfield_segment_code  := NULL;
92136 l_adr_flex_value_set_id       := NULL;
92137 l_adr_value_type_code         := NULL;
92138 l_adr_value_combination_id    := NULL;
92139 l_adr_value_segment_code      := NULL;
92143 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92140 
92141 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
92142 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92144 l_budgetary_control_flag     := 'N';
92145 
92146 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92147 l_bflow_applied_to_amt       := NULL; -- 5132302
92148 l_entered_amt_idx            := NULL;          -- 4262811
92149 l_accted_amt_idx             := NULL;          -- 4262811
92150 l_acc_rev_flag               := NULL;          -- 4262811
92151 l_accrual_line_num           := NULL;          -- 4262811
92152 l_tmp_amt                    := NULL;          -- 4262811
92153 --
92154  
92155 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92156     l_balance_type_code <> 'B' THEN
92157 IF NVL(p_source_15,'
92158 ') =  'BALANCING_SEGMENT' AND 
92159 NVL(p_source_135,'
92160 ') <>  'Y'
92161  THEN 
92162 
92163    --
92164    XLA_AE_LINES_PKG.SetNewLine;
92165 
92166    p_balance_type_code          := l_balance_type_code;
92167    -- set the flag so later we will know whether the gain loss line needs to be created
92168    
92169    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92170      p_actual_flag :='A';
92171    END IF;
92172 
92173    --
92174    -- bulk performance
92175    --
92176    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92177                                       p_header_num   => 0); -- 4262811
92178    --
92179    -- set accounting line options
92180    --
92181    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92182            p_natural_side_code          => 'C'
92183          , p_gain_or_loss_flag          => 'N'
92184          , p_gl_transfer_mode_code      => 'S'
92185          , p_acct_entry_type_code       => 'A'
92186          , p_switch_side_flag           => 'Y'
92187          , p_merge_duplicate_code       => 'A'
92188          );
92189    --
92190    l_acc_rev_natural_side_code := 'D';  -- 4262811
92191    -- 
92192    --
92193    -- set accounting line type info
92194    --
92195    xla_ae_lines_pkg.SetAcctLineType
92196       (p_component_type             => l_component_type
92197       ,p_event_type_code            => l_event_type_code
92198       ,p_line_definition_owner_code => l_line_definition_owner_code
92199       ,p_line_definition_code       => l_line_definition_code
92200       ,p_accounting_line_code       => l_component_code
92201       ,p_accounting_line_type_code  => l_component_type_code
92202       ,p_accounting_line_appl_id    => l_component_appl_id
92203       ,p_amb_context_code           => l_amb_context_code
92204       ,p_entity_code                => l_entity_code
92205       ,p_event_class_code           => l_event_class_code);
92206    --
92207    -- set accounting class
92208    --
92209    xla_ae_lines_pkg.SetAcctClass(
92210            p_accounting_class_code  => 'LIABILITY'
92211          , p_ae_header_id           => l_ae_header_id
92212          );
92213 
92214    --
92215    -- set rounding class
92216    --
92217    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92218                       'LIABILITY';
92219 
92220    --
92221    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92222    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92223    --
92224    -- bulk performance
92225    --
92226    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92227 
92228    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92229       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92230 
92231    -- 4955764
92232    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92233       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92234 
92235    -- 4458381 Public Sector Enh
92236    
92237    --
92238    -- set accounting attributes for the line type
92239    --
92240    l_entered_amt_idx := 23;
92241    l_accted_amt_idx  := 28;
92242    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92243    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92244    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
92245    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92246    l_rec_acct_attrs.array_num_value(2)  := 
92247 xla_ae_sources_pkg.GetSystemSourceNum(
92248    p_source_code           => 'XLA_EVENT_APPL_ID'
92249  , p_source_type_code      => 'Y'
92250  , p_source_application_id =>  602
92251 );
92252    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92253    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
92254    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92255    l_rec_acct_attrs.array_char_value(4)  := 
92256 xla_ae_sources_pkg.GetSystemSourceChar(
92257    p_source_code           => 'XLA_ENTITY_CODE'
92258  , p_source_type_code      => 'Y'
92259  , p_source_application_id =>  602
92260 );
92261    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92262    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
92263    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92267    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92264    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
92265    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92266    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
92268    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
92269    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92270    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
92271    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92272    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
92273    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92274    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
92275    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92276    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
92277    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92278    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
92279    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
92280    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
92281    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
92282    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
92283    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
92284    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
92285    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
92286    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
92287    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
92288    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
92289    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
92290    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
92291    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
92292    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
92293    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
92294    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
92295    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
92296    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
92297    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
92298    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
92299    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
92300    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
92301    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
92302    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
92303    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
92304    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
92305    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
92306    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
92307    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
92308    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
92309    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
92310    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
92311    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
92312    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
92313    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
92314    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
92315    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
92316    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
92317    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
92318    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
92319    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
92320    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
92321    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
92322    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
92323    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
92324    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
92325    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
92326    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
92327    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
92328    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
92329    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
92330    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
92331    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
92332    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
92333    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
92334    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
92335    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
92336    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
92337    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
92338    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
92339 
92340    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92341    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92342 
92343    ---------------------------------------------------------------------------------------------------------------
92344    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92345    ---------------------------------------------------------------------------------------------------------------
92349    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92346    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92347 
92348    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92350 
92351    IF xla_accounting_cache_pkg.GetValueChar
92352          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92353          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92354    AND l_bflow_method_code = 'PRIOR_ENTRY'
92355 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92356    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92357          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92358        )
92359    THEN
92360          xla_ae_lines_pkg.BflowUpgEntry
92361            (p_business_method_code    => l_bflow_method_code
92362            ,p_business_class_code     => l_bflow_class_code
92363            ,p_balance_type            => l_balance_type_code);
92364    ELSE
92365       NULL;
92366 XLA_AE_LINES_PKG.business_flow_validation(
92367                                 p_business_method_code     => l_bflow_method_code
92368                                ,p_business_class_code      => l_bflow_class_code
92369                                ,p_inherit_description_flag => l_inherit_desc_flag);
92370    END IF;
92371 
92372    --
92373    -- call analytical criteria
92374    --
92375    
92376 
92377 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
92378 xla_ae_lines_pkg.SetAnalyticalCriteria(
92379    p_analytical_criterion_name    => 'Payables Custom Source'
92380  , p_analytical_criterion_owner   => 'S'
92381  , p_analytical_criterion_code    => 'PAYABLES_CUSTOM_SOURCE'
92382  , p_amb_context_code             => 'DEFAULT'
92383  , p_balancing_flag               => 'N'
92384  
92385  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.INVOICE_CATEGORY(
92386 p_source_163
92387 , p_source_57
92388 , p_source_63))
92389  , p_analytical_detail_num_1     =>  NULL
92390  , p_analytical_detail_date_1    =>  NULL
92391 
92392  , p_ae_header_id                 => l_ae_header_id
92393 )
92394 ;
92395 --
92396 
92397    --
92398    -- call description
92399    --
92400    
92401 xla_ae_lines_pkg.SetLineDescription(
92402    p_ae_header_id => l_ae_header_id
92403   ,p_description  => Description_1 (
92404      p_application_id         => p_application_id
92405    , p_ae_header_id           => l_ae_header_id 
92406 , p_source_1 => p_source_1
92407    )
92408 );
92409 
92410 
92411    --
92412    -- call ADRs
92413    -- Bug 4922099
92414    --
92415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92416         (NVL(l_actual_upg_option, 'N') = 'O') OR
92417         (NVL(l_enc_upg_option, 'N') = 'O')
92418       )
92419    THEN
92420    NULL;
92421    --
92422    --
92423    
92424   l_ccid := AcctDerRule_34(
92425            p_application_id           => p_application_id
92426          , p_ae_header_id             => l_ae_header_id 
92427 , p_source_34 => p_source_34
92428          , x_transaction_coa_id       => l_adr_transaction_coa_id
92429          , x_accounting_coa_id        => l_adr_accounting_coa_id
92430          , x_value_type_code          => l_adr_value_type_code
92431          , p_side                     => 'NA'
92432    );
92433 
92434    xla_ae_lines_pkg.set_ccid(
92435     p_code_combination_id          => l_ccid
92436   , p_value_type_code              => l_adr_value_type_code
92437   , p_transaction_coa_id           => l_adr_transaction_coa_id
92438   , p_accounting_coa_id            => l_adr_accounting_coa_id
92439   , p_adr_code                     => 'AP_LIAB'
92440   , p_adr_type_code                => 'S'
92441   , p_component_type               => l_component_type
92442   , p_component_code               => l_component_code
92443   , p_component_type_code          => l_component_type_code
92444   , p_component_appl_id            => l_component_appl_id
92445   , p_amb_context_code             => l_amb_context_code
92446   , p_side                         => 'NA'
92447   );
92448 
92449 
92450    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
92451      p_to_segment_code         => 'GL_BALANCING'
92452    , p_segment_value           => C_CHAR
92453    , p_from_segment_code       => NULL
92454    , p_from_combination_id     => NULL
92455    , p_value_type_code         => NULL
92456    , p_transaction_coa_id      => null
92457    , p_accounting_coa_id       => null
92458    , p_flexfield_segment_code  => NULL
92459    , p_flex_value_set_id       => NULL
92460    , p_adr_code                => NULL
92461    , p_adr_type_code           => NULL
92462    , p_component_type          => l_component_type
92463    , p_component_code          => l_component_code
92464    , p_component_type_code     => l_component_type_code
92465    , p_component_appl_id       => l_component_appl_id
92466    , p_amb_context_code        => l_amb_context_code
92467    , p_entity_code             => 'AP_INVOICES'
92468    , p_event_class_code        => 'PREPAYMENTS'
92469    , p_side                    => 'NA'
92470    );
92471    --
92472 
92473 
92474    --
92475    --
92476    END IF;
92477    --
92481         ) AND
92478    -- Bug 4922099
92479    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92480           (NVL(l_enc_upg_option, 'N') = 'O')
92482         (l_bflow_method_code = 'PRIOR_ENTRY')
92483       )
92484    THEN
92485       IF
92486       --
92487       1 = 2
92488       --
92489       THEN
92490       xla_accounting_err_pkg.build_message
92491                                     (p_appli_s_name            => 'XLA'
92492                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92493                                     ,p_token_1                 => 'LINE_NUMBER'
92494                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92495                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92496                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92497                                                                              l_component_type
92498                                                                             ,l_component_code
92499                                                                             ,l_component_type_code
92500                                                                             ,l_component_appl_id
92501                                                                             ,l_amb_context_code
92502                                                                             ,l_entity_code
92503                                                                             ,l_event_class_code
92504                                                                            )
92505                                     ,p_token_3                 => 'OWNER'
92506                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92507                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92508                                                                           ,p_lookup_code    => l_component_type_code
92509                                                                          )
92510                                     ,p_token_4                 => 'PRODUCT_NAME'
92511                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92512                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92513                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92514                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92515                                     ,p_ae_header_id            =>  NULL
92516                                        );
92517 
92518         IF (C_LEVEL_ERROR>= g_log_level) THEN
92519                  trace
92520                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92521                       ,p_level    => C_LEVEL_ERROR
92522                       ,p_module   => l_log_module);
92523         END IF;
92524       END IF;
92525    END IF;
92526    --
92527    --
92528    ------------------------------------------------------------------------------------------------
92529    -- 4219869 Business Flow
92530    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92531    -- Prior Entry.  Currently, the following code is always generated.
92532    ------------------------------------------------------------------------------------------------
92533    XLA_AE_LINES_PKG.ValidateCurrentLine;
92534 
92535    ------------------------------------------------------------------------------------
92536    -- 4219869 Business Flow
92537    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92538    ------------------------------------------------------------------------------------
92539    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92540 
92541    ----------------------------------------------------------------------------------
92542    -- 4219869 Business Flow
92543    -- Update journal entry status -- Need to generate this within IF <condition>
92544    ----------------------------------------------------------------------------------
92545    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92546          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92547          ,p_balance_type_code => l_balance_type_code
92548          );
92549 
92550    -------------------------------------------------------------------------------------------
92551    -- 4262811 - Generate the Accrual Reversal lines
92552    -------------------------------------------------------------------------------------------
92553    BEGIN
92554       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92555                               (g_array_event(p_event_id).array_value_num('header_index'));
92556       IF l_acc_rev_flag IS NULL THEN
92557          l_acc_rev_flag := 'N';
92558       END IF;
92559    EXCEPTION
92560       WHEN OTHERS THEN
92561          l_acc_rev_flag := 'N';
92562    END;
92563    --
92564    IF (l_acc_rev_flag = 'Y') THEN
92565 
92566        -- 4645092  ------------------------------------------------------------------------------
92567        -- To allow MPA report to determine if it should generate report process
92568        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92569        ------------------------------------------------------------------------------------------
92570 
92571        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92575    -- Bug 4922099
92572        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92573    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92574    -- call ADRs
92576    --
92577    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92578         (NVL(l_actual_upg_option, 'N') = 'O') OR
92579         (NVL(l_enc_upg_option, 'N') = 'O')
92580       )
92581    THEN
92582    NULL;
92583    --
92584    --
92585    
92586   l_ccid := AcctDerRule_34(
92587            p_application_id           => p_application_id
92588          , p_ae_header_id             => l_ae_header_id 
92589 , p_source_34 => p_source_34
92590          , x_transaction_coa_id       => l_adr_transaction_coa_id
92591          , x_accounting_coa_id        => l_adr_accounting_coa_id
92592          , x_value_type_code          => l_adr_value_type_code
92593          , p_side                     => 'NA'
92594    );
92595 
92596    xla_ae_lines_pkg.set_ccid(
92597     p_code_combination_id          => l_ccid
92598   , p_value_type_code              => l_adr_value_type_code
92599   , p_transaction_coa_id           => l_adr_transaction_coa_id
92600   , p_accounting_coa_id            => l_adr_accounting_coa_id
92601   , p_adr_code                     => 'AP_LIAB'
92602   , p_adr_type_code                => 'S'
92603   , p_component_type               => l_component_type
92604   , p_component_code               => l_component_code
92605   , p_component_type_code          => l_component_type_code
92606   , p_component_appl_id            => l_component_appl_id
92607   , p_amb_context_code             => l_amb_context_code
92608   , p_side                         => 'NA'
92609   );
92610 
92611 
92612    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
92613      p_to_segment_code         => 'GL_BALANCING'
92614    , p_segment_value           => C_CHAR
92615    , p_from_segment_code       => NULL
92616    , p_from_combination_id     => NULL
92617    , p_value_type_code         => NULL
92618    , p_transaction_coa_id      => null
92619    , p_accounting_coa_id       => null
92620    , p_flexfield_segment_code  => NULL
92621    , p_flex_value_set_id       => NULL
92622    , p_adr_code                => NULL
92623    , p_adr_type_code           => NULL
92624    , p_component_type          => l_component_type
92625    , p_component_code          => l_component_code
92626    , p_component_type_code     => l_component_type_code
92627    , p_component_appl_id       => l_component_appl_id
92628    , p_amb_context_code        => l_amb_context_code
92629    , p_entity_code             => 'AP_INVOICES'
92630    , p_event_class_code        => 'PREPAYMENTS'
92631    , p_side                    => 'NA'
92632    );
92633    --
92634 
92635 
92636    --
92637    --
92638    END IF;
92639 
92640        --
92641        -- Update the line information that should be overwritten
92642        --
92643        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92644                                          p_header_num   => 1);
92645        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92646 
92647        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92648 
92649        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92650           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92651        END IF;
92652 
92653       --
92654       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92655       --
92656       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92657           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92658       ELSE
92659           ---------------------------------------------------------------------------------------------------
92660           -- 4262811a Switch Sign
92661           ---------------------------------------------------------------------------------------------------
92662           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92663           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92664                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92665           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92666                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92667           -- 5132302
92668           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92669                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92670 
92671       END IF;
92672 
92673       -- 4955764
92674       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92675       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92676 
92677 
92678       XLA_AE_LINES_PKG.ValidateCurrentLine;
92679       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92680 
92681       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92682                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92683                ,p_balance_type_code => l_balance_type_code);
92684 
92685    END IF;
92686 
92690      -- No MPA option is assigned.
92687    -----------------------------------------------------------------------------------------
92688    -- 4262811 Multiperiod Accounting
92689    -----------------------------------------------------------------------------------------
92691 
92692 
92693 END IF;
92694 END IF;
92695 --
92696 
92697 --
92698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92699    trace
92700       (p_msg      => 'END of AcctLineType_158'
92701       ,p_level    => C_LEVEL_PROCEDURE
92702       ,p_module   => l_log_module);
92703 END IF;
92704 --
92705 EXCEPTION
92706   WHEN xla_exceptions_pkg.application_exception THEN
92707       RAISE;
92708   WHEN OTHERS THEN
92709        xla_exceptions_pkg.raise_message
92710            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_158');
92711 END AcctLineType_158;
92712 --
92713 
92714 ---------------------------------------
92715 --
92716 -- PRIVATE FUNCTION
92717 --         AcctLineType_159
92718 --
92719 ---------------------------------------
92720 PROCEDURE AcctLineType_159 (
92721   p_application_id        IN NUMBER
92722  ,p_event_id              IN NUMBER
92723  ,p_calculate_acctd_flag  IN VARCHAR2
92724  ,p_calculate_g_l_flag    IN VARCHAR2
92725  ,p_actual_flag           IN OUT VARCHAR2
92726  ,p_balance_type_code     OUT VARCHAR2
92727  ,p_gain_or_loss_ref      OUT VARCHAR2
92728  
92729 --Accounting Reversal Indicator
92730  , p_source_52            IN VARCHAR2
92731 --Distribution Link Type
92732  , p_source_54            IN VARCHAR2
92733 --Invoice Identifier
92734  , p_source_57            IN NUMBER
92735 --Payables Encumbrance Upgrade Credit Account
92736  , p_source_64            IN NUMBER
92737 --Payables Encumbrance Upgrade Credit Amount
92738  , p_source_65            IN NUMBER
92739 --Invoice Currency Code
92740  , p_source_66            IN VARCHAR2
92741 --Payables Encumbrance Upgrade Credit Base Amount
92742  , p_source_67            IN NUMBER
92743 --Payables Encumbrance Upgrade Debit Account
92744  , p_source_68            IN NUMBER
92745 --Payables Encumbrance Upgrade Debit Amount
92746  , p_source_69            IN NUMBER
92747 --Payables Encumbrance Upgrade Debit Base Amount
92748  , p_source_70            IN NUMBER
92749 --Payables Encumbrance Upgrade Option
92750  , p_source_71            IN VARCHAR2
92751 --Deferred Accounting End Date
92752  , p_source_76            IN DATE
92753 --Deferred Accounting Option
92754  , p_source_77            IN VARCHAR2
92755 --Deferred Accounting Start Date
92756  , p_source_78            IN DATE
92757 --Override Accounted Amount Indicator
92758  , p_source_79            IN VARCHAR2
92759  , p_source_79_meaning    IN VARCHAR2
92760 --Third Party Type
92761  , p_source_82            IN VARCHAR2
92762 --Invoice Distribution Tax Line Identifier
92763  , p_source_85            IN NUMBER
92764 --Invoice Distribution Tax Distribution Identifier from Tax
92765  , p_source_86            IN NUMBER
92766 --Invoice Distribution Summary Tax Line Identifier
92767  , p_source_87            IN NUMBER
92768 --Payables Upgrade Credit Encumbrance Type Identifier
92769  , p_source_88            IN NUMBER
92770 --Payables Upgrade Debit Encumbrance Type Identifier
92771  , p_source_89            IN NUMBER
92772 --Business Flow Accounts Payable Application Identifier
92773  , p_source_90            IN NUMBER
92774 --Prepayment Application Distribution Identifier
92775  , p_source_127            IN NUMBER
92776 --Business Flow Recipient Invoice Distribution Identifier
92777  , p_source_128            IN NUMBER
92778 --Business Flow Recipient Invoice Identifier
92779  , p_source_129            IN NUMBER
92780 --Upgrade Encumbrance Credit Account Class
92781  , p_source_130            IN VARCHAR2
92782 --Upgrade Encumbrance Debit Account Class
92783  , p_source_131            IN VARCHAR2
92784 --Prepayment Distribution Amount
92785  , p_source_132            IN NUMBER
92786 --Prepayment Distribution (Invoice Rate) Ledger Amount
92787  , p_source_133            IN NUMBER
92788 --Identifier of the Prepayment Application Reversed
92789  , p_source_134            IN NUMBER
92790 --Business Flow Prepayment Invoice Distribution Type
92791  , p_source_139            IN VARCHAR2
92792 --Business Flow Prepayment Invoice Entity Code
92793  , p_source_140            IN VARCHAR2
92794 --Prepayment Distribution Type
92795  , p_source_143            IN VARCHAR2
92796 )
92797 IS
92798 
92799 l_component_type              VARCHAR2(80);
92800 l_component_code              VARCHAR2(30);
92801 l_component_type_code         VARCHAR2(1);
92802 l_component_appl_id           INTEGER;
92803 l_amb_context_code            VARCHAR2(30);
92804 l_entity_code                 VARCHAR2(30);
92805 l_event_class_code            VARCHAR2(30);
92806 l_ae_header_id                NUMBER;
92807 l_event_type_code             VARCHAR2(30);
92808 l_line_definition_code        VARCHAR2(30);
92809 l_line_definition_owner_code  VARCHAR2(1);
92810 --
92811 -- adr variables
92812 l_segment                     VARCHAR2(30);
92813 l_ccid                        NUMBER;
92814 l_adr_transaction_coa_id      NUMBER;
92815 l_adr_accounting_coa_id       NUMBER;
92816 l_adr_flexfield_segment_code  VARCHAR2(30);
92817 l_adr_flex_value_set_id       NUMBER;
92818 l_adr_value_type_code         VARCHAR2(30);
92819 l_adr_value_combination_id    NUMBER;
92823 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92820 l_adr_value_segment_code      VARCHAR2(30);
92821 
92822 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92824 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92825 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92826 
92827 -- 4262811 Variables ------------------------------------------------------------------------------------------
92828 l_entered_amt_idx             NUMBER;
92829 l_accted_amt_idx              NUMBER;
92830 l_acc_rev_flag                VARCHAR2(1);
92831 l_accrual_line_num            NUMBER;
92832 l_tmp_amt                     NUMBER;
92833 l_acc_rev_natural_side_code   VARCHAR2(1);
92834 
92835 l_num_entries                 NUMBER;
92836 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92837 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92838 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92839 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92840 l_recog_line_1                NUMBER;
92841 l_recog_line_2                NUMBER;
92842 
92843 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92844 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92845 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92846 
92847 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92848 
92849 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92850 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92851 
92852 ---------------------------------------------------------------------------------------------------------------
92853 
92854 
92855 --
92856 -- bulk performance
92857 --
92858 l_balance_type_code           VARCHAR2(1);
92859 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92860 l_log_module                  VARCHAR2(240);
92861 
92862 --
92863 -- Upgrade strategy
92864 --
92865 l_actual_upg_option           VARCHAR2(1);
92866 l_enc_upg_option           VARCHAR2(1);
92867 
92868 --
92869 BEGIN
92870 --
92871 IF g_log_enabled THEN
92872       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
92873 END IF;
92874 --
92875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92876 
92877       trace
92878          (p_msg      => 'BEGIN of AcctLineType_159'
92879          ,p_level    => C_LEVEL_PROCEDURE
92880          ,p_module   => l_log_module);
92881 
92882 END IF;
92883 --
92884 l_component_type             := 'AMB_JLT';
92885 l_component_code             := 'AP_LIAB_PREPAY_APP';
92886 l_component_type_code        := 'S';
92887 l_component_appl_id          :=  200;
92888 l_amb_context_code           := 'DEFAULT';
92889 l_entity_code                := 'AP_INVOICES';
92890 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
92891 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
92892 l_line_definition_owner_code := 'S';
92893 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
92894 --
92895 l_balance_type_code          := 'A';
92896 l_segment                     := NULL;
92897 l_ccid                        := NULL;
92898 l_adr_transaction_coa_id      := NULL;
92899 l_adr_accounting_coa_id       := NULL;
92900 l_adr_flexfield_segment_code  := NULL;
92901 l_adr_flex_value_set_id       := NULL;
92902 l_adr_value_type_code         := NULL;
92903 l_adr_value_combination_id    := NULL;
92904 l_adr_value_segment_code      := NULL;
92905 
92906 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
92907 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92908 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92909 l_budgetary_control_flag     := 'N';
92910 
92911 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92912 l_bflow_applied_to_amt       := NULL; -- 5132302
92913 l_entered_amt_idx            := NULL;          -- 4262811
92914 l_accted_amt_idx             := NULL;          -- 4262811
92915 l_acc_rev_flag               := NULL;          -- 4262811
92916 l_accrual_line_num           := NULL;          -- 4262811
92917 l_tmp_amt                    := NULL;          -- 4262811
92918 --
92919  
92920 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92921     l_balance_type_code <> 'B' THEN
92922 IF NVL(p_source_143,'
92923 ') =  'PREPAY APPL' OR 
92924 NVL(p_source_143,'
92925 ') =  'FINAL PAYMENT ROUNDING' OR 
92926 NVL(p_source_143,'
92927 ') =  'PREPAY APPL REC TAX' OR 
92928 NVL(p_source_143,'
92929 ') =  'PREPAY APPL NONREC TAX'
92930  THEN 
92931 
92932    --
92933    XLA_AE_LINES_PKG.SetNewLine;
92934 
92935    p_balance_type_code          := l_balance_type_code;
92936    -- set the flag so later we will know whether the gain loss line needs to be created
92937    
92938    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92939      p_actual_flag :='A';
92940    END IF;
92941 
92942    --
92943    -- bulk performance
92944    --
92945    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92946                                       p_header_num   => 0); -- 4262811
92947    --
92948    -- set accounting line options
92952          , p_gain_or_loss_flag          => 'N'
92949    --
92950    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92951            p_natural_side_code          => 'C'
92953          , p_gl_transfer_mode_code      => 'S'
92954          , p_acct_entry_type_code       => 'A'
92955          , p_switch_side_flag           => 'Y'
92956          , p_merge_duplicate_code       => 'A'
92957          );
92958    --
92959    l_acc_rev_natural_side_code := 'D';  -- 4262811
92960    -- 
92961    --
92962    -- set accounting line type info
92963    --
92964    xla_ae_lines_pkg.SetAcctLineType
92965       (p_component_type             => l_component_type
92966       ,p_event_type_code            => l_event_type_code
92967       ,p_line_definition_owner_code => l_line_definition_owner_code
92968       ,p_line_definition_code       => l_line_definition_code
92969       ,p_accounting_line_code       => l_component_code
92970       ,p_accounting_line_type_code  => l_component_type_code
92971       ,p_accounting_line_appl_id    => l_component_appl_id
92972       ,p_amb_context_code           => l_amb_context_code
92973       ,p_entity_code                => l_entity_code
92974       ,p_event_class_code           => l_event_class_code);
92975    --
92976    -- set accounting class
92977    --
92978    xla_ae_lines_pkg.SetAcctClass(
92979            p_accounting_class_code  => 'LIABILITY'
92980          , p_ae_header_id           => l_ae_header_id
92981          );
92982 
92983    --
92984    -- set rounding class
92985    --
92986    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92987                       'LIABILITY';
92988 
92989    --
92990    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92991    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92992    --
92993    -- bulk performance
92994    --
92995    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92996 
92997    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92998       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92999 
93000    -- 4955764
93001    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93002       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93003 
93004    -- 4458381 Public Sector Enh
93005    
93006    --
93007    -- set accounting attributes for the line type
93008    --
93009    l_entered_amt_idx := 25;
93010    l_accted_amt_idx  := 27;
93011    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93012    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93013    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
93014    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
93015    l_rec_acct_attrs.array_num_value(2)  := 
93016 xla_ae_sources_pkg.GetSystemSourceNum(
93017    p_source_code           => 'XLA_EVENT_APPL_ID'
93018  , p_source_type_code      => 'Y'
93019  , p_source_application_id =>  602
93020 );
93021    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
93022    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
93023    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
93024    l_rec_acct_attrs.array_char_value(4)  := 
93025 xla_ae_sources_pkg.GetSystemSourceChar(
93026    p_source_code           => 'XLA_ENTITY_CODE'
93027  , p_source_type_code      => 'Y'
93028  , p_source_application_id =>  602
93029 );
93030    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
93031    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
93032    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
93033    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
93034    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
93035    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
93036    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93037    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
93038    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
93039    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
93040    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
93041    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_128);
93042    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93043    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_129);
93044    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
93045    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
93046    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
93047    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
93048    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
93049    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
93050    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
93051    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
93052    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
93053    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
93054    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
93055    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
93056    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
93060    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
93057    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
93058    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
93059    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
93061    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
93062    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
93063    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
93064    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
93065    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
93066    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
93067    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
93068    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
93069    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
93070    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
93071    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
93072    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
93073    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
93074    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
93075    l_rec_acct_attrs.array_num_value(27)  := p_source_133;
93076    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
93077    l_rec_acct_attrs.array_date_value(28)  := p_source_76;
93078    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
93079    l_rec_acct_attrs.array_char_value(29)  := p_source_77;
93080    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
93081    l_rec_acct_attrs.array_date_value(30)  := p_source_78;
93082    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
93083    l_rec_acct_attrs.array_char_value(31)  := p_source_79;
93084    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
93085    l_rec_acct_attrs.array_char_value(32)  := p_source_82;
93086    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
93087    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_134);
93088    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
93089    l_rec_acct_attrs.array_char_value(34)  := p_source_54;
93090    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
93091    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
93092    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
93093    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
93094    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
93095    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
93096    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
93097    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
93098    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
93099    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
93100 
93101    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93102    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93103 
93104    ---------------------------------------------------------------------------------------------------------------
93105    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93106    ---------------------------------------------------------------------------------------------------------------
93107    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93108 
93109    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93110    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93111 
93112    IF xla_accounting_cache_pkg.GetValueChar
93113          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93114          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93115    AND l_bflow_method_code = 'PRIOR_ENTRY'
93116 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93117    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93118          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93119        )
93120    THEN
93121          xla_ae_lines_pkg.BflowUpgEntry
93122            (p_business_method_code    => l_bflow_method_code
93123            ,p_business_class_code     => l_bflow_class_code
93124            ,p_balance_type            => l_balance_type_code);
93125    ELSE
93126       NULL;
93127 XLA_AE_LINES_PKG.business_flow_validation(
93128                                 p_business_method_code     => l_bflow_method_code
93129                                ,p_business_class_code      => l_bflow_class_code
93130                                ,p_inherit_description_flag => l_inherit_desc_flag);
93131    END IF;
93132 
93133    --
93134    -- call analytical criteria
93135    --
93136    -- Inherited Analytical Criteria for business flow method of Prior Entry.
93137    --
93138    -- call description
93139    --
93140    -- No description or it is inherited.
93141    --
93142    -- call ADRs
93143    -- Bug 4922099
93144    --
93145    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93146         (NVL(l_actual_upg_option, 'N') = 'O') OR
93147         (NVL(l_enc_upg_option, 'N') = 'O')
93148       )
93149    THEN
93150    NULL;
93151    --
93152    --
93153    
93154    --
93155    --
93156    END IF;
93157    --
93158    -- Bug 4922099
93159    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93160           (NVL(l_enc_upg_option, 'N') = 'O')
93164    THEN
93161         ) AND
93162         (l_bflow_method_code = 'PRIOR_ENTRY')
93163       )
93165       IF
93166       --
93167       1 = 1
93168       --
93169       THEN
93170       xla_accounting_err_pkg.build_message
93171                                     (p_appli_s_name            => 'XLA'
93172                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93173                                     ,p_token_1                 => 'LINE_NUMBER'
93174                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93175                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93176                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93177                                                                              l_component_type
93178                                                                             ,l_component_code
93179                                                                             ,l_component_type_code
93180                                                                             ,l_component_appl_id
93181                                                                             ,l_amb_context_code
93182                                                                             ,l_entity_code
93183                                                                             ,l_event_class_code
93184                                                                            )
93185                                     ,p_token_3                 => 'OWNER'
93186                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93187                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93188                                                                           ,p_lookup_code    => l_component_type_code
93189                                                                          )
93190                                     ,p_token_4                 => 'PRODUCT_NAME'
93191                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93192                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93193                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93194                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93195                                     ,p_ae_header_id            =>  NULL
93196                                        );
93197 
93198         IF (C_LEVEL_ERROR>= g_log_level) THEN
93199                  trace
93200                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93201                       ,p_level    => C_LEVEL_ERROR
93202                       ,p_module   => l_log_module);
93203         END IF;
93204       END IF;
93205    END IF;
93206    --
93207    --
93208    ------------------------------------------------------------------------------------------------
93209    -- 4219869 Business Flow
93210    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93211    -- Prior Entry.  Currently, the following code is always generated.
93212    ------------------------------------------------------------------------------------------------
93213    -- No ValidateCurrentLine for business flow method of Prior Entry
93214 
93215    ------------------------------------------------------------------------------------
93216    -- 4219869 Business Flow
93217    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93218    ------------------------------------------------------------------------------------
93219    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93220 
93221    ----------------------------------------------------------------------------------
93222    -- 4219869 Business Flow
93223    -- Update journal entry status -- Need to generate this within IF <condition>
93224    ----------------------------------------------------------------------------------
93225    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93226          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93227          ,p_balance_type_code => l_balance_type_code
93228          );
93229 
93230    -------------------------------------------------------------------------------------------
93231    -- 4262811 - Generate the Accrual Reversal lines
93232    -------------------------------------------------------------------------------------------
93233    BEGIN
93234       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93235                               (g_array_event(p_event_id).array_value_num('header_index'));
93236       IF l_acc_rev_flag IS NULL THEN
93237          l_acc_rev_flag := 'N';
93238       END IF;
93239    EXCEPTION
93240       WHEN OTHERS THEN
93241          l_acc_rev_flag := 'N';
93242    END;
93243    --
93244    IF (l_acc_rev_flag = 'Y') THEN
93245 
93246        -- 4645092  ------------------------------------------------------------------------------
93247        -- To allow MPA report to determine if it should generate report process
93248        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93249        ------------------------------------------------------------------------------------------
93250 
93251        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93252        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93256    --
93253    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93254    -- call ADRs
93255    -- Bug 4922099
93257    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93258         (NVL(l_actual_upg_option, 'N') = 'O') OR
93259         (NVL(l_enc_upg_option, 'N') = 'O')
93260       )
93261    THEN
93262    NULL;
93263    --
93264    --
93265    
93266    --
93267    --
93268    END IF;
93269 
93270        --
93271        -- Update the line information that should be overwritten
93272        --
93273        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93274                                          p_header_num   => 1);
93275        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93276 
93277        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93278 
93279        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93280           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93281        END IF;
93282 
93283       --
93284       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93285       --
93286       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93287           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93288       ELSE
93289           ---------------------------------------------------------------------------------------------------
93290           -- 4262811a Switch Sign
93291           ---------------------------------------------------------------------------------------------------
93292           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93293           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93294                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93295           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93296                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93297           -- 5132302
93298           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93299                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93300 
93301       END IF;
93302 
93303       -- 4955764
93304       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93305       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93306 
93307 
93308       XLA_AE_LINES_PKG.ValidateCurrentLine;
93309       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93310 
93311       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93312                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93313                ,p_balance_type_code => l_balance_type_code);
93314 
93315    END IF;
93316 
93317    -----------------------------------------------------------------------------------------
93318    -- 4262811 Multiperiod Accounting
93319    -----------------------------------------------------------------------------------------
93320      -- No MPA option is assigned.
93321 
93322 
93323 END IF;
93324 END IF;
93325 --
93326 
93327 --
93328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93329    trace
93330       (p_msg      => 'END of AcctLineType_159'
93331       ,p_level    => C_LEVEL_PROCEDURE
93332       ,p_module   => l_log_module);
93333 END IF;
93334 --
93335 EXCEPTION
93336   WHEN xla_exceptions_pkg.application_exception THEN
93337       RAISE;
93338   WHEN OTHERS THEN
93339        xla_exceptions_pkg.raise_message
93340            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_159');
93341 END AcctLineType_159;
93342 --
93343 
93344 ---------------------------------------
93345 --
93346 -- PRIVATE FUNCTION
93347 --         AcctLineType_160
93348 --
93349 ---------------------------------------
93350 PROCEDURE AcctLineType_160 (
93351   p_application_id        IN NUMBER
93352  ,p_event_id              IN NUMBER
93353  ,p_calculate_acctd_flag  IN VARCHAR2
93354  ,p_calculate_g_l_flag    IN VARCHAR2
93355  ,p_actual_flag           IN OUT VARCHAR2
93356  ,p_balance_type_code     OUT VARCHAR2
93357  ,p_gain_or_loss_ref      OUT VARCHAR2
93358  
93359 --Payment Currency Code
93360  , p_source_13            IN VARCHAR2
93361 --Accounting Reversal Indicator
93362  , p_source_52            IN VARCHAR2
93363 --Distribution Link Type
93364  , p_source_54            IN VARCHAR2
93365 --Override Accounted Amount Indicator
93366  , p_source_79            IN VARCHAR2
93367  , p_source_79_meaning    IN VARCHAR2
93368 --Third Party Type
93369  , p_source_82            IN VARCHAR2
93370 --Invoice Distribution Tax Line Identifier
93371  , p_source_85            IN NUMBER
93372 --Invoice Distribution Tax Distribution Identifier from Tax
93373  , p_source_86            IN NUMBER
93374 --Invoice Distribution Summary Tax Line Identifier
93375  , p_source_87            IN NUMBER
93376 --Business Flow Accounts Payable Application Identifier
93377  , p_source_90            IN NUMBER
93378 --Business Flow Invoice Distribution Type
93379  , p_source_91            IN VARCHAR2
93383  , p_source_93            IN NUMBER
93380 --Business Flow Invoice Entity Code
93381  , p_source_92            IN VARCHAR2
93382 --Business Flow Invoice Distribution Identifier
93384 --Business Flow Invoice Identifier
93385  , p_source_94            IN NUMBER
93386 --When to Account for Payment Option
93387  , p_source_96            IN VARCHAR2
93388 --Payment Distribution Type
93389  , p_source_97            IN VARCHAR2
93390  , p_source_97_meaning    IN VARCHAR2
93391 --Payment Distribution Amount
93392  , p_source_98            IN NUMBER
93393 --Payment Distribution Identifier
93394  , p_source_103            IN NUMBER
93395 --Payment Distribution Reversed Identifier
93396  , p_source_111            IN NUMBER
93397 --Payment Distribution (Invoice Rate) Ledger Amount
93398  , p_source_116            IN NUMBER
93399 --Payment Type
93400  , p_source_122            IN VARCHAR2
93401  , p_source_122_meaning    IN VARCHAR2
93402 )
93403 IS
93404 
93405 l_component_type              VARCHAR2(80);
93406 l_component_code              VARCHAR2(30);
93407 l_component_type_code         VARCHAR2(1);
93408 l_component_appl_id           INTEGER;
93409 l_amb_context_code            VARCHAR2(30);
93410 l_entity_code                 VARCHAR2(30);
93411 l_event_class_code            VARCHAR2(30);
93412 l_ae_header_id                NUMBER;
93413 l_event_type_code             VARCHAR2(30);
93414 l_line_definition_code        VARCHAR2(30);
93415 l_line_definition_owner_code  VARCHAR2(1);
93416 --
93417 -- adr variables
93418 l_segment                     VARCHAR2(30);
93419 l_ccid                        NUMBER;
93420 l_adr_transaction_coa_id      NUMBER;
93421 l_adr_accounting_coa_id       NUMBER;
93422 l_adr_flexfield_segment_code  VARCHAR2(30);
93423 l_adr_flex_value_set_id       NUMBER;
93424 l_adr_value_type_code         VARCHAR2(30);
93425 l_adr_value_combination_id    NUMBER;
93426 l_adr_value_segment_code      VARCHAR2(30);
93427 
93428 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93429 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93430 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93431 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93432 
93433 -- 4262811 Variables ------------------------------------------------------------------------------------------
93434 l_entered_amt_idx             NUMBER;
93435 l_accted_amt_idx              NUMBER;
93436 l_acc_rev_flag                VARCHAR2(1);
93437 l_accrual_line_num            NUMBER;
93438 l_tmp_amt                     NUMBER;
93439 l_acc_rev_natural_side_code   VARCHAR2(1);
93440 
93441 l_num_entries                 NUMBER;
93442 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93443 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93444 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93445 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93446 l_recog_line_1                NUMBER;
93447 l_recog_line_2                NUMBER;
93448 
93449 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93450 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93451 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93452 
93453 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93454 
93455 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93456 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93457 
93458 ---------------------------------------------------------------------------------------------------------------
93459 
93460 
93461 --
93462 -- bulk performance
93463 --
93464 l_balance_type_code           VARCHAR2(1);
93465 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93466 l_log_module                  VARCHAR2(240);
93467 
93468 --
93469 -- Upgrade strategy
93470 --
93471 l_actual_upg_option           VARCHAR2(1);
93472 l_enc_upg_option           VARCHAR2(1);
93473 
93474 --
93475 BEGIN
93476 --
93477 IF g_log_enabled THEN
93478       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
93479 END IF;
93480 --
93481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93482 
93483       trace
93484          (p_msg      => 'BEGIN of AcctLineType_160'
93485          ,p_level    => C_LEVEL_PROCEDURE
93486          ,p_module   => l_log_module);
93487 
93488 END IF;
93489 --
93490 l_component_type             := 'AMB_JLT';
93491 l_component_code             := 'AP_LIAB_REF';
93492 l_component_type_code        := 'S';
93493 l_component_appl_id          :=  200;
93494 l_amb_context_code           := 'DEFAULT';
93495 l_entity_code                := 'AP_PAYMENTS';
93496 l_event_class_code           := 'REFUNDS';
93497 l_event_type_code            := 'REFUNDS_ALL';
93498 l_line_definition_owner_code := 'S';
93499 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
93500 --
93501 l_balance_type_code          := 'A';
93502 l_segment                     := NULL;
93503 l_ccid                        := NULL;
93504 l_adr_transaction_coa_id      := NULL;
93505 l_adr_accounting_coa_id       := NULL;
93506 l_adr_flexfield_segment_code  := NULL;
93507 l_adr_flex_value_set_id       := NULL;
93511 
93508 l_adr_value_type_code         := NULL;
93509 l_adr_value_combination_id    := NULL;
93510 l_adr_value_segment_code      := NULL;
93512 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
93513 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
93514 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93515 l_budgetary_control_flag     := 'N';
93516 
93517 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93518 l_bflow_applied_to_amt       := NULL; -- 5132302
93519 l_entered_amt_idx            := NULL;          -- 4262811
93520 l_accted_amt_idx             := NULL;          -- 4262811
93521 l_acc_rev_flag               := NULL;          -- 4262811
93522 l_accrual_line_num           := NULL;          -- 4262811
93523 l_tmp_amt                    := NULL;          -- 4262811
93524 --
93525  
93526 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93527     l_balance_type_code <> 'B' THEN
93528 IF NVL(p_source_96,'
93529 ') <>  'CLEAR_CLEAR' AND 
93530 (NVL(p_source_97,'
93531 ') =  'ROUNDING' OR 
93532 NVL(p_source_97,'
93533 ') =  'CASH' OR 
93534 NVL(p_source_97,'
93535 ') =  'DISCOUNT') AND 
93536 NVL(p_source_122,'
93537 ') =  'R'
93538  THEN 
93539 
93540    --
93541    XLA_AE_LINES_PKG.SetNewLine;
93542 
93543    p_balance_type_code          := l_balance_type_code;
93544    -- set the flag so later we will know whether the gain loss line needs to be created
93545    
93546    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
93547      p_actual_flag :='A';
93548    END IF;
93549 
93550    --
93551    -- bulk performance
93552    --
93553    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93554                                       p_header_num   => 0); -- 4262811
93555    --
93556    -- set accounting line options
93557    --
93558    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93559            p_natural_side_code          => 'D'
93560          , p_gain_or_loss_flag          => 'N'
93561          , p_gl_transfer_mode_code      => 'S'
93562          , p_acct_entry_type_code       => 'A'
93563          , p_switch_side_flag           => 'Y'
93564          , p_merge_duplicate_code       => 'A'
93565          );
93566    --
93567    l_acc_rev_natural_side_code := 'C';  -- 4262811
93568    -- 
93569    --
93570    -- set accounting line type info
93571    --
93572    xla_ae_lines_pkg.SetAcctLineType
93573       (p_component_type             => l_component_type
93574       ,p_event_type_code            => l_event_type_code
93575       ,p_line_definition_owner_code => l_line_definition_owner_code
93576       ,p_line_definition_code       => l_line_definition_code
93577       ,p_accounting_line_code       => l_component_code
93578       ,p_accounting_line_type_code  => l_component_type_code
93579       ,p_accounting_line_appl_id    => l_component_appl_id
93580       ,p_amb_context_code           => l_amb_context_code
93581       ,p_entity_code                => l_entity_code
93582       ,p_event_class_code           => l_event_class_code);
93583    --
93584    -- set accounting class
93585    --
93586    xla_ae_lines_pkg.SetAcctClass(
93587            p_accounting_class_code  => 'LIABILITY'
93588          , p_ae_header_id           => l_ae_header_id
93589          );
93590 
93591    --
93592    -- set rounding class
93593    --
93594    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93595                       'LIABILITY';
93596 
93597    --
93598    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93599    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93600    --
93601    -- bulk performance
93602    --
93603    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93604 
93605    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93606       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93607 
93608    -- 4955764
93609    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93610       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93611 
93612    -- 4458381 Public Sector Enh
93613    
93614    --
93615    -- set accounting attributes for the line type
93616    --
93617    l_entered_amt_idx := 9;
93618    l_accted_amt_idx  := 11;
93619    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
93620    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93621    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
93622    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
93623    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
93624    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93625    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
93626    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
93627    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
93628    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
93629    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
93630    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93634    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
93631    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
93632    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
93633    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
93635    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
93636    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
93637    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
93638    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
93639    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
93640    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
93641    l_rec_acct_attrs.array_num_value(11)  := p_source_116;
93642    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
93643    l_rec_acct_attrs.array_char_value(12)  := p_source_79;
93644    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
93645    l_rec_acct_attrs.array_char_value(13)  := p_source_82;
93646    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
93647    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_111);
93648    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
93649    l_rec_acct_attrs.array_char_value(15)  := p_source_54;
93650    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
93651    l_rec_acct_attrs.array_num_value(16)  := p_source_85;
93652    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
93653    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
93654    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
93655    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
93656 
93657    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93658    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93659 
93660    ---------------------------------------------------------------------------------------------------------------
93661    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93662    ---------------------------------------------------------------------------------------------------------------
93663    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93664 
93665    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93666    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93667 
93668    IF xla_accounting_cache_pkg.GetValueChar
93669          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93670          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93671    AND l_bflow_method_code = 'PRIOR_ENTRY'
93672 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93673    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93674          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93675        )
93676    THEN
93677          xla_ae_lines_pkg.BflowUpgEntry
93678            (p_business_method_code    => l_bflow_method_code
93679            ,p_business_class_code     => l_bflow_class_code
93680            ,p_balance_type            => l_balance_type_code);
93681    ELSE
93682       NULL;
93683 XLA_AE_LINES_PKG.business_flow_validation(
93684                                 p_business_method_code     => l_bflow_method_code
93685                                ,p_business_class_code      => l_bflow_class_code
93686                                ,p_inherit_description_flag => l_inherit_desc_flag);
93687    END IF;
93688 
93689    --
93690    -- call analytical criteria
93691    --
93692    -- Inherited Analytical Criteria for business flow method of Prior Entry.
93693    --
93694    -- call description
93695    --
93696    -- No description or it is inherited.
93697    --
93698    -- call ADRs
93699    -- Bug 4922099
93700    --
93701    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93702         (NVL(l_actual_upg_option, 'N') = 'O') OR
93703         (NVL(l_enc_upg_option, 'N') = 'O')
93704       )
93705    THEN
93706    NULL;
93707    --
93708    --
93709    
93710    --
93711    --
93712    END IF;
93713    --
93714    -- Bug 4922099
93715    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93716           (NVL(l_enc_upg_option, 'N') = 'O')
93717         ) AND
93718         (l_bflow_method_code = 'PRIOR_ENTRY')
93719       )
93720    THEN
93721       IF
93722       --
93723       1 = 1
93724       --
93725       THEN
93726       xla_accounting_err_pkg.build_message
93727                                     (p_appli_s_name            => 'XLA'
93728                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93729                                     ,p_token_1                 => 'LINE_NUMBER'
93730                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93731                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93732                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93733                                                                              l_component_type
93734                                                                             ,l_component_code
93735                                                                             ,l_component_type_code
93739                                                                             ,l_event_class_code
93736                                                                             ,l_component_appl_id
93737                                                                             ,l_amb_context_code
93738                                                                             ,l_entity_code
93740                                                                            )
93741                                     ,p_token_3                 => 'OWNER'
93742                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93743                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93744                                                                           ,p_lookup_code    => l_component_type_code
93745                                                                          )
93746                                     ,p_token_4                 => 'PRODUCT_NAME'
93747                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93748                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93749                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93750                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93751                                     ,p_ae_header_id            =>  NULL
93752                                        );
93753 
93754         IF (C_LEVEL_ERROR>= g_log_level) THEN
93755                  trace
93756                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93757                       ,p_level    => C_LEVEL_ERROR
93758                       ,p_module   => l_log_module);
93759         END IF;
93760       END IF;
93761    END IF;
93762    --
93763    --
93764    ------------------------------------------------------------------------------------------------
93765    -- 4219869 Business Flow
93766    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93767    -- Prior Entry.  Currently, the following code is always generated.
93768    ------------------------------------------------------------------------------------------------
93769    -- No ValidateCurrentLine for business flow method of Prior Entry
93770 
93771    ------------------------------------------------------------------------------------
93772    -- 4219869 Business Flow
93773    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93774    ------------------------------------------------------------------------------------
93775    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93776 
93777    ----------------------------------------------------------------------------------
93778    -- 4219869 Business Flow
93779    -- Update journal entry status -- Need to generate this within IF <condition>
93780    ----------------------------------------------------------------------------------
93781    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93782          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93783          ,p_balance_type_code => l_balance_type_code
93784          );
93785 
93786    -------------------------------------------------------------------------------------------
93787    -- 4262811 - Generate the Accrual Reversal lines
93788    -------------------------------------------------------------------------------------------
93789    BEGIN
93790       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93791                               (g_array_event(p_event_id).array_value_num('header_index'));
93792       IF l_acc_rev_flag IS NULL THEN
93793          l_acc_rev_flag := 'N';
93794       END IF;
93795    EXCEPTION
93796       WHEN OTHERS THEN
93797          l_acc_rev_flag := 'N';
93798    END;
93799    --
93800    IF (l_acc_rev_flag = 'Y') THEN
93801 
93802        -- 4645092  ------------------------------------------------------------------------------
93803        -- To allow MPA report to determine if it should generate report process
93804        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93805        ------------------------------------------------------------------------------------------
93806 
93807        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93808        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93809    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93810    -- call ADRs
93811    -- Bug 4922099
93812    --
93813    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93814         (NVL(l_actual_upg_option, 'N') = 'O') OR
93815         (NVL(l_enc_upg_option, 'N') = 'O')
93816       )
93817    THEN
93818    NULL;
93819    --
93820    --
93821    
93822    --
93823    --
93824    END IF;
93825 
93826        --
93827        -- Update the line information that should be overwritten
93828        --
93829        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93830                                          p_header_num   => 1);
93831        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93832 
93833        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93834 
93835        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93836           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93840       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93837        END IF;
93838 
93839       --
93841       --
93842       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93843           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93844       ELSE
93845           ---------------------------------------------------------------------------------------------------
93846           -- 4262811a Switch Sign
93847           ---------------------------------------------------------------------------------------------------
93848           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93849           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93850                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93851           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93852                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93853           -- 5132302
93854           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93855                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93856 
93857       END IF;
93858 
93859       -- 4955764
93860       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93861       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93862 
93863 
93864       XLA_AE_LINES_PKG.ValidateCurrentLine;
93865       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93866 
93867       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93868                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93869                ,p_balance_type_code => l_balance_type_code);
93870 
93871    END IF;
93872 
93873    -----------------------------------------------------------------------------------------
93874    -- 4262811 Multiperiod Accounting
93875    -----------------------------------------------------------------------------------------
93876      -- No MPA option is assigned.
93877 
93878 
93879 END IF;
93880 END IF;
93881 --
93882 
93883 --
93884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93885    trace
93886       (p_msg      => 'END of AcctLineType_160'
93887       ,p_level    => C_LEVEL_PROCEDURE
93888       ,p_module   => l_log_module);
93889 END IF;
93890 --
93891 EXCEPTION
93892   WHEN xla_exceptions_pkg.application_exception THEN
93893       RAISE;
93894   WHEN OTHERS THEN
93895        xla_exceptions_pkg.raise_message
93896            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_160');
93897 END AcctLineType_160;
93898 --
93899 
93900 ---------------------------------------
93901 --
93902 -- PRIVATE FUNCTION
93903 --         AcctLineType_161
93904 --
93905 ---------------------------------------
93906 PROCEDURE AcctLineType_161 (
93907   p_application_id        IN NUMBER
93908  ,p_event_id              IN NUMBER
93909  ,p_calculate_acctd_flag  IN VARCHAR2
93910  ,p_calculate_g_l_flag    IN VARCHAR2
93911  ,p_actual_flag           IN OUT VARCHAR2
93912  ,p_balance_type_code     OUT VARCHAR2
93913  ,p_gain_or_loss_ref      OUT VARCHAR2
93914  
93915 --Payment Currency Code
93916  , p_source_13            IN VARCHAR2
93917 --Automatic Offsets Value
93918  , p_source_15            IN VARCHAR2
93919  , p_source_15_meaning    IN VARCHAR2
93920 --Invoice Distribution Account
93921  , p_source_30            IN NUMBER
93922 --Internal Realized Loss Account
93923  , p_source_38            IN NUMBER
93924 --Bank Loss Account
93925  , p_source_39            IN NUMBER
93926 --Accounting Reversal Indicator
93927  , p_source_52            IN VARCHAR2
93928 --Distribution Link Type
93929  , p_source_54            IN VARCHAR2
93930 --Override Accounted Amount Indicator
93931  , p_source_79            IN VARCHAR2
93932  , p_source_79_meaning    IN VARCHAR2
93933 --Third Party Type
93934  , p_source_82            IN VARCHAR2
93935 --Invoice Distribution Tax Line Identifier
93936  , p_source_85            IN NUMBER
93937 --Invoice Distribution Summary Tax Line Identifier
93938  , p_source_87            IN NUMBER
93939 --Business Flow Accounts Payable Application Identifier
93940  , p_source_90            IN NUMBER
93941 --When to Account for Payment Option
93942  , p_source_96            IN VARCHAR2
93943 --Payment Distribution Type
93944  , p_source_97            IN VARCHAR2
93945  , p_source_97_meaning    IN VARCHAR2
93946 --Payment Distribution Amount
93947  , p_source_98            IN NUMBER
93948 --Business Flow Payment Distribution Type
93949  , p_source_99            IN VARCHAR2
93950 --Business Flow Payment Entity Code
93951  , p_source_100            IN VARCHAR2
93952 --Business Flow Payment Distribution Identifier
93953  , p_source_101            IN NUMBER
93954 --Business Flow Payment Identifier
93955  , p_source_102            IN NUMBER
93956 --Payment Distribution Identifier
93957  , p_source_103            IN NUMBER
93958 --Cleared Exchange Date
93959  , p_source_105            IN DATE
93960 --Cleared Exchange Rate
93961  , p_source_106            IN NUMBER
93965  , p_source_109            IN NUMBER
93962 --Cleared Exchange Rate Type
93963  , p_source_107            IN VARCHAR2
93964 --Payment Supplier Identifier
93966 --Payment Supplier Site Identifier
93967  , p_source_110            IN NUMBER
93968 --Payment Distribution Reversed Identifier
93969  , p_source_111            IN NUMBER
93970 --Payment Identifier
93971  , p_source_112            IN NUMBER
93972 --Gain or Loss Indicator between Invoice and Clearing
93973  , p_source_148            IN VARCHAR2
93974 --Invoice/Clearing Ledger Amount Difference
93975  , p_source_149            IN NUMBER
93976 )
93977 IS
93978 
93979 l_component_type              VARCHAR2(80);
93980 l_component_code              VARCHAR2(30);
93981 l_component_type_code         VARCHAR2(1);
93982 l_component_appl_id           INTEGER;
93983 l_amb_context_code            VARCHAR2(30);
93984 l_entity_code                 VARCHAR2(30);
93985 l_event_class_code            VARCHAR2(30);
93986 l_ae_header_id                NUMBER;
93987 l_event_type_code             VARCHAR2(30);
93988 l_line_definition_code        VARCHAR2(30);
93989 l_line_definition_owner_code  VARCHAR2(1);
93990 --
93991 -- adr variables
93992 l_segment                     VARCHAR2(30);
93993 l_ccid                        NUMBER;
93994 l_adr_transaction_coa_id      NUMBER;
93995 l_adr_accounting_coa_id       NUMBER;
93996 l_adr_flexfield_segment_code  VARCHAR2(30);
93997 l_adr_flex_value_set_id       NUMBER;
93998 l_adr_value_type_code         VARCHAR2(30);
93999 l_adr_value_combination_id    NUMBER;
94000 l_adr_value_segment_code      VARCHAR2(30);
94001 
94002 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94003 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94004 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94005 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94006 
94007 -- 4262811 Variables ------------------------------------------------------------------------------------------
94008 l_entered_amt_idx             NUMBER;
94009 l_accted_amt_idx              NUMBER;
94010 l_acc_rev_flag                VARCHAR2(1);
94011 l_accrual_line_num            NUMBER;
94012 l_tmp_amt                     NUMBER;
94013 l_acc_rev_natural_side_code   VARCHAR2(1);
94014 
94015 l_num_entries                 NUMBER;
94016 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94017 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94018 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94019 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94020 l_recog_line_1                NUMBER;
94021 l_recog_line_2                NUMBER;
94022 
94023 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94024 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94025 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94026 
94027 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94028 
94029 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94030 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94031 
94032 ---------------------------------------------------------------------------------------------------------------
94033 
94034 
94035 --
94036 -- bulk performance
94037 --
94038 l_balance_type_code           VARCHAR2(1);
94039 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94040 l_log_module                  VARCHAR2(240);
94041 
94042 --
94043 -- Upgrade strategy
94044 --
94045 l_actual_upg_option           VARCHAR2(1);
94046 l_enc_upg_option           VARCHAR2(1);
94047 
94048 --
94049 BEGIN
94050 --
94051 IF g_log_enabled THEN
94052       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
94053 END IF;
94054 --
94055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94056 
94057       trace
94058          (p_msg      => 'BEGIN of AcctLineType_161'
94059          ,p_level    => C_LEVEL_PROCEDURE
94060          ,p_module   => l_log_module);
94061 
94062 END IF;
94063 --
94064 l_component_type             := 'AMB_JLT';
94065 l_component_code             := 'AP_LOSS_INV_CLEAR';
94066 l_component_type_code        := 'S';
94067 l_component_appl_id          :=  200;
94068 l_amb_context_code           := 'DEFAULT';
94069 l_entity_code                := 'AP_PAYMENTS';
94070 l_event_class_code           := 'RECONCILED PAYMENTS';
94071 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
94072 l_line_definition_owner_code := 'S';
94073 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
94074 --
94075 l_balance_type_code          := 'A';
94076 l_segment                     := NULL;
94077 l_ccid                        := NULL;
94078 l_adr_transaction_coa_id      := NULL;
94079 l_adr_accounting_coa_id       := NULL;
94080 l_adr_flexfield_segment_code  := NULL;
94081 l_adr_flex_value_set_id       := NULL;
94082 l_adr_value_type_code         := NULL;
94083 l_adr_value_combination_id    := NULL;
94084 l_adr_value_segment_code      := NULL;
94085 
94086 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94087 l_bflow_class_code           := '';    -- 4219869 Business Flow
94088 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94089 l_budgetary_control_flag     := 'N';
94090 
94094 l_accted_amt_idx             := NULL;          -- 4262811
94091 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94092 l_bflow_applied_to_amt       := NULL; -- 5132302
94093 l_entered_amt_idx            := NULL;          -- 4262811
94095 l_acc_rev_flag               := NULL;          -- 4262811
94096 l_accrual_line_num           := NULL;          -- 4262811
94097 l_tmp_amt                    := NULL;          -- 4262811
94098 --
94099 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
94100             (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
94101                return;
94102   END IF;
94103   
94104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94105     l_balance_type_code <> 'B' THEN
94106 IF (NVL(p_source_96,'
94107 ') =  'CLEAR_CLEAR' OR 
94108 NVL(p_source_96,'
94109 ') =  'ALWAYS_CLEAR') AND 
94110 NVL(p_source_148,'
94111 ') =  'LOSS' AND 
94112 NVL(p_source_97,'
94113 ') <>  'EXCHANGE RATE VARIANCE' AND 
94114 NVL(p_source_97,'
94115 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
94116 NVL(p_source_97,'
94117 ') <>  'BANK CHARGE' AND 
94118 NVL(p_source_97,'
94119 ') <>  'BANK ERROR' AND 
94120 NVL(p_source_97,'
94121 ') <>  'AWT'
94122  THEN 
94123 
94124    --
94125    XLA_AE_LINES_PKG.SetNewLine;
94126 
94127    p_balance_type_code          := l_balance_type_code;
94128    -- set the flag so later we will know whether the gain loss line needs to be created
94129    
94130    IF(l_balance_type_code = 'A' ) THEN
94131      p_actual_flag :='G';
94132    END IF;
94133 
94134    --
94135    -- bulk performance
94136    --
94137    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94138                                       p_header_num   => 0); -- 4262811
94139    --
94140    -- set accounting line options
94141    --
94142    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94143            p_natural_side_code          => 'C'
94144          , p_gain_or_loss_flag          => 'Y'
94145          , p_gl_transfer_mode_code      => 'S'
94146          , p_acct_entry_type_code       => 'A'
94147          , p_switch_side_flag           => 'Y'
94148          , p_merge_duplicate_code       => 'A'
94149          );
94150    --
94151    l_acc_rev_natural_side_code := 'D';  -- 4262811
94152    -- 
94153    --
94154    -- set accounting line type info
94155    --
94156    xla_ae_lines_pkg.SetAcctLineType
94157       (p_component_type             => l_component_type
94158       ,p_event_type_code            => l_event_type_code
94159       ,p_line_definition_owner_code => l_line_definition_owner_code
94160       ,p_line_definition_code       => l_line_definition_code
94161       ,p_accounting_line_code       => l_component_code
94162       ,p_accounting_line_type_code  => l_component_type_code
94163       ,p_accounting_line_appl_id    => l_component_appl_id
94164       ,p_amb_context_code           => l_amb_context_code
94165       ,p_entity_code                => l_entity_code
94166       ,p_event_class_code           => l_event_class_code);
94167    --
94168    -- set accounting class
94169    --
94170    xla_ae_lines_pkg.SetAcctClass(
94171            p_accounting_class_code  => 'LOSS'
94172          , p_ae_header_id           => l_ae_header_id
94173          );
94174 
94175    --
94176    -- set rounding class
94177    --
94178    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94179                       'LOSS';
94180 
94181    --
94182    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94183    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94184    --
94185    -- bulk performance
94186    --
94187    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94188 
94189    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94190       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94191 
94192    -- 4955764
94193    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94194       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94195 
94196    -- 4458381 Public Sector Enh
94197    
94198    --
94199    -- set accounting attributes for the line type
94200    --
94201    l_entered_amt_idx := 10;
94202    l_accted_amt_idx  := 15;
94203    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
94204    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94205    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
94206    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
94207    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
94208    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
94209    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
94210    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94211    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
94212    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
94213    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
94217    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
94214    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
94215    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
94216    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94218    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
94219    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
94220    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
94221    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
94222    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
94223    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
94224    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
94225    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
94226    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
94227    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
94228    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
94229    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
94230    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
94231    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
94232    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
94233    l_rec_acct_attrs.array_num_value(15)  := p_source_149;
94234    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
94235    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
94236    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
94237    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
94238    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
94239    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
94240    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
94241    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
94242    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
94243    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
94244    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
94245    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
94246    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
94247    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
94248    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
94249    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
94250    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
94251    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
94252 
94253    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94254    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94255 
94256    ---------------------------------------------------------------------------------------------------------------
94257    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94258    ---------------------------------------------------------------------------------------------------------------
94259    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94260 
94261    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94262    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94263 
94264    IF xla_accounting_cache_pkg.GetValueChar
94265          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94266          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94267    AND l_bflow_method_code = 'PRIOR_ENTRY'
94268 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94269    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94270          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94271        )
94272    THEN
94273          xla_ae_lines_pkg.BflowUpgEntry
94274            (p_business_method_code    => l_bflow_method_code
94275            ,p_business_class_code     => l_bflow_class_code
94276            ,p_balance_type            => l_balance_type_code);
94277    ELSE
94278       NULL;
94279 -- No business flow processing for business flow method of NONE.
94280    END IF;
94281 
94282    --
94283    -- call analytical criteria
94284    --
94285    
94286 
94287 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
94288 xla_ae_lines_pkg.SetAnalyticalCriteria(
94289    p_analytical_criterion_name    => 'Check Id'
94290  , p_analytical_criterion_owner   => 'S'
94291  , p_analytical_criterion_code    => 'CHECK_ID'
94292  , p_amb_context_code             => 'DEFAULT'
94293  , p_balancing_flag               => 'N'
94294  
94295  , p_analytical_detail_char_1    =>  NULL
94296  , p_analytical_detail_num_1     =>  p_source_112
94297  , p_analytical_detail_date_1    =>  NULL
94298 
94299  , p_ae_header_id                 => l_ae_header_id
94300 )
94301 ;
94302 --
94303 
94304    --
94305    -- call description
94306    --
94307    -- No description or it is inherited.
94308    --
94309    -- call ADRs
94310    -- Bug 4922099
94311    --
94312    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94313         (NVL(l_actual_upg_option, 'N') = 'O') OR
94314         (NVL(l_enc_upg_option, 'N') = 'O')
94315       )
94316    THEN
94317    NULL;
94318    --
94319    --
94320    
94324 , p_source_15 => p_source_15
94321   l_ccid := AcctDerRule_38(
94322            p_application_id           => p_application_id
94323          , p_ae_header_id             => l_ae_header_id 
94325 , p_source_15_meaning => p_source_15_meaning
94326 , p_source_30 => p_source_30
94327 , p_source_38 => p_source_38
94328 , p_source_39 => p_source_39
94329          , x_transaction_coa_id       => l_adr_transaction_coa_id
94330          , x_accounting_coa_id        => l_adr_accounting_coa_id
94331          , x_value_type_code          => l_adr_value_type_code
94332          , p_side                     => 'NA'
94333    );
94334 
94335    xla_ae_lines_pkg.set_ccid(
94336     p_code_combination_id          => l_ccid
94337   , p_value_type_code              => l_adr_value_type_code
94338   , p_transaction_coa_id           => l_adr_transaction_coa_id
94339   , p_accounting_coa_id            => l_adr_accounting_coa_id
94340   , p_adr_code                     => 'AP_REAL_LOSS'
94341   , p_adr_type_code                => 'S'
94342   , p_component_type               => l_component_type
94343   , p_component_code               => l_component_code
94344   , p_component_type_code          => l_component_type_code
94345   , p_component_appl_id            => l_component_appl_id
94346   , p_amb_context_code             => l_amb_context_code
94347   , p_side                         => 'NA'
94348   );
94349 
94350 
94351    l_segment := AcctDerRule_22(
94352            p_application_id           => p_application_id
94353          , p_ae_header_id             => l_ae_header_id 
94354 , p_source_15 => p_source_15
94355 , p_source_15_meaning => p_source_15_meaning
94356 , p_source_30 => p_source_30
94357          , x_transaction_coa_id       => l_adr_transaction_coa_id
94358          , x_accounting_coa_id        => l_adr_accounting_coa_id
94359          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94360          , x_flex_value_set_id        => l_adr_flex_value_set_id
94361          , x_value_type_code          => l_adr_value_type_code
94362          , x_value_combination_id     => l_adr_value_combination_id
94363          , x_value_segment_code       => l_adr_value_segment_code
94364          , p_side                     => 'NA'
94365          , p_override_seg_flag        => 'Y'
94366    );
94367 
94368    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94369 
94370       xla_ae_lines_pkg.set_segment(
94371           p_to_segment_code         => 'GL_BALANCING'
94372         , p_segment_value           => l_segment
94373         , p_from_segment_code       => l_adr_value_segment_code
94374         , p_from_combination_id     => l_adr_value_combination_id
94375         , p_value_type_code         => l_adr_value_type_code
94376         , p_transaction_coa_id      => l_adr_transaction_coa_id
94377         , p_accounting_coa_id       => l_adr_accounting_coa_id
94378         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94379         , p_flex_value_set_id       => l_adr_flex_value_set_id
94380         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94381         , p_adr_type_code           => 'S'
94382         , p_component_type          => l_component_type
94383         , p_component_code          => l_component_code
94384         , p_component_type_code     => l_component_type_code
94385         , p_component_appl_id       => l_component_appl_id
94386         , p_amb_context_code        => l_amb_context_code
94387         , p_entity_code             => 'AP_PAYMENTS'
94388         , p_event_class_code        => 'RECONCILED PAYMENTS'
94389         , p_side                    => 'NA'
94390         );
94391 
94392   END IF;
94393 
94394    l_segment := AcctDerRule_18(
94395            p_application_id           => p_application_id
94396          , p_ae_header_id             => l_ae_header_id 
94397 , p_source_15 => p_source_15
94398 , p_source_15_meaning => p_source_15_meaning
94399 , p_source_38 => p_source_38
94400 , p_source_39 => p_source_39
94401          , x_transaction_coa_id       => l_adr_transaction_coa_id
94402          , x_accounting_coa_id        => l_adr_accounting_coa_id
94403          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94404          , x_flex_value_set_id        => l_adr_flex_value_set_id
94405          , x_value_type_code          => l_adr_value_type_code
94406          , x_value_combination_id     => l_adr_value_combination_id
94407          , x_value_segment_code       => l_adr_value_segment_code
94408          , p_side                     => 'NA'
94409          , p_override_seg_flag        => 'Y'
94410    );
94411 
94412    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94413 
94414       xla_ae_lines_pkg.set_segment(
94415           p_to_segment_code         => 'GL_ACCOUNT'
94416         , p_segment_value           => l_segment
94417         , p_from_segment_code       => l_adr_value_segment_code
94418         , p_from_combination_id     => l_adr_value_combination_id
94419         , p_value_type_code         => l_adr_value_type_code
94420         , p_transaction_coa_id      => l_adr_transaction_coa_id
94421         , p_accounting_coa_id       => l_adr_accounting_coa_id
94422         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94423         , p_flex_value_set_id       => l_adr_flex_value_set_id
94424         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94425         , p_adr_type_code           => 'S'
94426         , p_component_type          => l_component_type
94427         , p_component_code          => l_component_code
94428         , p_component_type_code     => l_component_type_code
94429         , p_component_appl_id       => l_component_appl_id
94433         , p_side                    => 'NA'
94430         , p_amb_context_code        => l_amb_context_code
94431         , p_entity_code             => 'AP_PAYMENTS'
94432         , p_event_class_code        => 'RECONCILED PAYMENTS'
94434         );
94435 
94436   END IF;
94437 
94438    --
94439    --
94440    END IF;
94441    --
94442    -- Bug 4922099
94443    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94444           (NVL(l_enc_upg_option, 'N') = 'O')
94445         ) AND
94446         (l_bflow_method_code = 'PRIOR_ENTRY')
94447       )
94448    THEN
94449       IF
94450       --
94451       1 = 2
94452       --
94453       THEN
94454       xla_accounting_err_pkg.build_message
94455                                     (p_appli_s_name            => 'XLA'
94456                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94457                                     ,p_token_1                 => 'LINE_NUMBER'
94458                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94459                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94460                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94461                                                                              l_component_type
94462                                                                             ,l_component_code
94463                                                                             ,l_component_type_code
94464                                                                             ,l_component_appl_id
94465                                                                             ,l_amb_context_code
94466                                                                             ,l_entity_code
94467                                                                             ,l_event_class_code
94468                                                                            )
94469                                     ,p_token_3                 => 'OWNER'
94470                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94471                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94472                                                                           ,p_lookup_code    => l_component_type_code
94473                                                                          )
94474                                     ,p_token_4                 => 'PRODUCT_NAME'
94475                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94476                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94477                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94478                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94479                                     ,p_ae_header_id            =>  NULL
94480                                        );
94481 
94482         IF (C_LEVEL_ERROR>= g_log_level) THEN
94483                  trace
94484                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94485                       ,p_level    => C_LEVEL_ERROR
94486                       ,p_module   => l_log_module);
94487         END IF;
94488       END IF;
94489    END IF;
94490    --
94491    --
94492    ------------------------------------------------------------------------------------------------
94493    -- 4219869 Business Flow
94494    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94495    -- Prior Entry.  Currently, the following code is always generated.
94496    ------------------------------------------------------------------------------------------------
94497    XLA_AE_LINES_PKG.ValidateCurrentLine;
94498 
94499    ------------------------------------------------------------------------------------
94500    -- 4219869 Business Flow
94501    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94502    ------------------------------------------------------------------------------------
94503    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94504 
94505    ----------------------------------------------------------------------------------
94506    -- 4219869 Business Flow
94507    -- Update journal entry status -- Need to generate this within IF <condition>
94508    ----------------------------------------------------------------------------------
94509    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94510          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94511          ,p_balance_type_code => l_balance_type_code
94512          );
94513 
94514    -------------------------------------------------------------------------------------------
94515    -- 4262811 - Generate the Accrual Reversal lines
94516    -------------------------------------------------------------------------------------------
94517    BEGIN
94518       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94519                               (g_array_event(p_event_id).array_value_num('header_index'));
94520       IF l_acc_rev_flag IS NULL THEN
94521          l_acc_rev_flag := 'N';
94522       END IF;
94523    EXCEPTION
94524       WHEN OTHERS THEN
94525          l_acc_rev_flag := 'N';
94526    END;
94527    --
94528    IF (l_acc_rev_flag = 'Y') THEN
94529 
94533        ------------------------------------------------------------------------------------------
94530        -- 4645092  ------------------------------------------------------------------------------
94531        -- To allow MPA report to determine if it should generate report process
94532        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94534 
94535        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94536        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94537    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94538    -- call ADRs
94539    -- Bug 4922099
94540    --
94541    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94542         (NVL(l_actual_upg_option, 'N') = 'O') OR
94543         (NVL(l_enc_upg_option, 'N') = 'O')
94544       )
94545    THEN
94546    NULL;
94547    --
94548    --
94549    
94550   l_ccid := AcctDerRule_38(
94551            p_application_id           => p_application_id
94552          , p_ae_header_id             => l_ae_header_id 
94553 , p_source_15 => p_source_15
94554 , p_source_15_meaning => p_source_15_meaning
94555 , p_source_30 => p_source_30
94556 , p_source_38 => p_source_38
94557 , p_source_39 => p_source_39
94558          , x_transaction_coa_id       => l_adr_transaction_coa_id
94559          , x_accounting_coa_id        => l_adr_accounting_coa_id
94560          , x_value_type_code          => l_adr_value_type_code
94561          , p_side                     => 'NA'
94562    );
94563 
94564    xla_ae_lines_pkg.set_ccid(
94565     p_code_combination_id          => l_ccid
94566   , p_value_type_code              => l_adr_value_type_code
94567   , p_transaction_coa_id           => l_adr_transaction_coa_id
94568   , p_accounting_coa_id            => l_adr_accounting_coa_id
94569   , p_adr_code                     => 'AP_REAL_LOSS'
94570   , p_adr_type_code                => 'S'
94571   , p_component_type               => l_component_type
94572   , p_component_code               => l_component_code
94573   , p_component_type_code          => l_component_type_code
94574   , p_component_appl_id            => l_component_appl_id
94575   , p_amb_context_code             => l_amb_context_code
94576   , p_side                         => 'NA'
94577   );
94578 
94579 
94580    l_segment := AcctDerRule_22(
94581            p_application_id           => p_application_id
94582          , p_ae_header_id             => l_ae_header_id 
94583 , p_source_15 => p_source_15
94584 , p_source_15_meaning => p_source_15_meaning
94585 , p_source_30 => p_source_30
94586          , x_transaction_coa_id       => l_adr_transaction_coa_id
94587          , x_accounting_coa_id        => l_adr_accounting_coa_id
94588          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94589          , x_flex_value_set_id        => l_adr_flex_value_set_id
94590          , x_value_type_code          => l_adr_value_type_code
94591          , x_value_combination_id     => l_adr_value_combination_id
94592          , x_value_segment_code       => l_adr_value_segment_code
94593          , p_side                     => 'NA'
94594          , p_override_seg_flag        => 'Y'
94595    );
94596 
94597    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94598 
94599       xla_ae_lines_pkg.set_segment(
94600           p_to_segment_code         => 'GL_BALANCING'
94601         , p_segment_value           => l_segment
94602         , p_from_segment_code       => l_adr_value_segment_code
94603         , p_from_combination_id     => l_adr_value_combination_id
94604         , p_value_type_code         => l_adr_value_type_code
94605         , p_transaction_coa_id      => l_adr_transaction_coa_id
94606         , p_accounting_coa_id       => l_adr_accounting_coa_id
94607         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94608         , p_flex_value_set_id       => l_adr_flex_value_set_id
94609         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94610         , p_adr_type_code           => 'S'
94611         , p_component_type          => l_component_type
94612         , p_component_code          => l_component_code
94613         , p_component_type_code     => l_component_type_code
94614         , p_component_appl_id       => l_component_appl_id
94615         , p_amb_context_code        => l_amb_context_code
94616         , p_entity_code             => 'AP_PAYMENTS'
94617         , p_event_class_code        => 'RECONCILED PAYMENTS'
94618         , p_side                    => 'NA'
94619         );
94620 
94621   END IF;
94622 
94623    l_segment := AcctDerRule_18(
94624            p_application_id           => p_application_id
94625          , p_ae_header_id             => l_ae_header_id 
94626 , p_source_15 => p_source_15
94627 , p_source_15_meaning => p_source_15_meaning
94628 , p_source_38 => p_source_38
94629 , p_source_39 => p_source_39
94630          , x_transaction_coa_id       => l_adr_transaction_coa_id
94631          , x_accounting_coa_id        => l_adr_accounting_coa_id
94632          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94633          , x_flex_value_set_id        => l_adr_flex_value_set_id
94634          , x_value_type_code          => l_adr_value_type_code
94635          , x_value_combination_id     => l_adr_value_combination_id
94636          , x_value_segment_code       => l_adr_value_segment_code
94637          , p_side                     => 'NA'
94638          , p_override_seg_flag        => 'Y'
94639    );
94640 
94641    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94642 
94643       xla_ae_lines_pkg.set_segment(
94644           p_to_segment_code         => 'GL_ACCOUNT'
94648         , p_value_type_code         => l_adr_value_type_code
94645         , p_segment_value           => l_segment
94646         , p_from_segment_code       => l_adr_value_segment_code
94647         , p_from_combination_id     => l_adr_value_combination_id
94649         , p_transaction_coa_id      => l_adr_transaction_coa_id
94650         , p_accounting_coa_id       => l_adr_accounting_coa_id
94651         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94652         , p_flex_value_set_id       => l_adr_flex_value_set_id
94653         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94654         , p_adr_type_code           => 'S'
94655         , p_component_type          => l_component_type
94656         , p_component_code          => l_component_code
94657         , p_component_type_code     => l_component_type_code
94658         , p_component_appl_id       => l_component_appl_id
94659         , p_amb_context_code        => l_amb_context_code
94660         , p_entity_code             => 'AP_PAYMENTS'
94661         , p_event_class_code        => 'RECONCILED PAYMENTS'
94662         , p_side                    => 'NA'
94663         );
94664 
94665   END IF;
94666 
94667    --
94668    --
94669    END IF;
94670 
94671        --
94672        -- Update the line information that should be overwritten
94673        --
94674        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94675                                          p_header_num   => 1);
94676        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94677 
94678        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94679 
94680        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94681           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94682        END IF;
94683 
94684       --
94685       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94686       --
94687       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94688           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94689       ELSE
94690           ---------------------------------------------------------------------------------------------------
94691           -- 4262811a Switch Sign
94692           ---------------------------------------------------------------------------------------------------
94693           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94694           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94695                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94696           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94697                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94698           -- 5132302
94699           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94700                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94701 
94702       END IF;
94703 
94704       -- 4955764
94705       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94706       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94707 
94708 
94709       XLA_AE_LINES_PKG.ValidateCurrentLine;
94710       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94711 
94712       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94713                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94714                ,p_balance_type_code => l_balance_type_code);
94715 
94716    END IF;
94717 
94718    -----------------------------------------------------------------------------------------
94719    -- 4262811 Multiperiod Accounting
94720    -----------------------------------------------------------------------------------------
94721      -- No MPA option is assigned.
94722 
94723 
94724 END IF;
94725 END IF;
94726 --
94727 
94728 --
94729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94730    trace
94731       (p_msg      => 'END of AcctLineType_161'
94732       ,p_level    => C_LEVEL_PROCEDURE
94733       ,p_module   => l_log_module);
94734 END IF;
94735 --
94736 EXCEPTION
94737   WHEN xla_exceptions_pkg.application_exception THEN
94738       RAISE;
94739   WHEN OTHERS THEN
94740        xla_exceptions_pkg.raise_message
94741            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_161');
94742 END AcctLineType_161;
94743 --
94744 
94745 ---------------------------------------
94746 --
94747 -- PRIVATE FUNCTION
94748 --         AcctLineType_162
94749 --
94750 ---------------------------------------
94751 PROCEDURE AcctLineType_162 (
94752   p_application_id        IN NUMBER
94753  ,p_event_id              IN NUMBER
94754  ,p_calculate_acctd_flag  IN VARCHAR2
94755  ,p_calculate_g_l_flag    IN VARCHAR2
94756  ,p_actual_flag           IN OUT VARCHAR2
94757  ,p_balance_type_code     OUT VARCHAR2
94758  ,p_gain_or_loss_ref      OUT VARCHAR2
94759  
94760 --Payment Currency Code
94764  , p_source_15_meaning    IN VARCHAR2
94761  , p_source_13            IN VARCHAR2
94762 --Automatic Offsets Value
94763  , p_source_15            IN VARCHAR2
94765 --Invoice Distribution Account
94766  , p_source_30            IN NUMBER
94767 --Internal Realized Loss Account
94768  , p_source_38            IN NUMBER
94769 --Bank Loss Account
94770  , p_source_39            IN NUMBER
94771 --Accounting Reversal Indicator
94772  , p_source_52            IN VARCHAR2
94773 --Distribution Link Type
94774  , p_source_54            IN VARCHAR2
94775 --Override Accounted Amount Indicator
94776  , p_source_79            IN VARCHAR2
94777  , p_source_79_meaning    IN VARCHAR2
94778 --Third Party Type
94779  , p_source_82            IN VARCHAR2
94780 --Invoice Distribution Tax Line Identifier
94781  , p_source_85            IN NUMBER
94782 --Invoice Distribution Summary Tax Line Identifier
94783  , p_source_87            IN NUMBER
94784 --Business Flow Accounts Payable Application Identifier
94785  , p_source_90            IN NUMBER
94786 --When to Account for Payment Option
94787  , p_source_96            IN VARCHAR2
94788 --Payment Distribution Type
94789  , p_source_97            IN VARCHAR2
94790  , p_source_97_meaning    IN VARCHAR2
94791 --Payment Distribution Amount
94792  , p_source_98            IN NUMBER
94793 --Business Flow Payment Distribution Type
94794  , p_source_99            IN VARCHAR2
94795 --Business Flow Payment Entity Code
94796  , p_source_100            IN VARCHAR2
94797 --Business Flow Payment Distribution Identifier
94798  , p_source_101            IN NUMBER
94799 --Business Flow Payment Identifier
94800  , p_source_102            IN NUMBER
94801 --Payment Distribution Identifier
94802  , p_source_103            IN NUMBER
94803 --Cleared Exchange Date
94804  , p_source_105            IN DATE
94805 --Cleared Exchange Rate
94806  , p_source_106            IN NUMBER
94807 --Cleared Exchange Rate Type
94808  , p_source_107            IN VARCHAR2
94809 --Payment Supplier Identifier
94810  , p_source_109            IN NUMBER
94811 --Payment Supplier Site Identifier
94812  , p_source_110            IN NUMBER
94813 --Payment Distribution Reversed Identifier
94814  , p_source_111            IN NUMBER
94815 --Payment Identifier
94816  , p_source_112            IN NUMBER
94817 --Payment Maturity Date
94818  , p_source_114            IN DATE
94819 --Gain or Loss Indicator between Maturity and Clearing
94820  , p_source_153            IN VARCHAR2
94821 --Maturity/Clearing Ledger Amount Difference
94822  , p_source_154            IN NUMBER
94823 )
94824 IS
94825 
94826 l_component_type              VARCHAR2(80);
94827 l_component_code              VARCHAR2(30);
94828 l_component_type_code         VARCHAR2(1);
94829 l_component_appl_id           INTEGER;
94830 l_amb_context_code            VARCHAR2(30);
94831 l_entity_code                 VARCHAR2(30);
94832 l_event_class_code            VARCHAR2(30);
94833 l_ae_header_id                NUMBER;
94834 l_event_type_code             VARCHAR2(30);
94835 l_line_definition_code        VARCHAR2(30);
94836 l_line_definition_owner_code  VARCHAR2(1);
94837 --
94838 -- adr variables
94839 l_segment                     VARCHAR2(30);
94840 l_ccid                        NUMBER;
94841 l_adr_transaction_coa_id      NUMBER;
94842 l_adr_accounting_coa_id       NUMBER;
94843 l_adr_flexfield_segment_code  VARCHAR2(30);
94844 l_adr_flex_value_set_id       NUMBER;
94845 l_adr_value_type_code         VARCHAR2(30);
94846 l_adr_value_combination_id    NUMBER;
94847 l_adr_value_segment_code      VARCHAR2(30);
94848 
94849 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94850 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94851 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94852 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94853 
94854 -- 4262811 Variables ------------------------------------------------------------------------------------------
94855 l_entered_amt_idx             NUMBER;
94856 l_accted_amt_idx              NUMBER;
94857 l_acc_rev_flag                VARCHAR2(1);
94858 l_accrual_line_num            NUMBER;
94859 l_tmp_amt                     NUMBER;
94860 l_acc_rev_natural_side_code   VARCHAR2(1);
94861 
94862 l_num_entries                 NUMBER;
94863 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94864 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94865 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94866 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94867 l_recog_line_1                NUMBER;
94868 l_recog_line_2                NUMBER;
94869 
94870 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94871 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94872 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94873 
94874 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94875 
94876 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94877 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94878 
94879 ---------------------------------------------------------------------------------------------------------------
94880 
94881 
94882 --
94883 -- bulk performance
94884 --
94888 
94885 l_balance_type_code           VARCHAR2(1);
94886 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94887 l_log_module                  VARCHAR2(240);
94889 --
94890 -- Upgrade strategy
94891 --
94892 l_actual_upg_option           VARCHAR2(1);
94893 l_enc_upg_option           VARCHAR2(1);
94894 
94895 --
94896 BEGIN
94897 --
94898 IF g_log_enabled THEN
94899       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
94900 END IF;
94901 --
94902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94903 
94904       trace
94905          (p_msg      => 'BEGIN of AcctLineType_162'
94906          ,p_level    => C_LEVEL_PROCEDURE
94907          ,p_module   => l_log_module);
94908 
94909 END IF;
94910 --
94911 l_component_type             := 'AMB_JLT';
94912 l_component_code             := 'AP_LOSS_MAT_CLEAR';
94913 l_component_type_code        := 'S';
94914 l_component_appl_id          :=  200;
94915 l_amb_context_code           := 'DEFAULT';
94916 l_entity_code                := 'AP_PAYMENTS';
94917 l_event_class_code           := 'RECONCILED PAYMENTS';
94918 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
94919 l_line_definition_owner_code := 'S';
94920 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
94921 --
94922 l_balance_type_code          := 'A';
94923 l_segment                     := NULL;
94924 l_ccid                        := NULL;
94925 l_adr_transaction_coa_id      := NULL;
94926 l_adr_accounting_coa_id       := NULL;
94927 l_adr_flexfield_segment_code  := NULL;
94928 l_adr_flex_value_set_id       := NULL;
94929 l_adr_value_type_code         := NULL;
94930 l_adr_value_combination_id    := NULL;
94931 l_adr_value_segment_code      := NULL;
94932 
94933 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94934 l_bflow_class_code           := '';    -- 4219869 Business Flow
94935 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94936 l_budgetary_control_flag     := 'N';
94937 
94938 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94939 l_bflow_applied_to_amt       := NULL; -- 5132302
94940 l_entered_amt_idx            := NULL;          -- 4262811
94941 l_accted_amt_idx             := NULL;          -- 4262811
94942 l_acc_rev_flag               := NULL;          -- 4262811
94943 l_accrual_line_num           := NULL;          -- 4262811
94944 l_tmp_amt                    := NULL;          -- 4262811
94945 --
94946 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
94947             (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
94948                return;
94949   END IF;
94950   
94951 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94952     l_balance_type_code <> 'B' THEN
94953 IF NVL(p_source_96,'
94954 ') =  'ALWAYS_ALWAYS' AND 
94955 p_source_114 IS NOT NULL AND 
94956 NVL(p_source_153,'
94957 ') =  'LOSS' AND 
94958 NVL(p_source_97,'
94959 ') <>  'EXCHANGE RATE VARIANCE' AND 
94960 NVL(p_source_97,'
94961 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
94962 NVL(p_source_97,'
94963 ') <>  'BANK CHARGE' AND 
94964 NVL(p_source_97,'
94965 ') <>  'BANK ERROR'
94966  THEN 
94967 
94968    --
94969    XLA_AE_LINES_PKG.SetNewLine;
94970 
94971    p_balance_type_code          := l_balance_type_code;
94972    -- set the flag so later we will know whether the gain loss line needs to be created
94973    
94974    IF(l_balance_type_code = 'A' ) THEN
94975      p_actual_flag :='G';
94976    END IF;
94977 
94978    --
94979    -- bulk performance
94980    --
94981    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94982                                       p_header_num   => 0); -- 4262811
94983    --
94984    -- set accounting line options
94985    --
94986    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94987            p_natural_side_code          => 'C'
94988          , p_gain_or_loss_flag          => 'Y'
94989          , p_gl_transfer_mode_code      => 'S'
94990          , p_acct_entry_type_code       => 'A'
94991          , p_switch_side_flag           => 'Y'
94992          , p_merge_duplicate_code       => 'A'
94993          );
94994    --
94995    l_acc_rev_natural_side_code := 'D';  -- 4262811
94996    -- 
94997    --
94998    -- set accounting line type info
94999    --
95000    xla_ae_lines_pkg.SetAcctLineType
95001       (p_component_type             => l_component_type
95002       ,p_event_type_code            => l_event_type_code
95003       ,p_line_definition_owner_code => l_line_definition_owner_code
95004       ,p_line_definition_code       => l_line_definition_code
95005       ,p_accounting_line_code       => l_component_code
95006       ,p_accounting_line_type_code  => l_component_type_code
95007       ,p_accounting_line_appl_id    => l_component_appl_id
95008       ,p_amb_context_code           => l_amb_context_code
95009       ,p_entity_code                => l_entity_code
95010       ,p_event_class_code           => l_event_class_code);
95011    --
95012    -- set accounting class
95013    --
95014    xla_ae_lines_pkg.SetAcctClass(
95015            p_accounting_class_code  => 'LOSS'
95016          , p_ae_header_id           => l_ae_header_id
95017          );
95018 
95022    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95019    --
95020    -- set rounding class
95021    --
95023                       'LOSS';
95024 
95025    --
95026    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95027    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95028    --
95029    -- bulk performance
95030    --
95031    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95032 
95033    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95034       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95035 
95036    -- 4955764
95037    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95038       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95039 
95040    -- 4458381 Public Sector Enh
95041    
95042    --
95043    -- set accounting attributes for the line type
95044    --
95045    l_entered_amt_idx := 10;
95046    l_accted_amt_idx  := 15;
95047    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95048    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95049    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
95050    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95051    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
95052    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95053    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
95054    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95055    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
95056    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95057    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
95058    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95059    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
95060    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95061    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
95062    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95063    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
95064    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95065    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
95066    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95067    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
95068    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95069    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
95070    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95071    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
95072    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95073    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
95074    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95075    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
95076    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95077    l_rec_acct_attrs.array_num_value(15)  := p_source_154;
95078    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95079    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
95080    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95081    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
95082    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95083    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
95084    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95085    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
95086    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95087    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
95088    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95089    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
95090    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95091    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
95092    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95093    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
95094    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95095    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
95096 
95097    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95098    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95099 
95100    ---------------------------------------------------------------------------------------------------------------
95101    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95102    ---------------------------------------------------------------------------------------------------------------
95103    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95104 
95105    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95106    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95107 
95108    IF xla_accounting_cache_pkg.GetValueChar
95109          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95110          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95111    AND l_bflow_method_code = 'PRIOR_ENTRY'
95115        )
95112 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95113    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95114          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95116    THEN
95117          xla_ae_lines_pkg.BflowUpgEntry
95118            (p_business_method_code    => l_bflow_method_code
95119            ,p_business_class_code     => l_bflow_class_code
95120            ,p_balance_type            => l_balance_type_code);
95121    ELSE
95122       NULL;
95123 -- No business flow processing for business flow method of NONE.
95124    END IF;
95125 
95126    --
95127    -- call analytical criteria
95128    --
95129    
95130 
95131 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
95132 xla_ae_lines_pkg.SetAnalyticalCriteria(
95133    p_analytical_criterion_name    => 'Check Id'
95134  , p_analytical_criterion_owner   => 'S'
95135  , p_analytical_criterion_code    => 'CHECK_ID'
95136  , p_amb_context_code             => 'DEFAULT'
95137  , p_balancing_flag               => 'N'
95138  
95139  , p_analytical_detail_char_1    =>  NULL
95140  , p_analytical_detail_num_1     =>  p_source_112
95141  , p_analytical_detail_date_1    =>  NULL
95142 
95143  , p_ae_header_id                 => l_ae_header_id
95144 )
95145 ;
95146 --
95147 
95148    --
95149    -- call description
95150    --
95151    -- No description or it is inherited.
95152    --
95153    -- call ADRs
95154    -- Bug 4922099
95155    --
95156    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95157         (NVL(l_actual_upg_option, 'N') = 'O') OR
95158         (NVL(l_enc_upg_option, 'N') = 'O')
95159       )
95160    THEN
95161    NULL;
95162    --
95163    --
95164    
95165   l_ccid := AcctDerRule_38(
95166            p_application_id           => p_application_id
95167          , p_ae_header_id             => l_ae_header_id 
95168 , p_source_15 => p_source_15
95169 , p_source_15_meaning => p_source_15_meaning
95170 , p_source_30 => p_source_30
95171 , p_source_38 => p_source_38
95172 , p_source_39 => p_source_39
95173          , x_transaction_coa_id       => l_adr_transaction_coa_id
95174          , x_accounting_coa_id        => l_adr_accounting_coa_id
95175          , x_value_type_code          => l_adr_value_type_code
95176          , p_side                     => 'NA'
95177    );
95178 
95179    xla_ae_lines_pkg.set_ccid(
95180     p_code_combination_id          => l_ccid
95181   , p_value_type_code              => l_adr_value_type_code
95182   , p_transaction_coa_id           => l_adr_transaction_coa_id
95183   , p_accounting_coa_id            => l_adr_accounting_coa_id
95184   , p_adr_code                     => 'AP_REAL_LOSS'
95185   , p_adr_type_code                => 'S'
95186   , p_component_type               => l_component_type
95187   , p_component_code               => l_component_code
95188   , p_component_type_code          => l_component_type_code
95189   , p_component_appl_id            => l_component_appl_id
95190   , p_amb_context_code             => l_amb_context_code
95191   , p_side                         => 'NA'
95192   );
95193 
95194 
95195    l_segment := AcctDerRule_22(
95196            p_application_id           => p_application_id
95197          , p_ae_header_id             => l_ae_header_id 
95198 , p_source_15 => p_source_15
95199 , p_source_15_meaning => p_source_15_meaning
95200 , p_source_30 => p_source_30
95201          , x_transaction_coa_id       => l_adr_transaction_coa_id
95202          , x_accounting_coa_id        => l_adr_accounting_coa_id
95203          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95204          , x_flex_value_set_id        => l_adr_flex_value_set_id
95205          , x_value_type_code          => l_adr_value_type_code
95206          , x_value_combination_id     => l_adr_value_combination_id
95207          , x_value_segment_code       => l_adr_value_segment_code
95208          , p_side                     => 'NA'
95209          , p_override_seg_flag        => 'Y'
95210    );
95211 
95212    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95213 
95214       xla_ae_lines_pkg.set_segment(
95215           p_to_segment_code         => 'GL_BALANCING'
95216         , p_segment_value           => l_segment
95217         , p_from_segment_code       => l_adr_value_segment_code
95218         , p_from_combination_id     => l_adr_value_combination_id
95219         , p_value_type_code         => l_adr_value_type_code
95220         , p_transaction_coa_id      => l_adr_transaction_coa_id
95221         , p_accounting_coa_id       => l_adr_accounting_coa_id
95222         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95223         , p_flex_value_set_id       => l_adr_flex_value_set_id
95224         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95225         , p_adr_type_code           => 'S'
95226         , p_component_type          => l_component_type
95227         , p_component_code          => l_component_code
95228         , p_component_type_code     => l_component_type_code
95229         , p_component_appl_id       => l_component_appl_id
95230         , p_amb_context_code        => l_amb_context_code
95231         , p_entity_code             => 'AP_PAYMENTS'
95232         , p_event_class_code        => 'RECONCILED PAYMENTS'
95233         , p_side                    => 'NA'
95234         );
95235 
95236   END IF;
95237 
95238    l_segment := AcctDerRule_18(
95239            p_application_id           => p_application_id
95243 , p_source_38 => p_source_38
95240          , p_ae_header_id             => l_ae_header_id 
95241 , p_source_15 => p_source_15
95242 , p_source_15_meaning => p_source_15_meaning
95244 , p_source_39 => p_source_39
95245          , x_transaction_coa_id       => l_adr_transaction_coa_id
95246          , x_accounting_coa_id        => l_adr_accounting_coa_id
95247          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95248          , x_flex_value_set_id        => l_adr_flex_value_set_id
95249          , x_value_type_code          => l_adr_value_type_code
95250          , x_value_combination_id     => l_adr_value_combination_id
95251          , x_value_segment_code       => l_adr_value_segment_code
95252          , p_side                     => 'NA'
95253          , p_override_seg_flag        => 'Y'
95254    );
95255 
95256    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95257 
95258       xla_ae_lines_pkg.set_segment(
95259           p_to_segment_code         => 'GL_ACCOUNT'
95260         , p_segment_value           => l_segment
95261         , p_from_segment_code       => l_adr_value_segment_code
95262         , p_from_combination_id     => l_adr_value_combination_id
95263         , p_value_type_code         => l_adr_value_type_code
95264         , p_transaction_coa_id      => l_adr_transaction_coa_id
95265         , p_accounting_coa_id       => l_adr_accounting_coa_id
95266         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95267         , p_flex_value_set_id       => l_adr_flex_value_set_id
95268         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95269         , p_adr_type_code           => 'S'
95270         , p_component_type          => l_component_type
95271         , p_component_code          => l_component_code
95272         , p_component_type_code     => l_component_type_code
95273         , p_component_appl_id       => l_component_appl_id
95274         , p_amb_context_code        => l_amb_context_code
95275         , p_entity_code             => 'AP_PAYMENTS'
95276         , p_event_class_code        => 'RECONCILED PAYMENTS'
95277         , p_side                    => 'NA'
95278         );
95279 
95280   END IF;
95281 
95282    --
95283    --
95284    END IF;
95285    --
95286    -- Bug 4922099
95287    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95288           (NVL(l_enc_upg_option, 'N') = 'O')
95289         ) AND
95290         (l_bflow_method_code = 'PRIOR_ENTRY')
95291       )
95292    THEN
95293       IF
95294       --
95295       1 = 2
95296       --
95297       THEN
95298       xla_accounting_err_pkg.build_message
95299                                     (p_appli_s_name            => 'XLA'
95300                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95301                                     ,p_token_1                 => 'LINE_NUMBER'
95302                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95303                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95304                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95305                                                                              l_component_type
95306                                                                             ,l_component_code
95307                                                                             ,l_component_type_code
95308                                                                             ,l_component_appl_id
95309                                                                             ,l_amb_context_code
95310                                                                             ,l_entity_code
95311                                                                             ,l_event_class_code
95312                                                                            )
95313                                     ,p_token_3                 => 'OWNER'
95314                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95315                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95316                                                                           ,p_lookup_code    => l_component_type_code
95317                                                                          )
95318                                     ,p_token_4                 => 'PRODUCT_NAME'
95319                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95320                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95321                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95322                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95323                                     ,p_ae_header_id            =>  NULL
95324                                        );
95325 
95326         IF (C_LEVEL_ERROR>= g_log_level) THEN
95327                  trace
95328                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95329                       ,p_level    => C_LEVEL_ERROR
95330                       ,p_module   => l_log_module);
95331         END IF;
95332       END IF;
95333    END IF;
95334    --
95335    --
95336    ------------------------------------------------------------------------------------------------
95337    -- 4219869 Business Flow
95341    XLA_AE_LINES_PKG.ValidateCurrentLine;
95338    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95339    -- Prior Entry.  Currently, the following code is always generated.
95340    ------------------------------------------------------------------------------------------------
95342 
95343    ------------------------------------------------------------------------------------
95344    -- 4219869 Business Flow
95345    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95346    ------------------------------------------------------------------------------------
95347    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95348 
95349    ----------------------------------------------------------------------------------
95350    -- 4219869 Business Flow
95351    -- Update journal entry status -- Need to generate this within IF <condition>
95352    ----------------------------------------------------------------------------------
95353    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95354          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95355          ,p_balance_type_code => l_balance_type_code
95356          );
95357 
95358    -------------------------------------------------------------------------------------------
95359    -- 4262811 - Generate the Accrual Reversal lines
95360    -------------------------------------------------------------------------------------------
95361    BEGIN
95362       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95363                               (g_array_event(p_event_id).array_value_num('header_index'));
95364       IF l_acc_rev_flag IS NULL THEN
95365          l_acc_rev_flag := 'N';
95366       END IF;
95367    EXCEPTION
95368       WHEN OTHERS THEN
95369          l_acc_rev_flag := 'N';
95370    END;
95371    --
95372    IF (l_acc_rev_flag = 'Y') THEN
95373 
95374        -- 4645092  ------------------------------------------------------------------------------
95375        -- To allow MPA report to determine if it should generate report process
95376        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95377        ------------------------------------------------------------------------------------------
95378 
95379        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95380        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95381    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95382    -- call ADRs
95383    -- Bug 4922099
95384    --
95385    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95386         (NVL(l_actual_upg_option, 'N') = 'O') OR
95387         (NVL(l_enc_upg_option, 'N') = 'O')
95388       )
95389    THEN
95390    NULL;
95391    --
95392    --
95393    
95394   l_ccid := AcctDerRule_38(
95395            p_application_id           => p_application_id
95396          , p_ae_header_id             => l_ae_header_id 
95397 , p_source_15 => p_source_15
95398 , p_source_15_meaning => p_source_15_meaning
95399 , p_source_30 => p_source_30
95400 , p_source_38 => p_source_38
95401 , p_source_39 => p_source_39
95402          , x_transaction_coa_id       => l_adr_transaction_coa_id
95403          , x_accounting_coa_id        => l_adr_accounting_coa_id
95404          , x_value_type_code          => l_adr_value_type_code
95405          , p_side                     => 'NA'
95406    );
95407 
95408    xla_ae_lines_pkg.set_ccid(
95409     p_code_combination_id          => l_ccid
95410   , p_value_type_code              => l_adr_value_type_code
95411   , p_transaction_coa_id           => l_adr_transaction_coa_id
95412   , p_accounting_coa_id            => l_adr_accounting_coa_id
95413   , p_adr_code                     => 'AP_REAL_LOSS'
95414   , p_adr_type_code                => 'S'
95415   , p_component_type               => l_component_type
95416   , p_component_code               => l_component_code
95417   , p_component_type_code          => l_component_type_code
95418   , p_component_appl_id            => l_component_appl_id
95419   , p_amb_context_code             => l_amb_context_code
95420   , p_side                         => 'NA'
95421   );
95422 
95423 
95424    l_segment := AcctDerRule_22(
95425            p_application_id           => p_application_id
95426          , p_ae_header_id             => l_ae_header_id 
95427 , p_source_15 => p_source_15
95428 , p_source_15_meaning => p_source_15_meaning
95429 , p_source_30 => p_source_30
95430          , x_transaction_coa_id       => l_adr_transaction_coa_id
95431          , x_accounting_coa_id        => l_adr_accounting_coa_id
95432          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95433          , x_flex_value_set_id        => l_adr_flex_value_set_id
95434          , x_value_type_code          => l_adr_value_type_code
95435          , x_value_combination_id     => l_adr_value_combination_id
95436          , x_value_segment_code       => l_adr_value_segment_code
95437          , p_side                     => 'NA'
95438          , p_override_seg_flag        => 'Y'
95439    );
95440 
95441    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95442 
95443       xla_ae_lines_pkg.set_segment(
95444           p_to_segment_code         => 'GL_BALANCING'
95445         , p_segment_value           => l_segment
95446         , p_from_segment_code       => l_adr_value_segment_code
95447         , p_from_combination_id     => l_adr_value_combination_id
95451         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95448         , p_value_type_code         => l_adr_value_type_code
95449         , p_transaction_coa_id      => l_adr_transaction_coa_id
95450         , p_accounting_coa_id       => l_adr_accounting_coa_id
95452         , p_flex_value_set_id       => l_adr_flex_value_set_id
95453         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95454         , p_adr_type_code           => 'S'
95455         , p_component_type          => l_component_type
95456         , p_component_code          => l_component_code
95457         , p_component_type_code     => l_component_type_code
95458         , p_component_appl_id       => l_component_appl_id
95459         , p_amb_context_code        => l_amb_context_code
95460         , p_entity_code             => 'AP_PAYMENTS'
95461         , p_event_class_code        => 'RECONCILED PAYMENTS'
95462         , p_side                    => 'NA'
95463         );
95464 
95465   END IF;
95466 
95467    l_segment := AcctDerRule_18(
95468            p_application_id           => p_application_id
95469          , p_ae_header_id             => l_ae_header_id 
95470 , p_source_15 => p_source_15
95471 , p_source_15_meaning => p_source_15_meaning
95472 , p_source_38 => p_source_38
95473 , p_source_39 => p_source_39
95474          , x_transaction_coa_id       => l_adr_transaction_coa_id
95475          , x_accounting_coa_id        => l_adr_accounting_coa_id
95476          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95477          , x_flex_value_set_id        => l_adr_flex_value_set_id
95478          , x_value_type_code          => l_adr_value_type_code
95479          , x_value_combination_id     => l_adr_value_combination_id
95480          , x_value_segment_code       => l_adr_value_segment_code
95481          , p_side                     => 'NA'
95482          , p_override_seg_flag        => 'Y'
95483    );
95484 
95485    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95486 
95487       xla_ae_lines_pkg.set_segment(
95488           p_to_segment_code         => 'GL_ACCOUNT'
95489         , p_segment_value           => l_segment
95490         , p_from_segment_code       => l_adr_value_segment_code
95491         , p_from_combination_id     => l_adr_value_combination_id
95492         , p_value_type_code         => l_adr_value_type_code
95493         , p_transaction_coa_id      => l_adr_transaction_coa_id
95494         , p_accounting_coa_id       => l_adr_accounting_coa_id
95495         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95496         , p_flex_value_set_id       => l_adr_flex_value_set_id
95497         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95498         , p_adr_type_code           => 'S'
95499         , p_component_type          => l_component_type
95500         , p_component_code          => l_component_code
95501         , p_component_type_code     => l_component_type_code
95502         , p_component_appl_id       => l_component_appl_id
95503         , p_amb_context_code        => l_amb_context_code
95504         , p_entity_code             => 'AP_PAYMENTS'
95505         , p_event_class_code        => 'RECONCILED PAYMENTS'
95506         , p_side                    => 'NA'
95507         );
95508 
95509   END IF;
95510 
95511    --
95512    --
95513    END IF;
95514 
95515        --
95516        -- Update the line information that should be overwritten
95517        --
95518        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95519                                          p_header_num   => 1);
95520        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95521 
95522        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95523 
95524        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95525           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95526        END IF;
95527 
95528       --
95529       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95530       --
95531       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95532           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95533       ELSE
95534           ---------------------------------------------------------------------------------------------------
95535           -- 4262811a Switch Sign
95536           ---------------------------------------------------------------------------------------------------
95537           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95538           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95539                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95540           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95541                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95542           -- 5132302
95543           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95544                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95545 
95546       END IF;
95547 
95548       -- 4955764
95549       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95553       XLA_AE_LINES_PKG.ValidateCurrentLine;
95550       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95551 
95552 
95554       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95555 
95556       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95557                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95558                ,p_balance_type_code => l_balance_type_code);
95559 
95560    END IF;
95561 
95562    -----------------------------------------------------------------------------------------
95563    -- 4262811 Multiperiod Accounting
95564    -----------------------------------------------------------------------------------------
95565      -- No MPA option is assigned.
95566 
95567 
95568 END IF;
95569 END IF;
95570 --
95571 
95572 --
95573 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95574    trace
95575       (p_msg      => 'END of AcctLineType_162'
95576       ,p_level    => C_LEVEL_PROCEDURE
95577       ,p_module   => l_log_module);
95578 END IF;
95579 --
95580 EXCEPTION
95581   WHEN xla_exceptions_pkg.application_exception THEN
95582       RAISE;
95583   WHEN OTHERS THEN
95584        xla_exceptions_pkg.raise_message
95585            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_162');
95586 END AcctLineType_162;
95587 --
95588 
95589 ---------------------------------------
95590 --
95591 -- PRIVATE FUNCTION
95592 --         AcctLineType_163
95593 --
95594 ---------------------------------------
95595 PROCEDURE AcctLineType_163 (
95596   p_application_id        IN NUMBER
95597  ,p_event_id              IN NUMBER
95598  ,p_calculate_acctd_flag  IN VARCHAR2
95599  ,p_calculate_g_l_flag    IN VARCHAR2
95600  ,p_actual_flag           IN OUT VARCHAR2
95601  ,p_balance_type_code     OUT VARCHAR2
95602  ,p_gain_or_loss_ref      OUT VARCHAR2
95603  
95604 --Payment Currency Code
95605  , p_source_13            IN VARCHAR2
95606 --Automatic Offsets Value
95607  , p_source_15            IN VARCHAR2
95608  , p_source_15_meaning    IN VARCHAR2
95609 --Invoice Distribution Account
95610  , p_source_30            IN NUMBER
95611 --Internal Realized Loss Account
95612  , p_source_38            IN NUMBER
95613 --Bank Loss Account
95614  , p_source_39            IN NUMBER
95615 --Accounting Reversal Indicator
95616  , p_source_52            IN VARCHAR2
95617 --Distribution Link Type
95618  , p_source_54            IN VARCHAR2
95619 --Override Accounted Amount Indicator
95620  , p_source_79            IN VARCHAR2
95621  , p_source_79_meaning    IN VARCHAR2
95622 --Third Party Type
95623  , p_source_82            IN VARCHAR2
95624 --Invoice Distribution Tax Line Identifier
95625  , p_source_85            IN NUMBER
95626 --Invoice Distribution Tax Distribution Identifier from Tax
95627  , p_source_86            IN NUMBER
95628 --Invoice Distribution Summary Tax Line Identifier
95629  , p_source_87            IN NUMBER
95630 --Business Flow Accounts Payable Application Identifier
95631  , p_source_90            IN NUMBER
95632 --Business Flow Invoice Distribution Type
95633  , p_source_91            IN VARCHAR2
95634 --Business Flow Invoice Entity Code
95635  , p_source_92            IN VARCHAR2
95636 --Business Flow Invoice Distribution Identifier
95637  , p_source_93            IN NUMBER
95638 --Business Flow Invoice Identifier
95639  , p_source_94            IN NUMBER
95640 --When to Account for Payment Option
95641  , p_source_96            IN VARCHAR2
95642 --Payment Distribution Type
95643  , p_source_97            IN VARCHAR2
95644  , p_source_97_meaning    IN VARCHAR2
95645 --Payment Distribution Amount
95646  , p_source_98            IN NUMBER
95647 --Payment Distribution Identifier
95648  , p_source_103            IN NUMBER
95649 --Payment Supplier Identifier
95650  , p_source_109            IN NUMBER
95651 --Payment Supplier Site Identifier
95652  , p_source_110            IN NUMBER
95653 --Payment Distribution Reversed Identifier
95654  , p_source_111            IN NUMBER
95655 --Payment Identifier
95656  , p_source_112            IN NUMBER
95657 --Payment Exchange Date
95658  , p_source_117            IN DATE
95659 --Payment Exchange Rate
95660  , p_source_118            IN NUMBER
95661 --Payment Exchange Rate Type
95662  , p_source_119            IN VARCHAR2
95663 --Payment Type
95664  , p_source_122            IN VARCHAR2
95665  , p_source_122_meaning    IN VARCHAR2
95666 --Invoice Distribution Amount of the Payment Distribution
95667  , p_source_124            IN NUMBER
95668 --Invoice/Payment Ledger Amount Difference
95669  , p_source_150            IN NUMBER
95670 --Gain or Loss Indicator between Invoice and Payment
95671  , p_source_155            IN VARCHAR2
95672 )
95673 IS
95674 
95675 l_component_type              VARCHAR2(80);
95676 l_component_code              VARCHAR2(30);
95677 l_component_type_code         VARCHAR2(1);
95678 l_component_appl_id           INTEGER;
95679 l_amb_context_code            VARCHAR2(30);
95680 l_entity_code                 VARCHAR2(30);
95681 l_event_class_code            VARCHAR2(30);
95682 l_ae_header_id                NUMBER;
95683 l_event_type_code             VARCHAR2(30);
95684 l_line_definition_code        VARCHAR2(30);
95685 l_line_definition_owner_code  VARCHAR2(1);
95686 --
95687 -- adr variables
95688 l_segment                     VARCHAR2(30);
95689 l_ccid                        NUMBER;
95693 l_adr_flex_value_set_id       NUMBER;
95690 l_adr_transaction_coa_id      NUMBER;
95691 l_adr_accounting_coa_id       NUMBER;
95692 l_adr_flexfield_segment_code  VARCHAR2(30);
95694 l_adr_value_type_code         VARCHAR2(30);
95695 l_adr_value_combination_id    NUMBER;
95696 l_adr_value_segment_code      VARCHAR2(30);
95697 
95698 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95699 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95700 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95701 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95702 
95703 -- 4262811 Variables ------------------------------------------------------------------------------------------
95704 l_entered_amt_idx             NUMBER;
95705 l_accted_amt_idx              NUMBER;
95706 l_acc_rev_flag                VARCHAR2(1);
95707 l_accrual_line_num            NUMBER;
95708 l_tmp_amt                     NUMBER;
95709 l_acc_rev_natural_side_code   VARCHAR2(1);
95710 
95711 l_num_entries                 NUMBER;
95712 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95713 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95714 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95715 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95716 l_recog_line_1                NUMBER;
95717 l_recog_line_2                NUMBER;
95718 
95719 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95720 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95721 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95722 
95723 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95724 
95725 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95726 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95727 
95728 ---------------------------------------------------------------------------------------------------------------
95729 
95730 
95731 --
95732 -- bulk performance
95733 --
95734 l_balance_type_code           VARCHAR2(1);
95735 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95736 l_log_module                  VARCHAR2(240);
95737 
95738 --
95739 -- Upgrade strategy
95740 --
95741 l_actual_upg_option           VARCHAR2(1);
95742 l_enc_upg_option           VARCHAR2(1);
95743 
95744 --
95745 BEGIN
95746 --
95747 IF g_log_enabled THEN
95748       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
95749 END IF;
95750 --
95751 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95752 
95753       trace
95754          (p_msg      => 'BEGIN of AcctLineType_163'
95755          ,p_level    => C_LEVEL_PROCEDURE
95756          ,p_module   => l_log_module);
95757 
95758 END IF;
95759 --
95760 l_component_type             := 'AMB_JLT';
95761 l_component_code             := 'AP_LOSS_PMT';
95762 l_component_type_code        := 'S';
95763 l_component_appl_id          :=  200;
95764 l_amb_context_code           := 'DEFAULT';
95765 l_entity_code                := 'AP_PAYMENTS';
95766 l_event_class_code           := 'PAYMENTS';
95767 l_event_type_code            := 'PAYMENTS_ALL';
95768 l_line_definition_owner_code := 'S';
95769 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
95770 --
95771 l_balance_type_code          := 'A';
95772 l_segment                     := NULL;
95773 l_ccid                        := NULL;
95774 l_adr_transaction_coa_id      := NULL;
95775 l_adr_accounting_coa_id       := NULL;
95776 l_adr_flexfield_segment_code  := NULL;
95777 l_adr_flex_value_set_id       := NULL;
95778 l_adr_value_type_code         := NULL;
95779 l_adr_value_combination_id    := NULL;
95780 l_adr_value_segment_code      := NULL;
95781 
95782 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
95783 l_bflow_class_code           := '';    -- 4219869 Business Flow
95784 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95785 l_budgetary_control_flag     := 'N';
95786 
95787 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95788 l_bflow_applied_to_amt       := NULL; -- 5132302
95789 l_entered_amt_idx            := NULL;          -- 4262811
95790 l_accted_amt_idx             := NULL;          -- 4262811
95791 l_acc_rev_flag               := NULL;          -- 4262811
95792 l_accrual_line_num           := NULL;          -- 4262811
95793 l_tmp_amt                    := NULL;          -- 4262811
95794 --
95795 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
95796             (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
95797                return;
95798   END IF;
95799   
95800 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95801     l_balance_type_code <> 'B' THEN
95802 IF (NVL(p_source_96,'
95803 ') <>  'CLEAR_CLEAR' AND 
95804 NVL(p_source_96,'
95805 ') <>  'ALWAYS_CLEAR') AND 
95806 NVL(p_source_155,'
95807 ') =  'LOSS' AND 
95808 NVL(p_source_97,'
95809 ') <>  'EXCHANGE RATE VARIANCE' AND 
95810 NVL(p_source_97,'
95811 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
95812 NVL(p_source_97,'
95813 ') <>  'BANK CHARGE' AND 
95817 ') <>  'AWT' AND 
95814 NVL(p_source_97,'
95815 ') <>  'BANK ERROR' AND 
95816 NVL(p_source_97,'
95818 NVL(p_source_122,'
95819 ') <>  'R'
95820  THEN 
95821 
95822    --
95823    XLA_AE_LINES_PKG.SetNewLine;
95824 
95825    p_balance_type_code          := l_balance_type_code;
95826    -- set the flag so later we will know whether the gain loss line needs to be created
95827    
95828    IF(l_balance_type_code = 'A' ) THEN
95829      p_actual_flag :='G';
95830    END IF;
95831 
95832    --
95833    -- bulk performance
95834    --
95835    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95836                                       p_header_num   => 0); -- 4262811
95837    --
95838    -- set accounting line options
95839    --
95840    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95841            p_natural_side_code          => 'C'
95842          , p_gain_or_loss_flag          => 'Y'
95843          , p_gl_transfer_mode_code      => 'S'
95844          , p_acct_entry_type_code       => 'A'
95845          , p_switch_side_flag           => 'Y'
95846          , p_merge_duplicate_code       => 'A'
95847          );
95848    --
95849    l_acc_rev_natural_side_code := 'D';  -- 4262811
95850    -- 
95851    --
95852    -- set accounting line type info
95853    --
95854    xla_ae_lines_pkg.SetAcctLineType
95855       (p_component_type             => l_component_type
95856       ,p_event_type_code            => l_event_type_code
95857       ,p_line_definition_owner_code => l_line_definition_owner_code
95858       ,p_line_definition_code       => l_line_definition_code
95859       ,p_accounting_line_code       => l_component_code
95860       ,p_accounting_line_type_code  => l_component_type_code
95861       ,p_accounting_line_appl_id    => l_component_appl_id
95862       ,p_amb_context_code           => l_amb_context_code
95863       ,p_entity_code                => l_entity_code
95864       ,p_event_class_code           => l_event_class_code);
95865    --
95866    -- set accounting class
95867    --
95868    xla_ae_lines_pkg.SetAcctClass(
95869            p_accounting_class_code  => 'LOSS'
95870          , p_ae_header_id           => l_ae_header_id
95871          );
95872 
95873    --
95874    -- set rounding class
95875    --
95876    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95877                       'LOSS';
95878 
95879    --
95880    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95881    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95882    --
95883    -- bulk performance
95884    --
95885    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95886 
95887    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95888       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95889 
95890    -- 4955764
95891    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95892       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95893 
95894    -- 4458381 Public Sector Enh
95895    
95896    --
95897    -- set accounting attributes for the line type
95898    --
95899    l_entered_amt_idx := 10;
95900    l_accted_amt_idx  := 15;
95901    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95902    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95903    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
95904    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95905    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
95906    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95907    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
95908    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95909    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
95910    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95911    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
95912    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95913    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
95914    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95915    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
95916    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95917    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
95918    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95919    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
95920    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95921    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
95922    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95923    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
95924    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95925    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
95926    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95927    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
95928    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95929    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
95930    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95931    l_rec_acct_attrs.array_num_value(15)  := p_source_150;
95935    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
95932    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95933    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
95934    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95936    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95937    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
95938    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95939    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
95940    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95941    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
95942    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95943    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
95944    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95945    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
95946    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95947    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
95948    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95949    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
95950 
95951    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95952    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95953 
95954    ---------------------------------------------------------------------------------------------------------------
95955    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95956    ---------------------------------------------------------------------------------------------------------------
95957    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95958 
95959    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95960    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95961 
95962    IF xla_accounting_cache_pkg.GetValueChar
95963          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95964          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95965    AND l_bflow_method_code = 'PRIOR_ENTRY'
95966 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95967    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95968          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95969        )
95970    THEN
95971          xla_ae_lines_pkg.BflowUpgEntry
95972            (p_business_method_code    => l_bflow_method_code
95973            ,p_business_class_code     => l_bflow_class_code
95974            ,p_balance_type            => l_balance_type_code);
95975    ELSE
95976       NULL;
95977 -- No business flow processing for business flow method of NONE.
95978    END IF;
95979 
95980    --
95981    -- call analytical criteria
95982    --
95983    
95984 
95985 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
95986 xla_ae_lines_pkg.SetAnalyticalCriteria(
95987    p_analytical_criterion_name    => 'Check Id'
95988  , p_analytical_criterion_owner   => 'S'
95989  , p_analytical_criterion_code    => 'CHECK_ID'
95990  , p_amb_context_code             => 'DEFAULT'
95991  , p_balancing_flag               => 'N'
95992  
95993  , p_analytical_detail_char_1    =>  NULL
95994  , p_analytical_detail_num_1     =>  p_source_112
95995  , p_analytical_detail_date_1    =>  NULL
95996 
95997  , p_ae_header_id                 => l_ae_header_id
95998 )
95999 ;
96000 --
96001 
96002    --
96003    -- call description
96004    --
96005    -- No description or it is inherited.
96006    --
96007    -- call ADRs
96008    -- Bug 4922099
96009    --
96010    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96011         (NVL(l_actual_upg_option, 'N') = 'O') OR
96012         (NVL(l_enc_upg_option, 'N') = 'O')
96013       )
96014    THEN
96015    NULL;
96016    --
96017    --
96018    
96019   l_ccid := AcctDerRule_38(
96020            p_application_id           => p_application_id
96021          , p_ae_header_id             => l_ae_header_id 
96022 , p_source_15 => p_source_15
96023 , p_source_15_meaning => p_source_15_meaning
96024 , p_source_30 => p_source_30
96025 , p_source_38 => p_source_38
96026 , p_source_39 => p_source_39
96027          , x_transaction_coa_id       => l_adr_transaction_coa_id
96028          , x_accounting_coa_id        => l_adr_accounting_coa_id
96029          , x_value_type_code          => l_adr_value_type_code
96030          , p_side                     => 'NA'
96031    );
96032 
96033    xla_ae_lines_pkg.set_ccid(
96034     p_code_combination_id          => l_ccid
96035   , p_value_type_code              => l_adr_value_type_code
96036   , p_transaction_coa_id           => l_adr_transaction_coa_id
96037   , p_accounting_coa_id            => l_adr_accounting_coa_id
96038   , p_adr_code                     => 'AP_REAL_LOSS'
96039   , p_adr_type_code                => 'S'
96040   , p_component_type               => l_component_type
96041   , p_component_code               => l_component_code
96042   , p_component_type_code          => l_component_type_code
96043   , p_component_appl_id            => l_component_appl_id
96044   , p_amb_context_code             => l_amb_context_code
96045   , p_side                         => 'NA'
96049    l_segment := AcctDerRule_22(
96046   );
96047 
96048 
96050            p_application_id           => p_application_id
96051          , p_ae_header_id             => l_ae_header_id 
96052 , p_source_15 => p_source_15
96053 , p_source_15_meaning => p_source_15_meaning
96054 , p_source_30 => p_source_30
96055          , x_transaction_coa_id       => l_adr_transaction_coa_id
96056          , x_accounting_coa_id        => l_adr_accounting_coa_id
96057          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96058          , x_flex_value_set_id        => l_adr_flex_value_set_id
96059          , x_value_type_code          => l_adr_value_type_code
96060          , x_value_combination_id     => l_adr_value_combination_id
96061          , x_value_segment_code       => l_adr_value_segment_code
96062          , p_side                     => 'NA'
96063          , p_override_seg_flag        => 'Y'
96064    );
96065 
96066    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96067 
96068       xla_ae_lines_pkg.set_segment(
96069           p_to_segment_code         => 'GL_BALANCING'
96070         , p_segment_value           => l_segment
96071         , p_from_segment_code       => l_adr_value_segment_code
96072         , p_from_combination_id     => l_adr_value_combination_id
96073         , p_value_type_code         => l_adr_value_type_code
96074         , p_transaction_coa_id      => l_adr_transaction_coa_id
96075         , p_accounting_coa_id       => l_adr_accounting_coa_id
96076         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96077         , p_flex_value_set_id       => l_adr_flex_value_set_id
96078         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96079         , p_adr_type_code           => 'S'
96080         , p_component_type          => l_component_type
96081         , p_component_code          => l_component_code
96082         , p_component_type_code     => l_component_type_code
96083         , p_component_appl_id       => l_component_appl_id
96084         , p_amb_context_code        => l_amb_context_code
96085         , p_entity_code             => 'AP_PAYMENTS'
96086         , p_event_class_code        => 'PAYMENTS'
96087         , p_side                    => 'NA'
96088         );
96089 
96090   END IF;
96091 
96092    l_segment := AcctDerRule_18(
96093            p_application_id           => p_application_id
96094          , p_ae_header_id             => l_ae_header_id 
96095 , p_source_15 => p_source_15
96096 , p_source_15_meaning => p_source_15_meaning
96097 , p_source_38 => p_source_38
96098 , p_source_39 => p_source_39
96099          , x_transaction_coa_id       => l_adr_transaction_coa_id
96100          , x_accounting_coa_id        => l_adr_accounting_coa_id
96101          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96102          , x_flex_value_set_id        => l_adr_flex_value_set_id
96103          , x_value_type_code          => l_adr_value_type_code
96104          , x_value_combination_id     => l_adr_value_combination_id
96105          , x_value_segment_code       => l_adr_value_segment_code
96106          , p_side                     => 'NA'
96107          , p_override_seg_flag        => 'Y'
96108    );
96109 
96110    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96111 
96112       xla_ae_lines_pkg.set_segment(
96113           p_to_segment_code         => 'GL_ACCOUNT'
96114         , p_segment_value           => l_segment
96115         , p_from_segment_code       => l_adr_value_segment_code
96116         , p_from_combination_id     => l_adr_value_combination_id
96117         , p_value_type_code         => l_adr_value_type_code
96118         , p_transaction_coa_id      => l_adr_transaction_coa_id
96119         , p_accounting_coa_id       => l_adr_accounting_coa_id
96120         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96121         , p_flex_value_set_id       => l_adr_flex_value_set_id
96122         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96123         , p_adr_type_code           => 'S'
96124         , p_component_type          => l_component_type
96125         , p_component_code          => l_component_code
96126         , p_component_type_code     => l_component_type_code
96127         , p_component_appl_id       => l_component_appl_id
96128         , p_amb_context_code        => l_amb_context_code
96129         , p_entity_code             => 'AP_PAYMENTS'
96130         , p_event_class_code        => 'PAYMENTS'
96131         , p_side                    => 'NA'
96132         );
96133 
96134   END IF;
96135 
96136    --
96137    --
96138    END IF;
96139    --
96140    -- Bug 4922099
96141    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96142           (NVL(l_enc_upg_option, 'N') = 'O')
96143         ) AND
96144         (l_bflow_method_code = 'PRIOR_ENTRY')
96145       )
96146    THEN
96147       IF
96148       --
96149       1 = 2
96150       --
96151       THEN
96152       xla_accounting_err_pkg.build_message
96153                                     (p_appli_s_name            => 'XLA'
96154                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96155                                     ,p_token_1                 => 'LINE_NUMBER'
96156                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96157                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96161                                                                             ,l_component_type_code
96158                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96159                                                                              l_component_type
96160                                                                             ,l_component_code
96162                                                                             ,l_component_appl_id
96163                                                                             ,l_amb_context_code
96164                                                                             ,l_entity_code
96165                                                                             ,l_event_class_code
96166                                                                            )
96167                                     ,p_token_3                 => 'OWNER'
96168                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96169                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96170                                                                           ,p_lookup_code    => l_component_type_code
96171                                                                          )
96172                                     ,p_token_4                 => 'PRODUCT_NAME'
96173                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96174                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96175                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96176                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96177                                     ,p_ae_header_id            =>  NULL
96178                                        );
96179 
96180         IF (C_LEVEL_ERROR>= g_log_level) THEN
96181                  trace
96182                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96183                       ,p_level    => C_LEVEL_ERROR
96184                       ,p_module   => l_log_module);
96185         END IF;
96186       END IF;
96187    END IF;
96188    --
96189    --
96190    ------------------------------------------------------------------------------------------------
96191    -- 4219869 Business Flow
96192    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96193    -- Prior Entry.  Currently, the following code is always generated.
96194    ------------------------------------------------------------------------------------------------
96195    XLA_AE_LINES_PKG.ValidateCurrentLine;
96196 
96197    ------------------------------------------------------------------------------------
96198    -- 4219869 Business Flow
96199    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96200    ------------------------------------------------------------------------------------
96201    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96202 
96203    ----------------------------------------------------------------------------------
96204    -- 4219869 Business Flow
96205    -- Update journal entry status -- Need to generate this within IF <condition>
96206    ----------------------------------------------------------------------------------
96207    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96208          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96209          ,p_balance_type_code => l_balance_type_code
96210          );
96211 
96212    -------------------------------------------------------------------------------------------
96213    -- 4262811 - Generate the Accrual Reversal lines
96214    -------------------------------------------------------------------------------------------
96215    BEGIN
96216       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96217                               (g_array_event(p_event_id).array_value_num('header_index'));
96218       IF l_acc_rev_flag IS NULL THEN
96219          l_acc_rev_flag := 'N';
96220       END IF;
96221    EXCEPTION
96222       WHEN OTHERS THEN
96223          l_acc_rev_flag := 'N';
96224    END;
96225    --
96226    IF (l_acc_rev_flag = 'Y') THEN
96227 
96228        -- 4645092  ------------------------------------------------------------------------------
96229        -- To allow MPA report to determine if it should generate report process
96230        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96231        ------------------------------------------------------------------------------------------
96232 
96233        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96234        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96235    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96236    -- call ADRs
96237    -- Bug 4922099
96238    --
96239    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96240         (NVL(l_actual_upg_option, 'N') = 'O') OR
96241         (NVL(l_enc_upg_option, 'N') = 'O')
96242       )
96243    THEN
96244    NULL;
96245    --
96246    --
96247    
96248   l_ccid := AcctDerRule_38(
96249            p_application_id           => p_application_id
96250          , p_ae_header_id             => l_ae_header_id 
96251 , p_source_15 => p_source_15
96252 , p_source_15_meaning => p_source_15_meaning
96253 , p_source_30 => p_source_30
96254 , p_source_38 => p_source_38
96255 , p_source_39 => p_source_39
96259          , p_side                     => 'NA'
96256          , x_transaction_coa_id       => l_adr_transaction_coa_id
96257          , x_accounting_coa_id        => l_adr_accounting_coa_id
96258          , x_value_type_code          => l_adr_value_type_code
96260    );
96261 
96262    xla_ae_lines_pkg.set_ccid(
96263     p_code_combination_id          => l_ccid
96264   , p_value_type_code              => l_adr_value_type_code
96265   , p_transaction_coa_id           => l_adr_transaction_coa_id
96266   , p_accounting_coa_id            => l_adr_accounting_coa_id
96267   , p_adr_code                     => 'AP_REAL_LOSS'
96268   , p_adr_type_code                => 'S'
96269   , p_component_type               => l_component_type
96270   , p_component_code               => l_component_code
96271   , p_component_type_code          => l_component_type_code
96272   , p_component_appl_id            => l_component_appl_id
96273   , p_amb_context_code             => l_amb_context_code
96274   , p_side                         => 'NA'
96275   );
96276 
96277 
96278    l_segment := AcctDerRule_22(
96279            p_application_id           => p_application_id
96280          , p_ae_header_id             => l_ae_header_id 
96281 , p_source_15 => p_source_15
96282 , p_source_15_meaning => p_source_15_meaning
96283 , p_source_30 => p_source_30
96284          , x_transaction_coa_id       => l_adr_transaction_coa_id
96285          , x_accounting_coa_id        => l_adr_accounting_coa_id
96286          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96287          , x_flex_value_set_id        => l_adr_flex_value_set_id
96288          , x_value_type_code          => l_adr_value_type_code
96289          , x_value_combination_id     => l_adr_value_combination_id
96290          , x_value_segment_code       => l_adr_value_segment_code
96291          , p_side                     => 'NA'
96292          , p_override_seg_flag        => 'Y'
96293    );
96294 
96295    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96296 
96297       xla_ae_lines_pkg.set_segment(
96298           p_to_segment_code         => 'GL_BALANCING'
96299         , p_segment_value           => l_segment
96300         , p_from_segment_code       => l_adr_value_segment_code
96301         , p_from_combination_id     => l_adr_value_combination_id
96302         , p_value_type_code         => l_adr_value_type_code
96303         , p_transaction_coa_id      => l_adr_transaction_coa_id
96304         , p_accounting_coa_id       => l_adr_accounting_coa_id
96305         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96306         , p_flex_value_set_id       => l_adr_flex_value_set_id
96307         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96308         , p_adr_type_code           => 'S'
96309         , p_component_type          => l_component_type
96310         , p_component_code          => l_component_code
96311         , p_component_type_code     => l_component_type_code
96312         , p_component_appl_id       => l_component_appl_id
96313         , p_amb_context_code        => l_amb_context_code
96314         , p_entity_code             => 'AP_PAYMENTS'
96315         , p_event_class_code        => 'PAYMENTS'
96316         , p_side                    => 'NA'
96317         );
96318 
96319   END IF;
96320 
96321    l_segment := AcctDerRule_18(
96322            p_application_id           => p_application_id
96323          , p_ae_header_id             => l_ae_header_id 
96324 , p_source_15 => p_source_15
96325 , p_source_15_meaning => p_source_15_meaning
96326 , p_source_38 => p_source_38
96327 , p_source_39 => p_source_39
96328          , x_transaction_coa_id       => l_adr_transaction_coa_id
96329          , x_accounting_coa_id        => l_adr_accounting_coa_id
96330          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96331          , x_flex_value_set_id        => l_adr_flex_value_set_id
96332          , x_value_type_code          => l_adr_value_type_code
96333          , x_value_combination_id     => l_adr_value_combination_id
96334          , x_value_segment_code       => l_adr_value_segment_code
96335          , p_side                     => 'NA'
96336          , p_override_seg_flag        => 'Y'
96337    );
96338 
96339    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96340 
96341       xla_ae_lines_pkg.set_segment(
96342           p_to_segment_code         => 'GL_ACCOUNT'
96343         , p_segment_value           => l_segment
96344         , p_from_segment_code       => l_adr_value_segment_code
96345         , p_from_combination_id     => l_adr_value_combination_id
96346         , p_value_type_code         => l_adr_value_type_code
96347         , p_transaction_coa_id      => l_adr_transaction_coa_id
96348         , p_accounting_coa_id       => l_adr_accounting_coa_id
96349         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96350         , p_flex_value_set_id       => l_adr_flex_value_set_id
96351         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96352         , p_adr_type_code           => 'S'
96353         , p_component_type          => l_component_type
96354         , p_component_code          => l_component_code
96355         , p_component_type_code     => l_component_type_code
96356         , p_component_appl_id       => l_component_appl_id
96357         , p_amb_context_code        => l_amb_context_code
96358         , p_entity_code             => 'AP_PAYMENTS'
96359         , p_event_class_code        => 'PAYMENTS'
96360         , p_side                    => 'NA'
96361         );
96362 
96363   END IF;
96364 
96365    --
96369        --
96366    --
96367    END IF;
96368 
96370        -- Update the line information that should be overwritten
96371        --
96372        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96373                                          p_header_num   => 1);
96374        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96375 
96376        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96377 
96378        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96379           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96380        END IF;
96381 
96382       --
96383       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96384       --
96385       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96386           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96387       ELSE
96388           ---------------------------------------------------------------------------------------------------
96389           -- 4262811a Switch Sign
96390           ---------------------------------------------------------------------------------------------------
96391           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96392           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96393                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96394           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96395                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96396           -- 5132302
96397           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96398                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96399 
96400       END IF;
96401 
96402       -- 4955764
96403       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96404       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96405 
96406 
96407       XLA_AE_LINES_PKG.ValidateCurrentLine;
96408       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96409 
96410       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96411                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96412                ,p_balance_type_code => l_balance_type_code);
96413 
96414    END IF;
96415 
96416    -----------------------------------------------------------------------------------------
96417    -- 4262811 Multiperiod Accounting
96418    -----------------------------------------------------------------------------------------
96419      -- No MPA option is assigned.
96420 
96421 
96422 END IF;
96423 END IF;
96424 --
96425 
96426 --
96427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96428    trace
96429       (p_msg      => 'END of AcctLineType_163'
96430       ,p_level    => C_LEVEL_PROCEDURE
96431       ,p_module   => l_log_module);
96432 END IF;
96433 --
96434 EXCEPTION
96435   WHEN xla_exceptions_pkg.application_exception THEN
96436       RAISE;
96437   WHEN OTHERS THEN
96438        xla_exceptions_pkg.raise_message
96439            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_163');
96440 END AcctLineType_163;
96441 --
96442 
96443 ---------------------------------------
96444 --
96445 -- PRIVATE FUNCTION
96446 --         AcctLineType_164
96447 --
96448 ---------------------------------------
96449 PROCEDURE AcctLineType_164 (
96450   p_application_id        IN NUMBER
96451  ,p_event_id              IN NUMBER
96452  ,p_calculate_acctd_flag  IN VARCHAR2
96453  ,p_calculate_g_l_flag    IN VARCHAR2
96454  ,p_actual_flag           IN OUT VARCHAR2
96455  ,p_balance_type_code     OUT VARCHAR2
96456  ,p_gain_or_loss_ref      OUT VARCHAR2
96457  
96458 --Payment Currency Code
96459  , p_source_13            IN VARCHAR2
96460 --Automatic Offsets Value
96461  , p_source_15            IN VARCHAR2
96462  , p_source_15_meaning    IN VARCHAR2
96463 --Invoice Distribution Account
96464  , p_source_30            IN NUMBER
96465 --Internal Realized Loss Account
96466  , p_source_38            IN NUMBER
96467 --Bank Loss Account
96468  , p_source_39            IN NUMBER
96469 --Accounting Reversal Indicator
96470  , p_source_52            IN VARCHAR2
96471 --Distribution Link Type
96472  , p_source_54            IN VARCHAR2
96473 --Override Accounted Amount Indicator
96474  , p_source_79            IN VARCHAR2
96475  , p_source_79_meaning    IN VARCHAR2
96476 --Third Party Type
96477  , p_source_82            IN VARCHAR2
96478 --Invoice Distribution Tax Line Identifier
96479  , p_source_85            IN NUMBER
96480 --Invoice Distribution Summary Tax Line Identifier
96481  , p_source_87            IN NUMBER
96482 --Business Flow Accounts Payable Application Identifier
96483  , p_source_90            IN NUMBER
96484 --When to Account for Payment Option
96485  , p_source_96            IN VARCHAR2
96486 --Payment Distribution Type
96487  , p_source_97            IN VARCHAR2
96488  , p_source_97_meaning    IN VARCHAR2
96489 --Payment Distribution Amount
96490  , p_source_98            IN NUMBER
96491 --Business Flow Payment Distribution Type
96495 --Business Flow Payment Distribution Identifier
96492  , p_source_99            IN VARCHAR2
96493 --Business Flow Payment Entity Code
96494  , p_source_100            IN VARCHAR2
96496  , p_source_101            IN NUMBER
96497 --Business Flow Payment Identifier
96498  , p_source_102            IN NUMBER
96499 --Payment Distribution Identifier
96500  , p_source_103            IN NUMBER
96501 --Cleared Exchange Date
96502  , p_source_105            IN DATE
96503 --Cleared Exchange Rate
96504  , p_source_106            IN NUMBER
96505 --Cleared Exchange Rate Type
96506  , p_source_107            IN VARCHAR2
96507 --Payment Supplier Identifier
96508  , p_source_109            IN NUMBER
96509 --Payment Supplier Site Identifier
96510  , p_source_110            IN NUMBER
96511 --Payment Distribution Reversed Identifier
96512  , p_source_111            IN NUMBER
96513 --Payment Identifier
96514  , p_source_112            IN NUMBER
96515 --Payment Maturity Date
96516  , p_source_114            IN DATE
96517 --Gain or Loss Indicator between Payment and Clearing
96518  , p_source_156            IN VARCHAR2
96519 --Payment/Clearing Ledger Amount Difference
96520  , p_source_157            IN NUMBER
96521 )
96522 IS
96523 
96524 l_component_type              VARCHAR2(80);
96525 l_component_code              VARCHAR2(30);
96526 l_component_type_code         VARCHAR2(1);
96527 l_component_appl_id           INTEGER;
96528 l_amb_context_code            VARCHAR2(30);
96529 l_entity_code                 VARCHAR2(30);
96530 l_event_class_code            VARCHAR2(30);
96531 l_ae_header_id                NUMBER;
96532 l_event_type_code             VARCHAR2(30);
96533 l_line_definition_code        VARCHAR2(30);
96534 l_line_definition_owner_code  VARCHAR2(1);
96535 --
96536 -- adr variables
96537 l_segment                     VARCHAR2(30);
96538 l_ccid                        NUMBER;
96539 l_adr_transaction_coa_id      NUMBER;
96540 l_adr_accounting_coa_id       NUMBER;
96541 l_adr_flexfield_segment_code  VARCHAR2(30);
96542 l_adr_flex_value_set_id       NUMBER;
96543 l_adr_value_type_code         VARCHAR2(30);
96544 l_adr_value_combination_id    NUMBER;
96545 l_adr_value_segment_code      VARCHAR2(30);
96546 
96547 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96548 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96549 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96550 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96551 
96552 -- 4262811 Variables ------------------------------------------------------------------------------------------
96553 l_entered_amt_idx             NUMBER;
96554 l_accted_amt_idx              NUMBER;
96555 l_acc_rev_flag                VARCHAR2(1);
96556 l_accrual_line_num            NUMBER;
96557 l_tmp_amt                     NUMBER;
96558 l_acc_rev_natural_side_code   VARCHAR2(1);
96559 
96560 l_num_entries                 NUMBER;
96561 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96562 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96563 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96564 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96565 l_recog_line_1                NUMBER;
96566 l_recog_line_2                NUMBER;
96567 
96568 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96569 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96570 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96571 
96572 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96573 
96574 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96575 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96576 
96577 ---------------------------------------------------------------------------------------------------------------
96578 
96579 
96580 --
96581 -- bulk performance
96582 --
96583 l_balance_type_code           VARCHAR2(1);
96584 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96585 l_log_module                  VARCHAR2(240);
96586 
96587 --
96588 -- Upgrade strategy
96589 --
96590 l_actual_upg_option           VARCHAR2(1);
96591 l_enc_upg_option           VARCHAR2(1);
96592 
96593 --
96594 BEGIN
96595 --
96596 IF g_log_enabled THEN
96597       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
96598 END IF;
96599 --
96600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96601 
96602       trace
96603          (p_msg      => 'BEGIN of AcctLineType_164'
96604          ,p_level    => C_LEVEL_PROCEDURE
96605          ,p_module   => l_log_module);
96606 
96607 END IF;
96608 --
96609 l_component_type             := 'AMB_JLT';
96610 l_component_code             := 'AP_LOSS_PMT_CLEAR';
96611 l_component_type_code        := 'S';
96612 l_component_appl_id          :=  200;
96613 l_amb_context_code           := 'DEFAULT';
96614 l_entity_code                := 'AP_PAYMENTS';
96615 l_event_class_code           := 'RECONCILED PAYMENTS';
96616 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
96617 l_line_definition_owner_code := 'S';
96618 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
96619 --
96620 l_balance_type_code          := 'A';
96624 l_adr_accounting_coa_id       := NULL;
96621 l_segment                     := NULL;
96622 l_ccid                        := NULL;
96623 l_adr_transaction_coa_id      := NULL;
96625 l_adr_flexfield_segment_code  := NULL;
96626 l_adr_flex_value_set_id       := NULL;
96627 l_adr_value_type_code         := NULL;
96628 l_adr_value_combination_id    := NULL;
96629 l_adr_value_segment_code      := NULL;
96630 
96631 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
96632 l_bflow_class_code           := '';    -- 4219869 Business Flow
96633 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96634 l_budgetary_control_flag     := 'N';
96635 
96636 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96637 l_bflow_applied_to_amt       := NULL; -- 5132302
96638 l_entered_amt_idx            := NULL;          -- 4262811
96639 l_accted_amt_idx             := NULL;          -- 4262811
96640 l_acc_rev_flag               := NULL;          -- 4262811
96641 l_accrual_line_num           := NULL;          -- 4262811
96642 l_tmp_amt                    := NULL;          -- 4262811
96643 --
96644 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
96645             (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
96646                return;
96647   END IF;
96648   
96649 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96650     l_balance_type_code <> 'B' THEN
96651 IF NVL(p_source_96,'
96652 ') =  'ALWAYS_ALWAYS' AND 
96653 p_source_114 IS NULL AND 
96654 NVL(p_source_156,'
96655 ') =  'LOSS' AND 
96656 NVL(p_source_97,'
96657 ') <>  'EXCHANGE RATE VARIANCE' AND 
96658 NVL(p_source_97,'
96659 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
96660 NVL(p_source_97,'
96661 ') <>  'BANK CHARGE' AND 
96662 NVL(p_source_97,'
96663 ') <>  'BANK ERROR' AND 
96664 NVL(p_source_97,'
96665 ') <>  'AWT'
96666  THEN 
96667 
96668    --
96669    XLA_AE_LINES_PKG.SetNewLine;
96670 
96671    p_balance_type_code          := l_balance_type_code;
96672    -- set the flag so later we will know whether the gain loss line needs to be created
96673    
96674    IF(l_balance_type_code = 'A' ) THEN
96675      p_actual_flag :='G';
96676    END IF;
96677 
96678    --
96679    -- bulk performance
96680    --
96681    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96682                                       p_header_num   => 0); -- 4262811
96683    --
96684    -- set accounting line options
96685    --
96686    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96687            p_natural_side_code          => 'C'
96688          , p_gain_or_loss_flag          => 'Y'
96689          , p_gl_transfer_mode_code      => 'S'
96690          , p_acct_entry_type_code       => 'A'
96691          , p_switch_side_flag           => 'Y'
96692          , p_merge_duplicate_code       => 'A'
96693          );
96694    --
96695    l_acc_rev_natural_side_code := 'D';  -- 4262811
96696    -- 
96697    --
96698    -- set accounting line type info
96699    --
96700    xla_ae_lines_pkg.SetAcctLineType
96701       (p_component_type             => l_component_type
96702       ,p_event_type_code            => l_event_type_code
96703       ,p_line_definition_owner_code => l_line_definition_owner_code
96704       ,p_line_definition_code       => l_line_definition_code
96705       ,p_accounting_line_code       => l_component_code
96706       ,p_accounting_line_type_code  => l_component_type_code
96707       ,p_accounting_line_appl_id    => l_component_appl_id
96708       ,p_amb_context_code           => l_amb_context_code
96709       ,p_entity_code                => l_entity_code
96710       ,p_event_class_code           => l_event_class_code);
96711    --
96712    -- set accounting class
96713    --
96714    xla_ae_lines_pkg.SetAcctClass(
96715            p_accounting_class_code  => 'LOSS'
96716          , p_ae_header_id           => l_ae_header_id
96717          );
96718 
96719    --
96720    -- set rounding class
96721    --
96722    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96723                       'LOSS';
96724 
96725    --
96726    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96727    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96728    --
96729    -- bulk performance
96730    --
96731    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96732 
96733    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96734       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96735 
96736    -- 4955764
96737    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96738       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96739 
96740    -- 4458381 Public Sector Enh
96741    
96742    --
96743    -- set accounting attributes for the line type
96744    --
96745    l_entered_amt_idx := 10;
96746    l_accted_amt_idx  := 15;
96747    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
96751    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
96748    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96749    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
96750    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
96752    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
96753    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
96754    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96755    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
96756    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
96757    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
96758    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
96759    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
96760    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96761    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
96762    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
96763    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
96764    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
96765    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
96766    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
96767    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
96768    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
96769    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
96770    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
96771    l_rec_acct_attrs.array_date_value(12)  := p_source_105;
96772    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
96773    l_rec_acct_attrs.array_num_value(13)  := p_source_106;
96774    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
96775    l_rec_acct_attrs.array_char_value(14)  := p_source_107;
96776    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
96777    l_rec_acct_attrs.array_num_value(15)  := p_source_157;
96778    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
96779    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
96780    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
96781    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
96782    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
96783    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
96784    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
96785    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
96786    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
96787    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
96788    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
96789    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
96790    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
96791    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
96792    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
96793    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
96794    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
96795    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
96796 
96797    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96798    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96799 
96800    ---------------------------------------------------------------------------------------------------------------
96801    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96802    ---------------------------------------------------------------------------------------------------------------
96803    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96804 
96805    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96806    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96807 
96808    IF xla_accounting_cache_pkg.GetValueChar
96809          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96810          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96811    AND l_bflow_method_code = 'PRIOR_ENTRY'
96812 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96813    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96814          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96815        )
96816    THEN
96817          xla_ae_lines_pkg.BflowUpgEntry
96818            (p_business_method_code    => l_bflow_method_code
96819            ,p_business_class_code     => l_bflow_class_code
96820            ,p_balance_type            => l_balance_type_code);
96821    ELSE
96822       NULL;
96823 -- No business flow processing for business flow method of NONE.
96824    END IF;
96825 
96826    --
96827    -- call analytical criteria
96828    --
96829    
96830 
96831 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
96832 xla_ae_lines_pkg.SetAnalyticalCriteria(
96833    p_analytical_criterion_name    => 'Check Id'
96834  , p_analytical_criterion_owner   => 'S'
96835  , p_analytical_criterion_code    => 'CHECK_ID'
96836  , p_amb_context_code             => 'DEFAULT'
96837  , p_balancing_flag               => 'N'
96838  
96839  , p_analytical_detail_char_1    =>  NULL
96840  , p_analytical_detail_num_1     =>  p_source_112
96844 )
96841  , p_analytical_detail_date_1    =>  NULL
96842 
96843  , p_ae_header_id                 => l_ae_header_id
96845 ;
96846 --
96847 
96848    --
96849    -- call description
96850    --
96851    -- No description or it is inherited.
96852    --
96853    -- call ADRs
96854    -- Bug 4922099
96855    --
96856    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96857         (NVL(l_actual_upg_option, 'N') = 'O') OR
96858         (NVL(l_enc_upg_option, 'N') = 'O')
96859       )
96860    THEN
96861    NULL;
96862    --
96863    --
96864    
96865   l_ccid := AcctDerRule_38(
96866            p_application_id           => p_application_id
96867          , p_ae_header_id             => l_ae_header_id 
96868 , p_source_15 => p_source_15
96869 , p_source_15_meaning => p_source_15_meaning
96870 , p_source_30 => p_source_30
96871 , p_source_38 => p_source_38
96872 , p_source_39 => p_source_39
96873          , x_transaction_coa_id       => l_adr_transaction_coa_id
96874          , x_accounting_coa_id        => l_adr_accounting_coa_id
96875          , x_value_type_code          => l_adr_value_type_code
96876          , p_side                     => 'NA'
96877    );
96878 
96879    xla_ae_lines_pkg.set_ccid(
96880     p_code_combination_id          => l_ccid
96881   , p_value_type_code              => l_adr_value_type_code
96882   , p_transaction_coa_id           => l_adr_transaction_coa_id
96883   , p_accounting_coa_id            => l_adr_accounting_coa_id
96884   , p_adr_code                     => 'AP_REAL_LOSS'
96885   , p_adr_type_code                => 'S'
96886   , p_component_type               => l_component_type
96887   , p_component_code               => l_component_code
96888   , p_component_type_code          => l_component_type_code
96889   , p_component_appl_id            => l_component_appl_id
96890   , p_amb_context_code             => l_amb_context_code
96891   , p_side                         => 'NA'
96892   );
96893 
96894 
96895    l_segment := AcctDerRule_22(
96896            p_application_id           => p_application_id
96897          , p_ae_header_id             => l_ae_header_id 
96898 , p_source_15 => p_source_15
96899 , p_source_15_meaning => p_source_15_meaning
96900 , p_source_30 => p_source_30
96901          , x_transaction_coa_id       => l_adr_transaction_coa_id
96902          , x_accounting_coa_id        => l_adr_accounting_coa_id
96903          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96904          , x_flex_value_set_id        => l_adr_flex_value_set_id
96905          , x_value_type_code          => l_adr_value_type_code
96906          , x_value_combination_id     => l_adr_value_combination_id
96907          , x_value_segment_code       => l_adr_value_segment_code
96908          , p_side                     => 'NA'
96909          , p_override_seg_flag        => 'Y'
96910    );
96911 
96912    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96913 
96914       xla_ae_lines_pkg.set_segment(
96915           p_to_segment_code         => 'GL_BALANCING'
96916         , p_segment_value           => l_segment
96917         , p_from_segment_code       => l_adr_value_segment_code
96918         , p_from_combination_id     => l_adr_value_combination_id
96919         , p_value_type_code         => l_adr_value_type_code
96920         , p_transaction_coa_id      => l_adr_transaction_coa_id
96921         , p_accounting_coa_id       => l_adr_accounting_coa_id
96922         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96923         , p_flex_value_set_id       => l_adr_flex_value_set_id
96924         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96925         , p_adr_type_code           => 'S'
96926         , p_component_type          => l_component_type
96927         , p_component_code          => l_component_code
96928         , p_component_type_code     => l_component_type_code
96929         , p_component_appl_id       => l_component_appl_id
96930         , p_amb_context_code        => l_amb_context_code
96931         , p_entity_code             => 'AP_PAYMENTS'
96932         , p_event_class_code        => 'RECONCILED PAYMENTS'
96933         , p_side                    => 'NA'
96934         );
96935 
96936   END IF;
96937 
96938    l_segment := AcctDerRule_18(
96939            p_application_id           => p_application_id
96940          , p_ae_header_id             => l_ae_header_id 
96941 , p_source_15 => p_source_15
96942 , p_source_15_meaning => p_source_15_meaning
96943 , p_source_38 => p_source_38
96944 , p_source_39 => p_source_39
96945          , x_transaction_coa_id       => l_adr_transaction_coa_id
96946          , x_accounting_coa_id        => l_adr_accounting_coa_id
96947          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96948          , x_flex_value_set_id        => l_adr_flex_value_set_id
96949          , x_value_type_code          => l_adr_value_type_code
96950          , x_value_combination_id     => l_adr_value_combination_id
96951          , x_value_segment_code       => l_adr_value_segment_code
96952          , p_side                     => 'NA'
96953          , p_override_seg_flag        => 'Y'
96954    );
96955 
96956    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96957 
96958       xla_ae_lines_pkg.set_segment(
96959           p_to_segment_code         => 'GL_ACCOUNT'
96960         , p_segment_value           => l_segment
96961         , p_from_segment_code       => l_adr_value_segment_code
96962         , p_from_combination_id     => l_adr_value_combination_id
96966         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96963         , p_value_type_code         => l_adr_value_type_code
96964         , p_transaction_coa_id      => l_adr_transaction_coa_id
96965         , p_accounting_coa_id       => l_adr_accounting_coa_id
96967         , p_flex_value_set_id       => l_adr_flex_value_set_id
96968         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96969         , p_adr_type_code           => 'S'
96970         , p_component_type          => l_component_type
96971         , p_component_code          => l_component_code
96972         , p_component_type_code     => l_component_type_code
96973         , p_component_appl_id       => l_component_appl_id
96974         , p_amb_context_code        => l_amb_context_code
96975         , p_entity_code             => 'AP_PAYMENTS'
96976         , p_event_class_code        => 'RECONCILED PAYMENTS'
96977         , p_side                    => 'NA'
96978         );
96979 
96980   END IF;
96981 
96982    --
96983    --
96984    END IF;
96985    --
96986    -- Bug 4922099
96987    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96988           (NVL(l_enc_upg_option, 'N') = 'O')
96989         ) AND
96990         (l_bflow_method_code = 'PRIOR_ENTRY')
96991       )
96992    THEN
96993       IF
96994       --
96995       1 = 2
96996       --
96997       THEN
96998       xla_accounting_err_pkg.build_message
96999                                     (p_appli_s_name            => 'XLA'
97000                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97001                                     ,p_token_1                 => 'LINE_NUMBER'
97002                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97003                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97004                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97005                                                                              l_component_type
97006                                                                             ,l_component_code
97007                                                                             ,l_component_type_code
97008                                                                             ,l_component_appl_id
97009                                                                             ,l_amb_context_code
97010                                                                             ,l_entity_code
97011                                                                             ,l_event_class_code
97012                                                                            )
97013                                     ,p_token_3                 => 'OWNER'
97014                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97015                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97016                                                                           ,p_lookup_code    => l_component_type_code
97017                                                                          )
97018                                     ,p_token_4                 => 'PRODUCT_NAME'
97019                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97020                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97021                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97022                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97023                                     ,p_ae_header_id            =>  NULL
97024                                        );
97025 
97026         IF (C_LEVEL_ERROR>= g_log_level) THEN
97027                  trace
97028                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97029                       ,p_level    => C_LEVEL_ERROR
97030                       ,p_module   => l_log_module);
97031         END IF;
97032       END IF;
97033    END IF;
97034    --
97035    --
97036    ------------------------------------------------------------------------------------------------
97037    -- 4219869 Business Flow
97038    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97039    -- Prior Entry.  Currently, the following code is always generated.
97040    ------------------------------------------------------------------------------------------------
97041    XLA_AE_LINES_PKG.ValidateCurrentLine;
97042 
97043    ------------------------------------------------------------------------------------
97044    -- 4219869 Business Flow
97045    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97046    ------------------------------------------------------------------------------------
97047    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97048 
97049    ----------------------------------------------------------------------------------
97050    -- 4219869 Business Flow
97051    -- Update journal entry status -- Need to generate this within IF <condition>
97052    ----------------------------------------------------------------------------------
97053    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97054          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97055          ,p_balance_type_code => l_balance_type_code
97056          );
97057 
97058    -------------------------------------------------------------------------------------------
97062       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97059    -- 4262811 - Generate the Accrual Reversal lines
97060    -------------------------------------------------------------------------------------------
97061    BEGIN
97063                               (g_array_event(p_event_id).array_value_num('header_index'));
97064       IF l_acc_rev_flag IS NULL THEN
97065          l_acc_rev_flag := 'N';
97066       END IF;
97067    EXCEPTION
97068       WHEN OTHERS THEN
97069          l_acc_rev_flag := 'N';
97070    END;
97071    --
97072    IF (l_acc_rev_flag = 'Y') THEN
97073 
97074        -- 4645092  ------------------------------------------------------------------------------
97075        -- To allow MPA report to determine if it should generate report process
97076        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97077        ------------------------------------------------------------------------------------------
97078 
97079        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97080        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97081    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97082    -- call ADRs
97083    -- Bug 4922099
97084    --
97085    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97086         (NVL(l_actual_upg_option, 'N') = 'O') OR
97087         (NVL(l_enc_upg_option, 'N') = 'O')
97088       )
97089    THEN
97090    NULL;
97091    --
97092    --
97093    
97094   l_ccid := AcctDerRule_38(
97095            p_application_id           => p_application_id
97096          , p_ae_header_id             => l_ae_header_id 
97097 , p_source_15 => p_source_15
97098 , p_source_15_meaning => p_source_15_meaning
97099 , p_source_30 => p_source_30
97100 , p_source_38 => p_source_38
97101 , p_source_39 => p_source_39
97102          , x_transaction_coa_id       => l_adr_transaction_coa_id
97103          , x_accounting_coa_id        => l_adr_accounting_coa_id
97104          , x_value_type_code          => l_adr_value_type_code
97105          , p_side                     => 'NA'
97106    );
97107 
97108    xla_ae_lines_pkg.set_ccid(
97109     p_code_combination_id          => l_ccid
97110   , p_value_type_code              => l_adr_value_type_code
97111   , p_transaction_coa_id           => l_adr_transaction_coa_id
97112   , p_accounting_coa_id            => l_adr_accounting_coa_id
97113   , p_adr_code                     => 'AP_REAL_LOSS'
97114   , p_adr_type_code                => 'S'
97115   , p_component_type               => l_component_type
97116   , p_component_code               => l_component_code
97117   , p_component_type_code          => l_component_type_code
97118   , p_component_appl_id            => l_component_appl_id
97119   , p_amb_context_code             => l_amb_context_code
97120   , p_side                         => 'NA'
97121   );
97122 
97123 
97124    l_segment := AcctDerRule_22(
97125            p_application_id           => p_application_id
97126          , p_ae_header_id             => l_ae_header_id 
97127 , p_source_15 => p_source_15
97128 , p_source_15_meaning => p_source_15_meaning
97129 , p_source_30 => p_source_30
97130          , x_transaction_coa_id       => l_adr_transaction_coa_id
97131          , x_accounting_coa_id        => l_adr_accounting_coa_id
97132          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97133          , x_flex_value_set_id        => l_adr_flex_value_set_id
97134          , x_value_type_code          => l_adr_value_type_code
97135          , x_value_combination_id     => l_adr_value_combination_id
97136          , x_value_segment_code       => l_adr_value_segment_code
97137          , p_side                     => 'NA'
97138          , p_override_seg_flag        => 'Y'
97139    );
97140 
97141    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97142 
97143       xla_ae_lines_pkg.set_segment(
97144           p_to_segment_code         => 'GL_BALANCING'
97145         , p_segment_value           => l_segment
97146         , p_from_segment_code       => l_adr_value_segment_code
97147         , p_from_combination_id     => l_adr_value_combination_id
97148         , p_value_type_code         => l_adr_value_type_code
97149         , p_transaction_coa_id      => l_adr_transaction_coa_id
97150         , p_accounting_coa_id       => l_adr_accounting_coa_id
97151         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97152         , p_flex_value_set_id       => l_adr_flex_value_set_id
97153         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97154         , p_adr_type_code           => 'S'
97155         , p_component_type          => l_component_type
97156         , p_component_code          => l_component_code
97157         , p_component_type_code     => l_component_type_code
97158         , p_component_appl_id       => l_component_appl_id
97159         , p_amb_context_code        => l_amb_context_code
97160         , p_entity_code             => 'AP_PAYMENTS'
97161         , p_event_class_code        => 'RECONCILED PAYMENTS'
97162         , p_side                    => 'NA'
97163         );
97164 
97165   END IF;
97166 
97167    l_segment := AcctDerRule_18(
97168            p_application_id           => p_application_id
97169          , p_ae_header_id             => l_ae_header_id 
97170 , p_source_15 => p_source_15
97171 , p_source_15_meaning => p_source_15_meaning
97172 , p_source_38 => p_source_38
97173 , p_source_39 => p_source_39
97174          , x_transaction_coa_id       => l_adr_transaction_coa_id
97178          , x_value_type_code          => l_adr_value_type_code
97175          , x_accounting_coa_id        => l_adr_accounting_coa_id
97176          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97177          , x_flex_value_set_id        => l_adr_flex_value_set_id
97179          , x_value_combination_id     => l_adr_value_combination_id
97180          , x_value_segment_code       => l_adr_value_segment_code
97181          , p_side                     => 'NA'
97182          , p_override_seg_flag        => 'Y'
97183    );
97184 
97185    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97186 
97187       xla_ae_lines_pkg.set_segment(
97188           p_to_segment_code         => 'GL_ACCOUNT'
97189         , p_segment_value           => l_segment
97190         , p_from_segment_code       => l_adr_value_segment_code
97191         , p_from_combination_id     => l_adr_value_combination_id
97192         , p_value_type_code         => l_adr_value_type_code
97193         , p_transaction_coa_id      => l_adr_transaction_coa_id
97194         , p_accounting_coa_id       => l_adr_accounting_coa_id
97195         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97196         , p_flex_value_set_id       => l_adr_flex_value_set_id
97197         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97198         , p_adr_type_code           => 'S'
97199         , p_component_type          => l_component_type
97200         , p_component_code          => l_component_code
97201         , p_component_type_code     => l_component_type_code
97202         , p_component_appl_id       => l_component_appl_id
97203         , p_amb_context_code        => l_amb_context_code
97204         , p_entity_code             => 'AP_PAYMENTS'
97205         , p_event_class_code        => 'RECONCILED PAYMENTS'
97206         , p_side                    => 'NA'
97207         );
97208 
97209   END IF;
97210 
97211    --
97212    --
97213    END IF;
97214 
97215        --
97216        -- Update the line information that should be overwritten
97217        --
97218        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97219                                          p_header_num   => 1);
97220        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97221 
97222        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97223 
97224        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97225           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97226        END IF;
97227 
97228       --
97229       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97230       --
97231       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97232           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97233       ELSE
97234           ---------------------------------------------------------------------------------------------------
97235           -- 4262811a Switch Sign
97236           ---------------------------------------------------------------------------------------------------
97237           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97238           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97239                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97240           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97241                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97242           -- 5132302
97243           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97244                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97245 
97246       END IF;
97247 
97248       -- 4955764
97249       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97250       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97251 
97252 
97253       XLA_AE_LINES_PKG.ValidateCurrentLine;
97254       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97255 
97256       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97257                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97258                ,p_balance_type_code => l_balance_type_code);
97259 
97260    END IF;
97261 
97262    -----------------------------------------------------------------------------------------
97263    -- 4262811 Multiperiod Accounting
97264    -----------------------------------------------------------------------------------------
97265      -- No MPA option is assigned.
97266 
97267 
97268 END IF;
97269 END IF;
97270 --
97271 
97272 --
97273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97274    trace
97275       (p_msg      => 'END of AcctLineType_164'
97276       ,p_level    => C_LEVEL_PROCEDURE
97277       ,p_module   => l_log_module);
97278 END IF;
97279 --
97280 EXCEPTION
97281   WHEN xla_exceptions_pkg.application_exception THEN
97282       RAISE;
97283   WHEN OTHERS THEN
97284        xla_exceptions_pkg.raise_message
97288 
97285            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_164');
97286 END AcctLineType_164;
97287 --
97289 ---------------------------------------
97290 --
97291 -- PRIVATE FUNCTION
97292 --         AcctLineType_165
97293 --
97294 ---------------------------------------
97295 PROCEDURE AcctLineType_165 (
97296   p_application_id        IN NUMBER
97297  ,p_event_id              IN NUMBER
97298  ,p_calculate_acctd_flag  IN VARCHAR2
97299  ,p_calculate_g_l_flag    IN VARCHAR2
97300  ,p_actual_flag           IN OUT VARCHAR2
97301  ,p_balance_type_code     OUT VARCHAR2
97302  ,p_gain_or_loss_ref      OUT VARCHAR2
97303  
97304 --Payment Currency Code
97305  , p_source_13            IN VARCHAR2
97306 --Automatic Offsets Value
97307  , p_source_15            IN VARCHAR2
97308  , p_source_15_meaning    IN VARCHAR2
97309 --Invoice Distribution Account
97310  , p_source_30            IN NUMBER
97311 --Internal Realized Loss Account
97312  , p_source_38            IN NUMBER
97313 --Bank Loss Account
97314  , p_source_39            IN NUMBER
97315 --Accounting Reversal Indicator
97316  , p_source_52            IN VARCHAR2
97317 --Distribution Link Type
97318  , p_source_54            IN VARCHAR2
97319 --Override Accounted Amount Indicator
97320  , p_source_79            IN VARCHAR2
97321  , p_source_79_meaning    IN VARCHAR2
97322 --Third Party Type
97323  , p_source_82            IN VARCHAR2
97324 --Business Flow Accounts Payable Application Identifier
97325  , p_source_90            IN NUMBER
97326 --When to Account for Payment Option
97327  , p_source_96            IN VARCHAR2
97328 --Payment Distribution Type
97329  , p_source_97            IN VARCHAR2
97330  , p_source_97_meaning    IN VARCHAR2
97331 --Payment Distribution Amount
97332  , p_source_98            IN NUMBER
97333 --Business Flow Payment Distribution Type
97334  , p_source_99            IN VARCHAR2
97335 --Business Flow Payment Entity Code
97336  , p_source_100            IN VARCHAR2
97337 --Business Flow Payment Distribution Identifier
97338  , p_source_101            IN NUMBER
97339 --Business Flow Payment Identifier
97340  , p_source_102            IN NUMBER
97341 --Payment Distribution Identifier
97342  , p_source_103            IN NUMBER
97343 --Payment Supplier Identifier
97344  , p_source_109            IN NUMBER
97345 --Payment Supplier Site Identifier
97346  , p_source_110            IN NUMBER
97347 --Payment Distribution Reversed Identifier
97348  , p_source_111            IN NUMBER
97349 --Payment Identifier
97350  , p_source_112            IN NUMBER
97351 --Payment Maturity Date
97352  , p_source_114            IN DATE
97353 --Payment Exchange Date
97354  , p_source_117            IN DATE
97355 --Payment Exchange Rate
97356  , p_source_118            IN NUMBER
97357 --Payment Exchange Rate Type
97358  , p_source_119            IN VARCHAR2
97359 --Payment/Maturity Ledger Amount Difference
97360  , p_source_151            IN NUMBER
97361 --Gain or Loss Indicator between Payment and Maturity
97362  , p_source_158            IN VARCHAR2
97363 )
97364 IS
97365 
97366 l_component_type              VARCHAR2(80);
97367 l_component_code              VARCHAR2(30);
97368 l_component_type_code         VARCHAR2(1);
97369 l_component_appl_id           INTEGER;
97370 l_amb_context_code            VARCHAR2(30);
97371 l_entity_code                 VARCHAR2(30);
97372 l_event_class_code            VARCHAR2(30);
97373 l_ae_header_id                NUMBER;
97374 l_event_type_code             VARCHAR2(30);
97375 l_line_definition_code        VARCHAR2(30);
97376 l_line_definition_owner_code  VARCHAR2(1);
97377 --
97378 -- adr variables
97379 l_segment                     VARCHAR2(30);
97380 l_ccid                        NUMBER;
97381 l_adr_transaction_coa_id      NUMBER;
97382 l_adr_accounting_coa_id       NUMBER;
97383 l_adr_flexfield_segment_code  VARCHAR2(30);
97384 l_adr_flex_value_set_id       NUMBER;
97385 l_adr_value_type_code         VARCHAR2(30);
97386 l_adr_value_combination_id    NUMBER;
97387 l_adr_value_segment_code      VARCHAR2(30);
97388 
97389 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97390 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97391 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97392 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97393 
97394 -- 4262811 Variables ------------------------------------------------------------------------------------------
97395 l_entered_amt_idx             NUMBER;
97396 l_accted_amt_idx              NUMBER;
97397 l_acc_rev_flag                VARCHAR2(1);
97398 l_accrual_line_num            NUMBER;
97399 l_tmp_amt                     NUMBER;
97400 l_acc_rev_natural_side_code   VARCHAR2(1);
97401 
97402 l_num_entries                 NUMBER;
97403 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97404 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97405 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97406 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97407 l_recog_line_1                NUMBER;
97408 l_recog_line_2                NUMBER;
97409 
97410 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97411 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97415 
97412 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97413 
97414 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97416 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97417 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97418 
97419 ---------------------------------------------------------------------------------------------------------------
97420 
97421 
97422 --
97423 -- bulk performance
97424 --
97425 l_balance_type_code           VARCHAR2(1);
97426 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97427 l_log_module                  VARCHAR2(240);
97428 
97429 --
97430 -- Upgrade strategy
97431 --
97432 l_actual_upg_option           VARCHAR2(1);
97433 l_enc_upg_option           VARCHAR2(1);
97434 
97435 --
97436 BEGIN
97437 --
97438 IF g_log_enabled THEN
97439       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
97440 END IF;
97441 --
97442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97443 
97444       trace
97445          (p_msg      => 'BEGIN of AcctLineType_165'
97446          ,p_level    => C_LEVEL_PROCEDURE
97447          ,p_module   => l_log_module);
97448 
97449 END IF;
97450 --
97451 l_component_type             := 'AMB_JLT';
97452 l_component_code             := 'AP_LOSS_PMT_MAT';
97453 l_component_type_code        := 'S';
97454 l_component_appl_id          :=  200;
97455 l_amb_context_code           := 'DEFAULT';
97456 l_entity_code                := 'AP_PAYMENTS';
97457 l_event_class_code           := 'FUTURE DATED PAYMENTS';
97458 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
97459 l_line_definition_owner_code := 'S';
97460 l_line_definition_code       := 'JA_CN_ACCRUAL_FUTURE_PAYMENT';
97461 --
97462 l_balance_type_code          := 'A';
97463 l_segment                     := NULL;
97464 l_ccid                        := NULL;
97465 l_adr_transaction_coa_id      := NULL;
97466 l_adr_accounting_coa_id       := NULL;
97467 l_adr_flexfield_segment_code  := NULL;
97468 l_adr_flex_value_set_id       := NULL;
97469 l_adr_value_type_code         := NULL;
97470 l_adr_value_combination_id    := NULL;
97471 l_adr_value_segment_code      := NULL;
97472 
97473 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
97474 l_bflow_class_code           := '';    -- 4219869 Business Flow
97475 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97476 l_budgetary_control_flag     := 'N';
97477 
97478 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97479 l_bflow_applied_to_amt       := NULL; -- 5132302
97480 l_entered_amt_idx            := NULL;          -- 4262811
97481 l_accted_amt_idx             := NULL;          -- 4262811
97482 l_acc_rev_flag               := NULL;          -- 4262811
97483 l_accrual_line_num           := NULL;          -- 4262811
97484 l_tmp_amt                    := NULL;          -- 4262811
97485 --
97486 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
97487             (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
97488                return;
97489   END IF;
97490   
97491 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97492     l_balance_type_code <> 'B' THEN
97493 IF (NVL(p_source_96,'
97494 ') =  'ALWAYS_ALWAYS' OR 
97495 NVL(p_source_96,'
97496 ') =  'ISSUE_ISSUE') AND 
97497 p_source_114 IS NOT NULL AND 
97498 NVL(p_source_158,'
97499 ') =  'LOSS' AND 
97500 NVL(p_source_97,'
97501 ') <>  'EXCHANGE RATE VARIANCE' AND 
97502 NVL(p_source_97,'
97503 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
97504 NVL(p_source_97,'
97505 ') <>  'BANK CHARGE' AND 
97506 NVL(p_source_97,'
97507 ') <>  'BANK ERROR' AND 
97508 NVL(p_source_97,'
97509 ') <>  'AWT'
97510  THEN 
97511 
97512    --
97513    XLA_AE_LINES_PKG.SetNewLine;
97514 
97515    p_balance_type_code          := l_balance_type_code;
97516    -- set the flag so later we will know whether the gain loss line needs to be created
97517    
97518    IF(l_balance_type_code = 'A' ) THEN
97519      p_actual_flag :='G';
97520    END IF;
97521 
97522    --
97523    -- bulk performance
97524    --
97525    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97526                                       p_header_num   => 0); -- 4262811
97527    --
97528    -- set accounting line options
97529    --
97530    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97531            p_natural_side_code          => 'C'
97532          , p_gain_or_loss_flag          => 'Y'
97533          , p_gl_transfer_mode_code      => 'S'
97534          , p_acct_entry_type_code       => 'A'
97535          , p_switch_side_flag           => 'Y'
97536          , p_merge_duplicate_code       => 'A'
97537          );
97538    --
97539    l_acc_rev_natural_side_code := 'D';  -- 4262811
97540    -- 
97541    --
97542    -- set accounting line type info
97543    --
97544    xla_ae_lines_pkg.SetAcctLineType
97545       (p_component_type             => l_component_type
97546       ,p_event_type_code            => l_event_type_code
97547       ,p_line_definition_owner_code => l_line_definition_owner_code
97548       ,p_line_definition_code       => l_line_definition_code
97552       ,p_amb_context_code           => l_amb_context_code
97549       ,p_accounting_line_code       => l_component_code
97550       ,p_accounting_line_type_code  => l_component_type_code
97551       ,p_accounting_line_appl_id    => l_component_appl_id
97553       ,p_entity_code                => l_entity_code
97554       ,p_event_class_code           => l_event_class_code);
97555    --
97556    -- set accounting class
97557    --
97558    xla_ae_lines_pkg.SetAcctClass(
97559            p_accounting_class_code  => 'LOSS'
97560          , p_ae_header_id           => l_ae_header_id
97561          );
97562 
97563    --
97564    -- set rounding class
97565    --
97566    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97567                       'LOSS';
97568 
97569    --
97570    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97571    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97572    --
97573    -- bulk performance
97574    --
97575    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97576 
97577    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97578       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97579 
97580    -- 4955764
97581    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97582       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97583 
97584    -- 4458381 Public Sector Enh
97585    
97586    --
97587    -- set accounting attributes for the line type
97588    --
97589    l_entered_amt_idx := 9;
97590    l_accted_amt_idx  := 14;
97591    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
97592    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97593    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
97594    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
97595    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
97596    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97597    l_rec_acct_attrs.array_char_value(3)  := p_source_99;
97598    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
97599    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
97600    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
97601    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_101);
97602    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97603    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
97604    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
97605    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
97606    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
97607    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
97608    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
97609    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
97610    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
97611    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
97612    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
97613    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
97614    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
97615    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
97616    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
97617    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
97618    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
97619    l_rec_acct_attrs.array_num_value(14)  := p_source_151;
97620    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
97621    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
97622    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
97623    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
97624    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
97625    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
97626    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
97627    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
97628    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
97629    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
97630    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
97631    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
97632 
97633    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97634    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97635 
97636    ---------------------------------------------------------------------------------------------------------------
97637    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97638    ---------------------------------------------------------------------------------------------------------------
97639    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97640 
97641    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97642    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97643 
97644    IF xla_accounting_cache_pkg.GetValueChar
97645          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97649    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97646          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97647    AND l_bflow_method_code = 'PRIOR_ENTRY'
97648 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97650          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97651        )
97652    THEN
97653          xla_ae_lines_pkg.BflowUpgEntry
97654            (p_business_method_code    => l_bflow_method_code
97655            ,p_business_class_code     => l_bflow_class_code
97656            ,p_balance_type            => l_balance_type_code);
97657    ELSE
97658       NULL;
97659 -- No business flow processing for business flow method of NONE.
97660    END IF;
97661 
97662    --
97663    -- call analytical criteria
97664    --
97665    
97666 
97667 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
97668 xla_ae_lines_pkg.SetAnalyticalCriteria(
97669    p_analytical_criterion_name    => 'Check Id'
97670  , p_analytical_criterion_owner   => 'S'
97671  , p_analytical_criterion_code    => 'CHECK_ID'
97672  , p_amb_context_code             => 'DEFAULT'
97673  , p_balancing_flag               => 'N'
97674  
97675  , p_analytical_detail_char_1    =>  NULL
97676  , p_analytical_detail_num_1     =>  p_source_112
97677  , p_analytical_detail_date_1    =>  NULL
97678 
97679  , p_ae_header_id                 => l_ae_header_id
97680 )
97681 ;
97682 --
97683 
97684    --
97685    -- call description
97686    --
97687    -- No description or it is inherited.
97688    --
97689    -- call ADRs
97690    -- Bug 4922099
97691    --
97692    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97693         (NVL(l_actual_upg_option, 'N') = 'O') OR
97694         (NVL(l_enc_upg_option, 'N') = 'O')
97695       )
97696    THEN
97697    NULL;
97698    --
97699    --
97700    
97701   l_ccid := AcctDerRule_38(
97702            p_application_id           => p_application_id
97703          , p_ae_header_id             => l_ae_header_id 
97704 , p_source_15 => p_source_15
97705 , p_source_15_meaning => p_source_15_meaning
97706 , p_source_30 => p_source_30
97707 , p_source_38 => p_source_38
97708 , p_source_39 => p_source_39
97709          , x_transaction_coa_id       => l_adr_transaction_coa_id
97710          , x_accounting_coa_id        => l_adr_accounting_coa_id
97711          , x_value_type_code          => l_adr_value_type_code
97712          , p_side                     => 'NA'
97713    );
97714 
97715    xla_ae_lines_pkg.set_ccid(
97716     p_code_combination_id          => l_ccid
97717   , p_value_type_code              => l_adr_value_type_code
97718   , p_transaction_coa_id           => l_adr_transaction_coa_id
97719   , p_accounting_coa_id            => l_adr_accounting_coa_id
97720   , p_adr_code                     => 'AP_REAL_LOSS'
97721   , p_adr_type_code                => 'S'
97722   , p_component_type               => l_component_type
97723   , p_component_code               => l_component_code
97724   , p_component_type_code          => l_component_type_code
97725   , p_component_appl_id            => l_component_appl_id
97726   , p_amb_context_code             => l_amb_context_code
97727   , p_side                         => 'NA'
97728   );
97729 
97730 
97731    l_segment := AcctDerRule_22(
97732            p_application_id           => p_application_id
97733          , p_ae_header_id             => l_ae_header_id 
97734 , p_source_15 => p_source_15
97735 , p_source_15_meaning => p_source_15_meaning
97736 , p_source_30 => p_source_30
97737          , x_transaction_coa_id       => l_adr_transaction_coa_id
97738          , x_accounting_coa_id        => l_adr_accounting_coa_id
97739          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97740          , x_flex_value_set_id        => l_adr_flex_value_set_id
97741          , x_value_type_code          => l_adr_value_type_code
97742          , x_value_combination_id     => l_adr_value_combination_id
97743          , x_value_segment_code       => l_adr_value_segment_code
97744          , p_side                     => 'NA'
97745          , p_override_seg_flag        => 'Y'
97746    );
97747 
97748    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97749 
97750       xla_ae_lines_pkg.set_segment(
97751           p_to_segment_code         => 'GL_BALANCING'
97752         , p_segment_value           => l_segment
97753         , p_from_segment_code       => l_adr_value_segment_code
97754         , p_from_combination_id     => l_adr_value_combination_id
97755         , p_value_type_code         => l_adr_value_type_code
97756         , p_transaction_coa_id      => l_adr_transaction_coa_id
97757         , p_accounting_coa_id       => l_adr_accounting_coa_id
97758         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97759         , p_flex_value_set_id       => l_adr_flex_value_set_id
97760         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97761         , p_adr_type_code           => 'S'
97762         , p_component_type          => l_component_type
97763         , p_component_code          => l_component_code
97764         , p_component_type_code     => l_component_type_code
97765         , p_component_appl_id       => l_component_appl_id
97766         , p_amb_context_code        => l_amb_context_code
97767         , p_entity_code             => 'AP_PAYMENTS'
97768         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97769         , p_side                    => 'NA'
97770         );
97774    l_segment := AcctDerRule_18(
97771 
97772   END IF;
97773 
97775            p_application_id           => p_application_id
97776          , p_ae_header_id             => l_ae_header_id 
97777 , p_source_15 => p_source_15
97778 , p_source_15_meaning => p_source_15_meaning
97779 , p_source_38 => p_source_38
97780 , p_source_39 => p_source_39
97781          , x_transaction_coa_id       => l_adr_transaction_coa_id
97782          , x_accounting_coa_id        => l_adr_accounting_coa_id
97783          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97784          , x_flex_value_set_id        => l_adr_flex_value_set_id
97785          , x_value_type_code          => l_adr_value_type_code
97786          , x_value_combination_id     => l_adr_value_combination_id
97787          , x_value_segment_code       => l_adr_value_segment_code
97788          , p_side                     => 'NA'
97789          , p_override_seg_flag        => 'Y'
97790    );
97791 
97792    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97793 
97794       xla_ae_lines_pkg.set_segment(
97795           p_to_segment_code         => 'GL_ACCOUNT'
97796         , p_segment_value           => l_segment
97797         , p_from_segment_code       => l_adr_value_segment_code
97798         , p_from_combination_id     => l_adr_value_combination_id
97799         , p_value_type_code         => l_adr_value_type_code
97800         , p_transaction_coa_id      => l_adr_transaction_coa_id
97801         , p_accounting_coa_id       => l_adr_accounting_coa_id
97802         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97803         , p_flex_value_set_id       => l_adr_flex_value_set_id
97804         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97805         , p_adr_type_code           => 'S'
97806         , p_component_type          => l_component_type
97807         , p_component_code          => l_component_code
97808         , p_component_type_code     => l_component_type_code
97809         , p_component_appl_id       => l_component_appl_id
97810         , p_amb_context_code        => l_amb_context_code
97811         , p_entity_code             => 'AP_PAYMENTS'
97812         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97813         , p_side                    => 'NA'
97814         );
97815 
97816   END IF;
97817 
97818    --
97819    --
97820    END IF;
97821    --
97822    -- Bug 4922099
97823    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97824           (NVL(l_enc_upg_option, 'N') = 'O')
97825         ) AND
97826         (l_bflow_method_code = 'PRIOR_ENTRY')
97827       )
97828    THEN
97829       IF
97830       --
97831       1 = 2
97832       --
97833       THEN
97834       xla_accounting_err_pkg.build_message
97835                                     (p_appli_s_name            => 'XLA'
97836                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97837                                     ,p_token_1                 => 'LINE_NUMBER'
97838                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97839                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97840                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97841                                                                              l_component_type
97842                                                                             ,l_component_code
97843                                                                             ,l_component_type_code
97844                                                                             ,l_component_appl_id
97845                                                                             ,l_amb_context_code
97846                                                                             ,l_entity_code
97847                                                                             ,l_event_class_code
97848                                                                            )
97849                                     ,p_token_3                 => 'OWNER'
97850                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97851                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97852                                                                           ,p_lookup_code    => l_component_type_code
97853                                                                          )
97854                                     ,p_token_4                 => 'PRODUCT_NAME'
97855                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97856                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97857                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97858                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97859                                     ,p_ae_header_id            =>  NULL
97860                                        );
97861 
97862         IF (C_LEVEL_ERROR>= g_log_level) THEN
97863                  trace
97864                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97865                       ,p_level    => C_LEVEL_ERROR
97866                       ,p_module   => l_log_module);
97867         END IF;
97868       END IF;
97869    END IF;
97870    --
97874    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97871    --
97872    ------------------------------------------------------------------------------------------------
97873    -- 4219869 Business Flow
97875    -- Prior Entry.  Currently, the following code is always generated.
97876    ------------------------------------------------------------------------------------------------
97877    XLA_AE_LINES_PKG.ValidateCurrentLine;
97878 
97879    ------------------------------------------------------------------------------------
97880    -- 4219869 Business Flow
97881    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97882    ------------------------------------------------------------------------------------
97883    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97884 
97885    ----------------------------------------------------------------------------------
97886    -- 4219869 Business Flow
97887    -- Update journal entry status -- Need to generate this within IF <condition>
97888    ----------------------------------------------------------------------------------
97889    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97890          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97891          ,p_balance_type_code => l_balance_type_code
97892          );
97893 
97894    -------------------------------------------------------------------------------------------
97895    -- 4262811 - Generate the Accrual Reversal lines
97896    -------------------------------------------------------------------------------------------
97897    BEGIN
97898       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97899                               (g_array_event(p_event_id).array_value_num('header_index'));
97900       IF l_acc_rev_flag IS NULL THEN
97901          l_acc_rev_flag := 'N';
97902       END IF;
97903    EXCEPTION
97904       WHEN OTHERS THEN
97905          l_acc_rev_flag := 'N';
97906    END;
97907    --
97908    IF (l_acc_rev_flag = 'Y') THEN
97909 
97910        -- 4645092  ------------------------------------------------------------------------------
97911        -- To allow MPA report to determine if it should generate report process
97912        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97913        ------------------------------------------------------------------------------------------
97914 
97915        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97916        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97917    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97918    -- call ADRs
97919    -- Bug 4922099
97920    --
97921    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97922         (NVL(l_actual_upg_option, 'N') = 'O') OR
97923         (NVL(l_enc_upg_option, 'N') = 'O')
97924       )
97925    THEN
97926    NULL;
97927    --
97928    --
97929    
97930   l_ccid := AcctDerRule_38(
97931            p_application_id           => p_application_id
97932          , p_ae_header_id             => l_ae_header_id 
97933 , p_source_15 => p_source_15
97934 , p_source_15_meaning => p_source_15_meaning
97935 , p_source_30 => p_source_30
97936 , p_source_38 => p_source_38
97937 , p_source_39 => p_source_39
97938          , x_transaction_coa_id       => l_adr_transaction_coa_id
97939          , x_accounting_coa_id        => l_adr_accounting_coa_id
97940          , x_value_type_code          => l_adr_value_type_code
97941          , p_side                     => 'NA'
97942    );
97943 
97944    xla_ae_lines_pkg.set_ccid(
97945     p_code_combination_id          => l_ccid
97946   , p_value_type_code              => l_adr_value_type_code
97947   , p_transaction_coa_id           => l_adr_transaction_coa_id
97948   , p_accounting_coa_id            => l_adr_accounting_coa_id
97949   , p_adr_code                     => 'AP_REAL_LOSS'
97950   , p_adr_type_code                => 'S'
97951   , p_component_type               => l_component_type
97952   , p_component_code               => l_component_code
97953   , p_component_type_code          => l_component_type_code
97954   , p_component_appl_id            => l_component_appl_id
97955   , p_amb_context_code             => l_amb_context_code
97956   , p_side                         => 'NA'
97957   );
97958 
97959 
97960    l_segment := AcctDerRule_22(
97961            p_application_id           => p_application_id
97962          , p_ae_header_id             => l_ae_header_id 
97963 , p_source_15 => p_source_15
97964 , p_source_15_meaning => p_source_15_meaning
97965 , p_source_30 => p_source_30
97966          , x_transaction_coa_id       => l_adr_transaction_coa_id
97967          , x_accounting_coa_id        => l_adr_accounting_coa_id
97968          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97969          , x_flex_value_set_id        => l_adr_flex_value_set_id
97970          , x_value_type_code          => l_adr_value_type_code
97971          , x_value_combination_id     => l_adr_value_combination_id
97972          , x_value_segment_code       => l_adr_value_segment_code
97973          , p_side                     => 'NA'
97974          , p_override_seg_flag        => 'Y'
97975    );
97976 
97977    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97978 
97979       xla_ae_lines_pkg.set_segment(
97980           p_to_segment_code         => 'GL_BALANCING'
97981         , p_segment_value           => l_segment
97985         , p_transaction_coa_id      => l_adr_transaction_coa_id
97982         , p_from_segment_code       => l_adr_value_segment_code
97983         , p_from_combination_id     => l_adr_value_combination_id
97984         , p_value_type_code         => l_adr_value_type_code
97986         , p_accounting_coa_id       => l_adr_accounting_coa_id
97987         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97988         , p_flex_value_set_id       => l_adr_flex_value_set_id
97989         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97990         , p_adr_type_code           => 'S'
97991         , p_component_type          => l_component_type
97992         , p_component_code          => l_component_code
97993         , p_component_type_code     => l_component_type_code
97994         , p_component_appl_id       => l_component_appl_id
97995         , p_amb_context_code        => l_amb_context_code
97996         , p_entity_code             => 'AP_PAYMENTS'
97997         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97998         , p_side                    => 'NA'
97999         );
98000 
98001   END IF;
98002 
98003    l_segment := AcctDerRule_18(
98004            p_application_id           => p_application_id
98005          , p_ae_header_id             => l_ae_header_id 
98006 , p_source_15 => p_source_15
98007 , p_source_15_meaning => p_source_15_meaning
98008 , p_source_38 => p_source_38
98009 , p_source_39 => p_source_39
98010          , x_transaction_coa_id       => l_adr_transaction_coa_id
98011          , x_accounting_coa_id        => l_adr_accounting_coa_id
98012          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98013          , x_flex_value_set_id        => l_adr_flex_value_set_id
98014          , x_value_type_code          => l_adr_value_type_code
98015          , x_value_combination_id     => l_adr_value_combination_id
98016          , x_value_segment_code       => l_adr_value_segment_code
98017          , p_side                     => 'NA'
98018          , p_override_seg_flag        => 'Y'
98019    );
98020 
98021    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98022 
98023       xla_ae_lines_pkg.set_segment(
98024           p_to_segment_code         => 'GL_ACCOUNT'
98025         , p_segment_value           => l_segment
98026         , p_from_segment_code       => l_adr_value_segment_code
98027         , p_from_combination_id     => l_adr_value_combination_id
98028         , p_value_type_code         => l_adr_value_type_code
98029         , p_transaction_coa_id      => l_adr_transaction_coa_id
98030         , p_accounting_coa_id       => l_adr_accounting_coa_id
98031         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98032         , p_flex_value_set_id       => l_adr_flex_value_set_id
98033         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98034         , p_adr_type_code           => 'S'
98035         , p_component_type          => l_component_type
98036         , p_component_code          => l_component_code
98037         , p_component_type_code     => l_component_type_code
98038         , p_component_appl_id       => l_component_appl_id
98039         , p_amb_context_code        => l_amb_context_code
98040         , p_entity_code             => 'AP_PAYMENTS'
98041         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
98042         , p_side                    => 'NA'
98043         );
98044 
98045   END IF;
98046 
98047    --
98048    --
98049    END IF;
98050 
98051        --
98052        -- Update the line information that should be overwritten
98053        --
98054        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98055                                          p_header_num   => 1);
98056        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98057 
98058        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98059 
98060        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98061           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98062        END IF;
98063 
98064       --
98065       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98066       --
98067       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98068           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98069       ELSE
98070           ---------------------------------------------------------------------------------------------------
98071           -- 4262811a Switch Sign
98072           ---------------------------------------------------------------------------------------------------
98073           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98074           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98075                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98076           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98077                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98078           -- 5132302
98079           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98080                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98081 
98082       END IF;
98083 
98084       -- 4955764
98085       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98089       XLA_AE_LINES_PKG.ValidateCurrentLine;
98086       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98087 
98088 
98090       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98091 
98092       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98093                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98094                ,p_balance_type_code => l_balance_type_code);
98095 
98096    END IF;
98097 
98098    -----------------------------------------------------------------------------------------
98099    -- 4262811 Multiperiod Accounting
98100    -----------------------------------------------------------------------------------------
98101      -- No MPA option is assigned.
98102 
98103 
98104 END IF;
98105 END IF;
98106 --
98107 
98108 --
98109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98110    trace
98111       (p_msg      => 'END of AcctLineType_165'
98112       ,p_level    => C_LEVEL_PROCEDURE
98113       ,p_module   => l_log_module);
98114 END IF;
98115 --
98116 EXCEPTION
98117   WHEN xla_exceptions_pkg.application_exception THEN
98118       RAISE;
98119   WHEN OTHERS THEN
98120        xla_exceptions_pkg.raise_message
98121            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_165');
98122 END AcctLineType_165;
98123 --
98124 
98125 ---------------------------------------
98126 --
98127 -- PRIVATE FUNCTION
98128 --         AcctLineType_166
98129 --
98130 ---------------------------------------
98131 PROCEDURE AcctLineType_166 (
98132   p_application_id        IN NUMBER
98133  ,p_event_id              IN NUMBER
98134  ,p_calculate_acctd_flag  IN VARCHAR2
98135  ,p_calculate_g_l_flag    IN VARCHAR2
98136  ,p_actual_flag           IN OUT VARCHAR2
98137  ,p_balance_type_code     OUT VARCHAR2
98138  ,p_gain_or_loss_ref      OUT VARCHAR2
98139  
98140 --Automatic Offsets Value
98141  , p_source_15            IN VARCHAR2
98142  , p_source_15_meaning    IN VARCHAR2
98143 --Invoice Distribution Account
98144  , p_source_30            IN NUMBER
98145 --Internal Realized Loss Account
98146  , p_source_38            IN NUMBER
98147 --Bank Loss Account
98148  , p_source_39            IN NUMBER
98149 --Accounting Reversal Indicator
98150  , p_source_52            IN VARCHAR2
98151 --Distribution Link Type
98152  , p_source_54            IN VARCHAR2
98153 --Invoice Identifier
98154  , p_source_57            IN NUMBER
98155 --Payables Encumbrance Upgrade Credit Account
98156  , p_source_64            IN NUMBER
98157 --Payables Encumbrance Upgrade Credit Amount
98158  , p_source_65            IN NUMBER
98159 --Invoice Currency Code
98160  , p_source_66            IN VARCHAR2
98161 --Payables Encumbrance Upgrade Credit Base Amount
98162  , p_source_67            IN NUMBER
98163 --Payables Encumbrance Upgrade Debit Account
98164  , p_source_68            IN NUMBER
98165 --Payables Encumbrance Upgrade Debit Amount
98166  , p_source_69            IN NUMBER
98167 --Payables Encumbrance Upgrade Debit Base Amount
98168  , p_source_70            IN NUMBER
98169 --Payables Encumbrance Upgrade Option
98170  , p_source_71            IN VARCHAR2
98171 --Deferred Accounting End Date
98172  , p_source_76            IN DATE
98173 --Deferred Accounting Option
98174  , p_source_77            IN VARCHAR2
98175 --Deferred Accounting Start Date
98176  , p_source_78            IN DATE
98177 --Override Accounted Amount Indicator
98178  , p_source_79            IN VARCHAR2
98179  , p_source_79_meaning    IN VARCHAR2
98180 --Invoice Supplier Identifier
98181  , p_source_80            IN NUMBER
98182 --Invoice Supplier Site Identifier
98183  , p_source_81            IN NUMBER
98184 --Third Party Type
98185  , p_source_82            IN VARCHAR2
98186 --Invoice Distribution Tax Line Identifier
98187  , p_source_85            IN NUMBER
98188 --Invoice Distribution Tax Distribution Identifier from Tax
98189  , p_source_86            IN NUMBER
98190 --Invoice Distribution Summary Tax Line Identifier
98191  , p_source_87            IN NUMBER
98192 --Payables Upgrade Credit Encumbrance Type Identifier
98193  , p_source_88            IN NUMBER
98194 --Payables Upgrade Debit Encumbrance Type Identifier
98195  , p_source_89            IN NUMBER
98196 --Business Flow Accounts Payable Application Identifier
98197  , p_source_90            IN NUMBER
98198 --Prepayment Application Distribution Identifier
98199  , p_source_127            IN NUMBER
98200 --Upgrade Encumbrance Credit Account Class
98201  , p_source_130            IN VARCHAR2
98202 --Upgrade Encumbrance Debit Account Class
98203  , p_source_131            IN VARCHAR2
98204 --Prepayment Distribution Amount
98205  , p_source_132            IN NUMBER
98206 --Identifier of the Prepayment Application Reversed
98207  , p_source_134            IN NUMBER
98208 --Invoice Exchange Date
98209  , p_source_136            IN DATE
98210 --Invoice Exchange Rate
98211  , p_source_137            IN NUMBER
98212 --Invoice Exchange Rate Type
98213  , p_source_138            IN VARCHAR2
98214 --Business Flow Prepayment Invoice Distribution Type
98215  , p_source_139            IN VARCHAR2
98216 --Business Flow Prepayment Invoice Entity Code
98217  , p_source_140            IN VARCHAR2
98218 --Business Flow Prepayment Invoice Distribution Identifier
98219  , p_source_141            IN NUMBER
98223  , p_source_143            IN VARCHAR2
98220 --Business Flow Prepayment Invoice Identifier
98221  , p_source_142            IN NUMBER
98222 --Prepayment Distribution Type
98224 --Prepayment/Invoice Ledger Amount Difference
98225  , p_source_152            IN NUMBER
98226 --Gain or Loss Indicator between Prepayment and Invoice
98227  , p_source_159            IN VARCHAR2
98228 )
98229 IS
98230 
98231 l_component_type              VARCHAR2(80);
98232 l_component_code              VARCHAR2(30);
98233 l_component_type_code         VARCHAR2(1);
98234 l_component_appl_id           INTEGER;
98235 l_amb_context_code            VARCHAR2(30);
98236 l_entity_code                 VARCHAR2(30);
98237 l_event_class_code            VARCHAR2(30);
98238 l_ae_header_id                NUMBER;
98239 l_event_type_code             VARCHAR2(30);
98240 l_line_definition_code        VARCHAR2(30);
98241 l_line_definition_owner_code  VARCHAR2(1);
98242 --
98243 -- adr variables
98244 l_segment                     VARCHAR2(30);
98245 l_ccid                        NUMBER;
98246 l_adr_transaction_coa_id      NUMBER;
98247 l_adr_accounting_coa_id       NUMBER;
98248 l_adr_flexfield_segment_code  VARCHAR2(30);
98249 l_adr_flex_value_set_id       NUMBER;
98250 l_adr_value_type_code         VARCHAR2(30);
98251 l_adr_value_combination_id    NUMBER;
98252 l_adr_value_segment_code      VARCHAR2(30);
98253 
98254 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98255 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98256 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98257 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98258 
98259 -- 4262811 Variables ------------------------------------------------------------------------------------------
98260 l_entered_amt_idx             NUMBER;
98261 l_accted_amt_idx              NUMBER;
98262 l_acc_rev_flag                VARCHAR2(1);
98263 l_accrual_line_num            NUMBER;
98264 l_tmp_amt                     NUMBER;
98265 l_acc_rev_natural_side_code   VARCHAR2(1);
98266 
98267 l_num_entries                 NUMBER;
98268 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98269 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98270 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98271 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98272 l_recog_line_1                NUMBER;
98273 l_recog_line_2                NUMBER;
98274 
98275 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
98276 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
98277 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
98278 
98279 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98280 
98281 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
98282 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
98283 
98284 ---------------------------------------------------------------------------------------------------------------
98285 
98286 
98287 --
98288 -- bulk performance
98289 --
98290 l_balance_type_code           VARCHAR2(1);
98291 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
98292 l_log_module                  VARCHAR2(240);
98293 
98294 --
98295 -- Upgrade strategy
98296 --
98297 l_actual_upg_option           VARCHAR2(1);
98298 l_enc_upg_option           VARCHAR2(1);
98299 
98300 --
98301 BEGIN
98302 --
98303 IF g_log_enabled THEN
98304       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
98305 END IF;
98306 --
98307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98308 
98309       trace
98310          (p_msg      => 'BEGIN of AcctLineType_166'
98311          ,p_level    => C_LEVEL_PROCEDURE
98312          ,p_module   => l_log_module);
98313 
98314 END IF;
98315 --
98316 l_component_type             := 'AMB_JLT';
98317 l_component_code             := 'AP_LOSS_PREPAY_APP';
98318 l_component_type_code        := 'S';
98319 l_component_appl_id          :=  200;
98320 l_amb_context_code           := 'DEFAULT';
98321 l_entity_code                := 'AP_INVOICES';
98322 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
98323 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
98324 l_line_definition_owner_code := 'S';
98325 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
98326 --
98327 l_balance_type_code          := 'A';
98328 l_segment                     := NULL;
98329 l_ccid                        := NULL;
98330 l_adr_transaction_coa_id      := NULL;
98331 l_adr_accounting_coa_id       := NULL;
98332 l_adr_flexfield_segment_code  := NULL;
98333 l_adr_flex_value_set_id       := NULL;
98334 l_adr_value_type_code         := NULL;
98335 l_adr_value_combination_id    := NULL;
98336 l_adr_value_segment_code      := NULL;
98337 
98338 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
98339 l_bflow_class_code           := '';    -- 4219869 Business Flow
98340 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
98341 l_budgetary_control_flag     := 'N';
98342 
98343 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
98344 l_bflow_applied_to_amt       := NULL; -- 5132302
98345 l_entered_amt_idx            := NULL;          -- 4262811
98346 l_accted_amt_idx             := NULL;          -- 4262811
98350 --
98347 l_acc_rev_flag               := NULL;          -- 4262811
98348 l_accrual_line_num           := NULL;          -- 4262811
98349 l_tmp_amt                    := NULL;          -- 4262811
98351 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98352             (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
98353                return;
98354   END IF;
98355   
98356 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98357     l_balance_type_code <> 'B' THEN
98358 IF (NVL(p_source_143,'
98359 ') =  'PREPAY APPL' OR 
98360 NVL(p_source_143,'
98361 ') =  'PREPAY APPL NONREC TAX' OR 
98362 NVL(p_source_143,'
98363 ') =  'PREPAY APPL REC TAX') AND 
98364 NVL(p_source_159,'
98365 ') =  'LOSS'
98366  THEN 
98367 
98368    --
98369    XLA_AE_LINES_PKG.SetNewLine;
98370 
98371    p_balance_type_code          := l_balance_type_code;
98372    -- set the flag so later we will know whether the gain loss line needs to be created
98373    
98374    IF(l_balance_type_code = 'A' ) THEN
98375      p_actual_flag :='G';
98376    END IF;
98377 
98378    --
98379    -- bulk performance
98380    --
98381    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98382                                       p_header_num   => 0); -- 4262811
98383    --
98384    -- set accounting line options
98385    --
98386    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98387            p_natural_side_code          => 'D'
98388          , p_gain_or_loss_flag          => 'Y'
98389          , p_gl_transfer_mode_code      => 'S'
98390          , p_acct_entry_type_code       => 'A'
98391          , p_switch_side_flag           => 'Y'
98392          , p_merge_duplicate_code       => 'A'
98393          );
98394    --
98395    l_acc_rev_natural_side_code := 'C';  -- 4262811
98396    -- 
98397    --
98398    -- set accounting line type info
98399    --
98400    xla_ae_lines_pkg.SetAcctLineType
98401       (p_component_type             => l_component_type
98402       ,p_event_type_code            => l_event_type_code
98403       ,p_line_definition_owner_code => l_line_definition_owner_code
98404       ,p_line_definition_code       => l_line_definition_code
98405       ,p_accounting_line_code       => l_component_code
98406       ,p_accounting_line_type_code  => l_component_type_code
98407       ,p_accounting_line_appl_id    => l_component_appl_id
98408       ,p_amb_context_code           => l_amb_context_code
98409       ,p_entity_code                => l_entity_code
98410       ,p_event_class_code           => l_event_class_code);
98411    --
98412    -- set accounting class
98413    --
98414    xla_ae_lines_pkg.SetAcctClass(
98415            p_accounting_class_code  => 'LOSS'
98416          , p_ae_header_id           => l_ae_header_id
98417          );
98418 
98419    --
98420    -- set rounding class
98421    --
98422    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98423                       'LOSS';
98424 
98425    --
98426    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98427    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98428    --
98429    -- bulk performance
98430    --
98431    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98432 
98433    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98434       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98435 
98436    -- 4955764
98437    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98438       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98439 
98440    -- 4458381 Public Sector Enh
98441    
98442    --
98443    -- set accounting attributes for the line type
98444    --
98445    l_entered_amt_idx := 25;
98446    l_accted_amt_idx  := 30;
98447    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
98448    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98449    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
98450    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
98451    l_rec_acct_attrs.array_num_value(2)  := 
98452 xla_ae_sources_pkg.GetSystemSourceNum(
98453    p_source_code           => 'XLA_EVENT_APPL_ID'
98454  , p_source_type_code      => 'Y'
98455  , p_source_application_id =>  602
98456 );
98457    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
98458    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
98459    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
98460    l_rec_acct_attrs.array_char_value(4)  := 
98461 xla_ae_sources_pkg.GetSystemSourceChar(
98462    p_source_code           => 'XLA_ENTITY_CODE'
98463  , p_source_type_code      => 'Y'
98464  , p_source_application_id =>  602
98465 );
98466    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
98467    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
98468    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
98472    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98469    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
98470    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
98471    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
98473    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
98474    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
98475    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
98476    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
98477    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
98478    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98479    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
98480    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
98481    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
98482    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
98483    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
98484    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
98485    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
98486    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
98487    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
98488    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
98489    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
98490    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
98491    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
98492    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
98493    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
98494    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
98495    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
98496    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
98497    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
98498    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
98499    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
98500    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
98501    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
98502    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
98503    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
98504    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
98505    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
98506    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
98507    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
98508    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
98509    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
98510    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
98511    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
98512    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
98513    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
98514    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
98515    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
98516    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
98517    l_rec_acct_attrs.array_num_value(30)  := p_source_152;
98518    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
98519    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
98520    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
98521    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
98522    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
98523    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
98524    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
98525    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
98526    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
98527    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
98528    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
98529    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
98530    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
98531    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
98532    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
98533    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
98534    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
98535    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
98536    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
98537    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
98538    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
98539    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
98540    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
98541    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
98542    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
98543    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
98544    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
98545    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
98546 
98547    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98548    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98549 
98550    ---------------------------------------------------------------------------------------------------------------
98551    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98555    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98552    ---------------------------------------------------------------------------------------------------------------
98553    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98554 
98556    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98557 
98558    IF xla_accounting_cache_pkg.GetValueChar
98559          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98560          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98561    AND l_bflow_method_code = 'PRIOR_ENTRY'
98562 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98563    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98564          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98565        )
98566    THEN
98567          xla_ae_lines_pkg.BflowUpgEntry
98568            (p_business_method_code    => l_bflow_method_code
98569            ,p_business_class_code     => l_bflow_class_code
98570            ,p_balance_type            => l_balance_type_code);
98571    ELSE
98572       NULL;
98573 -- No business flow processing for business flow method of NONE.
98574    END IF;
98575 
98576    --
98577    -- call analytical criteria
98578    --
98579    
98580    --
98581    -- call description
98582    --
98583    -- No description or it is inherited.
98584    --
98585    -- call ADRs
98586    -- Bug 4922099
98587    --
98588    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98589         (NVL(l_actual_upg_option, 'N') = 'O') OR
98590         (NVL(l_enc_upg_option, 'N') = 'O')
98591       )
98592    THEN
98593    NULL;
98594    --
98595    --
98596    
98597   l_ccid := AcctDerRule_38(
98598            p_application_id           => p_application_id
98599          , p_ae_header_id             => l_ae_header_id 
98600 , p_source_15 => p_source_15
98601 , p_source_15_meaning => p_source_15_meaning
98602 , p_source_30 => p_source_30
98603 , p_source_38 => p_source_38
98604 , p_source_39 => p_source_39
98605          , x_transaction_coa_id       => l_adr_transaction_coa_id
98606          , x_accounting_coa_id        => l_adr_accounting_coa_id
98607          , x_value_type_code          => l_adr_value_type_code
98608          , p_side                     => 'NA'
98609    );
98610 
98611    xla_ae_lines_pkg.set_ccid(
98612     p_code_combination_id          => l_ccid
98613   , p_value_type_code              => l_adr_value_type_code
98614   , p_transaction_coa_id           => l_adr_transaction_coa_id
98615   , p_accounting_coa_id            => l_adr_accounting_coa_id
98616   , p_adr_code                     => 'AP_REAL_LOSS'
98617   , p_adr_type_code                => 'S'
98618   , p_component_type               => l_component_type
98619   , p_component_code               => l_component_code
98620   , p_component_type_code          => l_component_type_code
98621   , p_component_appl_id            => l_component_appl_id
98622   , p_amb_context_code             => l_amb_context_code
98623   , p_side                         => 'NA'
98624   );
98625 
98626 
98627    l_segment := AcctDerRule_22(
98628            p_application_id           => p_application_id
98629          , p_ae_header_id             => l_ae_header_id 
98630 , p_source_15 => p_source_15
98631 , p_source_15_meaning => p_source_15_meaning
98632 , p_source_30 => p_source_30
98633          , x_transaction_coa_id       => l_adr_transaction_coa_id
98634          , x_accounting_coa_id        => l_adr_accounting_coa_id
98635          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98636          , x_flex_value_set_id        => l_adr_flex_value_set_id
98637          , x_value_type_code          => l_adr_value_type_code
98638          , x_value_combination_id     => l_adr_value_combination_id
98639          , x_value_segment_code       => l_adr_value_segment_code
98640          , p_side                     => 'NA'
98641          , p_override_seg_flag        => 'Y'
98642    );
98643 
98644    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98645 
98646       xla_ae_lines_pkg.set_segment(
98647           p_to_segment_code         => 'GL_BALANCING'
98648         , p_segment_value           => l_segment
98649         , p_from_segment_code       => l_adr_value_segment_code
98650         , p_from_combination_id     => l_adr_value_combination_id
98651         , p_value_type_code         => l_adr_value_type_code
98652         , p_transaction_coa_id      => l_adr_transaction_coa_id
98653         , p_accounting_coa_id       => l_adr_accounting_coa_id
98654         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98655         , p_flex_value_set_id       => l_adr_flex_value_set_id
98656         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98657         , p_adr_type_code           => 'S'
98658         , p_component_type          => l_component_type
98659         , p_component_code          => l_component_code
98660         , p_component_type_code     => l_component_type_code
98661         , p_component_appl_id       => l_component_appl_id
98662         , p_amb_context_code        => l_amb_context_code
98663         , p_entity_code             => 'AP_INVOICES'
98664         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98665         , p_side                    => 'NA'
98666         );
98667 
98668   END IF;
98669 
98670    l_segment := AcctDerRule_18(
98671            p_application_id           => p_application_id
98675 , p_source_38 => p_source_38
98672          , p_ae_header_id             => l_ae_header_id 
98673 , p_source_15 => p_source_15
98674 , p_source_15_meaning => p_source_15_meaning
98676 , p_source_39 => p_source_39
98677          , x_transaction_coa_id       => l_adr_transaction_coa_id
98678          , x_accounting_coa_id        => l_adr_accounting_coa_id
98679          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98680          , x_flex_value_set_id        => l_adr_flex_value_set_id
98681          , x_value_type_code          => l_adr_value_type_code
98682          , x_value_combination_id     => l_adr_value_combination_id
98683          , x_value_segment_code       => l_adr_value_segment_code
98684          , p_side                     => 'NA'
98685          , p_override_seg_flag        => 'Y'
98686    );
98687 
98688    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98689 
98690       xla_ae_lines_pkg.set_segment(
98691           p_to_segment_code         => 'GL_ACCOUNT'
98692         , p_segment_value           => l_segment
98693         , p_from_segment_code       => l_adr_value_segment_code
98694         , p_from_combination_id     => l_adr_value_combination_id
98695         , p_value_type_code         => l_adr_value_type_code
98696         , p_transaction_coa_id      => l_adr_transaction_coa_id
98697         , p_accounting_coa_id       => l_adr_accounting_coa_id
98698         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98699         , p_flex_value_set_id       => l_adr_flex_value_set_id
98700         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98701         , p_adr_type_code           => 'S'
98702         , p_component_type          => l_component_type
98703         , p_component_code          => l_component_code
98704         , p_component_type_code     => l_component_type_code
98705         , p_component_appl_id       => l_component_appl_id
98706         , p_amb_context_code        => l_amb_context_code
98707         , p_entity_code             => 'AP_INVOICES'
98708         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98709         , p_side                    => 'NA'
98710         );
98711 
98712   END IF;
98713 
98714    --
98715    --
98716    END IF;
98717    --
98718    -- Bug 4922099
98719    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98720           (NVL(l_enc_upg_option, 'N') = 'O')
98721         ) AND
98722         (l_bflow_method_code = 'PRIOR_ENTRY')
98723       )
98724    THEN
98725       IF
98726       --
98727       1 = 2
98728       --
98729       THEN
98730       xla_accounting_err_pkg.build_message
98731                                     (p_appli_s_name            => 'XLA'
98732                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98733                                     ,p_token_1                 => 'LINE_NUMBER'
98734                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98735                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98736                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98737                                                                              l_component_type
98738                                                                             ,l_component_code
98739                                                                             ,l_component_type_code
98740                                                                             ,l_component_appl_id
98741                                                                             ,l_amb_context_code
98742                                                                             ,l_entity_code
98743                                                                             ,l_event_class_code
98744                                                                            )
98745                                     ,p_token_3                 => 'OWNER'
98746                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98747                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98748                                                                           ,p_lookup_code    => l_component_type_code
98749                                                                          )
98750                                     ,p_token_4                 => 'PRODUCT_NAME'
98751                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98752                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98753                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98754                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98755                                     ,p_ae_header_id            =>  NULL
98756                                        );
98757 
98758         IF (C_LEVEL_ERROR>= g_log_level) THEN
98759                  trace
98760                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98761                       ,p_level    => C_LEVEL_ERROR
98762                       ,p_module   => l_log_module);
98763         END IF;
98764       END IF;
98765    END IF;
98766    --
98767    --
98768    ------------------------------------------------------------------------------------------------
98769    -- 4219869 Business Flow
98773    XLA_AE_LINES_PKG.ValidateCurrentLine;
98770    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98771    -- Prior Entry.  Currently, the following code is always generated.
98772    ------------------------------------------------------------------------------------------------
98774 
98775    ------------------------------------------------------------------------------------
98776    -- 4219869 Business Flow
98777    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98778    ------------------------------------------------------------------------------------
98779    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98780 
98781    ----------------------------------------------------------------------------------
98782    -- 4219869 Business Flow
98783    -- Update journal entry status -- Need to generate this within IF <condition>
98784    ----------------------------------------------------------------------------------
98785    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98786          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98787          ,p_balance_type_code => l_balance_type_code
98788          );
98789 
98790    -------------------------------------------------------------------------------------------
98791    -- 4262811 - Generate the Accrual Reversal lines
98792    -------------------------------------------------------------------------------------------
98793    BEGIN
98794       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98795                               (g_array_event(p_event_id).array_value_num('header_index'));
98796       IF l_acc_rev_flag IS NULL THEN
98797          l_acc_rev_flag := 'N';
98798       END IF;
98799    EXCEPTION
98800       WHEN OTHERS THEN
98801          l_acc_rev_flag := 'N';
98802    END;
98803    --
98804    IF (l_acc_rev_flag = 'Y') THEN
98805 
98806        -- 4645092  ------------------------------------------------------------------------------
98807        -- To allow MPA report to determine if it should generate report process
98808        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98809        ------------------------------------------------------------------------------------------
98810 
98811        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98812        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98813    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98814    -- call ADRs
98815    -- Bug 4922099
98816    --
98817    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98818         (NVL(l_actual_upg_option, 'N') = 'O') OR
98819         (NVL(l_enc_upg_option, 'N') = 'O')
98820       )
98821    THEN
98822    NULL;
98823    --
98824    --
98825    
98826   l_ccid := AcctDerRule_38(
98827            p_application_id           => p_application_id
98828          , p_ae_header_id             => l_ae_header_id 
98829 , p_source_15 => p_source_15
98830 , p_source_15_meaning => p_source_15_meaning
98831 , p_source_30 => p_source_30
98832 , p_source_38 => p_source_38
98833 , p_source_39 => p_source_39
98834          , x_transaction_coa_id       => l_adr_transaction_coa_id
98835          , x_accounting_coa_id        => l_adr_accounting_coa_id
98836          , x_value_type_code          => l_adr_value_type_code
98837          , p_side                     => 'NA'
98838    );
98839 
98840    xla_ae_lines_pkg.set_ccid(
98841     p_code_combination_id          => l_ccid
98842   , p_value_type_code              => l_adr_value_type_code
98843   , p_transaction_coa_id           => l_adr_transaction_coa_id
98844   , p_accounting_coa_id            => l_adr_accounting_coa_id
98845   , p_adr_code                     => 'AP_REAL_LOSS'
98846   , p_adr_type_code                => 'S'
98847   , p_component_type               => l_component_type
98848   , p_component_code               => l_component_code
98849   , p_component_type_code          => l_component_type_code
98850   , p_component_appl_id            => l_component_appl_id
98851   , p_amb_context_code             => l_amb_context_code
98852   , p_side                         => 'NA'
98853   );
98854 
98855 
98856    l_segment := AcctDerRule_22(
98857            p_application_id           => p_application_id
98858          , p_ae_header_id             => l_ae_header_id 
98859 , p_source_15 => p_source_15
98860 , p_source_15_meaning => p_source_15_meaning
98861 , p_source_30 => p_source_30
98862          , x_transaction_coa_id       => l_adr_transaction_coa_id
98863          , x_accounting_coa_id        => l_adr_accounting_coa_id
98864          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98865          , x_flex_value_set_id        => l_adr_flex_value_set_id
98866          , x_value_type_code          => l_adr_value_type_code
98867          , x_value_combination_id     => l_adr_value_combination_id
98868          , x_value_segment_code       => l_adr_value_segment_code
98869          , p_side                     => 'NA'
98870          , p_override_seg_flag        => 'Y'
98871    );
98872 
98873    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98874 
98875       xla_ae_lines_pkg.set_segment(
98876           p_to_segment_code         => 'GL_BALANCING'
98877         , p_segment_value           => l_segment
98878         , p_from_segment_code       => l_adr_value_segment_code
98879         , p_from_combination_id     => l_adr_value_combination_id
98880         , p_value_type_code         => l_adr_value_type_code
98884         , p_flex_value_set_id       => l_adr_flex_value_set_id
98881         , p_transaction_coa_id      => l_adr_transaction_coa_id
98882         , p_accounting_coa_id       => l_adr_accounting_coa_id
98883         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98885         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98886         , p_adr_type_code           => 'S'
98887         , p_component_type          => l_component_type
98888         , p_component_code          => l_component_code
98889         , p_component_type_code     => l_component_type_code
98890         , p_component_appl_id       => l_component_appl_id
98891         , p_amb_context_code        => l_amb_context_code
98892         , p_entity_code             => 'AP_INVOICES'
98893         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98894         , p_side                    => 'NA'
98895         );
98896 
98897   END IF;
98898 
98899    l_segment := AcctDerRule_18(
98900            p_application_id           => p_application_id
98901          , p_ae_header_id             => l_ae_header_id 
98902 , p_source_15 => p_source_15
98903 , p_source_15_meaning => p_source_15_meaning
98904 , p_source_38 => p_source_38
98905 , p_source_39 => p_source_39
98906          , x_transaction_coa_id       => l_adr_transaction_coa_id
98907          , x_accounting_coa_id        => l_adr_accounting_coa_id
98908          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98909          , x_flex_value_set_id        => l_adr_flex_value_set_id
98910          , x_value_type_code          => l_adr_value_type_code
98911          , x_value_combination_id     => l_adr_value_combination_id
98912          , x_value_segment_code       => l_adr_value_segment_code
98913          , p_side                     => 'NA'
98914          , p_override_seg_flag        => 'Y'
98915    );
98916 
98917    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98918 
98919       xla_ae_lines_pkg.set_segment(
98920           p_to_segment_code         => 'GL_ACCOUNT'
98921         , p_segment_value           => l_segment
98922         , p_from_segment_code       => l_adr_value_segment_code
98923         , p_from_combination_id     => l_adr_value_combination_id
98924         , p_value_type_code         => l_adr_value_type_code
98925         , p_transaction_coa_id      => l_adr_transaction_coa_id
98926         , p_accounting_coa_id       => l_adr_accounting_coa_id
98927         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98928         , p_flex_value_set_id       => l_adr_flex_value_set_id
98929         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98930         , p_adr_type_code           => 'S'
98931         , p_component_type          => l_component_type
98932         , p_component_code          => l_component_code
98933         , p_component_type_code     => l_component_type_code
98934         , p_component_appl_id       => l_component_appl_id
98935         , p_amb_context_code        => l_amb_context_code
98936         , p_entity_code             => 'AP_INVOICES'
98937         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
98938         , p_side                    => 'NA'
98939         );
98940 
98941   END IF;
98942 
98943    --
98944    --
98945    END IF;
98946 
98947        --
98948        -- Update the line information that should be overwritten
98949        --
98950        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98951                                          p_header_num   => 1);
98952        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98953 
98954        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98955 
98956        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98957           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98958        END IF;
98959 
98960       --
98961       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98962       --
98963       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98964           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98965       ELSE
98966           ---------------------------------------------------------------------------------------------------
98967           -- 4262811a Switch Sign
98968           ---------------------------------------------------------------------------------------------------
98969           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98970           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98971                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98972           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98973                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98974           -- 5132302
98975           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98976                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98977 
98978       END IF;
98979 
98980       -- 4955764
98981       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98985       XLA_AE_LINES_PKG.ValidateCurrentLine;
98982       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98983 
98984 
98986       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98987 
98988       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98989                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98990                ,p_balance_type_code => l_balance_type_code);
98991 
98992    END IF;
98993 
98994    -----------------------------------------------------------------------------------------
98995    -- 4262811 Multiperiod Accounting
98996    -----------------------------------------------------------------------------------------
98997      -- No MPA option is assigned.
98998 
98999 
99000 END IF;
99001 END IF;
99002 --
99003 
99004 --
99005 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99006    trace
99007       (p_msg      => 'END of AcctLineType_166'
99008       ,p_level    => C_LEVEL_PROCEDURE
99009       ,p_module   => l_log_module);
99010 END IF;
99011 --
99012 EXCEPTION
99013   WHEN xla_exceptions_pkg.application_exception THEN
99014       RAISE;
99015   WHEN OTHERS THEN
99016        xla_exceptions_pkg.raise_message
99017            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_166');
99018 END AcctLineType_166;
99019 --
99020 
99021 ---------------------------------------
99022 --
99023 -- PRIVATE FUNCTION
99024 --         AcctLineType_167
99025 --
99026 ---------------------------------------
99027 PROCEDURE AcctLineType_167 (
99028   p_application_id        IN NUMBER
99029  ,p_event_id              IN NUMBER
99030  ,p_calculate_acctd_flag  IN VARCHAR2
99031  ,p_calculate_g_l_flag    IN VARCHAR2
99032  ,p_actual_flag           IN OUT VARCHAR2
99033  ,p_balance_type_code     OUT VARCHAR2
99034  ,p_gain_or_loss_ref      OUT VARCHAR2
99035  
99036 --Payment Currency Code
99037  , p_source_13            IN VARCHAR2
99038 --Automatic Offsets Value
99039  , p_source_15            IN VARCHAR2
99040  , p_source_15_meaning    IN VARCHAR2
99041 --Invoice Distribution Account
99042  , p_source_30            IN NUMBER
99043 --Internal Realized Loss Account
99044  , p_source_38            IN NUMBER
99045 --Bank Loss Account
99046  , p_source_39            IN NUMBER
99047 --Accounting Reversal Indicator
99048  , p_source_52            IN VARCHAR2
99049 --Distribution Link Type
99050  , p_source_54            IN VARCHAR2
99051 --Override Accounted Amount Indicator
99052  , p_source_79            IN VARCHAR2
99053  , p_source_79_meaning    IN VARCHAR2
99054 --Third Party Type
99055  , p_source_82            IN VARCHAR2
99056 --Invoice Distribution Tax Line Identifier
99057  , p_source_85            IN NUMBER
99058 --Invoice Distribution Tax Distribution Identifier from Tax
99059  , p_source_86            IN NUMBER
99060 --Invoice Distribution Summary Tax Line Identifier
99061  , p_source_87            IN NUMBER
99062 --Business Flow Accounts Payable Application Identifier
99063  , p_source_90            IN NUMBER
99064 --Business Flow Invoice Distribution Type
99065  , p_source_91            IN VARCHAR2
99066 --Business Flow Invoice Entity Code
99067  , p_source_92            IN VARCHAR2
99068 --Business Flow Invoice Distribution Identifier
99069  , p_source_93            IN NUMBER
99070 --Business Flow Invoice Identifier
99071  , p_source_94            IN NUMBER
99072 --When to Account for Payment Option
99073  , p_source_96            IN VARCHAR2
99074 --Payment Distribution Type
99075  , p_source_97            IN VARCHAR2
99076  , p_source_97_meaning    IN VARCHAR2
99077 --Payment Distribution Amount
99078  , p_source_98            IN NUMBER
99079 --Payment Distribution Identifier
99080  , p_source_103            IN NUMBER
99081 --Payment Supplier Identifier
99082  , p_source_109            IN NUMBER
99083 --Payment Supplier Site Identifier
99084  , p_source_110            IN NUMBER
99085 --Payment Distribution Reversed Identifier
99086  , p_source_111            IN NUMBER
99087 --Payment Identifier
99088  , p_source_112            IN NUMBER
99089 --Payment Exchange Date
99090  , p_source_117            IN DATE
99091 --Payment Exchange Rate
99092  , p_source_118            IN NUMBER
99093 --Payment Exchange Rate Type
99094  , p_source_119            IN VARCHAR2
99095 --Payment Type
99096  , p_source_122            IN VARCHAR2
99097  , p_source_122_meaning    IN VARCHAR2
99098 --Invoice/Payment Ledger Amount Difference
99099  , p_source_150            IN NUMBER
99100 --Gain or Loss Indicator between Invoice and Payment
99101  , p_source_155            IN VARCHAR2
99102 )
99103 IS
99104 
99105 l_component_type              VARCHAR2(80);
99106 l_component_code              VARCHAR2(30);
99107 l_component_type_code         VARCHAR2(1);
99108 l_component_appl_id           INTEGER;
99109 l_amb_context_code            VARCHAR2(30);
99110 l_entity_code                 VARCHAR2(30);
99111 l_event_class_code            VARCHAR2(30);
99112 l_ae_header_id                NUMBER;
99113 l_event_type_code             VARCHAR2(30);
99114 l_line_definition_code        VARCHAR2(30);
99115 l_line_definition_owner_code  VARCHAR2(1);
99116 --
99117 -- adr variables
99118 l_segment                     VARCHAR2(30);
99119 l_ccid                        NUMBER;
99123 l_adr_flex_value_set_id       NUMBER;
99120 l_adr_transaction_coa_id      NUMBER;
99121 l_adr_accounting_coa_id       NUMBER;
99122 l_adr_flexfield_segment_code  VARCHAR2(30);
99124 l_adr_value_type_code         VARCHAR2(30);
99125 l_adr_value_combination_id    NUMBER;
99126 l_adr_value_segment_code      VARCHAR2(30);
99127 
99128 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99129 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99130 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99131 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99132 
99133 -- 4262811 Variables ------------------------------------------------------------------------------------------
99134 l_entered_amt_idx             NUMBER;
99135 l_accted_amt_idx              NUMBER;
99136 l_acc_rev_flag                VARCHAR2(1);
99137 l_accrual_line_num            NUMBER;
99138 l_tmp_amt                     NUMBER;
99139 l_acc_rev_natural_side_code   VARCHAR2(1);
99140 
99141 l_num_entries                 NUMBER;
99142 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99143 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99144 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99145 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99146 l_recog_line_1                NUMBER;
99147 l_recog_line_2                NUMBER;
99148 
99149 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99150 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99151 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99152 
99153 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99154 
99155 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99156 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99157 
99158 ---------------------------------------------------------------------------------------------------------------
99159 
99160 
99161 --
99162 -- bulk performance
99163 --
99164 l_balance_type_code           VARCHAR2(1);
99165 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99166 l_log_module                  VARCHAR2(240);
99167 
99168 --
99169 -- Upgrade strategy
99170 --
99171 l_actual_upg_option           VARCHAR2(1);
99172 l_enc_upg_option           VARCHAR2(1);
99173 
99174 --
99175 BEGIN
99176 --
99177 IF g_log_enabled THEN
99178       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
99179 END IF;
99180 --
99181 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99182 
99183       trace
99184          (p_msg      => 'BEGIN of AcctLineType_167'
99185          ,p_level    => C_LEVEL_PROCEDURE
99186          ,p_module   => l_log_module);
99187 
99188 END IF;
99189 --
99190 l_component_type             := 'AMB_JLT';
99191 l_component_code             := 'AP_LOSS_REF';
99192 l_component_type_code        := 'S';
99193 l_component_appl_id          :=  200;
99194 l_amb_context_code           := 'DEFAULT';
99195 l_entity_code                := 'AP_PAYMENTS';
99196 l_event_class_code           := 'REFUNDS';
99197 l_event_type_code            := 'REFUNDS_ALL';
99198 l_line_definition_owner_code := 'S';
99199 l_line_definition_code       := 'JA_CN_ACCRUAL_REFUNDS_ALL';
99200 --
99201 l_balance_type_code          := 'A';
99202 l_segment                     := NULL;
99203 l_ccid                        := NULL;
99204 l_adr_transaction_coa_id      := NULL;
99205 l_adr_accounting_coa_id       := NULL;
99206 l_adr_flexfield_segment_code  := NULL;
99207 l_adr_flex_value_set_id       := NULL;
99208 l_adr_value_type_code         := NULL;
99209 l_adr_value_combination_id    := NULL;
99210 l_adr_value_segment_code      := NULL;
99211 
99212 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
99213 l_bflow_class_code           := '';    -- 4219869 Business Flow
99214 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99215 l_budgetary_control_flag     := 'N';
99216 
99217 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99218 l_bflow_applied_to_amt       := NULL; -- 5132302
99219 l_entered_amt_idx            := NULL;          -- 4262811
99220 l_accted_amt_idx             := NULL;          -- 4262811
99221 l_acc_rev_flag               := NULL;          -- 4262811
99222 l_accrual_line_num           := NULL;          -- 4262811
99223 l_tmp_amt                    := NULL;          -- 4262811
99224 --
99225 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
99226             (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
99227                return;
99228   END IF;
99229   
99230 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99231     l_balance_type_code <> 'B' THEN
99232 IF (NVL(p_source_96,'
99233 ') <>  'CLEAR_CLEAR' AND 
99234 NVL(p_source_96,'
99235 ') <>  'ALWAYS_CLEAR') AND 
99236 NVL(p_source_155,'
99237 ') =  'LOSS' AND 
99238 NVL(p_source_122,'
99239 ') =  'R' AND 
99240 NVL(p_source_97,'
99241 ') <>  'EXCHANGE RATE VARIANCE' AND 
99242 NVL(p_source_97,'
99243 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
99244 NVL(p_source_97,'
99245 ') <>  'BANK CHARGE' AND 
99246 NVL(p_source_97,'
99247 ') <>  'BANK ERROR'
99251    XLA_AE_LINES_PKG.SetNewLine;
99248  THEN 
99249 
99250    --
99252 
99253    p_balance_type_code          := l_balance_type_code;
99254    -- set the flag so later we will know whether the gain loss line needs to be created
99255    
99256    IF(l_balance_type_code = 'A' ) THEN
99257      p_actual_flag :='G';
99258    END IF;
99259 
99260    --
99261    -- bulk performance
99262    --
99263    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99264                                       p_header_num   => 0); -- 4262811
99265    --
99266    -- set accounting line options
99267    --
99268    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99269            p_natural_side_code          => 'C'
99270          , p_gain_or_loss_flag          => 'Y'
99271          , p_gl_transfer_mode_code      => 'S'
99272          , p_acct_entry_type_code       => 'A'
99273          , p_switch_side_flag           => 'Y'
99274          , p_merge_duplicate_code       => 'A'
99275          );
99276    --
99277    l_acc_rev_natural_side_code := 'D';  -- 4262811
99278    -- 
99279    --
99280    -- set accounting line type info
99281    --
99282    xla_ae_lines_pkg.SetAcctLineType
99283       (p_component_type             => l_component_type
99284       ,p_event_type_code            => l_event_type_code
99285       ,p_line_definition_owner_code => l_line_definition_owner_code
99286       ,p_line_definition_code       => l_line_definition_code
99287       ,p_accounting_line_code       => l_component_code
99288       ,p_accounting_line_type_code  => l_component_type_code
99289       ,p_accounting_line_appl_id    => l_component_appl_id
99290       ,p_amb_context_code           => l_amb_context_code
99291       ,p_entity_code                => l_entity_code
99292       ,p_event_class_code           => l_event_class_code);
99293    --
99294    -- set accounting class
99295    --
99296    xla_ae_lines_pkg.SetAcctClass(
99297            p_accounting_class_code  => 'LOSS'
99298          , p_ae_header_id           => l_ae_header_id
99299          );
99300 
99301    --
99302    -- set rounding class
99303    --
99304    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99305                       'LOSS';
99306 
99307    --
99308    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99309    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99310    --
99311    -- bulk performance
99312    --
99313    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99314 
99315    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99316       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99317 
99318    -- 4955764
99319    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99320       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99321 
99322    -- 4458381 Public Sector Enh
99323    
99324    --
99325    -- set accounting attributes for the line type
99326    --
99327    l_entered_amt_idx := 9;
99328    l_accted_amt_idx  := 14;
99329    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
99330    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99331    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
99332    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
99333    l_rec_acct_attrs.array_num_value(2)  := p_source_90;
99334    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99335    l_rec_acct_attrs.array_char_value(3)  := p_source_91;
99336    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
99337    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
99338    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
99339    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_93);
99340    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99341    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
99342    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
99343    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
99344    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
99345    l_rec_acct_attrs.array_char_value(8)  := p_source_54;
99346    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
99347    l_rec_acct_attrs.array_num_value(9)  := p_source_98;
99348    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
99349    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
99350    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
99351    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
99352    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
99353    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
99354    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
99355    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
99356    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
99357    l_rec_acct_attrs.array_num_value(14)  := p_source_150;
99358    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
99359    l_rec_acct_attrs.array_char_value(15)  := p_source_79;
99360    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
99361    l_rec_acct_attrs.array_num_value(16)  := p_source_109;
99365    l_rec_acct_attrs.array_char_value(18)  := p_source_82;
99362    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
99363    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
99364    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
99366    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
99367    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_111);
99368    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
99369    l_rec_acct_attrs.array_char_value(20)  := p_source_54;
99370    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
99371    l_rec_acct_attrs.array_num_value(21)  := p_source_85;
99372    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
99373    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
99374    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
99375    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
99376 
99377    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99378    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99379 
99380    ---------------------------------------------------------------------------------------------------------------
99381    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99382    ---------------------------------------------------------------------------------------------------------------
99383    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99384 
99385    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99386    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99387 
99388    IF xla_accounting_cache_pkg.GetValueChar
99389          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99390          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99391    AND l_bflow_method_code = 'PRIOR_ENTRY'
99392 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99393    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99394          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99395        )
99396    THEN
99397          xla_ae_lines_pkg.BflowUpgEntry
99398            (p_business_method_code    => l_bflow_method_code
99399            ,p_business_class_code     => l_bflow_class_code
99400            ,p_balance_type            => l_balance_type_code);
99401    ELSE
99402       NULL;
99403 -- No business flow processing for business flow method of NONE.
99404    END IF;
99405 
99406    --
99407    -- call analytical criteria
99408    --
99409    
99410 
99411 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
99412 xla_ae_lines_pkg.SetAnalyticalCriteria(
99413    p_analytical_criterion_name    => 'Check Id'
99414  , p_analytical_criterion_owner   => 'S'
99415  , p_analytical_criterion_code    => 'CHECK_ID'
99416  , p_amb_context_code             => 'DEFAULT'
99417  , p_balancing_flag               => 'N'
99418  
99419  , p_analytical_detail_char_1    =>  NULL
99420  , p_analytical_detail_num_1     =>  p_source_112
99421  , p_analytical_detail_date_1    =>  NULL
99422 
99423  , p_ae_header_id                 => l_ae_header_id
99424 )
99425 ;
99426 --
99427 
99428    --
99429    -- call description
99430    --
99431    -- No description or it is inherited.
99432    --
99433    -- call ADRs
99434    -- Bug 4922099
99435    --
99436    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99437         (NVL(l_actual_upg_option, 'N') = 'O') OR
99438         (NVL(l_enc_upg_option, 'N') = 'O')
99439       )
99440    THEN
99441    NULL;
99442    --
99443    --
99444    
99445   l_ccid := AcctDerRule_38(
99446            p_application_id           => p_application_id
99447          , p_ae_header_id             => l_ae_header_id 
99448 , p_source_15 => p_source_15
99449 , p_source_15_meaning => p_source_15_meaning
99450 , p_source_30 => p_source_30
99451 , p_source_38 => p_source_38
99452 , p_source_39 => p_source_39
99453          , x_transaction_coa_id       => l_adr_transaction_coa_id
99454          , x_accounting_coa_id        => l_adr_accounting_coa_id
99455          , x_value_type_code          => l_adr_value_type_code
99456          , p_side                     => 'NA'
99457    );
99458 
99459    xla_ae_lines_pkg.set_ccid(
99460     p_code_combination_id          => l_ccid
99461   , p_value_type_code              => l_adr_value_type_code
99462   , p_transaction_coa_id           => l_adr_transaction_coa_id
99463   , p_accounting_coa_id            => l_adr_accounting_coa_id
99464   , p_adr_code                     => 'AP_REAL_LOSS'
99465   , p_adr_type_code                => 'S'
99466   , p_component_type               => l_component_type
99467   , p_component_code               => l_component_code
99468   , p_component_type_code          => l_component_type_code
99469   , p_component_appl_id            => l_component_appl_id
99470   , p_amb_context_code             => l_amb_context_code
99471   , p_side                         => 'NA'
99472   );
99473 
99474 
99475    l_segment := AcctDerRule_22(
99476            p_application_id           => p_application_id
99477          , p_ae_header_id             => l_ae_header_id 
99478 , p_source_15 => p_source_15
99479 , p_source_15_meaning => p_source_15_meaning
99480 , p_source_30 => p_source_30
99484          , x_flex_value_set_id        => l_adr_flex_value_set_id
99481          , x_transaction_coa_id       => l_adr_transaction_coa_id
99482          , x_accounting_coa_id        => l_adr_accounting_coa_id
99483          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99485          , x_value_type_code          => l_adr_value_type_code
99486          , x_value_combination_id     => l_adr_value_combination_id
99487          , x_value_segment_code       => l_adr_value_segment_code
99488          , p_side                     => 'NA'
99489          , p_override_seg_flag        => 'Y'
99490    );
99491 
99492    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99493 
99494       xla_ae_lines_pkg.set_segment(
99495           p_to_segment_code         => 'GL_BALANCING'
99496         , p_segment_value           => l_segment
99497         , p_from_segment_code       => l_adr_value_segment_code
99498         , p_from_combination_id     => l_adr_value_combination_id
99499         , p_value_type_code         => l_adr_value_type_code
99500         , p_transaction_coa_id      => l_adr_transaction_coa_id
99501         , p_accounting_coa_id       => l_adr_accounting_coa_id
99502         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99503         , p_flex_value_set_id       => l_adr_flex_value_set_id
99504         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
99505         , p_adr_type_code           => 'S'
99506         , p_component_type          => l_component_type
99507         , p_component_code          => l_component_code
99508         , p_component_type_code     => l_component_type_code
99509         , p_component_appl_id       => l_component_appl_id
99510         , p_amb_context_code        => l_amb_context_code
99511         , p_entity_code             => 'AP_PAYMENTS'
99512         , p_event_class_code        => 'REFUNDS'
99513         , p_side                    => 'NA'
99514         );
99515 
99516   END IF;
99517 
99518    l_segment := AcctDerRule_18(
99519            p_application_id           => p_application_id
99520          , p_ae_header_id             => l_ae_header_id 
99521 , p_source_15 => p_source_15
99522 , p_source_15_meaning => p_source_15_meaning
99523 , p_source_38 => p_source_38
99524 , p_source_39 => p_source_39
99525          , x_transaction_coa_id       => l_adr_transaction_coa_id
99526          , x_accounting_coa_id        => l_adr_accounting_coa_id
99527          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99528          , x_flex_value_set_id        => l_adr_flex_value_set_id
99529          , x_value_type_code          => l_adr_value_type_code
99530          , x_value_combination_id     => l_adr_value_combination_id
99531          , x_value_segment_code       => l_adr_value_segment_code
99532          , p_side                     => 'NA'
99533          , p_override_seg_flag        => 'Y'
99534    );
99535 
99536    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99537 
99538       xla_ae_lines_pkg.set_segment(
99539           p_to_segment_code         => 'GL_ACCOUNT'
99540         , p_segment_value           => l_segment
99541         , p_from_segment_code       => l_adr_value_segment_code
99542         , p_from_combination_id     => l_adr_value_combination_id
99543         , p_value_type_code         => l_adr_value_type_code
99544         , p_transaction_coa_id      => l_adr_transaction_coa_id
99545         , p_accounting_coa_id       => l_adr_accounting_coa_id
99546         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99547         , p_flex_value_set_id       => l_adr_flex_value_set_id
99548         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
99549         , p_adr_type_code           => 'S'
99550         , p_component_type          => l_component_type
99551         , p_component_code          => l_component_code
99552         , p_component_type_code     => l_component_type_code
99553         , p_component_appl_id       => l_component_appl_id
99554         , p_amb_context_code        => l_amb_context_code
99555         , p_entity_code             => 'AP_PAYMENTS'
99556         , p_event_class_code        => 'REFUNDS'
99557         , p_side                    => 'NA'
99558         );
99559 
99560   END IF;
99561 
99562    --
99563    --
99564    END IF;
99565    --
99566    -- Bug 4922099
99567    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99568           (NVL(l_enc_upg_option, 'N') = 'O')
99569         ) AND
99570         (l_bflow_method_code = 'PRIOR_ENTRY')
99571       )
99572    THEN
99573       IF
99574       --
99575       1 = 2
99576       --
99577       THEN
99578       xla_accounting_err_pkg.build_message
99579                                     (p_appli_s_name            => 'XLA'
99580                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99581                                     ,p_token_1                 => 'LINE_NUMBER'
99582                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99583                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99584                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99585                                                                              l_component_type
99586                                                                             ,l_component_code
99587                                                                             ,l_component_type_code
99591                                                                             ,l_event_class_code
99588                                                                             ,l_component_appl_id
99589                                                                             ,l_amb_context_code
99590                                                                             ,l_entity_code
99592                                                                            )
99593                                     ,p_token_3                 => 'OWNER'
99594                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99595                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99596                                                                           ,p_lookup_code    => l_component_type_code
99597                                                                          )
99598                                     ,p_token_4                 => 'PRODUCT_NAME'
99599                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99600                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99601                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99602                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99603                                     ,p_ae_header_id            =>  NULL
99604                                        );
99605 
99606         IF (C_LEVEL_ERROR>= g_log_level) THEN
99607                  trace
99608                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99609                       ,p_level    => C_LEVEL_ERROR
99610                       ,p_module   => l_log_module);
99611         END IF;
99612       END IF;
99613    END IF;
99614    --
99615    --
99616    ------------------------------------------------------------------------------------------------
99617    -- 4219869 Business Flow
99618    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99619    -- Prior Entry.  Currently, the following code is always generated.
99620    ------------------------------------------------------------------------------------------------
99621    XLA_AE_LINES_PKG.ValidateCurrentLine;
99622 
99623    ------------------------------------------------------------------------------------
99624    -- 4219869 Business Flow
99625    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99626    ------------------------------------------------------------------------------------
99627    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99628 
99629    ----------------------------------------------------------------------------------
99630    -- 4219869 Business Flow
99631    -- Update journal entry status -- Need to generate this within IF <condition>
99632    ----------------------------------------------------------------------------------
99633    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99634          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99635          ,p_balance_type_code => l_balance_type_code
99636          );
99637 
99638    -------------------------------------------------------------------------------------------
99639    -- 4262811 - Generate the Accrual Reversal lines
99640    -------------------------------------------------------------------------------------------
99641    BEGIN
99642       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99643                               (g_array_event(p_event_id).array_value_num('header_index'));
99644       IF l_acc_rev_flag IS NULL THEN
99645          l_acc_rev_flag := 'N';
99646       END IF;
99647    EXCEPTION
99648       WHEN OTHERS THEN
99649          l_acc_rev_flag := 'N';
99650    END;
99651    --
99652    IF (l_acc_rev_flag = 'Y') THEN
99653 
99654        -- 4645092  ------------------------------------------------------------------------------
99655        -- To allow MPA report to determine if it should generate report process
99656        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99657        ------------------------------------------------------------------------------------------
99658 
99659        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99660        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99661    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99662    -- call ADRs
99663    -- Bug 4922099
99664    --
99665    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99666         (NVL(l_actual_upg_option, 'N') = 'O') OR
99667         (NVL(l_enc_upg_option, 'N') = 'O')
99668       )
99669    THEN
99670    NULL;
99671    --
99672    --
99673    
99674   l_ccid := AcctDerRule_38(
99675            p_application_id           => p_application_id
99676          , p_ae_header_id             => l_ae_header_id 
99677 , p_source_15 => p_source_15
99678 , p_source_15_meaning => p_source_15_meaning
99679 , p_source_30 => p_source_30
99680 , p_source_38 => p_source_38
99681 , p_source_39 => p_source_39
99682          , x_transaction_coa_id       => l_adr_transaction_coa_id
99683          , x_accounting_coa_id        => l_adr_accounting_coa_id
99684          , x_value_type_code          => l_adr_value_type_code
99685          , p_side                     => 'NA'
99686    );
99687 
99691   , p_transaction_coa_id           => l_adr_transaction_coa_id
99688    xla_ae_lines_pkg.set_ccid(
99689     p_code_combination_id          => l_ccid
99690   , p_value_type_code              => l_adr_value_type_code
99692   , p_accounting_coa_id            => l_adr_accounting_coa_id
99693   , p_adr_code                     => 'AP_REAL_LOSS'
99694   , p_adr_type_code                => 'S'
99695   , p_component_type               => l_component_type
99696   , p_component_code               => l_component_code
99697   , p_component_type_code          => l_component_type_code
99698   , p_component_appl_id            => l_component_appl_id
99699   , p_amb_context_code             => l_amb_context_code
99700   , p_side                         => 'NA'
99701   );
99702 
99703 
99704    l_segment := AcctDerRule_22(
99705            p_application_id           => p_application_id
99706          , p_ae_header_id             => l_ae_header_id 
99707 , p_source_15 => p_source_15
99708 , p_source_15_meaning => p_source_15_meaning
99709 , p_source_30 => p_source_30
99710          , x_transaction_coa_id       => l_adr_transaction_coa_id
99711          , x_accounting_coa_id        => l_adr_accounting_coa_id
99712          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99713          , x_flex_value_set_id        => l_adr_flex_value_set_id
99714          , x_value_type_code          => l_adr_value_type_code
99715          , x_value_combination_id     => l_adr_value_combination_id
99716          , x_value_segment_code       => l_adr_value_segment_code
99717          , p_side                     => 'NA'
99718          , p_override_seg_flag        => 'Y'
99719    );
99720 
99721    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99722 
99723       xla_ae_lines_pkg.set_segment(
99724           p_to_segment_code         => 'GL_BALANCING'
99725         , p_segment_value           => l_segment
99726         , p_from_segment_code       => l_adr_value_segment_code
99727         , p_from_combination_id     => l_adr_value_combination_id
99728         , p_value_type_code         => l_adr_value_type_code
99729         , p_transaction_coa_id      => l_adr_transaction_coa_id
99730         , p_accounting_coa_id       => l_adr_accounting_coa_id
99731         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99732         , p_flex_value_set_id       => l_adr_flex_value_set_id
99733         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
99734         , p_adr_type_code           => 'S'
99735         , p_component_type          => l_component_type
99736         , p_component_code          => l_component_code
99737         , p_component_type_code     => l_component_type_code
99738         , p_component_appl_id       => l_component_appl_id
99739         , p_amb_context_code        => l_amb_context_code
99740         , p_entity_code             => 'AP_PAYMENTS'
99741         , p_event_class_code        => 'REFUNDS'
99742         , p_side                    => 'NA'
99743         );
99744 
99745   END IF;
99746 
99747    l_segment := AcctDerRule_18(
99748            p_application_id           => p_application_id
99749          , p_ae_header_id             => l_ae_header_id 
99750 , p_source_15 => p_source_15
99751 , p_source_15_meaning => p_source_15_meaning
99752 , p_source_38 => p_source_38
99753 , p_source_39 => p_source_39
99754          , x_transaction_coa_id       => l_adr_transaction_coa_id
99755          , x_accounting_coa_id        => l_adr_accounting_coa_id
99756          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
99757          , x_flex_value_set_id        => l_adr_flex_value_set_id
99758          , x_value_type_code          => l_adr_value_type_code
99759          , x_value_combination_id     => l_adr_value_combination_id
99760          , x_value_segment_code       => l_adr_value_segment_code
99761          , p_side                     => 'NA'
99762          , p_override_seg_flag        => 'Y'
99763    );
99764 
99765    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
99766 
99767       xla_ae_lines_pkg.set_segment(
99768           p_to_segment_code         => 'GL_ACCOUNT'
99769         , p_segment_value           => l_segment
99770         , p_from_segment_code       => l_adr_value_segment_code
99771         , p_from_combination_id     => l_adr_value_combination_id
99772         , p_value_type_code         => l_adr_value_type_code
99773         , p_transaction_coa_id      => l_adr_transaction_coa_id
99774         , p_accounting_coa_id       => l_adr_accounting_coa_id
99775         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
99776         , p_flex_value_set_id       => l_adr_flex_value_set_id
99777         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
99778         , p_adr_type_code           => 'S'
99779         , p_component_type          => l_component_type
99780         , p_component_code          => l_component_code
99781         , p_component_type_code     => l_component_type_code
99782         , p_component_appl_id       => l_component_appl_id
99783         , p_amb_context_code        => l_amb_context_code
99784         , p_entity_code             => 'AP_PAYMENTS'
99785         , p_event_class_code        => 'REFUNDS'
99786         , p_side                    => 'NA'
99787         );
99788 
99789   END IF;
99790 
99791    --
99792    --
99793    END IF;
99794 
99795        --
99796        -- Update the line information that should be overwritten
99797        --
99798        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99799                                          p_header_num   => 1);
99803 
99800        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99801 
99802        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99804        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99805           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99806        END IF;
99807 
99808       --
99809       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99810       --
99811       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99812           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99813       ELSE
99814           ---------------------------------------------------------------------------------------------------
99815           -- 4262811a Switch Sign
99816           ---------------------------------------------------------------------------------------------------
99817           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99818           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99819                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99820           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99821                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99822           -- 5132302
99823           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99824                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99825 
99826       END IF;
99827 
99828       -- 4955764
99829       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99830       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99831 
99832 
99833       XLA_AE_LINES_PKG.ValidateCurrentLine;
99834       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99835 
99836       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99837                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99838                ,p_balance_type_code => l_balance_type_code);
99839 
99840    END IF;
99841 
99842    -----------------------------------------------------------------------------------------
99843    -- 4262811 Multiperiod Accounting
99844    -----------------------------------------------------------------------------------------
99845      -- No MPA option is assigned.
99846 
99847 
99848 END IF;
99849 END IF;
99850 --
99851 
99852 --
99853 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99854    trace
99855       (p_msg      => 'END of AcctLineType_167'
99856       ,p_level    => C_LEVEL_PROCEDURE
99857       ,p_module   => l_log_module);
99858 END IF;
99859 --
99860 EXCEPTION
99861   WHEN xla_exceptions_pkg.application_exception THEN
99862       RAISE;
99863   WHEN OTHERS THEN
99864        xla_exceptions_pkg.raise_message
99865            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_167');
99866 END AcctLineType_167;
99867 --
99868 
99869 ---------------------------------------
99870 --
99871 -- PRIVATE FUNCTION
99872 --         AcctLineType_168
99873 --
99874 ---------------------------------------
99875 PROCEDURE AcctLineType_168 (
99876   p_application_id        IN NUMBER
99877  ,p_event_id              IN NUMBER
99878  ,p_calculate_acctd_flag  IN VARCHAR2
99879  ,p_calculate_g_l_flag    IN VARCHAR2
99880  ,p_actual_flag           IN OUT VARCHAR2
99881  ,p_balance_type_code     OUT VARCHAR2
99882  ,p_gain_or_loss_ref      OUT VARCHAR2
99883  
99884 --Invoice Distribution Description
99885  , p_source_1            IN VARCHAR2
99886 --Invoice Distribution Ledger Amount
99887  , p_source_21            IN NUMBER
99888 --Invoice Distribution Account
99889  , p_source_30            IN NUMBER
99890 --Invoice Distribution Type
99891  , p_source_33            IN VARCHAR2
99892  , p_source_33_meaning    IN VARCHAR2
99893 --Accounting Reversal Indicator
99894  , p_source_52            IN VARCHAR2
99895 --Distribution Link Type
99896  , p_source_54            IN VARCHAR2
99897 --Allocation to Main Distribution Identifier
99898  , p_source_56            IN NUMBER
99899 --Invoice Identifier
99900  , p_source_57            IN NUMBER
99901 --Invoice Distribution Identifier
99902  , p_source_63            IN NUMBER
99903 --Payables Encumbrance Upgrade Credit Account
99904  , p_source_64            IN NUMBER
99905 --Payables Encumbrance Upgrade Credit Amount
99906  , p_source_65            IN NUMBER
99907 --Invoice Currency Code
99908  , p_source_66            IN VARCHAR2
99909 --Payables Encumbrance Upgrade Credit Base Amount
99910  , p_source_67            IN NUMBER
99911 --Payables Encumbrance Upgrade Debit Account
99912  , p_source_68            IN NUMBER
99913 --Payables Encumbrance Upgrade Debit Amount
99914  , p_source_69            IN NUMBER
99915 --Payables Encumbrance Upgrade Debit Base Amount
99916  , p_source_70            IN NUMBER
99917 --Payables Encumbrance Upgrade Option
99918  , p_source_71            IN VARCHAR2
99919 --Invoice Distribution Amount
99920  , p_source_72            IN NUMBER
99921 --Deferred Accounting End Date
99922  , p_source_76            IN DATE
99926  , p_source_78            IN DATE
99923 --Deferred Accounting Option
99924  , p_source_77            IN VARCHAR2
99925 --Deferred Accounting Start Date
99927 --Override Accounted Amount Indicator
99928  , p_source_79            IN VARCHAR2
99929  , p_source_79_meaning    IN VARCHAR2
99930 --Invoice Supplier Identifier
99931  , p_source_80            IN NUMBER
99932 --Invoice Supplier Site Identifier
99933  , p_source_81            IN NUMBER
99934 --Third Party Type
99935  , p_source_82            IN VARCHAR2
99936 --Parent Reversal Identifier
99937  , p_source_83            IN NUMBER
99938 --Invoice Distribution Statistical Amount
99939  , p_source_84            IN NUMBER
99940 --Invoice Distribution Tax Line Identifier
99941  , p_source_85            IN NUMBER
99942 --Invoice Distribution Tax Distribution Identifier from Tax
99943  , p_source_86            IN NUMBER
99944 --Invoice Distribution Summary Tax Line Identifier
99945  , p_source_87            IN NUMBER
99946 --Payables Upgrade Credit Encumbrance Type Identifier
99947  , p_source_88            IN NUMBER
99948 --Payables Upgrade Debit Encumbrance Type Identifier
99949  , p_source_89            IN NUMBER
99950 --Business Flow Accounts Payable Application Identifier
99951  , p_source_90            IN NUMBER
99952 --Business Flow Invoice Distribution Type
99953  , p_source_91            IN VARCHAR2
99954 --Business Flow Invoice Entity Code
99955  , p_source_92            IN VARCHAR2
99956 --Business Flow Invoice Distribution Identifier
99957  , p_source_93            IN NUMBER
99958 --Business Flow Invoice Identifier
99959  , p_source_94            IN NUMBER
99960 --Invoice Exchange Date
99961  , p_source_136            IN DATE
99962 --Invoice Exchange Rate
99963  , p_source_137            IN NUMBER
99964 --Invoice Exchange Rate Type
99965  , p_source_138            IN VARCHAR2
99966 --Project Identifier
99967  , p_source_146            IN NUMBER
99968 )
99969 IS
99970 
99971 l_component_type              VARCHAR2(80);
99972 l_component_code              VARCHAR2(30);
99973 l_component_type_code         VARCHAR2(1);
99974 l_component_appl_id           INTEGER;
99975 l_amb_context_code            VARCHAR2(30);
99976 l_entity_code                 VARCHAR2(30);
99977 l_event_class_code            VARCHAR2(30);
99978 l_ae_header_id                NUMBER;
99979 l_event_type_code             VARCHAR2(30);
99980 l_line_definition_code        VARCHAR2(30);
99981 l_line_definition_owner_code  VARCHAR2(1);
99982 --
99983 -- adr variables
99984 l_segment                     VARCHAR2(30);
99985 l_ccid                        NUMBER;
99986 l_adr_transaction_coa_id      NUMBER;
99987 l_adr_accounting_coa_id       NUMBER;
99988 l_adr_flexfield_segment_code  VARCHAR2(30);
99989 l_adr_flex_value_set_id       NUMBER;
99990 l_adr_value_type_code         VARCHAR2(30);
99991 l_adr_value_combination_id    NUMBER;
99992 l_adr_value_segment_code      VARCHAR2(30);
99993 
99994 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99995 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99996 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99997 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99998 
99999 -- 4262811 Variables ------------------------------------------------------------------------------------------
100000 l_entered_amt_idx             NUMBER;
100001 l_accted_amt_idx              NUMBER;
100002 l_acc_rev_flag                VARCHAR2(1);
100003 l_accrual_line_num            NUMBER;
100004 l_tmp_amt                     NUMBER;
100005 l_acc_rev_natural_side_code   VARCHAR2(1);
100006 
100007 l_num_entries                 NUMBER;
100008 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100009 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100010 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100011 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100012 l_recog_line_1                NUMBER;
100013 l_recog_line_2                NUMBER;
100014 
100015 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100016 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100017 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100018 
100019 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100020 
100021 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100022 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100023 
100024 ---------------------------------------------------------------------------------------------------------------
100025 
100026 
100027 --
100028 -- bulk performance
100029 --
100030 l_balance_type_code           VARCHAR2(1);
100031 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100032 l_log_module                  VARCHAR2(240);
100033 
100034 --
100035 -- Upgrade strategy
100036 --
100037 l_actual_upg_option           VARCHAR2(1);
100038 l_enc_upg_option           VARCHAR2(1);
100039 
100040 --
100041 BEGIN
100042 --
100043 IF g_log_enabled THEN
100044       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
100045 END IF;
100046 --
100047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100048 
100049       trace
100050          (p_msg      => 'BEGIN of AcctLineType_168'
100054 END IF;
100051          ,p_level    => C_LEVEL_PROCEDURE
100052          ,p_module   => l_log_module);
100053 
100055 --
100056 l_component_type             := 'AMB_JLT';
100057 l_component_code             := 'AP_MISC_EXPENSE_CM';
100058 l_component_type_code        := 'S';
100059 l_component_appl_id          :=  200;
100060 l_amb_context_code           := 'DEFAULT';
100061 l_entity_code                := 'AP_INVOICES';
100062 l_event_class_code           := 'CREDIT MEMOS';
100063 l_event_type_code            := 'CREDIT MEMOS_ALL';
100064 l_line_definition_owner_code := 'S';
100065 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
100066 --
100067 l_balance_type_code          := 'A';
100068 l_segment                     := NULL;
100069 l_ccid                        := NULL;
100070 l_adr_transaction_coa_id      := NULL;
100071 l_adr_accounting_coa_id       := NULL;
100072 l_adr_flexfield_segment_code  := NULL;
100073 l_adr_flex_value_set_id       := NULL;
100074 l_adr_value_type_code         := NULL;
100075 l_adr_value_combination_id    := NULL;
100076 l_adr_value_segment_code      := NULL;
100077 
100078 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100079 l_bflow_class_code           := '';    -- 4219869 Business Flow
100080 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100081 l_budgetary_control_flag     := 'N';
100082 
100083 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100084 l_bflow_applied_to_amt       := NULL; -- 5132302
100085 l_entered_amt_idx            := NULL;          -- 4262811
100086 l_accted_amt_idx             := NULL;          -- 4262811
100087 l_acc_rev_flag               := NULL;          -- 4262811
100088 l_accrual_line_num           := NULL;          -- 4262811
100089 l_tmp_amt                    := NULL;          -- 4262811
100090 --
100091  
100092 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100093     l_balance_type_code <> 'B' THEN
100094 IF NVL(p_source_33,'
100095 ') =  'MISCELLANEOUS'
100096  THEN 
100097 
100098    --
100099    XLA_AE_LINES_PKG.SetNewLine;
100100 
100101    p_balance_type_code          := l_balance_type_code;
100102    -- set the flag so later we will know whether the gain loss line needs to be created
100103    
100104    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100105      p_actual_flag :='A';
100106    END IF;
100107 
100108    --
100109    -- bulk performance
100110    --
100111    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100112                                       p_header_num   => 0); -- 4262811
100113    --
100114    -- set accounting line options
100115    --
100116    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100117            p_natural_side_code          => 'D'
100118          , p_gain_or_loss_flag          => 'N'
100119          , p_gl_transfer_mode_code      => 'S'
100120          , p_acct_entry_type_code       => 'A'
100121          , p_switch_side_flag           => 'Y'
100122          , p_merge_duplicate_code       => 'A'
100123          );
100124    --
100125    l_acc_rev_natural_side_code := 'C';  -- 4262811
100126    -- 
100127    --
100128    -- set accounting line type info
100129    --
100130    xla_ae_lines_pkg.SetAcctLineType
100131       (p_component_type             => l_component_type
100132       ,p_event_type_code            => l_event_type_code
100133       ,p_line_definition_owner_code => l_line_definition_owner_code
100134       ,p_line_definition_code       => l_line_definition_code
100135       ,p_accounting_line_code       => l_component_code
100136       ,p_accounting_line_type_code  => l_component_type_code
100137       ,p_accounting_line_appl_id    => l_component_appl_id
100138       ,p_amb_context_code           => l_amb_context_code
100139       ,p_entity_code                => l_entity_code
100140       ,p_event_class_code           => l_event_class_code);
100141    --
100142    -- set accounting class
100143    --
100144    xla_ae_lines_pkg.SetAcctClass(
100145            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
100146          , p_ae_header_id           => l_ae_header_id
100147          );
100148 
100149    --
100150    -- set rounding class
100151    --
100152    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100153                       'MISCELLANEOUS EXPENSE';
100154 
100155    --
100156    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100157    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100158    --
100159    -- bulk performance
100160    --
100161    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100162 
100163    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100164       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100165 
100166    -- 4955764
100167    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100168       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100169 
100170    -- 4458381 Public Sector Enh
100171    
100172    --
100173    -- set accounting attributes for the line type
100174    --
100175    l_entered_amt_idx := 23;
100176    l_accted_amt_idx  := 28;
100177    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
100178    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100179    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
100183    p_source_code           => 'XLA_EVENT_APPL_ID'
100180    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100181    l_rec_acct_attrs.array_num_value(2)  := 
100182 xla_ae_sources_pkg.GetSystemSourceNum(
100184  , p_source_type_code      => 'Y'
100185  , p_source_application_id =>  602
100186 );
100187    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100188    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
100189    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100190    l_rec_acct_attrs.array_char_value(4)  := 
100191 xla_ae_sources_pkg.GetSystemSourceChar(
100192    p_source_code           => 'XLA_ENTITY_CODE'
100193  , p_source_type_code      => 'Y'
100194  , p_source_application_id =>  602
100195 );
100196    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100197    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
100198    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100199    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
100200    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
100201    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
100202    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100203    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
100204    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
100205    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
100206    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
100207    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
100208    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100209    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
100210    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
100211    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
100212    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
100213    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
100214    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
100215    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
100216    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
100217    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
100218    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
100219    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
100220    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
100221    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
100222    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
100223    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
100224    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
100225    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
100226    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
100227    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
100228    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
100229    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
100230    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
100231    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
100232    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
100233    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
100234    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
100235    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
100236    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
100237    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
100238    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
100239    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
100240    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
100241    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
100242    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
100243    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
100244    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
100245    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
100246    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
100247    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
100248    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
100249    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
100250    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
100251    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
100252    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
100253    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
100254    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
100255    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
100256    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
100257    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
100258    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
100259    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
100260    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
100261    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
100262    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
100263    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
100264    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
100265    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
100266    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
100270    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
100267    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
100268    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
100269    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
100271    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
100272    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
100273    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
100274 
100275    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100276    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100277 
100278    ---------------------------------------------------------------------------------------------------------------
100279    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100280    ---------------------------------------------------------------------------------------------------------------
100281    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100282 
100283    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100284    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100285 
100286    IF xla_accounting_cache_pkg.GetValueChar
100287          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100288          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100289    AND l_bflow_method_code = 'PRIOR_ENTRY'
100290 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100291    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100292          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100293        )
100294    THEN
100295          xla_ae_lines_pkg.BflowUpgEntry
100296            (p_business_method_code    => l_bflow_method_code
100297            ,p_business_class_code     => l_bflow_class_code
100298            ,p_balance_type            => l_balance_type_code);
100299    ELSE
100300       NULL;
100301 -- No business flow processing for business flow method of NONE.
100302    END IF;
100303 
100304    --
100305    -- call analytical criteria
100306    --
100307    
100308 
100309 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
100310 xla_ae_lines_pkg.SetAnalyticalCriteria(
100311    p_analytical_criterion_name    => 'Project Number'
100312  , p_analytical_criterion_owner   => 'S'
100313  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
100314  , p_amb_context_code             => 'DEFAULT'
100315  , p_balancing_flag               => 'N'
100316  
100317  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
100318 p_source_146))
100319  , p_analytical_detail_num_1     =>  NULL
100320  , p_analytical_detail_date_1    =>  NULL
100321 
100322  , p_ae_header_id                 => l_ae_header_id
100323 )
100324 ;
100325 --
100326 
100327    --
100328    -- call description
100329    --
100330    
100331 xla_ae_lines_pkg.SetLineDescription(
100332    p_ae_header_id => l_ae_header_id
100333   ,p_description  => Description_1 (
100334      p_application_id         => p_application_id
100335    , p_ae_header_id           => l_ae_header_id 
100336 , p_source_1 => p_source_1
100337    )
100338 );
100339 
100340 
100341    --
100342    -- call ADRs
100343    -- Bug 4922099
100344    --
100345    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100346         (NVL(l_actual_upg_option, 'N') = 'O') OR
100347         (NVL(l_enc_upg_option, 'N') = 'O')
100348       )
100349    THEN
100350    NULL;
100351    --
100352    --
100353    
100354   l_ccid := AcctDerRule_33(
100355            p_application_id           => p_application_id
100356          , p_ae_header_id             => l_ae_header_id 
100357 , p_source_30 => p_source_30
100358          , x_transaction_coa_id       => l_adr_transaction_coa_id
100359          , x_accounting_coa_id        => l_adr_accounting_coa_id
100360          , x_value_type_code          => l_adr_value_type_code
100361          , p_side                     => 'NA'
100362    );
100363 
100364    xla_ae_lines_pkg.set_ccid(
100365     p_code_combination_id          => l_ccid
100366   , p_value_type_code              => l_adr_value_type_code
100367   , p_transaction_coa_id           => l_adr_transaction_coa_id
100368   , p_accounting_coa_id            => l_adr_accounting_coa_id
100369   , p_adr_code                     => 'AP_INVOICE_DIST'
100370   , p_adr_type_code                => 'S'
100371   , p_component_type               => l_component_type
100372   , p_component_code               => l_component_code
100373   , p_component_type_code          => l_component_type_code
100374   , p_component_appl_id            => l_component_appl_id
100375   , p_amb_context_code             => l_amb_context_code
100376   , p_side                         => 'NA'
100377   );
100378 
100379 
100380    --
100381    --
100382    END IF;
100383    --
100384    -- Bug 4922099
100385    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100386           (NVL(l_enc_upg_option, 'N') = 'O')
100387         ) AND
100388         (l_bflow_method_code = 'PRIOR_ENTRY')
100389       )
100390    THEN
100391       IF
100392       --
100393       1 = 2
100394       --
100395       THEN
100396       xla_accounting_err_pkg.build_message
100400                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100397                                     (p_appli_s_name            => 'XLA'
100398                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100399                                     ,p_token_1                 => 'LINE_NUMBER'
100401                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100402                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100403                                                                              l_component_type
100404                                                                             ,l_component_code
100405                                                                             ,l_component_type_code
100406                                                                             ,l_component_appl_id
100407                                                                             ,l_amb_context_code
100408                                                                             ,l_entity_code
100409                                                                             ,l_event_class_code
100410                                                                            )
100411                                     ,p_token_3                 => 'OWNER'
100412                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100413                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100414                                                                           ,p_lookup_code    => l_component_type_code
100415                                                                          )
100416                                     ,p_token_4                 => 'PRODUCT_NAME'
100417                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100418                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100419                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100420                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100421                                     ,p_ae_header_id            =>  NULL
100422                                        );
100423 
100424         IF (C_LEVEL_ERROR>= g_log_level) THEN
100425                  trace
100426                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100427                       ,p_level    => C_LEVEL_ERROR
100428                       ,p_module   => l_log_module);
100429         END IF;
100430       END IF;
100431    END IF;
100432    --
100433    --
100434    ------------------------------------------------------------------------------------------------
100435    -- 4219869 Business Flow
100436    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100437    -- Prior Entry.  Currently, the following code is always generated.
100438    ------------------------------------------------------------------------------------------------
100439    XLA_AE_LINES_PKG.ValidateCurrentLine;
100440 
100441    ------------------------------------------------------------------------------------
100442    -- 4219869 Business Flow
100443    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100444    ------------------------------------------------------------------------------------
100445    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100446 
100447    ----------------------------------------------------------------------------------
100448    -- 4219869 Business Flow
100449    -- Update journal entry status -- Need to generate this within IF <condition>
100450    ----------------------------------------------------------------------------------
100451    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100452          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100453          ,p_balance_type_code => l_balance_type_code
100454          );
100455 
100456    -------------------------------------------------------------------------------------------
100457    -- 4262811 - Generate the Accrual Reversal lines
100458    -------------------------------------------------------------------------------------------
100459    BEGIN
100460       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100461                               (g_array_event(p_event_id).array_value_num('header_index'));
100462       IF l_acc_rev_flag IS NULL THEN
100463          l_acc_rev_flag := 'N';
100464       END IF;
100465    EXCEPTION
100466       WHEN OTHERS THEN
100467          l_acc_rev_flag := 'N';
100468    END;
100469    --
100470    IF (l_acc_rev_flag = 'Y') THEN
100471 
100472        -- 4645092  ------------------------------------------------------------------------------
100473        -- To allow MPA report to determine if it should generate report process
100474        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100475        ------------------------------------------------------------------------------------------
100476 
100477        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100478        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100479    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100480    -- call ADRs
100481    -- Bug 4922099
100482    --
100483    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100484         (NVL(l_actual_upg_option, 'N') = 'O') OR
100485         (NVL(l_enc_upg_option, 'N') = 'O')
100489    --
100486       )
100487    THEN
100488    NULL;
100490    --
100491    
100492   l_ccid := AcctDerRule_33(
100493            p_application_id           => p_application_id
100494          , p_ae_header_id             => l_ae_header_id 
100495 , p_source_30 => p_source_30
100496          , x_transaction_coa_id       => l_adr_transaction_coa_id
100497          , x_accounting_coa_id        => l_adr_accounting_coa_id
100498          , x_value_type_code          => l_adr_value_type_code
100499          , p_side                     => 'NA'
100500    );
100501 
100502    xla_ae_lines_pkg.set_ccid(
100503     p_code_combination_id          => l_ccid
100504   , p_value_type_code              => l_adr_value_type_code
100505   , p_transaction_coa_id           => l_adr_transaction_coa_id
100506   , p_accounting_coa_id            => l_adr_accounting_coa_id
100507   , p_adr_code                     => 'AP_INVOICE_DIST'
100508   , p_adr_type_code                => 'S'
100509   , p_component_type               => l_component_type
100510   , p_component_code               => l_component_code
100511   , p_component_type_code          => l_component_type_code
100512   , p_component_appl_id            => l_component_appl_id
100513   , p_amb_context_code             => l_amb_context_code
100514   , p_side                         => 'NA'
100515   );
100516 
100517 
100518    --
100519    --
100520    END IF;
100521 
100522        --
100523        -- Update the line information that should be overwritten
100524        --
100525        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100526                                          p_header_num   => 1);
100527        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100528 
100529        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100530 
100531        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100532           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100533        END IF;
100534 
100535       --
100536       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100537       --
100538       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100539           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100540       ELSE
100541           ---------------------------------------------------------------------------------------------------
100542           -- 4262811a Switch Sign
100543           ---------------------------------------------------------------------------------------------------
100544           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100545           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100546                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100547           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100548                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100549           -- 5132302
100550           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100551                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100552 
100553       END IF;
100554 
100555       -- 4955764
100556       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100557       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100558 
100559 
100560       XLA_AE_LINES_PKG.ValidateCurrentLine;
100561       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100562 
100563       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100564                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100565                ,p_balance_type_code => l_balance_type_code);
100566 
100567    END IF;
100568 
100569    -----------------------------------------------------------------------------------------
100570    -- 4262811 Multiperiod Accounting
100571    -----------------------------------------------------------------------------------------
100572      -- No MPA option is assigned.
100573 
100574 
100575 END IF;
100576 END IF;
100577 --
100578 
100579 --
100580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100581    trace
100582       (p_msg      => 'END of AcctLineType_168'
100583       ,p_level    => C_LEVEL_PROCEDURE
100584       ,p_module   => l_log_module);
100585 END IF;
100586 --
100587 EXCEPTION
100588   WHEN xla_exceptions_pkg.application_exception THEN
100589       RAISE;
100590   WHEN OTHERS THEN
100591        xla_exceptions_pkg.raise_message
100592            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_168');
100593 END AcctLineType_168;
100594 --
100595 
100596 ---------------------------------------
100597 --
100598 -- PRIVATE FUNCTION
100599 --         AcctLineType_169
100600 --
100601 ---------------------------------------
100602 PROCEDURE AcctLineType_169 (
100603   p_application_id        IN NUMBER
100604  ,p_event_id              IN NUMBER
100605  ,p_calculate_acctd_flag  IN VARCHAR2
100606  ,p_calculate_g_l_flag    IN VARCHAR2
100607  ,p_actual_flag           IN OUT VARCHAR2
100608  ,p_balance_type_code     OUT VARCHAR2
100609  ,p_gain_or_loss_ref      OUT VARCHAR2
100610  
100614  , p_source_21            IN NUMBER
100611 --Invoice Distribution Description
100612  , p_source_1            IN VARCHAR2
100613 --Invoice Distribution Ledger Amount
100615 --Invoice Distribution Account
100616  , p_source_30            IN NUMBER
100617 --Invoice Distribution Type
100618  , p_source_33            IN VARCHAR2
100619  , p_source_33_meaning    IN VARCHAR2
100620 --Accounting Reversal Indicator
100621  , p_source_52            IN VARCHAR2
100622 --Distribution Link Type
100623  , p_source_54            IN VARCHAR2
100624 --Allocation to Main Distribution Identifier
100625  , p_source_56            IN NUMBER
100626 --Invoice Identifier
100627  , p_source_57            IN NUMBER
100628 --Invoice Distribution Identifier
100629  , p_source_63            IN NUMBER
100630 --Payables Encumbrance Upgrade Credit Account
100631  , p_source_64            IN NUMBER
100632 --Payables Encumbrance Upgrade Credit Amount
100633  , p_source_65            IN NUMBER
100634 --Invoice Currency Code
100635  , p_source_66            IN VARCHAR2
100636 --Payables Encumbrance Upgrade Credit Base Amount
100637  , p_source_67            IN NUMBER
100638 --Payables Encumbrance Upgrade Debit Account
100639  , p_source_68            IN NUMBER
100640 --Payables Encumbrance Upgrade Debit Amount
100641  , p_source_69            IN NUMBER
100642 --Payables Encumbrance Upgrade Debit Base Amount
100643  , p_source_70            IN NUMBER
100644 --Payables Encumbrance Upgrade Option
100645  , p_source_71            IN VARCHAR2
100646 --Invoice Distribution Amount
100647  , p_source_72            IN NUMBER
100648 --Deferred Accounting End Date
100649  , p_source_76            IN DATE
100650 --Deferred Accounting Option
100651  , p_source_77            IN VARCHAR2
100652 --Deferred Accounting Start Date
100653  , p_source_78            IN DATE
100654 --Override Accounted Amount Indicator
100655  , p_source_79            IN VARCHAR2
100656  , p_source_79_meaning    IN VARCHAR2
100657 --Invoice Supplier Identifier
100658  , p_source_80            IN NUMBER
100659 --Invoice Supplier Site Identifier
100660  , p_source_81            IN NUMBER
100661 --Third Party Type
100662  , p_source_82            IN VARCHAR2
100663 --Parent Reversal Identifier
100664  , p_source_83            IN NUMBER
100665 --Invoice Distribution Tax Line Identifier
100666  , p_source_85            IN NUMBER
100667 --Invoice Distribution Tax Distribution Identifier from Tax
100668  , p_source_86            IN NUMBER
100669 --Invoice Distribution Summary Tax Line Identifier
100670  , p_source_87            IN NUMBER
100671 --Payables Upgrade Credit Encumbrance Type Identifier
100672  , p_source_88            IN NUMBER
100673 --Payables Upgrade Debit Encumbrance Type Identifier
100674  , p_source_89            IN NUMBER
100675 --Business Flow Accounts Payable Application Identifier
100676  , p_source_90            IN NUMBER
100677 --Business Flow Invoice Distribution Type
100678  , p_source_91            IN VARCHAR2
100679 --Business Flow Invoice Entity Code
100680  , p_source_92            IN VARCHAR2
100681 --Business Flow Invoice Distribution Identifier
100682  , p_source_93            IN NUMBER
100683 --Business Flow Invoice Identifier
100684  , p_source_94            IN NUMBER
100685 --Invoice Exchange Date
100686  , p_source_136            IN DATE
100687 --Invoice Exchange Rate
100688  , p_source_137            IN NUMBER
100689 --Invoice Exchange Rate Type
100690  , p_source_138            IN VARCHAR2
100691 --Project Identifier
100692  , p_source_146            IN NUMBER
100693 )
100694 IS
100695 
100696 l_component_type              VARCHAR2(80);
100697 l_component_code              VARCHAR2(30);
100698 l_component_type_code         VARCHAR2(1);
100699 l_component_appl_id           INTEGER;
100700 l_amb_context_code            VARCHAR2(30);
100701 l_entity_code                 VARCHAR2(30);
100702 l_event_class_code            VARCHAR2(30);
100703 l_ae_header_id                NUMBER;
100704 l_event_type_code             VARCHAR2(30);
100705 l_line_definition_code        VARCHAR2(30);
100706 l_line_definition_owner_code  VARCHAR2(1);
100707 --
100708 -- adr variables
100709 l_segment                     VARCHAR2(30);
100710 l_ccid                        NUMBER;
100711 l_adr_transaction_coa_id      NUMBER;
100712 l_adr_accounting_coa_id       NUMBER;
100713 l_adr_flexfield_segment_code  VARCHAR2(30);
100714 l_adr_flex_value_set_id       NUMBER;
100715 l_adr_value_type_code         VARCHAR2(30);
100716 l_adr_value_combination_id    NUMBER;
100717 l_adr_value_segment_code      VARCHAR2(30);
100718 
100719 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100720 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100721 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100722 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100723 
100724 -- 4262811 Variables ------------------------------------------------------------------------------------------
100725 l_entered_amt_idx             NUMBER;
100726 l_accted_amt_idx              NUMBER;
100727 l_acc_rev_flag                VARCHAR2(1);
100728 l_accrual_line_num            NUMBER;
100729 l_tmp_amt                     NUMBER;
100730 l_acc_rev_natural_side_code   VARCHAR2(1);
100731 
100732 l_num_entries                 NUMBER;
100733 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100734 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100735 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100739 
100736 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100737 l_recog_line_1                NUMBER;
100738 l_recog_line_2                NUMBER;
100740 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100741 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100742 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100743 
100744 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100745 
100746 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100747 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100748 
100749 ---------------------------------------------------------------------------------------------------------------
100750 
100751 
100752 --
100753 -- bulk performance
100754 --
100755 l_balance_type_code           VARCHAR2(1);
100756 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100757 l_log_module                  VARCHAR2(240);
100758 
100759 --
100760 -- Upgrade strategy
100761 --
100762 l_actual_upg_option           VARCHAR2(1);
100763 l_enc_upg_option           VARCHAR2(1);
100764 
100765 --
100766 BEGIN
100767 --
100768 IF g_log_enabled THEN
100769       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
100770 END IF;
100771 --
100772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100773 
100774       trace
100775          (p_msg      => 'BEGIN of AcctLineType_169'
100776          ,p_level    => C_LEVEL_PROCEDURE
100777          ,p_module   => l_log_module);
100778 
100779 END IF;
100780 --
100781 l_component_type             := 'AMB_JLT';
100782 l_component_code             := 'AP_MISC_EXPENSE_DM';
100783 l_component_type_code        := 'S';
100784 l_component_appl_id          :=  200;
100785 l_amb_context_code           := 'DEFAULT';
100786 l_entity_code                := 'AP_INVOICES';
100787 l_event_class_code           := 'DEBIT MEMOS';
100788 l_event_type_code            := 'DEBIT MEMOS_ALL';
100789 l_line_definition_owner_code := 'S';
100790 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
100791 --
100792 l_balance_type_code          := 'A';
100793 l_segment                     := NULL;
100794 l_ccid                        := NULL;
100795 l_adr_transaction_coa_id      := NULL;
100796 l_adr_accounting_coa_id       := NULL;
100797 l_adr_flexfield_segment_code  := NULL;
100798 l_adr_flex_value_set_id       := NULL;
100799 l_adr_value_type_code         := NULL;
100800 l_adr_value_combination_id    := NULL;
100801 l_adr_value_segment_code      := NULL;
100802 
100803 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100804 l_bflow_class_code           := '';    -- 4219869 Business Flow
100805 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100806 l_budgetary_control_flag     := 'N';
100807 
100808 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100809 l_bflow_applied_to_amt       := NULL; -- 5132302
100810 l_entered_amt_idx            := NULL;          -- 4262811
100811 l_accted_amt_idx             := NULL;          -- 4262811
100812 l_acc_rev_flag               := NULL;          -- 4262811
100813 l_accrual_line_num           := NULL;          -- 4262811
100814 l_tmp_amt                    := NULL;          -- 4262811
100815 --
100816  
100817 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100818     l_balance_type_code <> 'B' THEN
100819 IF NVL(p_source_33,'
100820 ') =  'MISCELLANEOUS'
100821  THEN 
100822 
100823    --
100824    XLA_AE_LINES_PKG.SetNewLine;
100825 
100826    p_balance_type_code          := l_balance_type_code;
100827    -- set the flag so later we will know whether the gain loss line needs to be created
100828    
100829    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100830      p_actual_flag :='A';
100831    END IF;
100832 
100833    --
100834    -- bulk performance
100835    --
100836    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100837                                       p_header_num   => 0); -- 4262811
100838    --
100839    -- set accounting line options
100840    --
100841    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100842            p_natural_side_code          => 'D'
100843          , p_gain_or_loss_flag          => 'N'
100844          , p_gl_transfer_mode_code      => 'S'
100845          , p_acct_entry_type_code       => 'A'
100846          , p_switch_side_flag           => 'Y'
100847          , p_merge_duplicate_code       => 'A'
100848          );
100849    --
100850    l_acc_rev_natural_side_code := 'C';  -- 4262811
100851    -- 
100852    --
100853    -- set accounting line type info
100854    --
100855    xla_ae_lines_pkg.SetAcctLineType
100856       (p_component_type             => l_component_type
100857       ,p_event_type_code            => l_event_type_code
100858       ,p_line_definition_owner_code => l_line_definition_owner_code
100859       ,p_line_definition_code       => l_line_definition_code
100860       ,p_accounting_line_code       => l_component_code
100861       ,p_accounting_line_type_code  => l_component_type_code
100862       ,p_accounting_line_appl_id    => l_component_appl_id
100863       ,p_amb_context_code           => l_amb_context_code
100864       ,p_entity_code                => l_entity_code
100865       ,p_event_class_code           => l_event_class_code);
100866    --
100867    -- set accounting class
100868    --
100872          );
100869    xla_ae_lines_pkg.SetAcctClass(
100870            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
100871          , p_ae_header_id           => l_ae_header_id
100873 
100874    --
100875    -- set rounding class
100876    --
100877    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100878                       'MISCELLANEOUS EXPENSE';
100879 
100880    --
100881    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100882    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100883    --
100884    -- bulk performance
100885    --
100886    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100887 
100888    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100889       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100890 
100891    -- 4955764
100892    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100893       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100894 
100895    -- 4458381 Public Sector Enh
100896    
100897    --
100898    -- set accounting attributes for the line type
100899    --
100900    l_entered_amt_idx := 23;
100901    l_accted_amt_idx  := 28;
100902    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
100903    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100904    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
100905    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100906    l_rec_acct_attrs.array_num_value(2)  := 
100907 xla_ae_sources_pkg.GetSystemSourceNum(
100908    p_source_code           => 'XLA_EVENT_APPL_ID'
100909  , p_source_type_code      => 'Y'
100910  , p_source_application_id =>  602
100911 );
100912    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100913    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
100914    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100915    l_rec_acct_attrs.array_char_value(4)  := 
100916 xla_ae_sources_pkg.GetSystemSourceChar(
100917    p_source_code           => 'XLA_ENTITY_CODE'
100918  , p_source_type_code      => 'Y'
100919  , p_source_application_id =>  602
100920 );
100921    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100922    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
100923    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100924    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
100925    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
100926    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
100927    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100928    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
100929    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
100930    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
100931    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
100932    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
100933    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100934    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
100935    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
100936    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
100937    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
100938    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
100939    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
100940    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
100941    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
100942    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
100943    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
100944    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
100945    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
100946    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
100947    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
100948    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
100949    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
100950    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
100951    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
100952    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
100953    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
100954    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
100955    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
100956    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
100957    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
100958    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
100959    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
100960    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
100961    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
100962    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
100963    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
100964    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
100965    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
100966    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
100967    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
100971    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
100968    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
100969    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
100970    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
100972    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
100973    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
100974    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
100975    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
100976    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
100977    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
100978    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
100979    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
100980    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
100981    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
100982    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
100983    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
100984    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
100985    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
100986    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
100987    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
100988    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
100989    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
100990    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
100991    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
100992    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
100993    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
100994    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
100995    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
100996    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
100997 
100998    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100999    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101000 
101001    ---------------------------------------------------------------------------------------------------------------
101002    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101003    ---------------------------------------------------------------------------------------------------------------
101004    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101005 
101006    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101007    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101008 
101009    IF xla_accounting_cache_pkg.GetValueChar
101010          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101011          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101012    AND l_bflow_method_code = 'PRIOR_ENTRY'
101013 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101014    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101015          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101016        )
101017    THEN
101018          xla_ae_lines_pkg.BflowUpgEntry
101019            (p_business_method_code    => l_bflow_method_code
101020            ,p_business_class_code     => l_bflow_class_code
101021            ,p_balance_type            => l_balance_type_code);
101022    ELSE
101023       NULL;
101024 -- No business flow processing for business flow method of NONE.
101025    END IF;
101026 
101027    --
101028    -- call analytical criteria
101029    --
101030    
101031 
101032 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
101033 xla_ae_lines_pkg.SetAnalyticalCriteria(
101034    p_analytical_criterion_name    => 'Project Number'
101035  , p_analytical_criterion_owner   => 'S'
101036  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
101037  , p_amb_context_code             => 'DEFAULT'
101038  , p_balancing_flag               => 'N'
101039  
101040  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
101041 p_source_146))
101042  , p_analytical_detail_num_1     =>  NULL
101043  , p_analytical_detail_date_1    =>  NULL
101044 
101045  , p_ae_header_id                 => l_ae_header_id
101046 )
101047 ;
101048 --
101049 
101050    --
101051    -- call description
101052    --
101053    
101054 xla_ae_lines_pkg.SetLineDescription(
101055    p_ae_header_id => l_ae_header_id
101056   ,p_description  => Description_1 (
101057      p_application_id         => p_application_id
101058    , p_ae_header_id           => l_ae_header_id 
101059 , p_source_1 => p_source_1
101060    )
101061 );
101062 
101063 
101064    --
101065    -- call ADRs
101066    -- Bug 4922099
101067    --
101068    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101069         (NVL(l_actual_upg_option, 'N') = 'O') OR
101070         (NVL(l_enc_upg_option, 'N') = 'O')
101071       )
101072    THEN
101073    NULL;
101074    --
101075    --
101076    
101077   l_ccid := AcctDerRule_33(
101078            p_application_id           => p_application_id
101079          , p_ae_header_id             => l_ae_header_id 
101080 , p_source_30 => p_source_30
101081          , x_transaction_coa_id       => l_adr_transaction_coa_id
101085    );
101082          , x_accounting_coa_id        => l_adr_accounting_coa_id
101083          , x_value_type_code          => l_adr_value_type_code
101084          , p_side                     => 'NA'
101086 
101087    xla_ae_lines_pkg.set_ccid(
101088     p_code_combination_id          => l_ccid
101089   , p_value_type_code              => l_adr_value_type_code
101090   , p_transaction_coa_id           => l_adr_transaction_coa_id
101091   , p_accounting_coa_id            => l_adr_accounting_coa_id
101092   , p_adr_code                     => 'AP_INVOICE_DIST'
101093   , p_adr_type_code                => 'S'
101094   , p_component_type               => l_component_type
101095   , p_component_code               => l_component_code
101096   , p_component_type_code          => l_component_type_code
101097   , p_component_appl_id            => l_component_appl_id
101098   , p_amb_context_code             => l_amb_context_code
101099   , p_side                         => 'NA'
101100   );
101101 
101102 
101103    --
101104    --
101105    END IF;
101106    --
101107    -- Bug 4922099
101108    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101109           (NVL(l_enc_upg_option, 'N') = 'O')
101110         ) AND
101111         (l_bflow_method_code = 'PRIOR_ENTRY')
101112       )
101113    THEN
101114       IF
101115       --
101116       1 = 2
101117       --
101118       THEN
101119       xla_accounting_err_pkg.build_message
101120                                     (p_appli_s_name            => 'XLA'
101121                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101122                                     ,p_token_1                 => 'LINE_NUMBER'
101123                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101124                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101125                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101126                                                                              l_component_type
101127                                                                             ,l_component_code
101128                                                                             ,l_component_type_code
101129                                                                             ,l_component_appl_id
101130                                                                             ,l_amb_context_code
101131                                                                             ,l_entity_code
101132                                                                             ,l_event_class_code
101133                                                                            )
101134                                     ,p_token_3                 => 'OWNER'
101135                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101136                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101137                                                                           ,p_lookup_code    => l_component_type_code
101138                                                                          )
101139                                     ,p_token_4                 => 'PRODUCT_NAME'
101140                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101141                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101142                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101143                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101144                                     ,p_ae_header_id            =>  NULL
101145                                        );
101146 
101147         IF (C_LEVEL_ERROR>= g_log_level) THEN
101148                  trace
101149                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101150                       ,p_level    => C_LEVEL_ERROR
101151                       ,p_module   => l_log_module);
101152         END IF;
101153       END IF;
101154    END IF;
101155    --
101156    --
101157    ------------------------------------------------------------------------------------------------
101158    -- 4219869 Business Flow
101159    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101160    -- Prior Entry.  Currently, the following code is always generated.
101161    ------------------------------------------------------------------------------------------------
101162    XLA_AE_LINES_PKG.ValidateCurrentLine;
101163 
101164    ------------------------------------------------------------------------------------
101165    -- 4219869 Business Flow
101166    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101167    ------------------------------------------------------------------------------------
101168    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101169 
101170    ----------------------------------------------------------------------------------
101171    -- 4219869 Business Flow
101172    -- Update journal entry status -- Need to generate this within IF <condition>
101173    ----------------------------------------------------------------------------------
101174    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101175          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101176          ,p_balance_type_code => l_balance_type_code
101177          );
101181    -------------------------------------------------------------------------------------------
101178 
101179    -------------------------------------------------------------------------------------------
101180    -- 4262811 - Generate the Accrual Reversal lines
101182    BEGIN
101183       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101184                               (g_array_event(p_event_id).array_value_num('header_index'));
101185       IF l_acc_rev_flag IS NULL THEN
101186          l_acc_rev_flag := 'N';
101187       END IF;
101188    EXCEPTION
101189       WHEN OTHERS THEN
101190          l_acc_rev_flag := 'N';
101191    END;
101192    --
101193    IF (l_acc_rev_flag = 'Y') THEN
101194 
101195        -- 4645092  ------------------------------------------------------------------------------
101196        -- To allow MPA report to determine if it should generate report process
101197        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101198        ------------------------------------------------------------------------------------------
101199 
101200        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101201        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101202    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101203    -- call ADRs
101204    -- Bug 4922099
101205    --
101206    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101207         (NVL(l_actual_upg_option, 'N') = 'O') OR
101208         (NVL(l_enc_upg_option, 'N') = 'O')
101209       )
101210    THEN
101211    NULL;
101212    --
101213    --
101214    
101215   l_ccid := AcctDerRule_33(
101216            p_application_id           => p_application_id
101217          , p_ae_header_id             => l_ae_header_id 
101218 , p_source_30 => p_source_30
101219          , x_transaction_coa_id       => l_adr_transaction_coa_id
101220          , x_accounting_coa_id        => l_adr_accounting_coa_id
101221          , x_value_type_code          => l_adr_value_type_code
101222          , p_side                     => 'NA'
101223    );
101224 
101225    xla_ae_lines_pkg.set_ccid(
101226     p_code_combination_id          => l_ccid
101227   , p_value_type_code              => l_adr_value_type_code
101228   , p_transaction_coa_id           => l_adr_transaction_coa_id
101229   , p_accounting_coa_id            => l_adr_accounting_coa_id
101230   , p_adr_code                     => 'AP_INVOICE_DIST'
101231   , p_adr_type_code                => 'S'
101232   , p_component_type               => l_component_type
101233   , p_component_code               => l_component_code
101234   , p_component_type_code          => l_component_type_code
101235   , p_component_appl_id            => l_component_appl_id
101236   , p_amb_context_code             => l_amb_context_code
101237   , p_side                         => 'NA'
101238   );
101239 
101240 
101241    --
101242    --
101243    END IF;
101244 
101245        --
101246        -- Update the line information that should be overwritten
101247        --
101248        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101249                                          p_header_num   => 1);
101250        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101251 
101252        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101253 
101254        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101255           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101256        END IF;
101257 
101258       --
101259       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101260       --
101261       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101262           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101263       ELSE
101264           ---------------------------------------------------------------------------------------------------
101265           -- 4262811a Switch Sign
101266           ---------------------------------------------------------------------------------------------------
101267           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101268           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101269                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101270           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101271                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101272           -- 5132302
101273           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101274                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101275 
101276       END IF;
101277 
101278       -- 4955764
101279       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101280       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101281 
101282 
101283       XLA_AE_LINES_PKG.ValidateCurrentLine;
101284       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101285 
101286       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101287                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101288                ,p_balance_type_code => l_balance_type_code);
101289 
101293    -- 4262811 Multiperiod Accounting
101290    END IF;
101291 
101292    -----------------------------------------------------------------------------------------
101294    -----------------------------------------------------------------------------------------
101295      -- No MPA option is assigned.
101296 
101297 
101298 END IF;
101299 END IF;
101300 --
101301 
101302 --
101303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101304    trace
101305       (p_msg      => 'END of AcctLineType_169'
101306       ,p_level    => C_LEVEL_PROCEDURE
101307       ,p_module   => l_log_module);
101308 END IF;
101309 --
101310 EXCEPTION
101311   WHEN xla_exceptions_pkg.application_exception THEN
101312       RAISE;
101313   WHEN OTHERS THEN
101314        xla_exceptions_pkg.raise_message
101315            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_169');
101316 END AcctLineType_169;
101317 --
101318 
101319 ---------------------------------------
101320 --
101321 -- PRIVATE FUNCTION
101322 --         AcctLineType_170
101323 --
101324 ---------------------------------------
101325 PROCEDURE AcctLineType_170 (
101326   p_application_id        IN NUMBER
101327  ,p_event_id              IN NUMBER
101328  ,p_calculate_acctd_flag  IN VARCHAR2
101329  ,p_calculate_g_l_flag    IN VARCHAR2
101330  ,p_actual_flag           IN OUT VARCHAR2
101331  ,p_balance_type_code     OUT VARCHAR2
101332  ,p_gain_or_loss_ref      OUT VARCHAR2
101333  
101334 --Invoice Distribution Description
101335  , p_source_1            IN VARCHAR2
101336 --Invoice Distribution Ledger Amount
101337  , p_source_21            IN NUMBER
101338 --Invoice Distribution Account
101339  , p_source_30            IN NUMBER
101340 --Invoice Distribution Type
101341  , p_source_33            IN VARCHAR2
101342  , p_source_33_meaning    IN VARCHAR2
101343 --Accounting Reversal Indicator
101344  , p_source_52            IN VARCHAR2
101345 --Distribution Link Type
101346  , p_source_54            IN VARCHAR2
101347 --Allocation to Main Distribution Identifier
101348  , p_source_56            IN NUMBER
101349 --Invoice Identifier
101350  , p_source_57            IN NUMBER
101351 --Invoice Distribution Identifier
101352  , p_source_63            IN NUMBER
101353 --Payables Encumbrance Upgrade Credit Account
101354  , p_source_64            IN NUMBER
101355 --Payables Encumbrance Upgrade Credit Amount
101356  , p_source_65            IN NUMBER
101357 --Invoice Currency Code
101358  , p_source_66            IN VARCHAR2
101359 --Payables Encumbrance Upgrade Credit Base Amount
101360  , p_source_67            IN NUMBER
101361 --Payables Encumbrance Upgrade Debit Account
101362  , p_source_68            IN NUMBER
101363 --Payables Encumbrance Upgrade Debit Amount
101364  , p_source_69            IN NUMBER
101365 --Payables Encumbrance Upgrade Debit Base Amount
101366  , p_source_70            IN NUMBER
101367 --Payables Encumbrance Upgrade Option
101368  , p_source_71            IN VARCHAR2
101369 --Invoice Distribution Amount
101370  , p_source_72            IN NUMBER
101371 --Deferred Accounting End Date
101372  , p_source_76            IN DATE
101373 --Deferred Accounting Option
101374  , p_source_77            IN VARCHAR2
101375 --Deferred Accounting Start Date
101376  , p_source_78            IN DATE
101377 --Override Accounted Amount Indicator
101378  , p_source_79            IN VARCHAR2
101379  , p_source_79_meaning    IN VARCHAR2
101380 --Invoice Supplier Identifier
101381  , p_source_80            IN NUMBER
101382 --Invoice Supplier Site Identifier
101383  , p_source_81            IN NUMBER
101384 --Third Party Type
101385  , p_source_82            IN VARCHAR2
101386 --Parent Reversal Identifier
101387  , p_source_83            IN NUMBER
101388 --Invoice Distribution Statistical Amount
101389  , p_source_84            IN NUMBER
101390 --Invoice Distribution Tax Line Identifier
101391  , p_source_85            IN NUMBER
101392 --Invoice Distribution Tax Distribution Identifier from Tax
101393  , p_source_86            IN NUMBER
101394 --Invoice Distribution Summary Tax Line Identifier
101395  , p_source_87            IN NUMBER
101396 --Payables Upgrade Credit Encumbrance Type Identifier
101397  , p_source_88            IN NUMBER
101398 --Payables Upgrade Debit Encumbrance Type Identifier
101399  , p_source_89            IN NUMBER
101400 --Business Flow Accounts Payable Application Identifier
101401  , p_source_90            IN NUMBER
101402 --Business Flow Invoice Distribution Type
101403  , p_source_91            IN VARCHAR2
101404 --Business Flow Invoice Entity Code
101405  , p_source_92            IN VARCHAR2
101406 --Business Flow Invoice Distribution Identifier
101407  , p_source_93            IN NUMBER
101408 --Business Flow Invoice Identifier
101409  , p_source_94            IN NUMBER
101410 --Invoice Exchange Date
101411  , p_source_136            IN DATE
101412 --Invoice Exchange Rate
101413  , p_source_137            IN NUMBER
101414 --Invoice Exchange Rate Type
101415  , p_source_138            IN VARCHAR2
101416 --Project Identifier
101417  , p_source_146            IN NUMBER
101418 )
101419 IS
101420 
101421 l_component_type              VARCHAR2(80);
101422 l_component_code              VARCHAR2(30);
101423 l_component_type_code         VARCHAR2(1);
101424 l_component_appl_id           INTEGER;
101425 l_amb_context_code            VARCHAR2(30);
101426 l_entity_code                 VARCHAR2(30);
101427 l_event_class_code            VARCHAR2(30);
101428 l_ae_header_id                NUMBER;
101432 --
101429 l_event_type_code             VARCHAR2(30);
101430 l_line_definition_code        VARCHAR2(30);
101431 l_line_definition_owner_code  VARCHAR2(1);
101433 -- adr variables
101434 l_segment                     VARCHAR2(30);
101435 l_ccid                        NUMBER;
101436 l_adr_transaction_coa_id      NUMBER;
101437 l_adr_accounting_coa_id       NUMBER;
101438 l_adr_flexfield_segment_code  VARCHAR2(30);
101439 l_adr_flex_value_set_id       NUMBER;
101440 l_adr_value_type_code         VARCHAR2(30);
101441 l_adr_value_combination_id    NUMBER;
101442 l_adr_value_segment_code      VARCHAR2(30);
101443 
101444 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101445 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101446 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101447 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101448 
101449 -- 4262811 Variables ------------------------------------------------------------------------------------------
101450 l_entered_amt_idx             NUMBER;
101451 l_accted_amt_idx              NUMBER;
101452 l_acc_rev_flag                VARCHAR2(1);
101453 l_accrual_line_num            NUMBER;
101454 l_tmp_amt                     NUMBER;
101455 l_acc_rev_natural_side_code   VARCHAR2(1);
101456 
101457 l_num_entries                 NUMBER;
101458 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101459 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101460 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101461 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101462 l_recog_line_1                NUMBER;
101463 l_recog_line_2                NUMBER;
101464 
101465 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101466 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101467 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101468 
101469 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101470 
101471 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101472 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101473 
101474 ---------------------------------------------------------------------------------------------------------------
101475 
101476 
101477 --
101478 -- bulk performance
101479 --
101480 l_balance_type_code           VARCHAR2(1);
101481 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101482 l_log_module                  VARCHAR2(240);
101483 
101484 --
101485 -- Upgrade strategy
101486 --
101487 l_actual_upg_option           VARCHAR2(1);
101488 l_enc_upg_option           VARCHAR2(1);
101489 
101490 --
101491 BEGIN
101492 --
101493 IF g_log_enabled THEN
101494       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
101495 END IF;
101496 --
101497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101498 
101499       trace
101500          (p_msg      => 'BEGIN of AcctLineType_170'
101501          ,p_level    => C_LEVEL_PROCEDURE
101502          ,p_module   => l_log_module);
101503 
101504 END IF;
101505 --
101506 l_component_type             := 'AMB_JLT';
101507 l_component_code             := 'AP_MISC_EXPENSE_INV';
101508 l_component_type_code        := 'S';
101509 l_component_appl_id          :=  200;
101510 l_amb_context_code           := 'DEFAULT';
101511 l_entity_code                := 'AP_INVOICES';
101512 l_event_class_code           := 'INVOICES';
101513 l_event_type_code            := 'INVOICES_ALL';
101514 l_line_definition_owner_code := 'S';
101515 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
101516 --
101517 l_balance_type_code          := 'A';
101518 l_segment                     := NULL;
101519 l_ccid                        := NULL;
101520 l_adr_transaction_coa_id      := NULL;
101521 l_adr_accounting_coa_id       := NULL;
101522 l_adr_flexfield_segment_code  := NULL;
101523 l_adr_flex_value_set_id       := NULL;
101524 l_adr_value_type_code         := NULL;
101525 l_adr_value_combination_id    := NULL;
101526 l_adr_value_segment_code      := NULL;
101527 
101528 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
101529 l_bflow_class_code           := '';    -- 4219869 Business Flow
101530 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101531 l_budgetary_control_flag     := 'N';
101532 
101533 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101534 l_bflow_applied_to_amt       := NULL; -- 5132302
101535 l_entered_amt_idx            := NULL;          -- 4262811
101536 l_accted_amt_idx             := NULL;          -- 4262811
101537 l_acc_rev_flag               := NULL;          -- 4262811
101538 l_accrual_line_num           := NULL;          -- 4262811
101539 l_tmp_amt                    := NULL;          -- 4262811
101540 --
101541  
101542 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101543     l_balance_type_code <> 'B' THEN
101544 IF NVL(p_source_33,'
101545 ') =  'MISCELLANEOUS'
101546  THEN 
101547 
101548    --
101549    XLA_AE_LINES_PKG.SetNewLine;
101550 
101551    p_balance_type_code          := l_balance_type_code;
101552    -- set the flag so later we will know whether the gain loss line needs to be created
101553    
101554    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
101555      p_actual_flag :='A';
101556    END IF;
101560    --
101557 
101558    --
101559    -- bulk performance
101561    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101562                                       p_header_num   => 0); -- 4262811
101563    --
101564    -- set accounting line options
101565    --
101566    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101567            p_natural_side_code          => 'D'
101568          , p_gain_or_loss_flag          => 'N'
101569          , p_gl_transfer_mode_code      => 'S'
101570          , p_acct_entry_type_code       => 'A'
101571          , p_switch_side_flag           => 'Y'
101572          , p_merge_duplicate_code       => 'A'
101573          );
101574    --
101575    l_acc_rev_natural_side_code := 'C';  -- 4262811
101576    -- 
101577    --
101578    -- set accounting line type info
101579    --
101580    xla_ae_lines_pkg.SetAcctLineType
101581       (p_component_type             => l_component_type
101582       ,p_event_type_code            => l_event_type_code
101583       ,p_line_definition_owner_code => l_line_definition_owner_code
101584       ,p_line_definition_code       => l_line_definition_code
101585       ,p_accounting_line_code       => l_component_code
101586       ,p_accounting_line_type_code  => l_component_type_code
101587       ,p_accounting_line_appl_id    => l_component_appl_id
101588       ,p_amb_context_code           => l_amb_context_code
101589       ,p_entity_code                => l_entity_code
101590       ,p_event_class_code           => l_event_class_code);
101591    --
101592    -- set accounting class
101593    --
101594    xla_ae_lines_pkg.SetAcctClass(
101595            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
101596          , p_ae_header_id           => l_ae_header_id
101597          );
101598 
101599    --
101600    -- set rounding class
101601    --
101602    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101603                       'MISCELLANEOUS EXPENSE';
101604 
101605    --
101606    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101607    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101608    --
101609    -- bulk performance
101610    --
101611    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101612 
101613    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101614       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101615 
101616    -- 4955764
101617    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101618       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101619 
101620    -- 4458381 Public Sector Enh
101621    
101622    --
101623    -- set accounting attributes for the line type
101624    --
101625    l_entered_amt_idx := 24;
101626    l_accted_amt_idx  := 29;
101627    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
101628    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101629    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
101630    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
101631    l_rec_acct_attrs.array_num_value(2)  := 
101632 xla_ae_sources_pkg.GetSystemSourceNum(
101633    p_source_code           => 'XLA_EVENT_APPL_ID'
101634  , p_source_type_code      => 'Y'
101635  , p_source_application_id =>  602
101636 );
101637    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
101638    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
101639    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
101640    l_rec_acct_attrs.array_char_value(4)  := 
101641 xla_ae_sources_pkg.GetSystemSourceChar(
101642    p_source_code           => 'XLA_ENTITY_CODE'
101643  , p_source_type_code      => 'Y'
101644  , p_source_application_id =>  602
101645 );
101646    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
101647    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
101648    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
101649    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
101650    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
101651    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
101652    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
101653    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
101654    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101655    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
101656    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
101657    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
101658    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
101659    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
101660    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101661    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
101662    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
101663    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
101664    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
101665    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
101666    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
101667    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
101668    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
101669    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
101673    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
101670    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
101671    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
101672    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
101674    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
101675    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
101676    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
101677    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
101678    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
101679    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
101680    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
101681    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
101682    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
101683    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
101684    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
101685    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
101686    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
101687    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
101688    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
101689    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
101690    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
101691    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
101692    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
101693    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
101694    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
101695    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
101696    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
101697    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
101698    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
101699    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
101700    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
101701    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
101702    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
101703    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
101704    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
101705    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
101706    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
101707    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
101708    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
101709    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
101710    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
101711    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
101712    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
101713    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
101714    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
101715    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
101716    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
101717    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
101718    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
101719    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
101720    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
101721    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
101722    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
101723    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
101724    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
101725    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
101726 
101727    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101728    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101729 
101730    ---------------------------------------------------------------------------------------------------------------
101731    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101732    ---------------------------------------------------------------------------------------------------------------
101733    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101734 
101735    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101736    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101737 
101738    IF xla_accounting_cache_pkg.GetValueChar
101739          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101740          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101741    AND l_bflow_method_code = 'PRIOR_ENTRY'
101742 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101743    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101744          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101745        )
101746    THEN
101747          xla_ae_lines_pkg.BflowUpgEntry
101748            (p_business_method_code    => l_bflow_method_code
101749            ,p_business_class_code     => l_bflow_class_code
101750            ,p_balance_type            => l_balance_type_code);
101751    ELSE
101752       NULL;
101753 -- No business flow processing for business flow method of NONE.
101754    END IF;
101755 
101756    --
101757    -- call analytical criteria
101758    --
101759    
101760 
101764  , p_analytical_criterion_owner   => 'S'
101761 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
101762 xla_ae_lines_pkg.SetAnalyticalCriteria(
101763    p_analytical_criterion_name    => 'Project Number'
101765  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
101766  , p_amb_context_code             => 'DEFAULT'
101767  , p_balancing_flag               => 'N'
101768  
101769  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
101770 p_source_146))
101771  , p_analytical_detail_num_1     =>  NULL
101772  , p_analytical_detail_date_1    =>  NULL
101773 
101774  , p_ae_header_id                 => l_ae_header_id
101775 )
101776 ;
101777 --
101778 
101779    --
101780    -- call description
101781    --
101782    
101783 xla_ae_lines_pkg.SetLineDescription(
101784    p_ae_header_id => l_ae_header_id
101785   ,p_description  => Description_1 (
101786      p_application_id         => p_application_id
101787    , p_ae_header_id           => l_ae_header_id 
101788 , p_source_1 => p_source_1
101789    )
101790 );
101791 
101792 
101793    --
101794    -- call ADRs
101795    -- Bug 4922099
101796    --
101797    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101798         (NVL(l_actual_upg_option, 'N') = 'O') OR
101799         (NVL(l_enc_upg_option, 'N') = 'O')
101800       )
101801    THEN
101802    NULL;
101803    --
101804    --
101805    
101806   l_ccid := AcctDerRule_33(
101807            p_application_id           => p_application_id
101808          , p_ae_header_id             => l_ae_header_id 
101809 , p_source_30 => p_source_30
101810          , x_transaction_coa_id       => l_adr_transaction_coa_id
101811          , x_accounting_coa_id        => l_adr_accounting_coa_id
101812          , x_value_type_code          => l_adr_value_type_code
101813          , p_side                     => 'NA'
101814    );
101815 
101816    xla_ae_lines_pkg.set_ccid(
101817     p_code_combination_id          => l_ccid
101818   , p_value_type_code              => l_adr_value_type_code
101819   , p_transaction_coa_id           => l_adr_transaction_coa_id
101820   , p_accounting_coa_id            => l_adr_accounting_coa_id
101821   , p_adr_code                     => 'AP_INVOICE_DIST'
101822   , p_adr_type_code                => 'S'
101823   , p_component_type               => l_component_type
101824   , p_component_code               => l_component_code
101825   , p_component_type_code          => l_component_type_code
101826   , p_component_appl_id            => l_component_appl_id
101827   , p_amb_context_code             => l_amb_context_code
101828   , p_side                         => 'NA'
101829   );
101830 
101831 
101832    --
101833    --
101834    END IF;
101835    --
101836    -- Bug 4922099
101837    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101838           (NVL(l_enc_upg_option, 'N') = 'O')
101839         ) AND
101840         (l_bflow_method_code = 'PRIOR_ENTRY')
101841       )
101842    THEN
101843       IF
101844       --
101845       1 = 2
101846       --
101847       THEN
101848       xla_accounting_err_pkg.build_message
101849                                     (p_appli_s_name            => 'XLA'
101850                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101851                                     ,p_token_1                 => 'LINE_NUMBER'
101852                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101853                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101854                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101855                                                                              l_component_type
101856                                                                             ,l_component_code
101857                                                                             ,l_component_type_code
101858                                                                             ,l_component_appl_id
101859                                                                             ,l_amb_context_code
101860                                                                             ,l_entity_code
101861                                                                             ,l_event_class_code
101862                                                                            )
101863                                     ,p_token_3                 => 'OWNER'
101864                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101865                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101866                                                                           ,p_lookup_code    => l_component_type_code
101867                                                                          )
101868                                     ,p_token_4                 => 'PRODUCT_NAME'
101869                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101870                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101871                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101872                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101873                                     ,p_ae_header_id            =>  NULL
101877                  trace
101874                                        );
101875 
101876         IF (C_LEVEL_ERROR>= g_log_level) THEN
101878                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101879                       ,p_level    => C_LEVEL_ERROR
101880                       ,p_module   => l_log_module);
101881         END IF;
101882       END IF;
101883    END IF;
101884    --
101885    --
101886    ------------------------------------------------------------------------------------------------
101887    -- 4219869 Business Flow
101888    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101889    -- Prior Entry.  Currently, the following code is always generated.
101890    ------------------------------------------------------------------------------------------------
101891    XLA_AE_LINES_PKG.ValidateCurrentLine;
101892 
101893    ------------------------------------------------------------------------------------
101894    -- 4219869 Business Flow
101895    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101896    ------------------------------------------------------------------------------------
101897    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101898 
101899    ----------------------------------------------------------------------------------
101900    -- 4219869 Business Flow
101901    -- Update journal entry status -- Need to generate this within IF <condition>
101902    ----------------------------------------------------------------------------------
101903    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101904          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101905          ,p_balance_type_code => l_balance_type_code
101906          );
101907 
101908    -------------------------------------------------------------------------------------------
101909    -- 4262811 - Generate the Accrual Reversal lines
101910    -------------------------------------------------------------------------------------------
101911    BEGIN
101912       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101913                               (g_array_event(p_event_id).array_value_num('header_index'));
101914       IF l_acc_rev_flag IS NULL THEN
101915          l_acc_rev_flag := 'N';
101916       END IF;
101917    EXCEPTION
101918       WHEN OTHERS THEN
101919          l_acc_rev_flag := 'N';
101920    END;
101921    --
101922    IF (l_acc_rev_flag = 'Y') THEN
101923 
101924        -- 4645092  ------------------------------------------------------------------------------
101925        -- To allow MPA report to determine if it should generate report process
101926        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101927        ------------------------------------------------------------------------------------------
101928 
101929        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101930        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101931    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101932    -- call ADRs
101933    -- Bug 4922099
101934    --
101935    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101936         (NVL(l_actual_upg_option, 'N') = 'O') OR
101937         (NVL(l_enc_upg_option, 'N') = 'O')
101938       )
101939    THEN
101940    NULL;
101941    --
101942    --
101943    
101944   l_ccid := AcctDerRule_33(
101945            p_application_id           => p_application_id
101946          , p_ae_header_id             => l_ae_header_id 
101947 , p_source_30 => p_source_30
101948          , x_transaction_coa_id       => l_adr_transaction_coa_id
101949          , x_accounting_coa_id        => l_adr_accounting_coa_id
101950          , x_value_type_code          => l_adr_value_type_code
101951          , p_side                     => 'NA'
101952    );
101953 
101954    xla_ae_lines_pkg.set_ccid(
101955     p_code_combination_id          => l_ccid
101956   , p_value_type_code              => l_adr_value_type_code
101957   , p_transaction_coa_id           => l_adr_transaction_coa_id
101958   , p_accounting_coa_id            => l_adr_accounting_coa_id
101959   , p_adr_code                     => 'AP_INVOICE_DIST'
101960   , p_adr_type_code                => 'S'
101961   , p_component_type               => l_component_type
101962   , p_component_code               => l_component_code
101963   , p_component_type_code          => l_component_type_code
101964   , p_component_appl_id            => l_component_appl_id
101965   , p_amb_context_code             => l_amb_context_code
101966   , p_side                         => 'NA'
101967   );
101968 
101969 
101970    --
101971    --
101972    END IF;
101973 
101974        --
101975        -- Update the line information that should be overwritten
101976        --
101977        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101978                                          p_header_num   => 1);
101979        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101980 
101981        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101982 
101983        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101984           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101985        END IF;
101986 
101987       --
101988       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101989       --
101993           ---------------------------------------------------------------------------------------------------
101990       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101991           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101992       ELSE
101994           -- 4262811a Switch Sign
101995           ---------------------------------------------------------------------------------------------------
101996           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101997           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101998                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101999           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102000                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102001           -- 5132302
102002           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102003                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102004 
102005       END IF;
102006 
102007       -- 4955764
102008       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102009       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102010 
102011 
102012       XLA_AE_LINES_PKG.ValidateCurrentLine;
102013       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102014 
102015       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102016                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102017                ,p_balance_type_code => l_balance_type_code);
102018 
102019    END IF;
102020 
102021    -----------------------------------------------------------------------------------------
102022    -- 4262811 Multiperiod Accounting
102023    -----------------------------------------------------------------------------------------
102024      -- No MPA option is assigned.
102025 
102026 
102027 END IF;
102028 END IF;
102029 --
102030 
102031 --
102032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102033    trace
102034       (p_msg      => 'END of AcctLineType_170'
102035       ,p_level    => C_LEVEL_PROCEDURE
102036       ,p_module   => l_log_module);
102037 END IF;
102038 --
102039 EXCEPTION
102040   WHEN xla_exceptions_pkg.application_exception THEN
102041       RAISE;
102042   WHEN OTHERS THEN
102043        xla_exceptions_pkg.raise_message
102044            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_170');
102045 END AcctLineType_170;
102046 --
102047 
102048 ---------------------------------------
102049 --
102050 -- PRIVATE FUNCTION
102051 --         AcctLineType_171
102052 --
102053 ---------------------------------------
102054 PROCEDURE AcctLineType_171 (
102055   p_application_id        IN NUMBER
102056  ,p_event_id              IN NUMBER
102057  ,p_calculate_acctd_flag  IN VARCHAR2
102058  ,p_calculate_g_l_flag    IN VARCHAR2
102059  ,p_actual_flag           IN OUT VARCHAR2
102060  ,p_balance_type_code     OUT VARCHAR2
102061  ,p_gain_or_loss_ref      OUT VARCHAR2
102062  
102063 --Invoice Distribution Description
102064  , p_source_1            IN VARCHAR2
102065 --Invoice Distribution Ledger Amount
102066  , p_source_21            IN NUMBER
102067 --Invoice Distribution Account
102068  , p_source_30            IN NUMBER
102069 --Invoice Distribution Type
102070  , p_source_33            IN VARCHAR2
102071  , p_source_33_meaning    IN VARCHAR2
102072 --Accounting Reversal Indicator
102073  , p_source_52            IN VARCHAR2
102074 --Distribution Link Type
102075  , p_source_54            IN VARCHAR2
102076 --Allocation to Main Distribution Identifier
102077  , p_source_56            IN NUMBER
102078 --Invoice Identifier
102079  , p_source_57            IN NUMBER
102080 --Invoice Distribution Identifier
102081  , p_source_63            IN NUMBER
102082 --Payables Encumbrance Upgrade Credit Account
102083  , p_source_64            IN NUMBER
102084 --Payables Encumbrance Upgrade Credit Amount
102085  , p_source_65            IN NUMBER
102086 --Invoice Currency Code
102087  , p_source_66            IN VARCHAR2
102088 --Payables Encumbrance Upgrade Credit Base Amount
102089  , p_source_67            IN NUMBER
102090 --Payables Encumbrance Upgrade Debit Account
102091  , p_source_68            IN NUMBER
102092 --Payables Encumbrance Upgrade Debit Amount
102093  , p_source_69            IN NUMBER
102094 --Payables Encumbrance Upgrade Debit Base Amount
102095  , p_source_70            IN NUMBER
102096 --Payables Encumbrance Upgrade Option
102097  , p_source_71            IN VARCHAR2
102098 --Invoice Distribution Amount
102099  , p_source_72            IN NUMBER
102100 --Deferred Accounting End Date
102101  , p_source_76            IN DATE
102102 --Deferred Accounting Option
102103  , p_source_77            IN VARCHAR2
102104 --Deferred Accounting Start Date
102105  , p_source_78            IN DATE
102106 --Override Accounted Amount Indicator
102107  , p_source_79            IN VARCHAR2
102108  , p_source_79_meaning    IN VARCHAR2
102109 --Invoice Supplier Identifier
102110  , p_source_80            IN NUMBER
102111 --Invoice Supplier Site Identifier
102112  , p_source_81            IN NUMBER
102113 --Third Party Type
102114  , p_source_82            IN VARCHAR2
102115 --Parent Reversal Identifier
102119 --Invoice Distribution Tax Line Identifier
102116  , p_source_83            IN NUMBER
102117 --Invoice Distribution Statistical Amount
102118  , p_source_84            IN NUMBER
102120  , p_source_85            IN NUMBER
102121 --Invoice Distribution Tax Distribution Identifier from Tax
102122  , p_source_86            IN NUMBER
102123 --Invoice Distribution Summary Tax Line Identifier
102124  , p_source_87            IN NUMBER
102125 --Payables Upgrade Credit Encumbrance Type Identifier
102126  , p_source_88            IN NUMBER
102127 --Payables Upgrade Debit Encumbrance Type Identifier
102128  , p_source_89            IN NUMBER
102129 --Business Flow Accounts Payable Application Identifier
102130  , p_source_90            IN NUMBER
102131 --Business Flow Invoice Distribution Type
102132  , p_source_91            IN VARCHAR2
102133 --Business Flow Invoice Entity Code
102134  , p_source_92            IN VARCHAR2
102135 --Business Flow Invoice Distribution Identifier
102136  , p_source_93            IN NUMBER
102137 --Business Flow Invoice Identifier
102138  , p_source_94            IN NUMBER
102139 --Invoice Exchange Date
102140  , p_source_136            IN DATE
102141 --Invoice Exchange Rate
102142  , p_source_137            IN NUMBER
102143 --Invoice Exchange Rate Type
102144  , p_source_138            IN VARCHAR2
102145 --Project Identifier
102146  , p_source_146            IN NUMBER
102147 )
102148 IS
102149 
102150 l_component_type              VARCHAR2(80);
102151 l_component_code              VARCHAR2(30);
102152 l_component_type_code         VARCHAR2(1);
102153 l_component_appl_id           INTEGER;
102154 l_amb_context_code            VARCHAR2(30);
102155 l_entity_code                 VARCHAR2(30);
102156 l_event_class_code            VARCHAR2(30);
102157 l_ae_header_id                NUMBER;
102158 l_event_type_code             VARCHAR2(30);
102159 l_line_definition_code        VARCHAR2(30);
102160 l_line_definition_owner_code  VARCHAR2(1);
102161 --
102162 -- adr variables
102163 l_segment                     VARCHAR2(30);
102164 l_ccid                        NUMBER;
102165 l_adr_transaction_coa_id      NUMBER;
102166 l_adr_accounting_coa_id       NUMBER;
102167 l_adr_flexfield_segment_code  VARCHAR2(30);
102168 l_adr_flex_value_set_id       NUMBER;
102169 l_adr_value_type_code         VARCHAR2(30);
102170 l_adr_value_combination_id    NUMBER;
102171 l_adr_value_segment_code      VARCHAR2(30);
102172 
102173 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102174 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102175 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102176 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102177 
102178 -- 4262811 Variables ------------------------------------------------------------------------------------------
102179 l_entered_amt_idx             NUMBER;
102180 l_accted_amt_idx              NUMBER;
102181 l_acc_rev_flag                VARCHAR2(1);
102182 l_accrual_line_num            NUMBER;
102183 l_tmp_amt                     NUMBER;
102184 l_acc_rev_natural_side_code   VARCHAR2(1);
102185 
102186 l_num_entries                 NUMBER;
102187 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102188 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102189 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102190 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102191 l_recog_line_1                NUMBER;
102192 l_recog_line_2                NUMBER;
102193 
102194 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102195 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102196 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102197 
102198 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102199 
102200 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102201 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102202 
102203 ---------------------------------------------------------------------------------------------------------------
102204 
102205 
102206 --
102207 -- bulk performance
102208 --
102209 l_balance_type_code           VARCHAR2(1);
102210 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102211 l_log_module                  VARCHAR2(240);
102212 
102213 --
102214 -- Upgrade strategy
102215 --
102216 l_actual_upg_option           VARCHAR2(1);
102217 l_enc_upg_option           VARCHAR2(1);
102218 
102219 --
102220 BEGIN
102221 --
102222 IF g_log_enabled THEN
102223       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
102224 END IF;
102225 --
102226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102227 
102228       trace
102229          (p_msg      => 'BEGIN of AcctLineType_171'
102230          ,p_level    => C_LEVEL_PROCEDURE
102231          ,p_module   => l_log_module);
102232 
102233 END IF;
102234 --
102235 l_component_type             := 'AMB_JLT';
102236 l_component_code             := 'AP_MISC_EXPENSE_PREPAY';
102237 l_component_type_code        := 'S';
102238 l_component_appl_id          :=  200;
102239 l_amb_context_code           := 'DEFAULT';
102240 l_entity_code                := 'AP_INVOICES';
102241 l_event_class_code           := 'PREPAYMENTS';
102242 l_event_type_code            := 'PREPAYMENTS_ALL';
102246 l_balance_type_code          := 'A';
102243 l_line_definition_owner_code := 'S';
102244 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
102245 --
102247 l_segment                     := NULL;
102248 l_ccid                        := NULL;
102249 l_adr_transaction_coa_id      := NULL;
102250 l_adr_accounting_coa_id       := NULL;
102251 l_adr_flexfield_segment_code  := NULL;
102252 l_adr_flex_value_set_id       := NULL;
102253 l_adr_value_type_code         := NULL;
102254 l_adr_value_combination_id    := NULL;
102255 l_adr_value_segment_code      := NULL;
102256 
102257 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102258 l_bflow_class_code           := '';    -- 4219869 Business Flow
102259 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102260 l_budgetary_control_flag     := 'N';
102261 
102262 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102263 l_bflow_applied_to_amt       := NULL; -- 5132302
102264 l_entered_amt_idx            := NULL;          -- 4262811
102265 l_accted_amt_idx             := NULL;          -- 4262811
102266 l_acc_rev_flag               := NULL;          -- 4262811
102267 l_accrual_line_num           := NULL;          -- 4262811
102268 l_tmp_amt                    := NULL;          -- 4262811
102269 --
102270  
102271 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102272     l_balance_type_code <> 'B' THEN
102273 IF NVL(p_source_33,'
102274 ') =  'MISCELLANEOUS'
102275  THEN 
102276 
102277    --
102278    XLA_AE_LINES_PKG.SetNewLine;
102279 
102280    p_balance_type_code          := l_balance_type_code;
102281    -- set the flag so later we will know whether the gain loss line needs to be created
102282    
102283    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
102284      p_actual_flag :='A';
102285    END IF;
102286 
102287    --
102288    -- bulk performance
102289    --
102290    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102291                                       p_header_num   => 0); -- 4262811
102292    --
102293    -- set accounting line options
102294    --
102295    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102296            p_natural_side_code          => 'D'
102297          , p_gain_or_loss_flag          => 'N'
102298          , p_gl_transfer_mode_code      => 'S'
102299          , p_acct_entry_type_code       => 'A'
102300          , p_switch_side_flag           => 'Y'
102301          , p_merge_duplicate_code       => 'A'
102302          );
102303    --
102304    l_acc_rev_natural_side_code := 'C';  -- 4262811
102305    -- 
102306    --
102307    -- set accounting line type info
102308    --
102309    xla_ae_lines_pkg.SetAcctLineType
102310       (p_component_type             => l_component_type
102311       ,p_event_type_code            => l_event_type_code
102312       ,p_line_definition_owner_code => l_line_definition_owner_code
102313       ,p_line_definition_code       => l_line_definition_code
102314       ,p_accounting_line_code       => l_component_code
102315       ,p_accounting_line_type_code  => l_component_type_code
102316       ,p_accounting_line_appl_id    => l_component_appl_id
102317       ,p_amb_context_code           => l_amb_context_code
102318       ,p_entity_code                => l_entity_code
102319       ,p_event_class_code           => l_event_class_code);
102320    --
102321    -- set accounting class
102322    --
102323    xla_ae_lines_pkg.SetAcctClass(
102324            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
102325          , p_ae_header_id           => l_ae_header_id
102326          );
102327 
102328    --
102329    -- set rounding class
102330    --
102331    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102332                       'MISCELLANEOUS EXPENSE';
102333 
102334    --
102335    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102336    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102337    --
102338    -- bulk performance
102339    --
102340    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102341 
102342    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102343       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102344 
102345    -- 4955764
102346    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102347       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102348 
102349    -- 4458381 Public Sector Enh
102350    
102351    --
102352    -- set accounting attributes for the line type
102353    --
102354    l_entered_amt_idx := 23;
102355    l_accted_amt_idx  := 28;
102356    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
102357    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102358    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
102359    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
102360    l_rec_acct_attrs.array_num_value(2)  := 
102361 xla_ae_sources_pkg.GetSystemSourceNum(
102362    p_source_code           => 'XLA_EVENT_APPL_ID'
102363  , p_source_type_code      => 'Y'
102364  , p_source_application_id =>  602
102365 );
102366    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
102367    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
102368    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
102372  , p_source_type_code      => 'Y'
102369    l_rec_acct_attrs.array_char_value(4)  := 
102370 xla_ae_sources_pkg.GetSystemSourceChar(
102371    p_source_code           => 'XLA_ENTITY_CODE'
102373  , p_source_application_id =>  602
102374 );
102375    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
102376    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
102377    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
102378    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
102379    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
102380    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
102381    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102382    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
102383    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
102384    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
102385    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
102386    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
102387    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102388    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
102389    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
102390    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
102391    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
102392    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
102393    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
102394    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
102395    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
102396    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
102397    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
102398    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
102399    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
102400    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
102401    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
102402    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
102403    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
102404    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
102405    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
102406    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
102407    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
102408    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
102409    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
102410    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
102411    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
102412    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
102413    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
102414    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
102415    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
102416    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
102417    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
102418    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
102419    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
102420    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
102421    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
102422    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
102423    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
102424    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
102425    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
102426    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
102427    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
102428    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
102429    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
102430    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
102431    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
102432    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
102433    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
102434    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
102435    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
102436    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
102437    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
102438    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
102439    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
102440    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
102441    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
102442    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
102443    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
102444    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
102445    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
102446    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
102447    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
102448    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
102449    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
102450    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
102451    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
102452    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
102453 
102454    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102458    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102455    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102456 
102457    ---------------------------------------------------------------------------------------------------------------
102459    ---------------------------------------------------------------------------------------------------------------
102460    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102461 
102462    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102463    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102464 
102465    IF xla_accounting_cache_pkg.GetValueChar
102466          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102467          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102468    AND l_bflow_method_code = 'PRIOR_ENTRY'
102469 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102470    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102471          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102472        )
102473    THEN
102474          xla_ae_lines_pkg.BflowUpgEntry
102475            (p_business_method_code    => l_bflow_method_code
102476            ,p_business_class_code     => l_bflow_class_code
102477            ,p_balance_type            => l_balance_type_code);
102478    ELSE
102479       NULL;
102480 -- No business flow processing for business flow method of NONE.
102481    END IF;
102482 
102483    --
102484    -- call analytical criteria
102485    --
102486    
102487 
102488 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
102489 xla_ae_lines_pkg.SetAnalyticalCriteria(
102490    p_analytical_criterion_name    => 'Project Number'
102491  , p_analytical_criterion_owner   => 'S'
102492  , p_analytical_criterion_code    => 'PROJECT_NUMBER'
102493  , p_amb_context_code             => 'DEFAULT'
102494  , p_balancing_flag               => 'N'
102495  
102496  , p_analytical_detail_char_1    =>  TO_CHAR(JA_CN_CUSTOM_SOURCES.GET_PROJECT_NUM(
102497 p_source_146))
102498  , p_analytical_detail_num_1     =>  NULL
102499  , p_analytical_detail_date_1    =>  NULL
102500 
102501  , p_ae_header_id                 => l_ae_header_id
102502 )
102503 ;
102504 --
102505 
102506    --
102507    -- call description
102508    --
102509    
102510 xla_ae_lines_pkg.SetLineDescription(
102511    p_ae_header_id => l_ae_header_id
102512   ,p_description  => Description_1 (
102513      p_application_id         => p_application_id
102514    , p_ae_header_id           => l_ae_header_id 
102515 , p_source_1 => p_source_1
102516    )
102517 );
102518 
102519 
102520    --
102521    -- call ADRs
102522    -- Bug 4922099
102523    --
102524    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102525         (NVL(l_actual_upg_option, 'N') = 'O') OR
102526         (NVL(l_enc_upg_option, 'N') = 'O')
102527       )
102528    THEN
102529    NULL;
102530    --
102531    --
102532    
102533   l_ccid := AcctDerRule_33(
102534            p_application_id           => p_application_id
102535          , p_ae_header_id             => l_ae_header_id 
102536 , p_source_30 => p_source_30
102537          , x_transaction_coa_id       => l_adr_transaction_coa_id
102538          , x_accounting_coa_id        => l_adr_accounting_coa_id
102539          , x_value_type_code          => l_adr_value_type_code
102540          , p_side                     => 'NA'
102541    );
102542 
102543    xla_ae_lines_pkg.set_ccid(
102544     p_code_combination_id          => l_ccid
102545   , p_value_type_code              => l_adr_value_type_code
102546   , p_transaction_coa_id           => l_adr_transaction_coa_id
102547   , p_accounting_coa_id            => l_adr_accounting_coa_id
102548   , p_adr_code                     => 'AP_INVOICE_DIST'
102549   , p_adr_type_code                => 'S'
102550   , p_component_type               => l_component_type
102551   , p_component_code               => l_component_code
102552   , p_component_type_code          => l_component_type_code
102553   , p_component_appl_id            => l_component_appl_id
102554   , p_amb_context_code             => l_amb_context_code
102555   , p_side                         => 'NA'
102556   );
102557 
102558 
102559    --
102560    --
102561    END IF;
102562    --
102563    -- Bug 4922099
102564    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102565           (NVL(l_enc_upg_option, 'N') = 'O')
102566         ) AND
102567         (l_bflow_method_code = 'PRIOR_ENTRY')
102568       )
102569    THEN
102570       IF
102571       --
102572       1 = 2
102573       --
102574       THEN
102575       xla_accounting_err_pkg.build_message
102576                                     (p_appli_s_name            => 'XLA'
102577                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102578                                     ,p_token_1                 => 'LINE_NUMBER'
102579                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102580                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102581                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102585                                                                             ,l_component_appl_id
102582                                                                              l_component_type
102583                                                                             ,l_component_code
102584                                                                             ,l_component_type_code
102586                                                                             ,l_amb_context_code
102587                                                                             ,l_entity_code
102588                                                                             ,l_event_class_code
102589                                                                            )
102590                                     ,p_token_3                 => 'OWNER'
102591                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102592                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102593                                                                           ,p_lookup_code    => l_component_type_code
102594                                                                          )
102595                                     ,p_token_4                 => 'PRODUCT_NAME'
102596                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102597                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102598                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102599                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102600                                     ,p_ae_header_id            =>  NULL
102601                                        );
102602 
102603         IF (C_LEVEL_ERROR>= g_log_level) THEN
102604                  trace
102605                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102606                       ,p_level    => C_LEVEL_ERROR
102607                       ,p_module   => l_log_module);
102608         END IF;
102609       END IF;
102610    END IF;
102611    --
102612    --
102613    ------------------------------------------------------------------------------------------------
102614    -- 4219869 Business Flow
102615    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102616    -- Prior Entry.  Currently, the following code is always generated.
102617    ------------------------------------------------------------------------------------------------
102618    XLA_AE_LINES_PKG.ValidateCurrentLine;
102619 
102620    ------------------------------------------------------------------------------------
102621    -- 4219869 Business Flow
102622    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102623    ------------------------------------------------------------------------------------
102624    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102625 
102626    ----------------------------------------------------------------------------------
102627    -- 4219869 Business Flow
102628    -- Update journal entry status -- Need to generate this within IF <condition>
102629    ----------------------------------------------------------------------------------
102630    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102631          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102632          ,p_balance_type_code => l_balance_type_code
102633          );
102634 
102635    -------------------------------------------------------------------------------------------
102636    -- 4262811 - Generate the Accrual Reversal lines
102637    -------------------------------------------------------------------------------------------
102638    BEGIN
102639       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102640                               (g_array_event(p_event_id).array_value_num('header_index'));
102641       IF l_acc_rev_flag IS NULL THEN
102642          l_acc_rev_flag := 'N';
102643       END IF;
102644    EXCEPTION
102645       WHEN OTHERS THEN
102646          l_acc_rev_flag := 'N';
102647    END;
102648    --
102649    IF (l_acc_rev_flag = 'Y') THEN
102650 
102651        -- 4645092  ------------------------------------------------------------------------------
102652        -- To allow MPA report to determine if it should generate report process
102653        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102654        ------------------------------------------------------------------------------------------
102655 
102656        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102657        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102658    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102659    -- call ADRs
102660    -- Bug 4922099
102661    --
102662    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102663         (NVL(l_actual_upg_option, 'N') = 'O') OR
102664         (NVL(l_enc_upg_option, 'N') = 'O')
102665       )
102666    THEN
102667    NULL;
102668    --
102669    --
102670    
102671   l_ccid := AcctDerRule_33(
102672            p_application_id           => p_application_id
102673          , p_ae_header_id             => l_ae_header_id 
102674 , p_source_30 => p_source_30
102675          , x_transaction_coa_id       => l_adr_transaction_coa_id
102676          , x_accounting_coa_id        => l_adr_accounting_coa_id
102680 
102677          , x_value_type_code          => l_adr_value_type_code
102678          , p_side                     => 'NA'
102679    );
102681    xla_ae_lines_pkg.set_ccid(
102682     p_code_combination_id          => l_ccid
102683   , p_value_type_code              => l_adr_value_type_code
102684   , p_transaction_coa_id           => l_adr_transaction_coa_id
102685   , p_accounting_coa_id            => l_adr_accounting_coa_id
102686   , p_adr_code                     => 'AP_INVOICE_DIST'
102687   , p_adr_type_code                => 'S'
102688   , p_component_type               => l_component_type
102689   , p_component_code               => l_component_code
102690   , p_component_type_code          => l_component_type_code
102691   , p_component_appl_id            => l_component_appl_id
102692   , p_amb_context_code             => l_amb_context_code
102693   , p_side                         => 'NA'
102694   );
102695 
102696 
102697    --
102698    --
102699    END IF;
102700 
102701        --
102702        -- Update the line information that should be overwritten
102703        --
102704        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102705                                          p_header_num   => 1);
102706        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
102707 
102708        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102709 
102710        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
102711           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102712        END IF;
102713 
102714       --
102715       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102716       --
102717       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102718           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102719       ELSE
102720           ---------------------------------------------------------------------------------------------------
102721           -- 4262811a Switch Sign
102722           ---------------------------------------------------------------------------------------------------
102723           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102724           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102725                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102726           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102727                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102728           -- 5132302
102729           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102730                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102731 
102732       END IF;
102733 
102734       -- 4955764
102735       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102736       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102737 
102738 
102739       XLA_AE_LINES_PKG.ValidateCurrentLine;
102740       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102741 
102742       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102743                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102744                ,p_balance_type_code => l_balance_type_code);
102745 
102746    END IF;
102747 
102748    -----------------------------------------------------------------------------------------
102749    -- 4262811 Multiperiod Accounting
102750    -----------------------------------------------------------------------------------------
102751      -- No MPA option is assigned.
102752 
102753 
102754 END IF;
102755 END IF;
102756 --
102757 
102758 --
102759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102760    trace
102761       (p_msg      => 'END of AcctLineType_171'
102762       ,p_level    => C_LEVEL_PROCEDURE
102763       ,p_module   => l_log_module);
102764 END IF;
102765 --
102766 EXCEPTION
102767   WHEN xla_exceptions_pkg.application_exception THEN
102768       RAISE;
102769   WHEN OTHERS THEN
102770        xla_exceptions_pkg.raise_message
102771            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_171');
102772 END AcctLineType_171;
102773 --
102774 
102775 ---------------------------------------
102776 --
102777 -- PRIVATE FUNCTION
102778 --         AcctLineType_172
102779 --
102780 ---------------------------------------
102781 PROCEDURE AcctLineType_172 (
102782   p_application_id        IN NUMBER
102783  ,p_event_id              IN NUMBER
102784  ,p_calculate_acctd_flag  IN VARCHAR2
102785  ,p_calculate_g_l_flag    IN VARCHAR2
102786  ,p_actual_flag           IN OUT VARCHAR2
102787  ,p_balance_type_code     OUT VARCHAR2
102788  ,p_gain_or_loss_ref      OUT VARCHAR2
102789  
102790 --Invoice Distribution Description
102791  , p_source_1            IN VARCHAR2
102792 --Invoice Distribution Ledger Amount
102793  , p_source_21            IN NUMBER
102794 --Invoice Distribution Account
102795  , p_source_30            IN NUMBER
102796 --Invoice Distribution Type
102797  , p_source_33            IN VARCHAR2
102798  , p_source_33_meaning    IN VARCHAR2
102799 --Accounting Reversal Indicator
102800  , p_source_52            IN VARCHAR2
102804  , p_source_56            IN NUMBER
102801 --Distribution Link Type
102802  , p_source_54            IN VARCHAR2
102803 --Allocation to Main Distribution Identifier
102805 --Invoice Identifier
102806  , p_source_57            IN NUMBER
102807 --Invoice Distribution Identifier
102808  , p_source_63            IN NUMBER
102809 --Payables Encumbrance Upgrade Credit Account
102810  , p_source_64            IN NUMBER
102811 --Payables Encumbrance Upgrade Credit Amount
102812  , p_source_65            IN NUMBER
102813 --Invoice Currency Code
102814  , p_source_66            IN VARCHAR2
102815 --Payables Encumbrance Upgrade Credit Base Amount
102816  , p_source_67            IN NUMBER
102817 --Payables Encumbrance Upgrade Debit Account
102818  , p_source_68            IN NUMBER
102819 --Payables Encumbrance Upgrade Debit Amount
102820  , p_source_69            IN NUMBER
102821 --Payables Encumbrance Upgrade Debit Base Amount
102822  , p_source_70            IN NUMBER
102823 --Payables Encumbrance Upgrade Option
102824  , p_source_71            IN VARCHAR2
102825 --Invoice Distribution Amount
102826  , p_source_72            IN NUMBER
102827 --Purchase Order Exchange Rate Date
102828  , p_source_73            IN DATE
102829 --Purchase Order Exchange Rate
102830  , p_source_74            IN NUMBER
102831 --Purchase Order Exchange Rate Type
102832  , p_source_75            IN VARCHAR2
102833 --Deferred Accounting End Date
102834  , p_source_76            IN DATE
102835 --Deferred Accounting Option
102836  , p_source_77            IN VARCHAR2
102837 --Deferred Accounting Start Date
102838  , p_source_78            IN DATE
102839 --Override Accounted Amount Indicator
102840  , p_source_79            IN VARCHAR2
102841  , p_source_79_meaning    IN VARCHAR2
102842 --Invoice Supplier Identifier
102843  , p_source_80            IN NUMBER
102844 --Invoice Supplier Site Identifier
102845  , p_source_81            IN NUMBER
102846 --Third Party Type
102847  , p_source_82            IN VARCHAR2
102848 --Parent Reversal Identifier
102849  , p_source_83            IN NUMBER
102850 --Invoice Distribution Statistical Amount
102851  , p_source_84            IN NUMBER
102852 --Invoice Distribution Tax Line Identifier
102853  , p_source_85            IN NUMBER
102854 --Invoice Distribution Tax Distribution Identifier from Tax
102855  , p_source_86            IN NUMBER
102856 --Invoice Distribution Summary Tax Line Identifier
102857  , p_source_87            IN NUMBER
102858 --Payables Upgrade Credit Encumbrance Type Identifier
102859  , p_source_88            IN NUMBER
102860 --Payables Upgrade Debit Encumbrance Type Identifier
102861  , p_source_89            IN NUMBER
102862 --Business Flow Accounts Payable Application Identifier
102863  , p_source_90            IN NUMBER
102864 --Business Flow Invoice Distribution Type
102865  , p_source_91            IN VARCHAR2
102866 --Business Flow Invoice Entity Code
102867  , p_source_92            IN VARCHAR2
102868 --Business Flow Invoice Distribution Identifier
102869  , p_source_93            IN NUMBER
102870 --Business Flow Invoice Identifier
102871  , p_source_94            IN NUMBER
102872 --Accrue on Receipt Option
102873  , p_source_95            IN VARCHAR2
102874  , p_source_95_meaning    IN VARCHAR2
102875 --Self-Assessed Tax Flag
102876  , p_source_135            IN VARCHAR2
102877  , p_source_135_meaning    IN VARCHAR2
102878 )
102879 IS
102880 
102881 l_component_type              VARCHAR2(80);
102882 l_component_code              VARCHAR2(30);
102883 l_component_type_code         VARCHAR2(1);
102884 l_component_appl_id           INTEGER;
102885 l_amb_context_code            VARCHAR2(30);
102886 l_entity_code                 VARCHAR2(30);
102887 l_event_class_code            VARCHAR2(30);
102888 l_ae_header_id                NUMBER;
102889 l_event_type_code             VARCHAR2(30);
102890 l_line_definition_code        VARCHAR2(30);
102891 l_line_definition_owner_code  VARCHAR2(1);
102892 --
102893 -- adr variables
102894 l_segment                     VARCHAR2(30);
102895 l_ccid                        NUMBER;
102896 l_adr_transaction_coa_id      NUMBER;
102897 l_adr_accounting_coa_id       NUMBER;
102898 l_adr_flexfield_segment_code  VARCHAR2(30);
102899 l_adr_flex_value_set_id       NUMBER;
102900 l_adr_value_type_code         VARCHAR2(30);
102901 l_adr_value_combination_id    NUMBER;
102902 l_adr_value_segment_code      VARCHAR2(30);
102903 
102904 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102905 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102906 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102907 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102908 
102909 -- 4262811 Variables ------------------------------------------------------------------------------------------
102910 l_entered_amt_idx             NUMBER;
102911 l_accted_amt_idx              NUMBER;
102912 l_acc_rev_flag                VARCHAR2(1);
102913 l_accrual_line_num            NUMBER;
102914 l_tmp_amt                     NUMBER;
102915 l_acc_rev_natural_side_code   VARCHAR2(1);
102916 
102917 l_num_entries                 NUMBER;
102918 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102919 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102920 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102921 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102922 l_recog_line_1                NUMBER;
102923 l_recog_line_2                NUMBER;
102924 
102928 
102925 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102926 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102927 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102929 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102930 
102931 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102932 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102933 
102934 ---------------------------------------------------------------------------------------------------------------
102935 
102936 
102937 --
102938 -- bulk performance
102939 --
102940 l_balance_type_code           VARCHAR2(1);
102941 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102942 l_log_module                  VARCHAR2(240);
102943 
102944 --
102945 -- Upgrade strategy
102946 --
102947 l_actual_upg_option           VARCHAR2(1);
102948 l_enc_upg_option           VARCHAR2(1);
102949 
102950 --
102951 BEGIN
102952 --
102953 IF g_log_enabled THEN
102954       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
102955 END IF;
102956 --
102957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102958 
102959       trace
102960          (p_msg      => 'BEGIN of AcctLineType_172'
102961          ,p_level    => C_LEVEL_PROCEDURE
102962          ,p_module   => l_log_module);
102963 
102964 END IF;
102965 --
102966 l_component_type             := 'AMB_JLT';
102967 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CM';
102968 l_component_type_code        := 'S';
102969 l_component_appl_id          :=  200;
102970 l_amb_context_code           := 'DEFAULT';
102971 l_entity_code                := 'AP_INVOICES';
102972 l_event_class_code           := 'CREDIT MEMOS';
102973 l_event_type_code            := 'CREDIT MEMOS_ALL';
102974 l_line_definition_owner_code := 'S';
102975 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
102976 --
102977 l_balance_type_code          := 'A';
102978 l_segment                     := NULL;
102979 l_ccid                        := NULL;
102980 l_adr_transaction_coa_id      := NULL;
102981 l_adr_accounting_coa_id       := NULL;
102982 l_adr_flexfield_segment_code  := NULL;
102983 l_adr_flex_value_set_id       := NULL;
102984 l_adr_value_type_code         := NULL;
102985 l_adr_value_combination_id    := NULL;
102986 l_adr_value_segment_code      := NULL;
102987 
102988 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102989 l_bflow_class_code           := '';    -- 4219869 Business Flow
102990 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102991 l_budgetary_control_flag     := 'N';
102992 
102993 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102994 l_bflow_applied_to_amt       := NULL; -- 5132302
102995 l_entered_amt_idx            := NULL;          -- 4262811
102996 l_accted_amt_idx             := NULL;          -- 4262811
102997 l_acc_rev_flag               := NULL;          -- 4262811
102998 l_accrual_line_num           := NULL;          -- 4262811
102999 l_tmp_amt                    := NULL;          -- 4262811
103000 --
103001  
103002 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103003     l_balance_type_code <> 'B' THEN
103004 IF NVL(p_source_33,'
103005 ') =  'NONREC_TAX' AND 
103006 NVL(p_source_95,'
103007 ') =  'Y' AND 
103008 NVL(p_source_135,'
103009 ') <>  'Y'
103010  THEN 
103011 
103012    --
103013    XLA_AE_LINES_PKG.SetNewLine;
103014 
103015    p_balance_type_code          := l_balance_type_code;
103016    -- set the flag so later we will know whether the gain loss line needs to be created
103017    
103018    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103019      p_actual_flag :='A';
103020    END IF;
103021 
103022    --
103023    -- bulk performance
103024    --
103025    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103026                                       p_header_num   => 0); -- 4262811
103027    --
103028    -- set accounting line options
103029    --
103030    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103031            p_natural_side_code          => 'D'
103032          , p_gain_or_loss_flag          => 'N'
103033          , p_gl_transfer_mode_code      => 'S'
103034          , p_acct_entry_type_code       => 'A'
103035          , p_switch_side_flag           => 'Y'
103036          , p_merge_duplicate_code       => 'A'
103037          );
103038    --
103039    l_acc_rev_natural_side_code := 'C';  -- 4262811
103040    -- 
103041    --
103042    -- set accounting line type info
103043    --
103044    xla_ae_lines_pkg.SetAcctLineType
103045       (p_component_type             => l_component_type
103046       ,p_event_type_code            => l_event_type_code
103047       ,p_line_definition_owner_code => l_line_definition_owner_code
103048       ,p_line_definition_code       => l_line_definition_code
103049       ,p_accounting_line_code       => l_component_code
103050       ,p_accounting_line_type_code  => l_component_type_code
103051       ,p_accounting_line_appl_id    => l_component_appl_id
103052       ,p_amb_context_code           => l_amb_context_code
103053       ,p_entity_code                => l_entity_code
103054       ,p_event_class_code           => l_event_class_code);
103055    --
103056    -- set accounting class
103057    --
103061          );
103058    xla_ae_lines_pkg.SetAcctClass(
103059            p_accounting_class_code  => 'NRTAX'
103060          , p_ae_header_id           => l_ae_header_id
103062 
103063    --
103064    -- set rounding class
103065    --
103066    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103067                       'NRTAX';
103068 
103069    --
103070    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103071    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103072    --
103073    -- bulk performance
103074    --
103075    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103076 
103077    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103078       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103079 
103080    -- 4955764
103081    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103083 
103084    -- 4458381 Public Sector Enh
103085    
103086    --
103087    -- set accounting attributes for the line type
103088    --
103089    l_entered_amt_idx := 23;
103090    l_accted_amt_idx  := 28;
103091    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103092    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103093    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
103094    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103095    l_rec_acct_attrs.array_num_value(2)  := 
103096 xla_ae_sources_pkg.GetSystemSourceNum(
103097    p_source_code           => 'XLA_EVENT_APPL_ID'
103098  , p_source_type_code      => 'Y'
103099  , p_source_application_id =>  602
103100 );
103101    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103102    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
103103    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103104    l_rec_acct_attrs.array_char_value(4)  := 
103105 xla_ae_sources_pkg.GetSystemSourceChar(
103106    p_source_code           => 'XLA_ENTITY_CODE'
103107  , p_source_type_code      => 'Y'
103108  , p_source_application_id =>  602
103109 );
103110    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103111    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
103112    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103113    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
103114    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103115    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
103116    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103117    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
103118    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103119    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
103120    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103121    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
103122    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103123    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
103124    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103125    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
103126    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103127    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
103128    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103129    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
103130    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103131    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
103132    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103133    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
103134    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103135    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
103136    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103137    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
103138    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103139    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
103140    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103141    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
103142    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103143    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
103144    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103145    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
103146    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103147    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
103148    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103149    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
103150    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103151    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
103152    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103153    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
103154    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103155    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
103156    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103160    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103157    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
103158    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103159    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
103161    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
103162    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103163    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
103164    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103165    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
103166    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103167    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
103168    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103169    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
103170    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103171    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
103172    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103173    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
103174    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103175    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
103176    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
103177    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
103178    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
103179    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
103180    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
103181    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
103182    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
103183    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
103184    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
103185    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
103186    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
103187    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
103188 
103189    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103190    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103191 
103192    ---------------------------------------------------------------------------------------------------------------
103193    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103194    ---------------------------------------------------------------------------------------------------------------
103195    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103196 
103197    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103198    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103199 
103200    IF xla_accounting_cache_pkg.GetValueChar
103201          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103202          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103203    AND l_bflow_method_code = 'PRIOR_ENTRY'
103204 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103205    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103206          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103207        )
103208    THEN
103209          xla_ae_lines_pkg.BflowUpgEntry
103210            (p_business_method_code    => l_bflow_method_code
103211            ,p_business_class_code     => l_bflow_class_code
103212            ,p_balance_type            => l_balance_type_code);
103213    ELSE
103214       NULL;
103215 -- No business flow processing for business flow method of NONE.
103216    END IF;
103217 
103218    --
103219    -- call analytical criteria
103220    --
103221    
103222    --
103223    -- call description
103224    --
103225    
103226 xla_ae_lines_pkg.SetLineDescription(
103227    p_ae_header_id => l_ae_header_id
103228   ,p_description  => Description_1 (
103229      p_application_id         => p_application_id
103230    , p_ae_header_id           => l_ae_header_id 
103231 , p_source_1 => p_source_1
103232    )
103233 );
103234 
103235 
103236    --
103237    -- call ADRs
103238    -- Bug 4922099
103239    --
103240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103241         (NVL(l_actual_upg_option, 'N') = 'O') OR
103242         (NVL(l_enc_upg_option, 'N') = 'O')
103243       )
103244    THEN
103245    NULL;
103246    --
103247    --
103248    
103249   l_ccid := AcctDerRule_33(
103250            p_application_id           => p_application_id
103251          , p_ae_header_id             => l_ae_header_id 
103252 , p_source_30 => p_source_30
103253          , x_transaction_coa_id       => l_adr_transaction_coa_id
103254          , x_accounting_coa_id        => l_adr_accounting_coa_id
103255          , x_value_type_code          => l_adr_value_type_code
103256          , p_side                     => 'NA'
103257    );
103258 
103259    xla_ae_lines_pkg.set_ccid(
103260     p_code_combination_id          => l_ccid
103261   , p_value_type_code              => l_adr_value_type_code
103262   , p_transaction_coa_id           => l_adr_transaction_coa_id
103263   , p_accounting_coa_id            => l_adr_accounting_coa_id
103264   , p_adr_code                     => 'AP_INVOICE_DIST'
103265   , p_adr_type_code                => 'S'
103269   , p_component_appl_id            => l_component_appl_id
103266   , p_component_type               => l_component_type
103267   , p_component_code               => l_component_code
103268   , p_component_type_code          => l_component_type_code
103270   , p_amb_context_code             => l_amb_context_code
103271   , p_side                         => 'NA'
103272   );
103273 
103274 
103275    --
103276    --
103277    END IF;
103278    --
103279    -- Bug 4922099
103280    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103281           (NVL(l_enc_upg_option, 'N') = 'O')
103282         ) AND
103283         (l_bflow_method_code = 'PRIOR_ENTRY')
103284       )
103285    THEN
103286       IF
103287       --
103288       1 = 2
103289       --
103290       THEN
103291       xla_accounting_err_pkg.build_message
103292                                     (p_appli_s_name            => 'XLA'
103293                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103294                                     ,p_token_1                 => 'LINE_NUMBER'
103295                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103296                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103297                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103298                                                                              l_component_type
103299                                                                             ,l_component_code
103300                                                                             ,l_component_type_code
103301                                                                             ,l_component_appl_id
103302                                                                             ,l_amb_context_code
103303                                                                             ,l_entity_code
103304                                                                             ,l_event_class_code
103305                                                                            )
103306                                     ,p_token_3                 => 'OWNER'
103307                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
103308                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
103309                                                                           ,p_lookup_code    => l_component_type_code
103310                                                                          )
103311                                     ,p_token_4                 => 'PRODUCT_NAME'
103312                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103313                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103314                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103315                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103316                                     ,p_ae_header_id            =>  NULL
103317                                        );
103318 
103319         IF (C_LEVEL_ERROR>= g_log_level) THEN
103320                  trace
103321                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103322                       ,p_level    => C_LEVEL_ERROR
103323                       ,p_module   => l_log_module);
103324         END IF;
103325       END IF;
103326    END IF;
103327    --
103328    --
103329    ------------------------------------------------------------------------------------------------
103330    -- 4219869 Business Flow
103331    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103332    -- Prior Entry.  Currently, the following code is always generated.
103333    ------------------------------------------------------------------------------------------------
103334    XLA_AE_LINES_PKG.ValidateCurrentLine;
103335 
103336    ------------------------------------------------------------------------------------
103337    -- 4219869 Business Flow
103338    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103339    ------------------------------------------------------------------------------------
103340    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103341 
103342    ----------------------------------------------------------------------------------
103343    -- 4219869 Business Flow
103344    -- Update journal entry status -- Need to generate this within IF <condition>
103345    ----------------------------------------------------------------------------------
103346    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103347          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103348          ,p_balance_type_code => l_balance_type_code
103349          );
103350 
103351    -------------------------------------------------------------------------------------------
103352    -- 4262811 - Generate the Accrual Reversal lines
103353    -------------------------------------------------------------------------------------------
103354    BEGIN
103355       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103356                               (g_array_event(p_event_id).array_value_num('header_index'));
103357       IF l_acc_rev_flag IS NULL THEN
103358          l_acc_rev_flag := 'N';
103359       END IF;
103360    EXCEPTION
103361       WHEN OTHERS THEN
103362          l_acc_rev_flag := 'N';
103366 
103363    END;
103364    --
103365    IF (l_acc_rev_flag = 'Y') THEN
103367        -- 4645092  ------------------------------------------------------------------------------
103368        -- To allow MPA report to determine if it should generate report process
103369        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103370        ------------------------------------------------------------------------------------------
103371 
103372        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103373        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103374    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
103375    -- call ADRs
103376    -- Bug 4922099
103377    --
103378    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103379         (NVL(l_actual_upg_option, 'N') = 'O') OR
103380         (NVL(l_enc_upg_option, 'N') = 'O')
103381       )
103382    THEN
103383    NULL;
103384    --
103385    --
103386    
103387   l_ccid := AcctDerRule_33(
103388            p_application_id           => p_application_id
103389          , p_ae_header_id             => l_ae_header_id 
103390 , p_source_30 => p_source_30
103391          , x_transaction_coa_id       => l_adr_transaction_coa_id
103392          , x_accounting_coa_id        => l_adr_accounting_coa_id
103393          , x_value_type_code          => l_adr_value_type_code
103394          , p_side                     => 'NA'
103395    );
103396 
103397    xla_ae_lines_pkg.set_ccid(
103398     p_code_combination_id          => l_ccid
103399   , p_value_type_code              => l_adr_value_type_code
103400   , p_transaction_coa_id           => l_adr_transaction_coa_id
103401   , p_accounting_coa_id            => l_adr_accounting_coa_id
103402   , p_adr_code                     => 'AP_INVOICE_DIST'
103403   , p_adr_type_code                => 'S'
103404   , p_component_type               => l_component_type
103405   , p_component_code               => l_component_code
103406   , p_component_type_code          => l_component_type_code
103407   , p_component_appl_id            => l_component_appl_id
103408   , p_amb_context_code             => l_amb_context_code
103409   , p_side                         => 'NA'
103410   );
103411 
103412 
103413    --
103414    --
103415    END IF;
103416 
103417        --
103418        -- Update the line information that should be overwritten
103419        --
103420        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103421                                          p_header_num   => 1);
103422        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103423 
103424        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103425 
103426        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103427           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103428        END IF;
103429 
103430       --
103431       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103432       --
103433       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103434           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103435       ELSE
103436           ---------------------------------------------------------------------------------------------------
103437           -- 4262811a Switch Sign
103438           ---------------------------------------------------------------------------------------------------
103439           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103440           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103441                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103442           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103443                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103444           -- 5132302
103445           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103446                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103447 
103448       END IF;
103449 
103450       -- 4955764
103451       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103452       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103453 
103454 
103455       XLA_AE_LINES_PKG.ValidateCurrentLine;
103456       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103457 
103458       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103459                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103460                ,p_balance_type_code => l_balance_type_code);
103461 
103462    END IF;
103463 
103464    -----------------------------------------------------------------------------------------
103465    -- 4262811 Multiperiod Accounting
103466    -----------------------------------------------------------------------------------------
103467      -- No MPA option is assigned.
103468 
103469 
103470 END IF;
103471 END IF;
103472 --
103473 
103474 --
103475 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103476    trace
103477       (p_msg      => 'END of AcctLineType_172'
103478       ,p_level    => C_LEVEL_PROCEDURE
103479       ,p_module   => l_log_module);
103480 END IF;
103481 --
103485   WHEN OTHERS THEN
103482 EXCEPTION
103483   WHEN xla_exceptions_pkg.application_exception THEN
103484       RAISE;
103486        xla_exceptions_pkg.raise_message
103487            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_172');
103488 END AcctLineType_172;
103489 --
103490 
103491 ---------------------------------------
103492 --
103493 -- PRIVATE FUNCTION
103494 --         AcctLineType_173
103495 --
103496 ---------------------------------------
103497 PROCEDURE AcctLineType_173 (
103498   p_application_id        IN NUMBER
103499  ,p_event_id              IN NUMBER
103500  ,p_calculate_acctd_flag  IN VARCHAR2
103501  ,p_calculate_g_l_flag    IN VARCHAR2
103502  ,p_actual_flag           IN OUT VARCHAR2
103503  ,p_balance_type_code     OUT VARCHAR2
103504  ,p_gain_or_loss_ref      OUT VARCHAR2
103505  
103506 --Invoice Distribution Description
103507  , p_source_1            IN VARCHAR2
103508 --Invoice Distribution Ledger Amount
103509  , p_source_21            IN NUMBER
103510 --Invoice Distribution Account
103511  , p_source_30            IN NUMBER
103512 --Invoice Distribution Type
103513  , p_source_33            IN VARCHAR2
103514  , p_source_33_meaning    IN VARCHAR2
103515 --Accounting Reversal Indicator
103516  , p_source_52            IN VARCHAR2
103517 --Distribution Link Type
103518  , p_source_54            IN VARCHAR2
103519 --Allocation to Main Distribution Identifier
103520  , p_source_56            IN NUMBER
103521 --Invoice Identifier
103522  , p_source_57            IN NUMBER
103523 --Invoice Distribution Identifier
103524  , p_source_63            IN NUMBER
103525 --Payables Encumbrance Upgrade Credit Account
103526  , p_source_64            IN NUMBER
103527 --Payables Encumbrance Upgrade Credit Amount
103528  , p_source_65            IN NUMBER
103529 --Invoice Currency Code
103530  , p_source_66            IN VARCHAR2
103531 --Payables Encumbrance Upgrade Credit Base Amount
103532  , p_source_67            IN NUMBER
103533 --Payables Encumbrance Upgrade Debit Account
103534  , p_source_68            IN NUMBER
103535 --Payables Encumbrance Upgrade Debit Amount
103536  , p_source_69            IN NUMBER
103537 --Payables Encumbrance Upgrade Debit Base Amount
103538  , p_source_70            IN NUMBER
103539 --Payables Encumbrance Upgrade Option
103540  , p_source_71            IN VARCHAR2
103541 --Invoice Distribution Amount
103542  , p_source_72            IN NUMBER
103543 --Purchase Order Exchange Rate Date
103544  , p_source_73            IN DATE
103545 --Purchase Order Exchange Rate
103546  , p_source_74            IN NUMBER
103547 --Purchase Order Exchange Rate Type
103548  , p_source_75            IN VARCHAR2
103549 --Deferred Accounting End Date
103550  , p_source_76            IN DATE
103551 --Deferred Accounting Option
103552  , p_source_77            IN VARCHAR2
103553 --Deferred Accounting Start Date
103554  , p_source_78            IN DATE
103555 --Override Accounted Amount Indicator
103556  , p_source_79            IN VARCHAR2
103557  , p_source_79_meaning    IN VARCHAR2
103558 --Invoice Supplier Identifier
103559  , p_source_80            IN NUMBER
103560 --Invoice Supplier Site Identifier
103561  , p_source_81            IN NUMBER
103562 --Third Party Type
103563  , p_source_82            IN VARCHAR2
103564 --Parent Reversal Identifier
103565  , p_source_83            IN NUMBER
103566 --Invoice Distribution Tax Line Identifier
103567  , p_source_85            IN NUMBER
103568 --Invoice Distribution Tax Distribution Identifier from Tax
103569  , p_source_86            IN NUMBER
103570 --Invoice Distribution Summary Tax Line Identifier
103571  , p_source_87            IN NUMBER
103572 --Payables Upgrade Credit Encumbrance Type Identifier
103573  , p_source_88            IN NUMBER
103574 --Payables Upgrade Debit Encumbrance Type Identifier
103575  , p_source_89            IN NUMBER
103576 --Business Flow Accounts Payable Application Identifier
103577  , p_source_90            IN NUMBER
103578 --Business Flow Invoice Distribution Type
103579  , p_source_91            IN VARCHAR2
103580 --Business Flow Invoice Entity Code
103581  , p_source_92            IN VARCHAR2
103582 --Business Flow Invoice Distribution Identifier
103583  , p_source_93            IN NUMBER
103584 --Business Flow Invoice Identifier
103585  , p_source_94            IN NUMBER
103586 --Accrue on Receipt Option
103587  , p_source_95            IN VARCHAR2
103588  , p_source_95_meaning    IN VARCHAR2
103589 --Self-Assessed Tax Flag
103590  , p_source_135            IN VARCHAR2
103591  , p_source_135_meaning    IN VARCHAR2
103592 )
103593 IS
103594 
103595 l_component_type              VARCHAR2(80);
103596 l_component_code              VARCHAR2(30);
103597 l_component_type_code         VARCHAR2(1);
103598 l_component_appl_id           INTEGER;
103599 l_amb_context_code            VARCHAR2(30);
103600 l_entity_code                 VARCHAR2(30);
103601 l_event_class_code            VARCHAR2(30);
103602 l_ae_header_id                NUMBER;
103603 l_event_type_code             VARCHAR2(30);
103604 l_line_definition_code        VARCHAR2(30);
103605 l_line_definition_owner_code  VARCHAR2(1);
103606 --
103607 -- adr variables
103608 l_segment                     VARCHAR2(30);
103609 l_ccid                        NUMBER;
103610 l_adr_transaction_coa_id      NUMBER;
103611 l_adr_accounting_coa_id       NUMBER;
103612 l_adr_flexfield_segment_code  VARCHAR2(30);
103613 l_adr_flex_value_set_id       NUMBER;
103614 l_adr_value_type_code         VARCHAR2(30);
103618 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103615 l_adr_value_combination_id    NUMBER;
103616 l_adr_value_segment_code      VARCHAR2(30);
103617 
103619 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103620 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103621 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103622 
103623 -- 4262811 Variables ------------------------------------------------------------------------------------------
103624 l_entered_amt_idx             NUMBER;
103625 l_accted_amt_idx              NUMBER;
103626 l_acc_rev_flag                VARCHAR2(1);
103627 l_accrual_line_num            NUMBER;
103628 l_tmp_amt                     NUMBER;
103629 l_acc_rev_natural_side_code   VARCHAR2(1);
103630 
103631 l_num_entries                 NUMBER;
103632 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103633 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103634 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103635 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103636 l_recog_line_1                NUMBER;
103637 l_recog_line_2                NUMBER;
103638 
103639 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103640 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103641 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103642 
103643 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103644 
103645 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103646 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103647 
103648 ---------------------------------------------------------------------------------------------------------------
103649 
103650 
103651 --
103652 -- bulk performance
103653 --
103654 l_balance_type_code           VARCHAR2(1);
103655 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103656 l_log_module                  VARCHAR2(240);
103657 
103658 --
103659 -- Upgrade strategy
103660 --
103661 l_actual_upg_option           VARCHAR2(1);
103662 l_enc_upg_option           VARCHAR2(1);
103663 
103664 --
103665 BEGIN
103666 --
103667 IF g_log_enabled THEN
103668       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
103669 END IF;
103670 --
103671 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103672 
103673       trace
103674          (p_msg      => 'BEGIN of AcctLineType_173'
103675          ,p_level    => C_LEVEL_PROCEDURE
103676          ,p_module   => l_log_module);
103677 
103678 END IF;
103679 --
103680 l_component_type             := 'AMB_JLT';
103681 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_DM';
103682 l_component_type_code        := 'S';
103683 l_component_appl_id          :=  200;
103684 l_amb_context_code           := 'DEFAULT';
103685 l_entity_code                := 'AP_INVOICES';
103686 l_event_class_code           := 'DEBIT MEMOS';
103687 l_event_type_code            := 'DEBIT MEMOS_ALL';
103688 l_line_definition_owner_code := 'S';
103689 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
103690 --
103691 l_balance_type_code          := 'A';
103692 l_segment                     := NULL;
103693 l_ccid                        := NULL;
103694 l_adr_transaction_coa_id      := NULL;
103695 l_adr_accounting_coa_id       := NULL;
103696 l_adr_flexfield_segment_code  := NULL;
103697 l_adr_flex_value_set_id       := NULL;
103698 l_adr_value_type_code         := NULL;
103699 l_adr_value_combination_id    := NULL;
103700 l_adr_value_segment_code      := NULL;
103701 
103702 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
103703 l_bflow_class_code           := '';    -- 4219869 Business Flow
103704 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103705 l_budgetary_control_flag     := 'N';
103706 
103707 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103708 l_bflow_applied_to_amt       := NULL; -- 5132302
103709 l_entered_amt_idx            := NULL;          -- 4262811
103710 l_accted_amt_idx             := NULL;          -- 4262811
103711 l_acc_rev_flag               := NULL;          -- 4262811
103712 l_accrual_line_num           := NULL;          -- 4262811
103713 l_tmp_amt                    := NULL;          -- 4262811
103714 --
103715  
103716 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103717     l_balance_type_code <> 'B' THEN
103718 IF NVL(p_source_33,'
103719 ') =  'NONREC_TAX' AND 
103720 NVL(p_source_95,'
103721 ') =  'Y' AND 
103722 NVL(p_source_135,'
103723 ') <>  'Y'
103724  THEN 
103725 
103726    --
103727    XLA_AE_LINES_PKG.SetNewLine;
103728 
103729    p_balance_type_code          := l_balance_type_code;
103730    -- set the flag so later we will know whether the gain loss line needs to be created
103731    
103732    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103733      p_actual_flag :='A';
103734    END IF;
103735 
103736    --
103737    -- bulk performance
103738    --
103739    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103740                                       p_header_num   => 0); -- 4262811
103741    --
103742    -- set accounting line options
103743    --
103744    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103745            p_natural_side_code          => 'D'
103749          , p_switch_side_flag           => 'Y'
103746          , p_gain_or_loss_flag          => 'N'
103747          , p_gl_transfer_mode_code      => 'S'
103748          , p_acct_entry_type_code       => 'A'
103750          , p_merge_duplicate_code       => 'A'
103751          );
103752    --
103753    l_acc_rev_natural_side_code := 'C';  -- 4262811
103754    -- 
103755    --
103756    -- set accounting line type info
103757    --
103758    xla_ae_lines_pkg.SetAcctLineType
103759       (p_component_type             => l_component_type
103760       ,p_event_type_code            => l_event_type_code
103761       ,p_line_definition_owner_code => l_line_definition_owner_code
103762       ,p_line_definition_code       => l_line_definition_code
103763       ,p_accounting_line_code       => l_component_code
103764       ,p_accounting_line_type_code  => l_component_type_code
103765       ,p_accounting_line_appl_id    => l_component_appl_id
103766       ,p_amb_context_code           => l_amb_context_code
103767       ,p_entity_code                => l_entity_code
103768       ,p_event_class_code           => l_event_class_code);
103769    --
103770    -- set accounting class
103771    --
103772    xla_ae_lines_pkg.SetAcctClass(
103773            p_accounting_class_code  => 'NRTAX'
103774          , p_ae_header_id           => l_ae_header_id
103775          );
103776 
103777    --
103778    -- set rounding class
103779    --
103780    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103781                       'NRTAX';
103782 
103783    --
103784    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103785    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103786    --
103787    -- bulk performance
103788    --
103789    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103790 
103791    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103792       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103793 
103794    -- 4955764
103795    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103796       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103797 
103798    -- 4458381 Public Sector Enh
103799    
103800    --
103801    -- set accounting attributes for the line type
103802    --
103803    l_entered_amt_idx := 23;
103804    l_accted_amt_idx  := 28;
103805    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103806    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103807    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
103808    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103809    l_rec_acct_attrs.array_num_value(2)  := 
103810 xla_ae_sources_pkg.GetSystemSourceNum(
103811    p_source_code           => 'XLA_EVENT_APPL_ID'
103812  , p_source_type_code      => 'Y'
103813  , p_source_application_id =>  602
103814 );
103815    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103816    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
103817    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103818    l_rec_acct_attrs.array_char_value(4)  := 
103819 xla_ae_sources_pkg.GetSystemSourceChar(
103820    p_source_code           => 'XLA_ENTITY_CODE'
103821  , p_source_type_code      => 'Y'
103822  , p_source_application_id =>  602
103823 );
103824    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103825    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
103826    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103827    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
103828    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103829    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
103830    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103831    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
103832    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103833    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
103834    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103835    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
103836    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103837    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
103838    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103839    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
103840    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103841    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
103842    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103843    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
103844    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103845    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
103846    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103847    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
103848    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103849    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
103850    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103851    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
103852    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103856    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103853    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
103854    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103855    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
103857    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
103858    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103859    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
103860    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103861    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
103862    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103863    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
103864    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103865    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
103866    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103867    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
103868    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103869    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
103870    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103871    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
103872    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103873    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
103874    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103875    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
103876    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103877    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
103878    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103879    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
103880    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103881    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
103882    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103883    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
103884    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103885    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
103886    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103887    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
103888    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103889    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
103890    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
103891    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
103892    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
103893    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
103894    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
103895    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
103896    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
103897    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
103898    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
103899    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
103900 
103901    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103902    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103903 
103904    ---------------------------------------------------------------------------------------------------------------
103905    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103906    ---------------------------------------------------------------------------------------------------------------
103907    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103908 
103909    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103910    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103911 
103912    IF xla_accounting_cache_pkg.GetValueChar
103913          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103914          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103915    AND l_bflow_method_code = 'PRIOR_ENTRY'
103916 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103917    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103918          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103919        )
103920    THEN
103921          xla_ae_lines_pkg.BflowUpgEntry
103922            (p_business_method_code    => l_bflow_method_code
103923            ,p_business_class_code     => l_bflow_class_code
103924            ,p_balance_type            => l_balance_type_code);
103925    ELSE
103926       NULL;
103927 -- No business flow processing for business flow method of NONE.
103928    END IF;
103929 
103930    --
103931    -- call analytical criteria
103932    --
103933    
103934    --
103935    -- call description
103936    --
103937    
103938 xla_ae_lines_pkg.SetLineDescription(
103939    p_ae_header_id => l_ae_header_id
103940   ,p_description  => Description_1 (
103941      p_application_id         => p_application_id
103942    , p_ae_header_id           => l_ae_header_id 
103943 , p_source_1 => p_source_1
103944    )
103945 );
103946 
103947 
103948    --
103949    -- call ADRs
103950    -- Bug 4922099
103951    --
103952    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103953         (NVL(l_actual_upg_option, 'N') = 'O') OR
103957    NULL;
103954         (NVL(l_enc_upg_option, 'N') = 'O')
103955       )
103956    THEN
103958    --
103959    --
103960    
103961   l_ccid := AcctDerRule_33(
103962            p_application_id           => p_application_id
103963          , p_ae_header_id             => l_ae_header_id 
103964 , p_source_30 => p_source_30
103965          , x_transaction_coa_id       => l_adr_transaction_coa_id
103966          , x_accounting_coa_id        => l_adr_accounting_coa_id
103967          , x_value_type_code          => l_adr_value_type_code
103968          , p_side                     => 'NA'
103969    );
103970 
103971    xla_ae_lines_pkg.set_ccid(
103972     p_code_combination_id          => l_ccid
103973   , p_value_type_code              => l_adr_value_type_code
103974   , p_transaction_coa_id           => l_adr_transaction_coa_id
103975   , p_accounting_coa_id            => l_adr_accounting_coa_id
103976   , p_adr_code                     => 'AP_INVOICE_DIST'
103977   , p_adr_type_code                => 'S'
103978   , p_component_type               => l_component_type
103979   , p_component_code               => l_component_code
103980   , p_component_type_code          => l_component_type_code
103981   , p_component_appl_id            => l_component_appl_id
103982   , p_amb_context_code             => l_amb_context_code
103983   , p_side                         => 'NA'
103984   );
103985 
103986 
103987    --
103988    --
103989    END IF;
103990    --
103991    -- Bug 4922099
103992    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103993           (NVL(l_enc_upg_option, 'N') = 'O')
103994         ) AND
103995         (l_bflow_method_code = 'PRIOR_ENTRY')
103996       )
103997    THEN
103998       IF
103999       --
104000       1 = 2
104001       --
104002       THEN
104003       xla_accounting_err_pkg.build_message
104004                                     (p_appli_s_name            => 'XLA'
104005                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104006                                     ,p_token_1                 => 'LINE_NUMBER'
104007                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104008                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104009                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104010                                                                              l_component_type
104011                                                                             ,l_component_code
104012                                                                             ,l_component_type_code
104013                                                                             ,l_component_appl_id
104014                                                                             ,l_amb_context_code
104015                                                                             ,l_entity_code
104016                                                                             ,l_event_class_code
104017                                                                            )
104018                                     ,p_token_3                 => 'OWNER'
104019                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104020                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104021                                                                           ,p_lookup_code    => l_component_type_code
104022                                                                          )
104023                                     ,p_token_4                 => 'PRODUCT_NAME'
104024                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104025                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104026                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104027                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104028                                     ,p_ae_header_id            =>  NULL
104029                                        );
104030 
104031         IF (C_LEVEL_ERROR>= g_log_level) THEN
104032                  trace
104033                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104034                       ,p_level    => C_LEVEL_ERROR
104035                       ,p_module   => l_log_module);
104036         END IF;
104037       END IF;
104038    END IF;
104039    --
104040    --
104041    ------------------------------------------------------------------------------------------------
104042    -- 4219869 Business Flow
104043    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104044    -- Prior Entry.  Currently, the following code is always generated.
104045    ------------------------------------------------------------------------------------------------
104046    XLA_AE_LINES_PKG.ValidateCurrentLine;
104047 
104048    ------------------------------------------------------------------------------------
104049    -- 4219869 Business Flow
104050    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104051    ------------------------------------------------------------------------------------
104052    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104053 
104054    ----------------------------------------------------------------------------------
104055    -- 4219869 Business Flow
104059          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104056    -- Update journal entry status -- Need to generate this within IF <condition>
104057    ----------------------------------------------------------------------------------
104058    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104060          ,p_balance_type_code => l_balance_type_code
104061          );
104062 
104063    -------------------------------------------------------------------------------------------
104064    -- 4262811 - Generate the Accrual Reversal lines
104065    -------------------------------------------------------------------------------------------
104066    BEGIN
104067       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104068                               (g_array_event(p_event_id).array_value_num('header_index'));
104069       IF l_acc_rev_flag IS NULL THEN
104070          l_acc_rev_flag := 'N';
104071       END IF;
104072    EXCEPTION
104073       WHEN OTHERS THEN
104074          l_acc_rev_flag := 'N';
104075    END;
104076    --
104077    IF (l_acc_rev_flag = 'Y') THEN
104078 
104079        -- 4645092  ------------------------------------------------------------------------------
104080        -- To allow MPA report to determine if it should generate report process
104081        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104082        ------------------------------------------------------------------------------------------
104083 
104084        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104085        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104086    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104087    -- call ADRs
104088    -- Bug 4922099
104089    --
104090    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104091         (NVL(l_actual_upg_option, 'N') = 'O') OR
104092         (NVL(l_enc_upg_option, 'N') = 'O')
104093       )
104094    THEN
104095    NULL;
104096    --
104097    --
104098    
104099   l_ccid := AcctDerRule_33(
104100            p_application_id           => p_application_id
104101          , p_ae_header_id             => l_ae_header_id 
104102 , p_source_30 => p_source_30
104103          , x_transaction_coa_id       => l_adr_transaction_coa_id
104104          , x_accounting_coa_id        => l_adr_accounting_coa_id
104105          , x_value_type_code          => l_adr_value_type_code
104106          , p_side                     => 'NA'
104107    );
104108 
104109    xla_ae_lines_pkg.set_ccid(
104110     p_code_combination_id          => l_ccid
104111   , p_value_type_code              => l_adr_value_type_code
104112   , p_transaction_coa_id           => l_adr_transaction_coa_id
104113   , p_accounting_coa_id            => l_adr_accounting_coa_id
104114   , p_adr_code                     => 'AP_INVOICE_DIST'
104115   , p_adr_type_code                => 'S'
104116   , p_component_type               => l_component_type
104117   , p_component_code               => l_component_code
104118   , p_component_type_code          => l_component_type_code
104119   , p_component_appl_id            => l_component_appl_id
104120   , p_amb_context_code             => l_amb_context_code
104121   , p_side                         => 'NA'
104122   );
104123 
104124 
104125    --
104126    --
104127    END IF;
104128 
104129        --
104130        -- Update the line information that should be overwritten
104131        --
104132        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104133                                          p_header_num   => 1);
104134        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104135 
104136        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104137 
104138        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104139           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104140        END IF;
104141 
104142       --
104143       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104144       --
104145       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104146           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104147       ELSE
104148           ---------------------------------------------------------------------------------------------------
104149           -- 4262811a Switch Sign
104150           ---------------------------------------------------------------------------------------------------
104151           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104152           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104153                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104154           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104155                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104156           -- 5132302
104157           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104158                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104159 
104160       END IF;
104161 
104162       -- 4955764
104163       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104167       XLA_AE_LINES_PKG.ValidateCurrentLine;
104164       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104165 
104166 
104168       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104169 
104170       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104171                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104172                ,p_balance_type_code => l_balance_type_code);
104173 
104174    END IF;
104175 
104176    -----------------------------------------------------------------------------------------
104177    -- 4262811 Multiperiod Accounting
104178    -----------------------------------------------------------------------------------------
104179      -- No MPA option is assigned.
104180 
104181 
104182 END IF;
104183 END IF;
104184 --
104185 
104186 --
104187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104188    trace
104189       (p_msg      => 'END of AcctLineType_173'
104190       ,p_level    => C_LEVEL_PROCEDURE
104191       ,p_module   => l_log_module);
104192 END IF;
104193 --
104194 EXCEPTION
104195   WHEN xla_exceptions_pkg.application_exception THEN
104196       RAISE;
104197   WHEN OTHERS THEN
104198        xla_exceptions_pkg.raise_message
104199            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_173');
104200 END AcctLineType_173;
104201 --
104202 
104203 ---------------------------------------
104204 --
104205 -- PRIVATE FUNCTION
104206 --         AcctLineType_174
104207 --
104208 ---------------------------------------
104209 PROCEDURE AcctLineType_174 (
104210   p_application_id        IN NUMBER
104211  ,p_event_id              IN NUMBER
104212  ,p_calculate_acctd_flag  IN VARCHAR2
104213  ,p_calculate_g_l_flag    IN VARCHAR2
104214  ,p_actual_flag           IN OUT VARCHAR2
104215  ,p_balance_type_code     OUT VARCHAR2
104216  ,p_gain_or_loss_ref      OUT VARCHAR2
104217  
104218 --Invoice Distribution Description
104219  , p_source_1            IN VARCHAR2
104220 --Invoice Distribution Ledger Amount
104221  , p_source_21            IN NUMBER
104222 --Invoice Distribution Account
104223  , p_source_30            IN NUMBER
104224 --Invoice Distribution Type
104225  , p_source_33            IN VARCHAR2
104226  , p_source_33_meaning    IN VARCHAR2
104227 --Accounting Reversal Indicator
104228  , p_source_52            IN VARCHAR2
104229 --Distribution Link Type
104230  , p_source_54            IN VARCHAR2
104231 --Allocation to Main Distribution Identifier
104232  , p_source_56            IN NUMBER
104233 --Invoice Identifier
104234  , p_source_57            IN NUMBER
104235 --Invoice Distribution Identifier
104236  , p_source_63            IN NUMBER
104237 --Payables Encumbrance Upgrade Credit Account
104238  , p_source_64            IN NUMBER
104239 --Payables Encumbrance Upgrade Credit Amount
104240  , p_source_65            IN NUMBER
104241 --Invoice Currency Code
104242  , p_source_66            IN VARCHAR2
104243 --Payables Encumbrance Upgrade Credit Base Amount
104244  , p_source_67            IN NUMBER
104245 --Payables Encumbrance Upgrade Debit Account
104246  , p_source_68            IN NUMBER
104247 --Payables Encumbrance Upgrade Debit Amount
104248  , p_source_69            IN NUMBER
104249 --Payables Encumbrance Upgrade Debit Base Amount
104250  , p_source_70            IN NUMBER
104251 --Payables Encumbrance Upgrade Option
104252  , p_source_71            IN VARCHAR2
104253 --Invoice Distribution Amount
104254  , p_source_72            IN NUMBER
104255 --Purchase Order Exchange Rate Date
104256  , p_source_73            IN DATE
104257 --Purchase Order Exchange Rate
104258  , p_source_74            IN NUMBER
104259 --Purchase Order Exchange Rate Type
104260  , p_source_75            IN VARCHAR2
104261 --Deferred Accounting End Date
104262  , p_source_76            IN DATE
104263 --Deferred Accounting Option
104264  , p_source_77            IN VARCHAR2
104265 --Deferred Accounting Start Date
104266  , p_source_78            IN DATE
104267 --Override Accounted Amount Indicator
104268  , p_source_79            IN VARCHAR2
104269  , p_source_79_meaning    IN VARCHAR2
104270 --Invoice Supplier Identifier
104271  , p_source_80            IN NUMBER
104272 --Invoice Supplier Site Identifier
104273  , p_source_81            IN NUMBER
104274 --Third Party Type
104275  , p_source_82            IN VARCHAR2
104276 --Parent Reversal Identifier
104277  , p_source_83            IN NUMBER
104278 --Invoice Distribution Statistical Amount
104279  , p_source_84            IN NUMBER
104280 --Invoice Distribution Tax Line Identifier
104281  , p_source_85            IN NUMBER
104282 --Invoice Distribution Tax Distribution Identifier from Tax
104283  , p_source_86            IN NUMBER
104284 --Invoice Distribution Summary Tax Line Identifier
104285  , p_source_87            IN NUMBER
104286 --Payables Upgrade Credit Encumbrance Type Identifier
104287  , p_source_88            IN NUMBER
104288 --Payables Upgrade Debit Encumbrance Type Identifier
104289  , p_source_89            IN NUMBER
104290 --Business Flow Accounts Payable Application Identifier
104291  , p_source_90            IN NUMBER
104292 --Business Flow Invoice Distribution Type
104293  , p_source_91            IN VARCHAR2
104294 --Business Flow Invoice Entity Code
104295  , p_source_92            IN VARCHAR2
104296 --Business Flow Invoice Distribution Identifier
104297  , p_source_93            IN NUMBER
104298 --Business Flow Invoice Identifier
104302  , p_source_95_meaning    IN VARCHAR2
104299  , p_source_94            IN NUMBER
104300 --Accrue on Receipt Option
104301  , p_source_95            IN VARCHAR2
104303 --Self-Assessed Tax Flag
104304  , p_source_135            IN VARCHAR2
104305  , p_source_135_meaning    IN VARCHAR2
104306 )
104307 IS
104308 
104309 l_component_type              VARCHAR2(80);
104310 l_component_code              VARCHAR2(30);
104311 l_component_type_code         VARCHAR2(1);
104312 l_component_appl_id           INTEGER;
104313 l_amb_context_code            VARCHAR2(30);
104314 l_entity_code                 VARCHAR2(30);
104315 l_event_class_code            VARCHAR2(30);
104316 l_ae_header_id                NUMBER;
104317 l_event_type_code             VARCHAR2(30);
104318 l_line_definition_code        VARCHAR2(30);
104319 l_line_definition_owner_code  VARCHAR2(1);
104320 --
104321 -- adr variables
104322 l_segment                     VARCHAR2(30);
104323 l_ccid                        NUMBER;
104324 l_adr_transaction_coa_id      NUMBER;
104325 l_adr_accounting_coa_id       NUMBER;
104326 l_adr_flexfield_segment_code  VARCHAR2(30);
104327 l_adr_flex_value_set_id       NUMBER;
104328 l_adr_value_type_code         VARCHAR2(30);
104329 l_adr_value_combination_id    NUMBER;
104330 l_adr_value_segment_code      VARCHAR2(30);
104331 
104332 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104333 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104334 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104335 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104336 
104337 -- 4262811 Variables ------------------------------------------------------------------------------------------
104338 l_entered_amt_idx             NUMBER;
104339 l_accted_amt_idx              NUMBER;
104340 l_acc_rev_flag                VARCHAR2(1);
104341 l_accrual_line_num            NUMBER;
104342 l_tmp_amt                     NUMBER;
104343 l_acc_rev_natural_side_code   VARCHAR2(1);
104344 
104345 l_num_entries                 NUMBER;
104346 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104347 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104348 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104349 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104350 l_recog_line_1                NUMBER;
104351 l_recog_line_2                NUMBER;
104352 
104353 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104354 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104355 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104356 
104357 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104358 
104359 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104360 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104361 
104362 ---------------------------------------------------------------------------------------------------------------
104363 
104364 
104365 --
104366 -- bulk performance
104367 --
104368 l_balance_type_code           VARCHAR2(1);
104369 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104370 l_log_module                  VARCHAR2(240);
104371 
104372 --
104373 -- Upgrade strategy
104374 --
104375 l_actual_upg_option           VARCHAR2(1);
104376 l_enc_upg_option           VARCHAR2(1);
104377 
104378 --
104379 BEGIN
104380 --
104381 IF g_log_enabled THEN
104382       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
104383 END IF;
104384 --
104385 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104386 
104387       trace
104388          (p_msg      => 'BEGIN of AcctLineType_174'
104389          ,p_level    => C_LEVEL_PROCEDURE
104390          ,p_module   => l_log_module);
104391 
104392 END IF;
104393 --
104394 l_component_type             := 'AMB_JLT';
104395 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_INV';
104396 l_component_type_code        := 'S';
104397 l_component_appl_id          :=  200;
104398 l_amb_context_code           := 'DEFAULT';
104399 l_entity_code                := 'AP_INVOICES';
104400 l_event_class_code           := 'INVOICES';
104401 l_event_type_code            := 'INVOICES_ALL';
104402 l_line_definition_owner_code := 'S';
104403 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
104404 --
104405 l_balance_type_code          := 'A';
104406 l_segment                     := NULL;
104407 l_ccid                        := NULL;
104408 l_adr_transaction_coa_id      := NULL;
104409 l_adr_accounting_coa_id       := NULL;
104410 l_adr_flexfield_segment_code  := NULL;
104411 l_adr_flex_value_set_id       := NULL;
104412 l_adr_value_type_code         := NULL;
104413 l_adr_value_combination_id    := NULL;
104414 l_adr_value_segment_code      := NULL;
104415 
104416 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
104417 l_bflow_class_code           := '';    -- 4219869 Business Flow
104418 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
104419 l_budgetary_control_flag     := 'N';
104420 
104421 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104422 l_bflow_applied_to_amt       := NULL; -- 5132302
104423 l_entered_amt_idx            := NULL;          -- 4262811
104424 l_accted_amt_idx             := NULL;          -- 4262811
104425 l_acc_rev_flag               := NULL;          -- 4262811
104426 l_accrual_line_num           := NULL;          -- 4262811
104430 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104427 l_tmp_amt                    := NULL;          -- 4262811
104428 --
104429  
104431     l_balance_type_code <> 'B' THEN
104432 IF NVL(p_source_33,'
104433 ') =  'NONREC_TAX' AND 
104434 NVL(p_source_95,'
104435 ') =  'Y' AND 
104436 NVL(p_source_135,'
104437 ') <>  'Y'
104438  THEN 
104439 
104440    --
104441    XLA_AE_LINES_PKG.SetNewLine;
104442 
104443    p_balance_type_code          := l_balance_type_code;
104444    -- set the flag so later we will know whether the gain loss line needs to be created
104445    
104446    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104447      p_actual_flag :='A';
104448    END IF;
104449 
104450    --
104451    -- bulk performance
104452    --
104453    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104454                                       p_header_num   => 0); -- 4262811
104455    --
104456    -- set accounting line options
104457    --
104458    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104459            p_natural_side_code          => 'D'
104460          , p_gain_or_loss_flag          => 'N'
104461          , p_gl_transfer_mode_code      => 'S'
104462          , p_acct_entry_type_code       => 'A'
104463          , p_switch_side_flag           => 'Y'
104464          , p_merge_duplicate_code       => 'A'
104465          );
104466    --
104467    l_acc_rev_natural_side_code := 'C';  -- 4262811
104468    -- 
104469    --
104470    -- set accounting line type info
104471    --
104472    xla_ae_lines_pkg.SetAcctLineType
104473       (p_component_type             => l_component_type
104474       ,p_event_type_code            => l_event_type_code
104475       ,p_line_definition_owner_code => l_line_definition_owner_code
104476       ,p_line_definition_code       => l_line_definition_code
104477       ,p_accounting_line_code       => l_component_code
104478       ,p_accounting_line_type_code  => l_component_type_code
104479       ,p_accounting_line_appl_id    => l_component_appl_id
104480       ,p_amb_context_code           => l_amb_context_code
104481       ,p_entity_code                => l_entity_code
104482       ,p_event_class_code           => l_event_class_code);
104483    --
104484    -- set accounting class
104485    --
104486    xla_ae_lines_pkg.SetAcctClass(
104487            p_accounting_class_code  => 'NRTAX'
104488          , p_ae_header_id           => l_ae_header_id
104489          );
104490 
104491    --
104492    -- set rounding class
104493    --
104494    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104495                       'NRTAX';
104496 
104497    --
104498    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104499    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104500    --
104501    -- bulk performance
104502    --
104503    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104504 
104505    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104506       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104507 
104508    -- 4955764
104509    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104510       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104511 
104512    -- 4458381 Public Sector Enh
104513    
104514    --
104515    -- set accounting attributes for the line type
104516    --
104517    l_entered_amt_idx := 24;
104518    l_accted_amt_idx  := 29;
104519    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
104520    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104521    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
104522    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
104523    l_rec_acct_attrs.array_num_value(2)  := 
104524 xla_ae_sources_pkg.GetSystemSourceNum(
104525    p_source_code           => 'XLA_EVENT_APPL_ID'
104526  , p_source_type_code      => 'Y'
104527  , p_source_application_id =>  602
104528 );
104529    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
104530    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
104531    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
104532    l_rec_acct_attrs.array_char_value(4)  := 
104533 xla_ae_sources_pkg.GetSystemSourceChar(
104534    p_source_code           => 'XLA_ENTITY_CODE'
104535  , p_source_type_code      => 'Y'
104536  , p_source_application_id =>  602
104537 );
104538    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
104539    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
104540    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
104541    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
104542    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
104543    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
104544    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
104545    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
104546    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104547    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
104551    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
104548    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
104549    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
104550    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
104552    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104553    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
104554    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
104555    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
104556    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
104557    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
104558    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
104559    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
104560    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
104561    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
104562    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
104563    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
104564    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
104565    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
104566    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
104567    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
104568    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
104569    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
104570    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
104571    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
104572    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
104573    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
104574    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
104575    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
104576    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
104577    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
104578    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
104579    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
104580    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
104581    l_rec_acct_attrs.array_date_value(26)  := p_source_73;
104582    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
104583    l_rec_acct_attrs.array_num_value(27)  := p_source_74;
104584    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
104585    l_rec_acct_attrs.array_char_value(28)  := p_source_75;
104586    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
104587    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
104588    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
104589    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
104590    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
104591    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
104592    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
104593    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
104594    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
104595    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
104596    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
104597    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
104598    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
104599    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
104600    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
104601    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
104602    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
104603    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
104604    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
104605    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
104606    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
104607    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
104608    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
104609    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
104610    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
104611    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
104612    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
104613    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
104614    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
104615    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
104616    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
104617    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
104618 
104619    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104620    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104621 
104622    ---------------------------------------------------------------------------------------------------------------
104623    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104624    ---------------------------------------------------------------------------------------------------------------
104625    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104626 
104627    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104628    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104629 
104633    AND l_bflow_method_code = 'PRIOR_ENTRY'
104630    IF xla_accounting_cache_pkg.GetValueChar
104631          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104632          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104634 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104635    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104636          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104637        )
104638    THEN
104639          xla_ae_lines_pkg.BflowUpgEntry
104640            (p_business_method_code    => l_bflow_method_code
104641            ,p_business_class_code     => l_bflow_class_code
104642            ,p_balance_type            => l_balance_type_code);
104643    ELSE
104644       NULL;
104645 -- No business flow processing for business flow method of NONE.
104646    END IF;
104647 
104648    --
104649    -- call analytical criteria
104650    --
104651    
104652    --
104653    -- call description
104654    --
104655    
104656 xla_ae_lines_pkg.SetLineDescription(
104657    p_ae_header_id => l_ae_header_id
104658   ,p_description  => Description_1 (
104659      p_application_id         => p_application_id
104660    , p_ae_header_id           => l_ae_header_id 
104661 , p_source_1 => p_source_1
104662    )
104663 );
104664 
104665 
104666    --
104667    -- call ADRs
104668    -- Bug 4922099
104669    --
104670    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104671         (NVL(l_actual_upg_option, 'N') = 'O') OR
104672         (NVL(l_enc_upg_option, 'N') = 'O')
104673       )
104674    THEN
104675    NULL;
104676    --
104677    --
104678    
104679   l_ccid := AcctDerRule_33(
104680            p_application_id           => p_application_id
104681          , p_ae_header_id             => l_ae_header_id 
104682 , p_source_30 => p_source_30
104683          , x_transaction_coa_id       => l_adr_transaction_coa_id
104684          , x_accounting_coa_id        => l_adr_accounting_coa_id
104685          , x_value_type_code          => l_adr_value_type_code
104686          , p_side                     => 'NA'
104687    );
104688 
104689    xla_ae_lines_pkg.set_ccid(
104690     p_code_combination_id          => l_ccid
104691   , p_value_type_code              => l_adr_value_type_code
104692   , p_transaction_coa_id           => l_adr_transaction_coa_id
104693   , p_accounting_coa_id            => l_adr_accounting_coa_id
104694   , p_adr_code                     => 'AP_INVOICE_DIST'
104695   , p_adr_type_code                => 'S'
104696   , p_component_type               => l_component_type
104697   , p_component_code               => l_component_code
104698   , p_component_type_code          => l_component_type_code
104699   , p_component_appl_id            => l_component_appl_id
104700   , p_amb_context_code             => l_amb_context_code
104701   , p_side                         => 'NA'
104702   );
104703 
104704 
104705    --
104706    --
104707    END IF;
104708    --
104709    -- Bug 4922099
104710    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104711           (NVL(l_enc_upg_option, 'N') = 'O')
104712         ) AND
104713         (l_bflow_method_code = 'PRIOR_ENTRY')
104714       )
104715    THEN
104716       IF
104717       --
104718       1 = 2
104719       --
104720       THEN
104721       xla_accounting_err_pkg.build_message
104722                                     (p_appli_s_name            => 'XLA'
104723                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104724                                     ,p_token_1                 => 'LINE_NUMBER'
104725                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104726                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104727                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104728                                                                              l_component_type
104729                                                                             ,l_component_code
104730                                                                             ,l_component_type_code
104731                                                                             ,l_component_appl_id
104732                                                                             ,l_amb_context_code
104733                                                                             ,l_entity_code
104734                                                                             ,l_event_class_code
104735                                                                            )
104736                                     ,p_token_3                 => 'OWNER'
104737                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104738                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104739                                                                           ,p_lookup_code    => l_component_type_code
104740                                                                          )
104741                                     ,p_token_4                 => 'PRODUCT_NAME'
104742                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104743                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104747                                        );
104744                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104745                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104746                                     ,p_ae_header_id            =>  NULL
104748 
104749         IF (C_LEVEL_ERROR>= g_log_level) THEN
104750                  trace
104751                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104752                       ,p_level    => C_LEVEL_ERROR
104753                       ,p_module   => l_log_module);
104754         END IF;
104755       END IF;
104756    END IF;
104757    --
104758    --
104759    ------------------------------------------------------------------------------------------------
104760    -- 4219869 Business Flow
104761    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104762    -- Prior Entry.  Currently, the following code is always generated.
104763    ------------------------------------------------------------------------------------------------
104764    XLA_AE_LINES_PKG.ValidateCurrentLine;
104765 
104766    ------------------------------------------------------------------------------------
104767    -- 4219869 Business Flow
104768    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104769    ------------------------------------------------------------------------------------
104770    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104771 
104772    ----------------------------------------------------------------------------------
104773    -- 4219869 Business Flow
104774    -- Update journal entry status -- Need to generate this within IF <condition>
104775    ----------------------------------------------------------------------------------
104776    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104777          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104778          ,p_balance_type_code => l_balance_type_code
104779          );
104780 
104781    -------------------------------------------------------------------------------------------
104782    -- 4262811 - Generate the Accrual Reversal lines
104783    -------------------------------------------------------------------------------------------
104784    BEGIN
104785       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104786                               (g_array_event(p_event_id).array_value_num('header_index'));
104787       IF l_acc_rev_flag IS NULL THEN
104788          l_acc_rev_flag := 'N';
104789       END IF;
104790    EXCEPTION
104791       WHEN OTHERS THEN
104792          l_acc_rev_flag := 'N';
104793    END;
104794    --
104795    IF (l_acc_rev_flag = 'Y') THEN
104796 
104797        -- 4645092  ------------------------------------------------------------------------------
104798        -- To allow MPA report to determine if it should generate report process
104799        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104800        ------------------------------------------------------------------------------------------
104801 
104802        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104803        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104804    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104805    -- call ADRs
104806    -- Bug 4922099
104807    --
104808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104809         (NVL(l_actual_upg_option, 'N') = 'O') OR
104810         (NVL(l_enc_upg_option, 'N') = 'O')
104811       )
104812    THEN
104813    NULL;
104814    --
104815    --
104816    
104817   l_ccid := AcctDerRule_33(
104818            p_application_id           => p_application_id
104819          , p_ae_header_id             => l_ae_header_id 
104820 , p_source_30 => p_source_30
104821          , x_transaction_coa_id       => l_adr_transaction_coa_id
104822          , x_accounting_coa_id        => l_adr_accounting_coa_id
104823          , x_value_type_code          => l_adr_value_type_code
104824          , p_side                     => 'NA'
104825    );
104826 
104827    xla_ae_lines_pkg.set_ccid(
104828     p_code_combination_id          => l_ccid
104829   , p_value_type_code              => l_adr_value_type_code
104830   , p_transaction_coa_id           => l_adr_transaction_coa_id
104831   , p_accounting_coa_id            => l_adr_accounting_coa_id
104832   , p_adr_code                     => 'AP_INVOICE_DIST'
104833   , p_adr_type_code                => 'S'
104834   , p_component_type               => l_component_type
104835   , p_component_code               => l_component_code
104836   , p_component_type_code          => l_component_type_code
104837   , p_component_appl_id            => l_component_appl_id
104838   , p_amb_context_code             => l_amb_context_code
104839   , p_side                         => 'NA'
104840   );
104841 
104842 
104843    --
104844    --
104845    END IF;
104846 
104847        --
104848        -- Update the line information that should be overwritten
104849        --
104850        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104851                                          p_header_num   => 1);
104852        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104853 
104854        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104855 
104856        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104860       --
104857           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104858        END IF;
104859 
104861       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104862       --
104863       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104864           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104865       ELSE
104866           ---------------------------------------------------------------------------------------------------
104867           -- 4262811a Switch Sign
104868           ---------------------------------------------------------------------------------------------------
104869           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104870           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104871                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104872           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104873                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104874           -- 5132302
104875           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104876                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104877 
104878       END IF;
104879 
104880       -- 4955764
104881       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104882       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104883 
104884 
104885       XLA_AE_LINES_PKG.ValidateCurrentLine;
104886       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104887 
104888       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104889                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104890                ,p_balance_type_code => l_balance_type_code);
104891 
104892    END IF;
104893 
104894    -----------------------------------------------------------------------------------------
104895    -- 4262811 Multiperiod Accounting
104896    -----------------------------------------------------------------------------------------
104897      -- No MPA option is assigned.
104898 
104899 
104900 END IF;
104901 END IF;
104902 --
104903 
104904 --
104905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104906    trace
104907       (p_msg      => 'END of AcctLineType_174'
104908       ,p_level    => C_LEVEL_PROCEDURE
104909       ,p_module   => l_log_module);
104910 END IF;
104911 --
104912 EXCEPTION
104913   WHEN xla_exceptions_pkg.application_exception THEN
104914       RAISE;
104915   WHEN OTHERS THEN
104916        xla_exceptions_pkg.raise_message
104917            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_174');
104918 END AcctLineType_174;
104919 --
104920 
104921 ---------------------------------------
104922 --
104923 -- PRIVATE FUNCTION
104924 --         AcctLineType_175
104925 --
104926 ---------------------------------------
104927 PROCEDURE AcctLineType_175 (
104928   p_application_id        IN NUMBER
104929  ,p_event_id              IN NUMBER
104930  ,p_calculate_acctd_flag  IN VARCHAR2
104931  ,p_calculate_g_l_flag    IN VARCHAR2
104932  ,p_actual_flag           IN OUT VARCHAR2
104933  ,p_balance_type_code     OUT VARCHAR2
104934  ,p_gain_or_loss_ref      OUT VARCHAR2
104935  
104936 --Invoice Distribution Description
104937  , p_source_1            IN VARCHAR2
104938 --Invoice Distribution Ledger Amount
104939  , p_source_21            IN NUMBER
104940 --Invoice Distribution Account
104941  , p_source_30            IN NUMBER
104942 --Invoice Distribution Type
104943  , p_source_33            IN VARCHAR2
104944  , p_source_33_meaning    IN VARCHAR2
104945 --Accounting Reversal Indicator
104946  , p_source_52            IN VARCHAR2
104947 --Distribution Link Type
104948  , p_source_54            IN VARCHAR2
104949 --Allocation to Main Distribution Identifier
104950  , p_source_56            IN NUMBER
104951 --Invoice Identifier
104952  , p_source_57            IN NUMBER
104953 --Invoice Distribution Identifier
104954  , p_source_63            IN NUMBER
104955 --Payables Encumbrance Upgrade Credit Account
104956  , p_source_64            IN NUMBER
104957 --Payables Encumbrance Upgrade Credit Amount
104958  , p_source_65            IN NUMBER
104959 --Invoice Currency Code
104960  , p_source_66            IN VARCHAR2
104961 --Payables Encumbrance Upgrade Credit Base Amount
104962  , p_source_67            IN NUMBER
104963 --Payables Encumbrance Upgrade Debit Account
104964  , p_source_68            IN NUMBER
104965 --Payables Encumbrance Upgrade Debit Amount
104966  , p_source_69            IN NUMBER
104967 --Payables Encumbrance Upgrade Debit Base Amount
104968  , p_source_70            IN NUMBER
104969 --Payables Encumbrance Upgrade Option
104970  , p_source_71            IN VARCHAR2
104971 --Invoice Distribution Amount
104972  , p_source_72            IN NUMBER
104973 --Deferred Accounting End Date
104974  , p_source_76            IN DATE
104975 --Deferred Accounting Option
104976  , p_source_77            IN VARCHAR2
104977 --Deferred Accounting Start Date
104978  , p_source_78            IN DATE
104979 --Override Accounted Amount Indicator
104980  , p_source_79            IN VARCHAR2
104981  , p_source_79_meaning    IN VARCHAR2
104985  , p_source_81            IN NUMBER
104982 --Invoice Supplier Identifier
104983  , p_source_80            IN NUMBER
104984 --Invoice Supplier Site Identifier
104986 --Third Party Type
104987  , p_source_82            IN VARCHAR2
104988 --Parent Reversal Identifier
104989  , p_source_83            IN NUMBER
104990 --Invoice Distribution Statistical Amount
104991  , p_source_84            IN NUMBER
104992 --Invoice Distribution Tax Line Identifier
104993  , p_source_85            IN NUMBER
104994 --Invoice Distribution Tax Distribution Identifier from Tax
104995  , p_source_86            IN NUMBER
104996 --Invoice Distribution Summary Tax Line Identifier
104997  , p_source_87            IN NUMBER
104998 --Payables Upgrade Credit Encumbrance Type Identifier
104999  , p_source_88            IN NUMBER
105000 --Payables Upgrade Debit Encumbrance Type Identifier
105001  , p_source_89            IN NUMBER
105002 --Business Flow Accounts Payable Application Identifier
105003  , p_source_90            IN NUMBER
105004 --Business Flow Invoice Distribution Type
105005  , p_source_91            IN VARCHAR2
105006 --Business Flow Invoice Entity Code
105007  , p_source_92            IN VARCHAR2
105008 --Business Flow Invoice Distribution Identifier
105009  , p_source_93            IN NUMBER
105010 --Business Flow Invoice Identifier
105011  , p_source_94            IN NUMBER
105012 --Accrue on Receipt Option
105013  , p_source_95            IN VARCHAR2
105014  , p_source_95_meaning    IN VARCHAR2
105015 --Self-Assessed Tax Flag
105016  , p_source_135            IN VARCHAR2
105017  , p_source_135_meaning    IN VARCHAR2
105018 --Invoice Exchange Date
105019  , p_source_136            IN DATE
105020 --Invoice Exchange Rate
105021  , p_source_137            IN NUMBER
105022 --Invoice Exchange Rate Type
105023  , p_source_138            IN VARCHAR2
105024 )
105025 IS
105026 
105027 l_component_type              VARCHAR2(80);
105028 l_component_code              VARCHAR2(30);
105029 l_component_type_code         VARCHAR2(1);
105030 l_component_appl_id           INTEGER;
105031 l_amb_context_code            VARCHAR2(30);
105032 l_entity_code                 VARCHAR2(30);
105033 l_event_class_code            VARCHAR2(30);
105034 l_ae_header_id                NUMBER;
105035 l_event_type_code             VARCHAR2(30);
105036 l_line_definition_code        VARCHAR2(30);
105037 l_line_definition_owner_code  VARCHAR2(1);
105038 --
105039 -- adr variables
105040 l_segment                     VARCHAR2(30);
105041 l_ccid                        NUMBER;
105042 l_adr_transaction_coa_id      NUMBER;
105043 l_adr_accounting_coa_id       NUMBER;
105044 l_adr_flexfield_segment_code  VARCHAR2(30);
105045 l_adr_flex_value_set_id       NUMBER;
105046 l_adr_value_type_code         VARCHAR2(30);
105047 l_adr_value_combination_id    NUMBER;
105048 l_adr_value_segment_code      VARCHAR2(30);
105049 
105050 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105051 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105052 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105053 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105054 
105055 -- 4262811 Variables ------------------------------------------------------------------------------------------
105056 l_entered_amt_idx             NUMBER;
105057 l_accted_amt_idx              NUMBER;
105058 l_acc_rev_flag                VARCHAR2(1);
105059 l_accrual_line_num            NUMBER;
105060 l_tmp_amt                     NUMBER;
105061 l_acc_rev_natural_side_code   VARCHAR2(1);
105062 
105063 l_num_entries                 NUMBER;
105064 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105065 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105066 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105067 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105068 l_recog_line_1                NUMBER;
105069 l_recog_line_2                NUMBER;
105070 
105071 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105072 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105073 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105074 
105075 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105076 
105077 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105078 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105079 
105080 ---------------------------------------------------------------------------------------------------------------
105081 
105082 
105083 --
105084 -- bulk performance
105085 --
105086 l_balance_type_code           VARCHAR2(1);
105087 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105088 l_log_module                  VARCHAR2(240);
105089 
105090 --
105091 -- Upgrade strategy
105092 --
105093 l_actual_upg_option           VARCHAR2(1);
105094 l_enc_upg_option           VARCHAR2(1);
105095 
105096 --
105097 BEGIN
105098 --
105099 IF g_log_enabled THEN
105100       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
105101 END IF;
105102 --
105103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105104 
105105       trace
105106          (p_msg      => 'BEGIN of AcctLineType_175'
105107          ,p_level    => C_LEVEL_PROCEDURE
105108          ,p_module   => l_log_module);
105109 
105110 END IF;
105111 --
105115 l_component_appl_id          :=  200;
105112 l_component_type             := 'AMB_JLT';
105113 l_component_code             := 'AP_NON_RECOV_TAX_CM';
105114 l_component_type_code        := 'S';
105116 l_amb_context_code           := 'DEFAULT';
105117 l_entity_code                := 'AP_INVOICES';
105118 l_event_class_code           := 'CREDIT MEMOS';
105119 l_event_type_code            := 'CREDIT MEMOS_ALL';
105120 l_line_definition_owner_code := 'S';
105121 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
105122 --
105123 l_balance_type_code          := 'A';
105124 l_segment                     := NULL;
105125 l_ccid                        := NULL;
105126 l_adr_transaction_coa_id      := NULL;
105127 l_adr_accounting_coa_id       := NULL;
105128 l_adr_flexfield_segment_code  := NULL;
105129 l_adr_flex_value_set_id       := NULL;
105130 l_adr_value_type_code         := NULL;
105131 l_adr_value_combination_id    := NULL;
105132 l_adr_value_segment_code      := NULL;
105133 
105134 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105135 l_bflow_class_code           := '';    -- 4219869 Business Flow
105136 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105137 l_budgetary_control_flag     := 'N';
105138 
105139 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105140 l_bflow_applied_to_amt       := NULL; -- 5132302
105141 l_entered_amt_idx            := NULL;          -- 4262811
105142 l_accted_amt_idx             := NULL;          -- 4262811
105143 l_acc_rev_flag               := NULL;          -- 4262811
105144 l_accrual_line_num           := NULL;          -- 4262811
105145 l_tmp_amt                    := NULL;          -- 4262811
105146 --
105147  
105148 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105149     l_balance_type_code <> 'B' THEN
105150 IF (NVL(p_source_33,'
105151 ') =  'NONREC_TAX' OR 
105152 NVL(p_source_33,'
105153 ') =  'TERV' OR 
105154 NVL(p_source_33,'
105155 ') =  'TIPV' OR 
105156 NVL(p_source_33,'
105157 ') =  'TRV') AND 
105158 NVL(p_source_95,'
105159 ') <>  'Y' AND 
105160 NVL(p_source_135,'
105161 ') <>  'Y'
105162  THEN 
105163 
105164    --
105165    XLA_AE_LINES_PKG.SetNewLine;
105166 
105167    p_balance_type_code          := l_balance_type_code;
105168    -- set the flag so later we will know whether the gain loss line needs to be created
105169    
105170    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105171      p_actual_flag :='A';
105172    END IF;
105173 
105174    --
105175    -- bulk performance
105176    --
105177    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105178                                       p_header_num   => 0); -- 4262811
105179    --
105180    -- set accounting line options
105181    --
105182    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105183            p_natural_side_code          => 'D'
105184          , p_gain_or_loss_flag          => 'N'
105185          , p_gl_transfer_mode_code      => 'S'
105186          , p_acct_entry_type_code       => 'A'
105187          , p_switch_side_flag           => 'Y'
105188          , p_merge_duplicate_code       => 'A'
105189          );
105190    --
105191    l_acc_rev_natural_side_code := 'C';  -- 4262811
105192    -- 
105193    --
105194    -- set accounting line type info
105195    --
105196    xla_ae_lines_pkg.SetAcctLineType
105197       (p_component_type             => l_component_type
105198       ,p_event_type_code            => l_event_type_code
105199       ,p_line_definition_owner_code => l_line_definition_owner_code
105200       ,p_line_definition_code       => l_line_definition_code
105201       ,p_accounting_line_code       => l_component_code
105202       ,p_accounting_line_type_code  => l_component_type_code
105203       ,p_accounting_line_appl_id    => l_component_appl_id
105204       ,p_amb_context_code           => l_amb_context_code
105205       ,p_entity_code                => l_entity_code
105206       ,p_event_class_code           => l_event_class_code);
105207    --
105208    -- set accounting class
105209    --
105210    xla_ae_lines_pkg.SetAcctClass(
105211            p_accounting_class_code  => 'NRTAX'
105212          , p_ae_header_id           => l_ae_header_id
105213          );
105214 
105215    --
105216    -- set rounding class
105217    --
105218    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105219                       'NRTAX';
105220 
105221    --
105222    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105223    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105224    --
105225    -- bulk performance
105226    --
105227    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105228 
105229    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105230       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105231 
105232    -- 4955764
105233    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105234       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105235 
105236    -- 4458381 Public Sector Enh
105237    
105238    --
105239    -- set accounting attributes for the line type
105240    --
105241    l_entered_amt_idx := 23;
105245    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
105242    l_accted_amt_idx  := 28;
105243    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105244    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105246    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
105247    l_rec_acct_attrs.array_num_value(2)  := 
105248 xla_ae_sources_pkg.GetSystemSourceNum(
105249    p_source_code           => 'XLA_EVENT_APPL_ID'
105250  , p_source_type_code      => 'Y'
105251  , p_source_application_id =>  602
105252 );
105253    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
105254    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
105255    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
105256    l_rec_acct_attrs.array_char_value(4)  := 
105257 xla_ae_sources_pkg.GetSystemSourceChar(
105258    p_source_code           => 'XLA_ENTITY_CODE'
105259  , p_source_type_code      => 'Y'
105260  , p_source_application_id =>  602
105261 );
105262    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
105263    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
105264    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
105265    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
105266    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
105267    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
105268    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105269    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
105270    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
105271    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
105272    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
105273    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
105274    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105275    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
105276    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
105277    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
105278    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
105279    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
105280    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
105281    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
105282    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
105283    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
105284    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
105285    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
105286    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
105287    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
105288    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
105289    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
105290    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
105291    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
105292    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
105293    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
105294    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
105295    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
105296    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
105297    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
105298    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
105299    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
105300    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
105301    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
105302    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
105303    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
105304    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
105305    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
105306    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
105307    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
105308    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
105309    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
105310    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
105311    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
105312    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
105313    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
105314    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
105315    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
105316    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
105317    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
105318    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
105319    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
105320    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
105321    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
105322    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
105323    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
105324    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
105325    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
105326    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
105327    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
105328    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
105332    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
105329    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
105330    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
105331    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
105333    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
105334    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
105335    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
105336    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
105337    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
105338    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
105339    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
105340 
105341    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105342    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105343 
105344    ---------------------------------------------------------------------------------------------------------------
105345    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105346    ---------------------------------------------------------------------------------------------------------------
105347    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105348 
105349    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105350    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105351 
105352    IF xla_accounting_cache_pkg.GetValueChar
105353          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105354          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105355    AND l_bflow_method_code = 'PRIOR_ENTRY'
105356 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105357    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105358          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105359        )
105360    THEN
105361          xla_ae_lines_pkg.BflowUpgEntry
105362            (p_business_method_code    => l_bflow_method_code
105363            ,p_business_class_code     => l_bflow_class_code
105364            ,p_balance_type            => l_balance_type_code);
105365    ELSE
105366       NULL;
105367 -- No business flow processing for business flow method of NONE.
105368    END IF;
105369 
105370    --
105371    -- call analytical criteria
105372    --
105373    
105374    --
105375    -- call description
105376    --
105377    
105378 xla_ae_lines_pkg.SetLineDescription(
105379    p_ae_header_id => l_ae_header_id
105380   ,p_description  => Description_1 (
105381      p_application_id         => p_application_id
105382    , p_ae_header_id           => l_ae_header_id 
105383 , p_source_1 => p_source_1
105384    )
105385 );
105386 
105387 
105388    --
105389    -- call ADRs
105390    -- Bug 4922099
105391    --
105392    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105393         (NVL(l_actual_upg_option, 'N') = 'O') OR
105394         (NVL(l_enc_upg_option, 'N') = 'O')
105395       )
105396    THEN
105397    NULL;
105398    --
105399    --
105400    
105401   l_ccid := AcctDerRule_33(
105402            p_application_id           => p_application_id
105403          , p_ae_header_id             => l_ae_header_id 
105404 , p_source_30 => p_source_30
105405          , x_transaction_coa_id       => l_adr_transaction_coa_id
105406          , x_accounting_coa_id        => l_adr_accounting_coa_id
105407          , x_value_type_code          => l_adr_value_type_code
105408          , p_side                     => 'NA'
105409    );
105410 
105411    xla_ae_lines_pkg.set_ccid(
105412     p_code_combination_id          => l_ccid
105413   , p_value_type_code              => l_adr_value_type_code
105414   , p_transaction_coa_id           => l_adr_transaction_coa_id
105415   , p_accounting_coa_id            => l_adr_accounting_coa_id
105416   , p_adr_code                     => 'AP_INVOICE_DIST'
105417   , p_adr_type_code                => 'S'
105418   , p_component_type               => l_component_type
105419   , p_component_code               => l_component_code
105420   , p_component_type_code          => l_component_type_code
105421   , p_component_appl_id            => l_component_appl_id
105422   , p_amb_context_code             => l_amb_context_code
105423   , p_side                         => 'NA'
105424   );
105425 
105426 
105427    --
105428    --
105429    END IF;
105430    --
105431    -- Bug 4922099
105432    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105433           (NVL(l_enc_upg_option, 'N') = 'O')
105434         ) AND
105435         (l_bflow_method_code = 'PRIOR_ENTRY')
105436       )
105437    THEN
105438       IF
105439       --
105440       1 = 2
105441       --
105442       THEN
105443       xla_accounting_err_pkg.build_message
105444                                     (p_appli_s_name            => 'XLA'
105445                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105446                                     ,p_token_1                 => 'LINE_NUMBER'
105447                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105448                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105449                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105450                                                                              l_component_type
105454                                                                             ,l_amb_context_code
105451                                                                             ,l_component_code
105452                                                                             ,l_component_type_code
105453                                                                             ,l_component_appl_id
105455                                                                             ,l_entity_code
105456                                                                             ,l_event_class_code
105457                                                                            )
105458                                     ,p_token_3                 => 'OWNER'
105459                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105460                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105461                                                                           ,p_lookup_code    => l_component_type_code
105462                                                                          )
105463                                     ,p_token_4                 => 'PRODUCT_NAME'
105464                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105465                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105466                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105467                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105468                                     ,p_ae_header_id            =>  NULL
105469                                        );
105470 
105471         IF (C_LEVEL_ERROR>= g_log_level) THEN
105472                  trace
105473                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105474                       ,p_level    => C_LEVEL_ERROR
105475                       ,p_module   => l_log_module);
105476         END IF;
105477       END IF;
105478    END IF;
105479    --
105480    --
105481    ------------------------------------------------------------------------------------------------
105482    -- 4219869 Business Flow
105483    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105484    -- Prior Entry.  Currently, the following code is always generated.
105485    ------------------------------------------------------------------------------------------------
105486    XLA_AE_LINES_PKG.ValidateCurrentLine;
105487 
105488    ------------------------------------------------------------------------------------
105489    -- 4219869 Business Flow
105490    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105491    ------------------------------------------------------------------------------------
105492    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105493 
105494    ----------------------------------------------------------------------------------
105495    -- 4219869 Business Flow
105496    -- Update journal entry status -- Need to generate this within IF <condition>
105497    ----------------------------------------------------------------------------------
105498    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105499          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105500          ,p_balance_type_code => l_balance_type_code
105501          );
105502 
105503    -------------------------------------------------------------------------------------------
105504    -- 4262811 - Generate the Accrual Reversal lines
105505    -------------------------------------------------------------------------------------------
105506    BEGIN
105507       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105508                               (g_array_event(p_event_id).array_value_num('header_index'));
105509       IF l_acc_rev_flag IS NULL THEN
105510          l_acc_rev_flag := 'N';
105511       END IF;
105512    EXCEPTION
105513       WHEN OTHERS THEN
105514          l_acc_rev_flag := 'N';
105515    END;
105516    --
105517    IF (l_acc_rev_flag = 'Y') THEN
105518 
105519        -- 4645092  ------------------------------------------------------------------------------
105520        -- To allow MPA report to determine if it should generate report process
105521        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105522        ------------------------------------------------------------------------------------------
105523 
105524        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105525        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105526    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105527    -- call ADRs
105528    -- Bug 4922099
105529    --
105530    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105531         (NVL(l_actual_upg_option, 'N') = 'O') OR
105532         (NVL(l_enc_upg_option, 'N') = 'O')
105533       )
105534    THEN
105535    NULL;
105536    --
105537    --
105538    
105539   l_ccid := AcctDerRule_33(
105540            p_application_id           => p_application_id
105541          , p_ae_header_id             => l_ae_header_id 
105542 , p_source_30 => p_source_30
105543          , x_transaction_coa_id       => l_adr_transaction_coa_id
105544          , x_accounting_coa_id        => l_adr_accounting_coa_id
105545          , x_value_type_code          => l_adr_value_type_code
105546          , p_side                     => 'NA'
105547    );
105548 
105552   , p_transaction_coa_id           => l_adr_transaction_coa_id
105549    xla_ae_lines_pkg.set_ccid(
105550     p_code_combination_id          => l_ccid
105551   , p_value_type_code              => l_adr_value_type_code
105553   , p_accounting_coa_id            => l_adr_accounting_coa_id
105554   , p_adr_code                     => 'AP_INVOICE_DIST'
105555   , p_adr_type_code                => 'S'
105556   , p_component_type               => l_component_type
105557   , p_component_code               => l_component_code
105558   , p_component_type_code          => l_component_type_code
105559   , p_component_appl_id            => l_component_appl_id
105560   , p_amb_context_code             => l_amb_context_code
105561   , p_side                         => 'NA'
105562   );
105563 
105564 
105565    --
105566    --
105567    END IF;
105568 
105569        --
105570        -- Update the line information that should be overwritten
105571        --
105572        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105573                                          p_header_num   => 1);
105574        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105575 
105576        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105577 
105578        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105579           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105580        END IF;
105581 
105582       --
105583       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105584       --
105585       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105586           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105587       ELSE
105588           ---------------------------------------------------------------------------------------------------
105589           -- 4262811a Switch Sign
105590           ---------------------------------------------------------------------------------------------------
105591           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105592           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105593                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105594           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105595                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105596           -- 5132302
105597           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105598                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105599 
105600       END IF;
105601 
105602       -- 4955764
105603       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105604       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105605 
105606 
105607       XLA_AE_LINES_PKG.ValidateCurrentLine;
105608       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105609 
105610       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105611                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105612                ,p_balance_type_code => l_balance_type_code);
105613 
105614    END IF;
105615 
105616    -----------------------------------------------------------------------------------------
105617    -- 4262811 Multiperiod Accounting
105618    -----------------------------------------------------------------------------------------
105619      -- No MPA option is assigned.
105620 
105621 
105622 END IF;
105623 END IF;
105624 --
105625 
105626 --
105627 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105628    trace
105629       (p_msg      => 'END of AcctLineType_175'
105630       ,p_level    => C_LEVEL_PROCEDURE
105631       ,p_module   => l_log_module);
105632 END IF;
105633 --
105634 EXCEPTION
105635   WHEN xla_exceptions_pkg.application_exception THEN
105636       RAISE;
105637   WHEN OTHERS THEN
105638        xla_exceptions_pkg.raise_message
105639            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_175');
105640 END AcctLineType_175;
105641 --
105642 
105643 ---------------------------------------
105644 --
105645 -- PRIVATE FUNCTION
105646 --         AcctLineType_176
105647 --
105648 ---------------------------------------
105649 PROCEDURE AcctLineType_176 (
105650   p_application_id        IN NUMBER
105651  ,p_event_id              IN NUMBER
105652  ,p_calculate_acctd_flag  IN VARCHAR2
105653  ,p_calculate_g_l_flag    IN VARCHAR2
105654  ,p_actual_flag           IN OUT VARCHAR2
105655  ,p_balance_type_code     OUT VARCHAR2
105656  ,p_gain_or_loss_ref      OUT VARCHAR2
105657  
105658 --Invoice Distribution Description
105659  , p_source_1            IN VARCHAR2
105660 --Invoice Distribution Ledger Amount
105661  , p_source_21            IN NUMBER
105662 --Invoice Distribution Account
105663  , p_source_30            IN NUMBER
105664 --Invoice Distribution Type
105665  , p_source_33            IN VARCHAR2
105666  , p_source_33_meaning    IN VARCHAR2
105667 --Accounting Reversal Indicator
105668  , p_source_52            IN VARCHAR2
105669 --Distribution Link Type
105673 --Invoice Identifier
105670  , p_source_54            IN VARCHAR2
105671 --Allocation to Main Distribution Identifier
105672  , p_source_56            IN NUMBER
105674  , p_source_57            IN NUMBER
105675 --Invoice Distribution Identifier
105676  , p_source_63            IN NUMBER
105677 --Payables Encumbrance Upgrade Credit Account
105678  , p_source_64            IN NUMBER
105679 --Payables Encumbrance Upgrade Credit Amount
105680  , p_source_65            IN NUMBER
105681 --Invoice Currency Code
105682  , p_source_66            IN VARCHAR2
105683 --Payables Encumbrance Upgrade Credit Base Amount
105684  , p_source_67            IN NUMBER
105685 --Payables Encumbrance Upgrade Debit Account
105686  , p_source_68            IN NUMBER
105687 --Payables Encumbrance Upgrade Debit Amount
105688  , p_source_69            IN NUMBER
105689 --Payables Encumbrance Upgrade Debit Base Amount
105690  , p_source_70            IN NUMBER
105691 --Payables Encumbrance Upgrade Option
105692  , p_source_71            IN VARCHAR2
105693 --Invoice Distribution Amount
105694  , p_source_72            IN NUMBER
105695 --Deferred Accounting End Date
105696  , p_source_76            IN DATE
105697 --Deferred Accounting Option
105698  , p_source_77            IN VARCHAR2
105699 --Deferred Accounting Start Date
105700  , p_source_78            IN DATE
105701 --Override Accounted Amount Indicator
105702  , p_source_79            IN VARCHAR2
105703  , p_source_79_meaning    IN VARCHAR2
105704 --Invoice Supplier Identifier
105705  , p_source_80            IN NUMBER
105706 --Invoice Supplier Site Identifier
105707  , p_source_81            IN NUMBER
105708 --Third Party Type
105709  , p_source_82            IN VARCHAR2
105710 --Parent Reversal Identifier
105711  , p_source_83            IN NUMBER
105712 --Invoice Distribution Tax Line Identifier
105713  , p_source_85            IN NUMBER
105714 --Invoice Distribution Tax Distribution Identifier from Tax
105715  , p_source_86            IN NUMBER
105716 --Invoice Distribution Summary Tax Line Identifier
105717  , p_source_87            IN NUMBER
105718 --Payables Upgrade Credit Encumbrance Type Identifier
105719  , p_source_88            IN NUMBER
105720 --Payables Upgrade Debit Encumbrance Type Identifier
105721  , p_source_89            IN NUMBER
105722 --Business Flow Accounts Payable Application Identifier
105723  , p_source_90            IN NUMBER
105724 --Business Flow Invoice Distribution Type
105725  , p_source_91            IN VARCHAR2
105726 --Business Flow Invoice Entity Code
105727  , p_source_92            IN VARCHAR2
105728 --Business Flow Invoice Distribution Identifier
105729  , p_source_93            IN NUMBER
105730 --Business Flow Invoice Identifier
105731  , p_source_94            IN NUMBER
105732 --Accrue on Receipt Option
105733  , p_source_95            IN VARCHAR2
105734  , p_source_95_meaning    IN VARCHAR2
105735 --Self-Assessed Tax Flag
105736  , p_source_135            IN VARCHAR2
105737  , p_source_135_meaning    IN VARCHAR2
105738 --Invoice Exchange Date
105739  , p_source_136            IN DATE
105740 --Invoice Exchange Rate
105741  , p_source_137            IN NUMBER
105742 --Invoice Exchange Rate Type
105743  , p_source_138            IN VARCHAR2
105744 )
105745 IS
105746 
105747 l_component_type              VARCHAR2(80);
105748 l_component_code              VARCHAR2(30);
105749 l_component_type_code         VARCHAR2(1);
105750 l_component_appl_id           INTEGER;
105751 l_amb_context_code            VARCHAR2(30);
105752 l_entity_code                 VARCHAR2(30);
105753 l_event_class_code            VARCHAR2(30);
105754 l_ae_header_id                NUMBER;
105755 l_event_type_code             VARCHAR2(30);
105756 l_line_definition_code        VARCHAR2(30);
105757 l_line_definition_owner_code  VARCHAR2(1);
105758 --
105759 -- adr variables
105760 l_segment                     VARCHAR2(30);
105761 l_ccid                        NUMBER;
105762 l_adr_transaction_coa_id      NUMBER;
105763 l_adr_accounting_coa_id       NUMBER;
105764 l_adr_flexfield_segment_code  VARCHAR2(30);
105765 l_adr_flex_value_set_id       NUMBER;
105766 l_adr_value_type_code         VARCHAR2(30);
105767 l_adr_value_combination_id    NUMBER;
105768 l_adr_value_segment_code      VARCHAR2(30);
105769 
105770 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105771 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105772 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105773 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105774 
105775 -- 4262811 Variables ------------------------------------------------------------------------------------------
105776 l_entered_amt_idx             NUMBER;
105777 l_accted_amt_idx              NUMBER;
105778 l_acc_rev_flag                VARCHAR2(1);
105779 l_accrual_line_num            NUMBER;
105780 l_tmp_amt                     NUMBER;
105781 l_acc_rev_natural_side_code   VARCHAR2(1);
105782 
105783 l_num_entries                 NUMBER;
105784 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105785 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105786 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105787 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105788 l_recog_line_1                NUMBER;
105789 l_recog_line_2                NUMBER;
105790 
105791 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105795 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105792 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105793 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105794 
105796 
105797 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105798 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105799 
105800 ---------------------------------------------------------------------------------------------------------------
105801 
105802 
105803 --
105804 -- bulk performance
105805 --
105806 l_balance_type_code           VARCHAR2(1);
105807 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105808 l_log_module                  VARCHAR2(240);
105809 
105810 --
105811 -- Upgrade strategy
105812 --
105813 l_actual_upg_option           VARCHAR2(1);
105814 l_enc_upg_option           VARCHAR2(1);
105815 
105816 --
105817 BEGIN
105818 --
105819 IF g_log_enabled THEN
105820       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
105821 END IF;
105822 --
105823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105824 
105825       trace
105826          (p_msg      => 'BEGIN of AcctLineType_176'
105827          ,p_level    => C_LEVEL_PROCEDURE
105828          ,p_module   => l_log_module);
105829 
105830 END IF;
105831 --
105832 l_component_type             := 'AMB_JLT';
105833 l_component_code             := 'AP_NON_RECOV_TAX_DM';
105834 l_component_type_code        := 'S';
105835 l_component_appl_id          :=  200;
105836 l_amb_context_code           := 'DEFAULT';
105837 l_entity_code                := 'AP_INVOICES';
105838 l_event_class_code           := 'DEBIT MEMOS';
105839 l_event_type_code            := 'DEBIT MEMOS_ALL';
105840 l_line_definition_owner_code := 'S';
105841 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
105842 --
105843 l_balance_type_code          := 'A';
105844 l_segment                     := NULL;
105845 l_ccid                        := NULL;
105846 l_adr_transaction_coa_id      := NULL;
105847 l_adr_accounting_coa_id       := NULL;
105848 l_adr_flexfield_segment_code  := NULL;
105849 l_adr_flex_value_set_id       := NULL;
105850 l_adr_value_type_code         := NULL;
105851 l_adr_value_combination_id    := NULL;
105852 l_adr_value_segment_code      := NULL;
105853 
105854 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105855 l_bflow_class_code           := '';    -- 4219869 Business Flow
105856 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105857 l_budgetary_control_flag     := 'N';
105858 
105859 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105860 l_bflow_applied_to_amt       := NULL; -- 5132302
105861 l_entered_amt_idx            := NULL;          -- 4262811
105862 l_accted_amt_idx             := NULL;          -- 4262811
105863 l_acc_rev_flag               := NULL;          -- 4262811
105864 l_accrual_line_num           := NULL;          -- 4262811
105865 l_tmp_amt                    := NULL;          -- 4262811
105866 --
105867  
105868 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105869     l_balance_type_code <> 'B' THEN
105870 IF (NVL(p_source_33,'
105871 ') =  'NONREC_TAX' OR 
105872 NVL(p_source_33,'
105873 ') =  'TERV' OR 
105874 NVL(p_source_33,'
105875 ') =  'TIPV' OR 
105876 NVL(p_source_33,'
105877 ') =  'TRV') AND 
105878 NVL(p_source_95,'
105879 ') <>  'Y' AND 
105880 NVL(p_source_135,'
105881 ') <>  'Y'
105882  THEN 
105883 
105884    --
105885    XLA_AE_LINES_PKG.SetNewLine;
105886 
105887    p_balance_type_code          := l_balance_type_code;
105888    -- set the flag so later we will know whether the gain loss line needs to be created
105889    
105890    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105891      p_actual_flag :='A';
105892    END IF;
105893 
105894    --
105895    -- bulk performance
105896    --
105897    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105898                                       p_header_num   => 0); -- 4262811
105899    --
105900    -- set accounting line options
105901    --
105902    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105903            p_natural_side_code          => 'D'
105904          , p_gain_or_loss_flag          => 'N'
105905          , p_gl_transfer_mode_code      => 'S'
105906          , p_acct_entry_type_code       => 'A'
105907          , p_switch_side_flag           => 'Y'
105908          , p_merge_duplicate_code       => 'A'
105909          );
105910    --
105911    l_acc_rev_natural_side_code := 'C';  -- 4262811
105912    -- 
105913    --
105914    -- set accounting line type info
105915    --
105916    xla_ae_lines_pkg.SetAcctLineType
105917       (p_component_type             => l_component_type
105918       ,p_event_type_code            => l_event_type_code
105919       ,p_line_definition_owner_code => l_line_definition_owner_code
105920       ,p_line_definition_code       => l_line_definition_code
105921       ,p_accounting_line_code       => l_component_code
105922       ,p_accounting_line_type_code  => l_component_type_code
105923       ,p_accounting_line_appl_id    => l_component_appl_id
105924       ,p_amb_context_code           => l_amb_context_code
105925       ,p_entity_code                => l_entity_code
105929    --
105926       ,p_event_class_code           => l_event_class_code);
105927    --
105928    -- set accounting class
105930    xla_ae_lines_pkg.SetAcctClass(
105931            p_accounting_class_code  => 'NRTAX'
105932          , p_ae_header_id           => l_ae_header_id
105933          );
105934 
105935    --
105936    -- set rounding class
105937    --
105938    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105939                       'NRTAX';
105940 
105941    --
105942    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105943    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105944    --
105945    -- bulk performance
105946    --
105947    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105948 
105949    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105950       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105951 
105952    -- 4955764
105953    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105954       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105955 
105956    -- 4458381 Public Sector Enh
105957    
105958    --
105959    -- set accounting attributes for the line type
105960    --
105961    l_entered_amt_idx := 23;
105962    l_accted_amt_idx  := 28;
105963    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105964    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105965    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
105966    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
105967    l_rec_acct_attrs.array_num_value(2)  := 
105968 xla_ae_sources_pkg.GetSystemSourceNum(
105969    p_source_code           => 'XLA_EVENT_APPL_ID'
105970  , p_source_type_code      => 'Y'
105971  , p_source_application_id =>  602
105972 );
105973    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
105974    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
105975    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
105976    l_rec_acct_attrs.array_char_value(4)  := 
105977 xla_ae_sources_pkg.GetSystemSourceChar(
105978    p_source_code           => 'XLA_ENTITY_CODE'
105979  , p_source_type_code      => 'Y'
105980  , p_source_application_id =>  602
105981 );
105982    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
105983    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
105984    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
105985    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
105986    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
105987    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
105988    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105989    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
105990    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
105991    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
105992    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
105993    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
105994    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105995    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
105996    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
105997    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
105998    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
105999    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
106000    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
106001    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
106002    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
106003    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
106004    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
106005    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
106006    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
106007    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
106008    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
106009    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
106010    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
106011    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
106012    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
106013    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
106014    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
106015    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
106016    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
106017    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
106018    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
106019    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
106020    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
106021    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
106022    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
106023    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
106024    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
106025    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
106026    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
106027    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
106031    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
106028    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
106029    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
106030    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
106032    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
106033    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
106034    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
106035    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
106036    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
106037    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
106038    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
106039    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
106040    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
106041    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
106042    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
106043    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
106044    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
106045    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
106046    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
106047    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
106048    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
106049    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
106050    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
106051    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
106052    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
106053    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
106054    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
106055    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
106056    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
106057    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
106058 
106059    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106060    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106061 
106062    ---------------------------------------------------------------------------------------------------------------
106063    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106064    ---------------------------------------------------------------------------------------------------------------
106065    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106066 
106067    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106068    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106069 
106070    IF xla_accounting_cache_pkg.GetValueChar
106071          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106072          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106073    AND l_bflow_method_code = 'PRIOR_ENTRY'
106074 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106075    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106076          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106077        )
106078    THEN
106079          xla_ae_lines_pkg.BflowUpgEntry
106080            (p_business_method_code    => l_bflow_method_code
106081            ,p_business_class_code     => l_bflow_class_code
106082            ,p_balance_type            => l_balance_type_code);
106083    ELSE
106084       NULL;
106085 -- No business flow processing for business flow method of NONE.
106086    END IF;
106087 
106088    --
106089    -- call analytical criteria
106090    --
106091    
106092    --
106093    -- call description
106094    --
106095    
106096 xla_ae_lines_pkg.SetLineDescription(
106097    p_ae_header_id => l_ae_header_id
106098   ,p_description  => Description_1 (
106099      p_application_id         => p_application_id
106100    , p_ae_header_id           => l_ae_header_id 
106101 , p_source_1 => p_source_1
106102    )
106103 );
106104 
106105 
106106    --
106107    -- call ADRs
106108    -- Bug 4922099
106109    --
106110    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106111         (NVL(l_actual_upg_option, 'N') = 'O') OR
106112         (NVL(l_enc_upg_option, 'N') = 'O')
106113       )
106114    THEN
106115    NULL;
106116    --
106117    --
106118    
106119   l_ccid := AcctDerRule_33(
106120            p_application_id           => p_application_id
106121          , p_ae_header_id             => l_ae_header_id 
106122 , p_source_30 => p_source_30
106123          , x_transaction_coa_id       => l_adr_transaction_coa_id
106124          , x_accounting_coa_id        => l_adr_accounting_coa_id
106125          , x_value_type_code          => l_adr_value_type_code
106126          , p_side                     => 'NA'
106127    );
106128 
106129    xla_ae_lines_pkg.set_ccid(
106130     p_code_combination_id          => l_ccid
106131   , p_value_type_code              => l_adr_value_type_code
106132   , p_transaction_coa_id           => l_adr_transaction_coa_id
106133   , p_accounting_coa_id            => l_adr_accounting_coa_id
106134   , p_adr_code                     => 'AP_INVOICE_DIST'
106135   , p_adr_type_code                => 'S'
106136   , p_component_type               => l_component_type
106137   , p_component_code               => l_component_code
106141   , p_side                         => 'NA'
106138   , p_component_type_code          => l_component_type_code
106139   , p_component_appl_id            => l_component_appl_id
106140   , p_amb_context_code             => l_amb_context_code
106142   );
106143 
106144 
106145    --
106146    --
106147    END IF;
106148    --
106149    -- Bug 4922099
106150    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106151           (NVL(l_enc_upg_option, 'N') = 'O')
106152         ) AND
106153         (l_bflow_method_code = 'PRIOR_ENTRY')
106154       )
106155    THEN
106156       IF
106157       --
106158       1 = 2
106159       --
106160       THEN
106161       xla_accounting_err_pkg.build_message
106162                                     (p_appli_s_name            => 'XLA'
106163                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106164                                     ,p_token_1                 => 'LINE_NUMBER'
106165                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106166                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106167                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106168                                                                              l_component_type
106169                                                                             ,l_component_code
106170                                                                             ,l_component_type_code
106171                                                                             ,l_component_appl_id
106172                                                                             ,l_amb_context_code
106173                                                                             ,l_entity_code
106174                                                                             ,l_event_class_code
106175                                                                            )
106176                                     ,p_token_3                 => 'OWNER'
106177                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106178                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106179                                                                           ,p_lookup_code    => l_component_type_code
106180                                                                          )
106181                                     ,p_token_4                 => 'PRODUCT_NAME'
106182                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106183                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106184                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106185                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106186                                     ,p_ae_header_id            =>  NULL
106187                                        );
106188 
106189         IF (C_LEVEL_ERROR>= g_log_level) THEN
106190                  trace
106191                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106192                       ,p_level    => C_LEVEL_ERROR
106193                       ,p_module   => l_log_module);
106194         END IF;
106195       END IF;
106196    END IF;
106197    --
106198    --
106199    ------------------------------------------------------------------------------------------------
106200    -- 4219869 Business Flow
106201    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106202    -- Prior Entry.  Currently, the following code is always generated.
106203    ------------------------------------------------------------------------------------------------
106204    XLA_AE_LINES_PKG.ValidateCurrentLine;
106205 
106206    ------------------------------------------------------------------------------------
106207    -- 4219869 Business Flow
106208    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106209    ------------------------------------------------------------------------------------
106210    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106211 
106212    ----------------------------------------------------------------------------------
106213    -- 4219869 Business Flow
106214    -- Update journal entry status -- Need to generate this within IF <condition>
106215    ----------------------------------------------------------------------------------
106216    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106217          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106218          ,p_balance_type_code => l_balance_type_code
106219          );
106220 
106221    -------------------------------------------------------------------------------------------
106222    -- 4262811 - Generate the Accrual Reversal lines
106223    -------------------------------------------------------------------------------------------
106224    BEGIN
106225       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106226                               (g_array_event(p_event_id).array_value_num('header_index'));
106227       IF l_acc_rev_flag IS NULL THEN
106228          l_acc_rev_flag := 'N';
106229       END IF;
106230    EXCEPTION
106231       WHEN OTHERS THEN
106232          l_acc_rev_flag := 'N';
106233    END;
106234    --
106235    IF (l_acc_rev_flag = 'Y') THEN
106236 
106240        ------------------------------------------------------------------------------------------
106237        -- 4645092  ------------------------------------------------------------------------------
106238        -- To allow MPA report to determine if it should generate report process
106239        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106241 
106242        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106243        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106244    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106245    -- call ADRs
106246    -- Bug 4922099
106247    --
106248    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106249         (NVL(l_actual_upg_option, 'N') = 'O') OR
106250         (NVL(l_enc_upg_option, 'N') = 'O')
106251       )
106252    THEN
106253    NULL;
106254    --
106255    --
106256    
106257   l_ccid := AcctDerRule_33(
106258            p_application_id           => p_application_id
106259          , p_ae_header_id             => l_ae_header_id 
106260 , p_source_30 => p_source_30
106261          , x_transaction_coa_id       => l_adr_transaction_coa_id
106262          , x_accounting_coa_id        => l_adr_accounting_coa_id
106263          , x_value_type_code          => l_adr_value_type_code
106264          , p_side                     => 'NA'
106265    );
106266 
106267    xla_ae_lines_pkg.set_ccid(
106268     p_code_combination_id          => l_ccid
106269   , p_value_type_code              => l_adr_value_type_code
106270   , p_transaction_coa_id           => l_adr_transaction_coa_id
106271   , p_accounting_coa_id            => l_adr_accounting_coa_id
106272   , p_adr_code                     => 'AP_INVOICE_DIST'
106273   , p_adr_type_code                => 'S'
106274   , p_component_type               => l_component_type
106275   , p_component_code               => l_component_code
106276   , p_component_type_code          => l_component_type_code
106277   , p_component_appl_id            => l_component_appl_id
106278   , p_amb_context_code             => l_amb_context_code
106279   , p_side                         => 'NA'
106280   );
106281 
106282 
106283    --
106284    --
106285    END IF;
106286 
106287        --
106288        -- Update the line information that should be overwritten
106289        --
106290        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106291                                          p_header_num   => 1);
106292        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106293 
106294        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106295 
106296        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106297           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106298        END IF;
106299 
106300       --
106301       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106302       --
106303       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106304           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106305       ELSE
106306           ---------------------------------------------------------------------------------------------------
106307           -- 4262811a Switch Sign
106308           ---------------------------------------------------------------------------------------------------
106309           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106310           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106311                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106312           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106313                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106314           -- 5132302
106315           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106316                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106317 
106318       END IF;
106319 
106320       -- 4955764
106321       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106322       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106323 
106324 
106325       XLA_AE_LINES_PKG.ValidateCurrentLine;
106326       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106327 
106328       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106329                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106330                ,p_balance_type_code => l_balance_type_code);
106331 
106332    END IF;
106333 
106334    -----------------------------------------------------------------------------------------
106335    -- 4262811 Multiperiod Accounting
106336    -----------------------------------------------------------------------------------------
106337      -- No MPA option is assigned.
106338 
106339 
106340 END IF;
106341 END IF;
106342 --
106343 
106344 --
106345 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106346    trace
106347       (p_msg      => 'END of AcctLineType_176'
106348       ,p_level    => C_LEVEL_PROCEDURE
106349       ,p_module   => l_log_module);
106353   WHEN xla_exceptions_pkg.application_exception THEN
106350 END IF;
106351 --
106352 EXCEPTION
106354       RAISE;
106355   WHEN OTHERS THEN
106356        xla_exceptions_pkg.raise_message
106357            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_176');
106358 END AcctLineType_176;
106359 --
106360 
106361 ---------------------------------------
106362 --
106363 -- PRIVATE FUNCTION
106364 --         AcctLineType_177
106365 --
106366 ---------------------------------------
106367 PROCEDURE AcctLineType_177 (
106368   p_application_id        IN NUMBER
106369  ,p_event_id              IN NUMBER
106370  ,p_calculate_acctd_flag  IN VARCHAR2
106371  ,p_calculate_g_l_flag    IN VARCHAR2
106372  ,p_actual_flag           IN OUT VARCHAR2
106373  ,p_balance_type_code     OUT VARCHAR2
106374  ,p_gain_or_loss_ref      OUT VARCHAR2
106375  
106376 --Invoice Distribution Description
106377  , p_source_1            IN VARCHAR2
106378 --Invoice Distribution Ledger Amount
106379  , p_source_21            IN NUMBER
106380 --Invoice Distribution Account
106381  , p_source_30            IN NUMBER
106382 --Invoice Distribution Type
106383  , p_source_33            IN VARCHAR2
106384  , p_source_33_meaning    IN VARCHAR2
106385 --Accounting Reversal Indicator
106386  , p_source_52            IN VARCHAR2
106387 --Distribution Link Type
106388  , p_source_54            IN VARCHAR2
106389 --Allocation to Main Distribution Identifier
106390  , p_source_56            IN NUMBER
106391 --Invoice Identifier
106392  , p_source_57            IN NUMBER
106393 --Invoice Distribution Identifier
106394  , p_source_63            IN NUMBER
106395 --Payables Encumbrance Upgrade Credit Account
106396  , p_source_64            IN NUMBER
106397 --Payables Encumbrance Upgrade Credit Amount
106398  , p_source_65            IN NUMBER
106399 --Invoice Currency Code
106400  , p_source_66            IN VARCHAR2
106401 --Payables Encumbrance Upgrade Credit Base Amount
106402  , p_source_67            IN NUMBER
106403 --Payables Encumbrance Upgrade Debit Account
106404  , p_source_68            IN NUMBER
106405 --Payables Encumbrance Upgrade Debit Amount
106406  , p_source_69            IN NUMBER
106407 --Payables Encumbrance Upgrade Debit Base Amount
106408  , p_source_70            IN NUMBER
106409 --Payables Encumbrance Upgrade Option
106410  , p_source_71            IN VARCHAR2
106411 --Invoice Distribution Amount
106412  , p_source_72            IN NUMBER
106413 --Deferred Accounting End Date
106414  , p_source_76            IN DATE
106415 --Deferred Accounting Option
106416  , p_source_77            IN VARCHAR2
106417 --Deferred Accounting Start Date
106418  , p_source_78            IN DATE
106419 --Override Accounted Amount Indicator
106420  , p_source_79            IN VARCHAR2
106421  , p_source_79_meaning    IN VARCHAR2
106422 --Invoice Supplier Identifier
106423  , p_source_80            IN NUMBER
106424 --Invoice Supplier Site Identifier
106425  , p_source_81            IN NUMBER
106426 --Third Party Type
106427  , p_source_82            IN VARCHAR2
106428 --Parent Reversal Identifier
106429  , p_source_83            IN NUMBER
106430 --Invoice Distribution Statistical Amount
106431  , p_source_84            IN NUMBER
106432 --Invoice Distribution Tax Line Identifier
106433  , p_source_85            IN NUMBER
106434 --Invoice Distribution Tax Distribution Identifier from Tax
106435  , p_source_86            IN NUMBER
106436 --Invoice Distribution Summary Tax Line Identifier
106437  , p_source_87            IN NUMBER
106438 --Payables Upgrade Credit Encumbrance Type Identifier
106439  , p_source_88            IN NUMBER
106440 --Payables Upgrade Debit Encumbrance Type Identifier
106441  , p_source_89            IN NUMBER
106442 --Business Flow Accounts Payable Application Identifier
106443  , p_source_90            IN NUMBER
106444 --Business Flow Invoice Distribution Type
106445  , p_source_91            IN VARCHAR2
106446 --Business Flow Invoice Entity Code
106447  , p_source_92            IN VARCHAR2
106448 --Business Flow Invoice Distribution Identifier
106449  , p_source_93            IN NUMBER
106450 --Business Flow Invoice Identifier
106451  , p_source_94            IN NUMBER
106452 --Accrue on Receipt Option
106453  , p_source_95            IN VARCHAR2
106454  , p_source_95_meaning    IN VARCHAR2
106455 --Self-Assessed Tax Flag
106456  , p_source_135            IN VARCHAR2
106457  , p_source_135_meaning    IN VARCHAR2
106458 --Invoice Exchange Date
106459  , p_source_136            IN DATE
106460 --Invoice Exchange Rate
106461  , p_source_137            IN NUMBER
106462 --Invoice Exchange Rate Type
106463  , p_source_138            IN VARCHAR2
106464 )
106465 IS
106466 
106467 l_component_type              VARCHAR2(80);
106468 l_component_code              VARCHAR2(30);
106469 l_component_type_code         VARCHAR2(1);
106470 l_component_appl_id           INTEGER;
106471 l_amb_context_code            VARCHAR2(30);
106472 l_entity_code                 VARCHAR2(30);
106473 l_event_class_code            VARCHAR2(30);
106474 l_ae_header_id                NUMBER;
106475 l_event_type_code             VARCHAR2(30);
106476 l_line_definition_code        VARCHAR2(30);
106477 l_line_definition_owner_code  VARCHAR2(1);
106478 --
106479 -- adr variables
106480 l_segment                     VARCHAR2(30);
106481 l_ccid                        NUMBER;
106482 l_adr_transaction_coa_id      NUMBER;
106483 l_adr_accounting_coa_id       NUMBER;
106484 l_adr_flexfield_segment_code  VARCHAR2(30);
106488 l_adr_value_segment_code      VARCHAR2(30);
106485 l_adr_flex_value_set_id       NUMBER;
106486 l_adr_value_type_code         VARCHAR2(30);
106487 l_adr_value_combination_id    NUMBER;
106489 
106490 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106491 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106492 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106493 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106494 
106495 -- 4262811 Variables ------------------------------------------------------------------------------------------
106496 l_entered_amt_idx             NUMBER;
106497 l_accted_amt_idx              NUMBER;
106498 l_acc_rev_flag                VARCHAR2(1);
106499 l_accrual_line_num            NUMBER;
106500 l_tmp_amt                     NUMBER;
106501 l_acc_rev_natural_side_code   VARCHAR2(1);
106502 
106503 l_num_entries                 NUMBER;
106504 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106505 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106506 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106507 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106508 l_recog_line_1                NUMBER;
106509 l_recog_line_2                NUMBER;
106510 
106511 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106512 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106513 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106514 
106515 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106516 
106517 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106518 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106519 
106520 ---------------------------------------------------------------------------------------------------------------
106521 
106522 
106523 --
106524 -- bulk performance
106525 --
106526 l_balance_type_code           VARCHAR2(1);
106527 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106528 l_log_module                  VARCHAR2(240);
106529 
106530 --
106531 -- Upgrade strategy
106532 --
106533 l_actual_upg_option           VARCHAR2(1);
106534 l_enc_upg_option           VARCHAR2(1);
106535 
106536 --
106537 BEGIN
106538 --
106539 IF g_log_enabled THEN
106540       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
106541 END IF;
106542 --
106543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106544 
106545       trace
106546          (p_msg      => 'BEGIN of AcctLineType_177'
106547          ,p_level    => C_LEVEL_PROCEDURE
106548          ,p_module   => l_log_module);
106549 
106550 END IF;
106551 --
106552 l_component_type             := 'AMB_JLT';
106553 l_component_code             := 'AP_NON_RECOV_TAX_INV';
106554 l_component_type_code        := 'S';
106555 l_component_appl_id          :=  200;
106556 l_amb_context_code           := 'DEFAULT';
106557 l_entity_code                := 'AP_INVOICES';
106558 l_event_class_code           := 'INVOICES';
106559 l_event_type_code            := 'INVOICES_ALL';
106560 l_line_definition_owner_code := 'S';
106561 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
106562 --
106563 l_balance_type_code          := 'A';
106564 l_segment                     := NULL;
106565 l_ccid                        := NULL;
106566 l_adr_transaction_coa_id      := NULL;
106567 l_adr_accounting_coa_id       := NULL;
106568 l_adr_flexfield_segment_code  := NULL;
106569 l_adr_flex_value_set_id       := NULL;
106570 l_adr_value_type_code         := NULL;
106571 l_adr_value_combination_id    := NULL;
106572 l_adr_value_segment_code      := NULL;
106573 
106574 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
106575 l_bflow_class_code           := '';    -- 4219869 Business Flow
106576 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106577 l_budgetary_control_flag     := 'N';
106578 
106579 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106580 l_bflow_applied_to_amt       := NULL; -- 5132302
106581 l_entered_amt_idx            := NULL;          -- 4262811
106582 l_accted_amt_idx             := NULL;          -- 4262811
106583 l_acc_rev_flag               := NULL;          -- 4262811
106584 l_accrual_line_num           := NULL;          -- 4262811
106585 l_tmp_amt                    := NULL;          -- 4262811
106586 --
106587  
106588 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106589     l_balance_type_code <> 'B' THEN
106590 IF (NVL(p_source_33,'
106591 ') =  'NONREC_TAX' OR 
106592 NVL(p_source_33,'
106593 ') =  'TERV' OR 
106594 NVL(p_source_33,'
106595 ') =  'TIPV' OR 
106596 NVL(p_source_33,'
106597 ') =  'TRV') AND 
106598 NVL(p_source_95,'
106599 ') <>  'Y' AND 
106600 NVL(p_source_135,'
106601 ') <>  'Y'
106602  THEN 
106603 
106604    --
106605    XLA_AE_LINES_PKG.SetNewLine;
106606 
106607    p_balance_type_code          := l_balance_type_code;
106608    -- set the flag so later we will know whether the gain loss line needs to be created
106609    
106610    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106611      p_actual_flag :='A';
106612    END IF;
106613 
106614    --
106615    -- bulk performance
106616    --
106617    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106621    --
106618                                       p_header_num   => 0); -- 4262811
106619    --
106620    -- set accounting line options
106622    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106623            p_natural_side_code          => 'D'
106624          , p_gain_or_loss_flag          => 'N'
106625          , p_gl_transfer_mode_code      => 'S'
106626          , p_acct_entry_type_code       => 'A'
106627          , p_switch_side_flag           => 'Y'
106628          , p_merge_duplicate_code       => 'W'
106629          );
106630    --
106631    l_acc_rev_natural_side_code := 'C';  -- 4262811
106632    -- 
106633    --
106634    -- set accounting line type info
106635    --
106636    xla_ae_lines_pkg.SetAcctLineType
106637       (p_component_type             => l_component_type
106638       ,p_event_type_code            => l_event_type_code
106639       ,p_line_definition_owner_code => l_line_definition_owner_code
106640       ,p_line_definition_code       => l_line_definition_code
106641       ,p_accounting_line_code       => l_component_code
106642       ,p_accounting_line_type_code  => l_component_type_code
106643       ,p_accounting_line_appl_id    => l_component_appl_id
106644       ,p_amb_context_code           => l_amb_context_code
106645       ,p_entity_code                => l_entity_code
106646       ,p_event_class_code           => l_event_class_code);
106647    --
106648    -- set accounting class
106649    --
106650    xla_ae_lines_pkg.SetAcctClass(
106651            p_accounting_class_code  => 'NRTAX'
106652          , p_ae_header_id           => l_ae_header_id
106653          );
106654 
106655    --
106656    -- set rounding class
106657    --
106658    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106659                       'NRTAX';
106660 
106661    --
106662    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106663    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106664    --
106665    -- bulk performance
106666    --
106667    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106668 
106669    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106670       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106671 
106672    -- 4955764
106673    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106674       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106675 
106676    -- 4458381 Public Sector Enh
106677    
106678    --
106679    -- set accounting attributes for the line type
106680    --
106681    l_entered_amt_idx := 24;
106682    l_accted_amt_idx  := 29;
106683    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
106684    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106685    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
106686    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
106687    l_rec_acct_attrs.array_num_value(2)  := 
106688 xla_ae_sources_pkg.GetSystemSourceNum(
106689    p_source_code           => 'XLA_EVENT_APPL_ID'
106690  , p_source_type_code      => 'Y'
106691  , p_source_application_id =>  602
106692 );
106693    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
106694    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
106695    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
106696    l_rec_acct_attrs.array_char_value(4)  := 
106697 xla_ae_sources_pkg.GetSystemSourceChar(
106698    p_source_code           => 'XLA_ENTITY_CODE'
106699  , p_source_type_code      => 'Y'
106700  , p_source_application_id =>  602
106701 );
106702    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
106703    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
106704    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
106705    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
106706    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
106707    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
106708    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
106709    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
106710    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106711    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
106712    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
106713    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
106714    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
106715    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
106716    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106717    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
106718    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
106719    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
106720    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
106721    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
106722    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
106723    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
106724    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
106725    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
106726    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
106727    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
106731    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
106728    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
106729    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
106730    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
106732    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
106733    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
106734    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
106735    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
106736    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
106737    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
106738    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
106739    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
106740    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
106741    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
106742    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
106743    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
106744    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
106745    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
106746    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
106747    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
106748    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
106749    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
106750    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
106751    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
106752    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
106753    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
106754    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
106755    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
106756    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
106757    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
106758    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
106759    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
106760    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
106761    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
106762    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
106763    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
106764    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
106765    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
106766    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
106767    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
106768    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
106769    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
106770    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
106771    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
106772    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
106773    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
106774    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
106775    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
106776    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
106777    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
106778    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
106779    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
106780    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
106781    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
106782 
106783    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106784    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106785 
106786    ---------------------------------------------------------------------------------------------------------------
106787    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106788    ---------------------------------------------------------------------------------------------------------------
106789    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106790 
106791    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106792    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106793 
106794    IF xla_accounting_cache_pkg.GetValueChar
106795          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106796          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106797    AND l_bflow_method_code = 'PRIOR_ENTRY'
106798 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106799    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106800          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106801        )
106802    THEN
106803          xla_ae_lines_pkg.BflowUpgEntry
106804            (p_business_method_code    => l_bflow_method_code
106805            ,p_business_class_code     => l_bflow_class_code
106806            ,p_balance_type            => l_balance_type_code);
106807    ELSE
106808       NULL;
106809 -- No business flow processing for business flow method of NONE.
106810    END IF;
106811 
106812    --
106813    -- call analytical criteria
106814    --
106815    
106816    --
106817    -- call description
106818    --
106819    
106820 xla_ae_lines_pkg.SetLineDescription(
106821    p_ae_header_id => l_ae_header_id
106822   ,p_description  => Description_1 (
106826    )
106823      p_application_id         => p_application_id
106824    , p_ae_header_id           => l_ae_header_id 
106825 , p_source_1 => p_source_1
106827 );
106828 
106829 
106830    --
106831    -- call ADRs
106832    -- Bug 4922099
106833    --
106834    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106835         (NVL(l_actual_upg_option, 'N') = 'O') OR
106836         (NVL(l_enc_upg_option, 'N') = 'O')
106837       )
106838    THEN
106839    NULL;
106840    --
106841    --
106842    
106843   l_ccid := AcctDerRule_33(
106844            p_application_id           => p_application_id
106845          , p_ae_header_id             => l_ae_header_id 
106846 , p_source_30 => p_source_30
106847          , x_transaction_coa_id       => l_adr_transaction_coa_id
106848          , x_accounting_coa_id        => l_adr_accounting_coa_id
106849          , x_value_type_code          => l_adr_value_type_code
106850          , p_side                     => 'NA'
106851    );
106852 
106853    xla_ae_lines_pkg.set_ccid(
106854     p_code_combination_id          => l_ccid
106855   , p_value_type_code              => l_adr_value_type_code
106856   , p_transaction_coa_id           => l_adr_transaction_coa_id
106857   , p_accounting_coa_id            => l_adr_accounting_coa_id
106858   , p_adr_code                     => 'AP_INVOICE_DIST'
106859   , p_adr_type_code                => 'S'
106860   , p_component_type               => l_component_type
106861   , p_component_code               => l_component_code
106862   , p_component_type_code          => l_component_type_code
106863   , p_component_appl_id            => l_component_appl_id
106864   , p_amb_context_code             => l_amb_context_code
106865   , p_side                         => 'NA'
106866   );
106867 
106868 
106869    --
106870    --
106871    END IF;
106872    --
106873    -- Bug 4922099
106874    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106875           (NVL(l_enc_upg_option, 'N') = 'O')
106876         ) AND
106877         (l_bflow_method_code = 'PRIOR_ENTRY')
106878       )
106879    THEN
106880       IF
106881       --
106882       1 = 2
106883       --
106884       THEN
106885       xla_accounting_err_pkg.build_message
106886                                     (p_appli_s_name            => 'XLA'
106887                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106888                                     ,p_token_1                 => 'LINE_NUMBER'
106889                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106890                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106891                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106892                                                                              l_component_type
106893                                                                             ,l_component_code
106894                                                                             ,l_component_type_code
106895                                                                             ,l_component_appl_id
106896                                                                             ,l_amb_context_code
106897                                                                             ,l_entity_code
106898                                                                             ,l_event_class_code
106899                                                                            )
106900                                     ,p_token_3                 => 'OWNER'
106901                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106902                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106903                                                                           ,p_lookup_code    => l_component_type_code
106904                                                                          )
106905                                     ,p_token_4                 => 'PRODUCT_NAME'
106906                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106907                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106908                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106909                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106910                                     ,p_ae_header_id            =>  NULL
106911                                        );
106912 
106913         IF (C_LEVEL_ERROR>= g_log_level) THEN
106914                  trace
106915                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106916                       ,p_level    => C_LEVEL_ERROR
106917                       ,p_module   => l_log_module);
106918         END IF;
106919       END IF;
106920    END IF;
106921    --
106922    --
106923    ------------------------------------------------------------------------------------------------
106924    -- 4219869 Business Flow
106925    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106926    -- Prior Entry.  Currently, the following code is always generated.
106927    ------------------------------------------------------------------------------------------------
106928    XLA_AE_LINES_PKG.ValidateCurrentLine;
106929 
106933    ------------------------------------------------------------------------------------
106930    ------------------------------------------------------------------------------------
106931    -- 4219869 Business Flow
106932    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106934    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106935 
106936    ----------------------------------------------------------------------------------
106937    -- 4219869 Business Flow
106938    -- Update journal entry status -- Need to generate this within IF <condition>
106939    ----------------------------------------------------------------------------------
106940    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106941          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106942          ,p_balance_type_code => l_balance_type_code
106943          );
106944 
106945    -------------------------------------------------------------------------------------------
106946    -- 4262811 - Generate the Accrual Reversal lines
106947    -------------------------------------------------------------------------------------------
106948    BEGIN
106949       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106950                               (g_array_event(p_event_id).array_value_num('header_index'));
106951       IF l_acc_rev_flag IS NULL THEN
106952          l_acc_rev_flag := 'N';
106953       END IF;
106954    EXCEPTION
106955       WHEN OTHERS THEN
106956          l_acc_rev_flag := 'N';
106957    END;
106958    --
106959    IF (l_acc_rev_flag = 'Y') THEN
106960 
106961        -- 4645092  ------------------------------------------------------------------------------
106962        -- To allow MPA report to determine if it should generate report process
106963        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106964        ------------------------------------------------------------------------------------------
106965 
106966        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106967        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106968    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106969    -- call ADRs
106970    -- Bug 4922099
106971    --
106972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106973         (NVL(l_actual_upg_option, 'N') = 'O') OR
106974         (NVL(l_enc_upg_option, 'N') = 'O')
106975       )
106976    THEN
106977    NULL;
106978    --
106979    --
106980    
106981   l_ccid := AcctDerRule_33(
106982            p_application_id           => p_application_id
106983          , p_ae_header_id             => l_ae_header_id 
106984 , p_source_30 => p_source_30
106985          , x_transaction_coa_id       => l_adr_transaction_coa_id
106986          , x_accounting_coa_id        => l_adr_accounting_coa_id
106987          , x_value_type_code          => l_adr_value_type_code
106988          , p_side                     => 'NA'
106989    );
106990 
106991    xla_ae_lines_pkg.set_ccid(
106992     p_code_combination_id          => l_ccid
106993   , p_value_type_code              => l_adr_value_type_code
106994   , p_transaction_coa_id           => l_adr_transaction_coa_id
106995   , p_accounting_coa_id            => l_adr_accounting_coa_id
106996   , p_adr_code                     => 'AP_INVOICE_DIST'
106997   , p_adr_type_code                => 'S'
106998   , p_component_type               => l_component_type
106999   , p_component_code               => l_component_code
107000   , p_component_type_code          => l_component_type_code
107001   , p_component_appl_id            => l_component_appl_id
107002   , p_amb_context_code             => l_amb_context_code
107003   , p_side                         => 'NA'
107004   );
107005 
107006 
107007    --
107008    --
107009    END IF;
107010 
107011        --
107012        -- Update the line information that should be overwritten
107013        --
107014        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107015                                          p_header_num   => 1);
107016        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107017 
107018        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107019 
107020        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107021           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107022        END IF;
107023 
107024       --
107025       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107026       --
107027       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107028           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107029       ELSE
107030           ---------------------------------------------------------------------------------------------------
107031           -- 4262811a Switch Sign
107032           ---------------------------------------------------------------------------------------------------
107033           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107034           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107035                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107036           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107040                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107037                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107038           -- 5132302
107039           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107041 
107042       END IF;
107043 
107044       -- 4955764
107045       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107046       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107047 
107048 
107049       XLA_AE_LINES_PKG.ValidateCurrentLine;
107050       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107051 
107052       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107053                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107054                ,p_balance_type_code => l_balance_type_code);
107055 
107056    END IF;
107057 
107058    -----------------------------------------------------------------------------------------
107059    -- 4262811 Multiperiod Accounting
107060    -----------------------------------------------------------------------------------------
107061      -- No MPA option is assigned.
107062 
107063 
107064 END IF;
107065 END IF;
107066 --
107067 
107068 --
107069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107070    trace
107071       (p_msg      => 'END of AcctLineType_177'
107072       ,p_level    => C_LEVEL_PROCEDURE
107073       ,p_module   => l_log_module);
107074 END IF;
107075 --
107076 EXCEPTION
107077   WHEN xla_exceptions_pkg.application_exception THEN
107078       RAISE;
107079   WHEN OTHERS THEN
107080        xla_exceptions_pkg.raise_message
107081            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_177');
107082 END AcctLineType_177;
107083 --
107084 
107085 ---------------------------------------
107086 --
107087 -- PRIVATE FUNCTION
107088 --         AcctLineType_178
107089 --
107090 ---------------------------------------
107091 PROCEDURE AcctLineType_178 (
107092   p_application_id        IN NUMBER
107093  ,p_event_id              IN NUMBER
107094  ,p_calculate_acctd_flag  IN VARCHAR2
107095  ,p_calculate_g_l_flag    IN VARCHAR2
107096  ,p_actual_flag           IN OUT VARCHAR2
107097  ,p_balance_type_code     OUT VARCHAR2
107098  ,p_gain_or_loss_ref      OUT VARCHAR2
107099  
107100 --Invoice Distribution Description
107101  , p_source_1            IN VARCHAR2
107102 --Invoice Distribution Ledger Amount
107103  , p_source_21            IN NUMBER
107104 --Invoice Distribution Account
107105  , p_source_30            IN NUMBER
107106 --Invoice Distribution Type
107107  , p_source_33            IN VARCHAR2
107108  , p_source_33_meaning    IN VARCHAR2
107109 --Accounting Reversal Indicator
107110  , p_source_52            IN VARCHAR2
107111 --Distribution Link Type
107112  , p_source_54            IN VARCHAR2
107113 --Allocation to Main Distribution Identifier
107114  , p_source_56            IN NUMBER
107115 --Invoice Identifier
107116  , p_source_57            IN NUMBER
107117 --Invoice Distribution Identifier
107118  , p_source_63            IN NUMBER
107119 --Payables Encumbrance Upgrade Credit Account
107120  , p_source_64            IN NUMBER
107121 --Payables Encumbrance Upgrade Credit Amount
107122  , p_source_65            IN NUMBER
107123 --Invoice Currency Code
107124  , p_source_66            IN VARCHAR2
107125 --Payables Encumbrance Upgrade Credit Base Amount
107126  , p_source_67            IN NUMBER
107127 --Payables Encumbrance Upgrade Debit Account
107128  , p_source_68            IN NUMBER
107129 --Payables Encumbrance Upgrade Debit Amount
107130  , p_source_69            IN NUMBER
107131 --Payables Encumbrance Upgrade Debit Base Amount
107132  , p_source_70            IN NUMBER
107133 --Payables Encumbrance Upgrade Option
107134  , p_source_71            IN VARCHAR2
107135 --Invoice Distribution Amount
107136  , p_source_72            IN NUMBER
107137 --Deferred Accounting End Date
107138  , p_source_76            IN DATE
107139 --Deferred Accounting Option
107140  , p_source_77            IN VARCHAR2
107141 --Deferred Accounting Start Date
107142  , p_source_78            IN DATE
107143 --Override Accounted Amount Indicator
107144  , p_source_79            IN VARCHAR2
107145  , p_source_79_meaning    IN VARCHAR2
107146 --Invoice Supplier Identifier
107147  , p_source_80            IN NUMBER
107148 --Invoice Supplier Site Identifier
107149  , p_source_81            IN NUMBER
107150 --Third Party Type
107151  , p_source_82            IN VARCHAR2
107152 --Parent Reversal Identifier
107153  , p_source_83            IN NUMBER
107154 --Invoice Distribution Statistical Amount
107155  , p_source_84            IN NUMBER
107156 --Invoice Distribution Tax Line Identifier
107157  , p_source_85            IN NUMBER
107158 --Invoice Distribution Tax Distribution Identifier from Tax
107159  , p_source_86            IN NUMBER
107160 --Invoice Distribution Summary Tax Line Identifier
107161  , p_source_87            IN NUMBER
107162 --Payables Upgrade Credit Encumbrance Type Identifier
107163  , p_source_88            IN NUMBER
107164 --Payables Upgrade Debit Encumbrance Type Identifier
107165  , p_source_89            IN NUMBER
107166 --Business Flow Accounts Payable Application Identifier
107167  , p_source_90            IN NUMBER
107168 --Business Flow Invoice Distribution Type
107169  , p_source_91            IN VARCHAR2
107170 --Business Flow Invoice Entity Code
107174 --Business Flow Invoice Identifier
107171  , p_source_92            IN VARCHAR2
107172 --Business Flow Invoice Distribution Identifier
107173  , p_source_93            IN NUMBER
107175  , p_source_94            IN NUMBER
107176 --Accrue on Receipt Option
107177  , p_source_95            IN VARCHAR2
107178  , p_source_95_meaning    IN VARCHAR2
107179 --Self-Assessed Tax Flag
107180  , p_source_135            IN VARCHAR2
107181  , p_source_135_meaning    IN VARCHAR2
107182 --Invoice Exchange Date
107183  , p_source_136            IN DATE
107184 --Invoice Exchange Rate
107185  , p_source_137            IN NUMBER
107186 --Invoice Exchange Rate Type
107187  , p_source_138            IN VARCHAR2
107188 )
107189 IS
107190 
107191 l_component_type              VARCHAR2(80);
107192 l_component_code              VARCHAR2(30);
107193 l_component_type_code         VARCHAR2(1);
107194 l_component_appl_id           INTEGER;
107195 l_amb_context_code            VARCHAR2(30);
107196 l_entity_code                 VARCHAR2(30);
107197 l_event_class_code            VARCHAR2(30);
107198 l_ae_header_id                NUMBER;
107199 l_event_type_code             VARCHAR2(30);
107200 l_line_definition_code        VARCHAR2(30);
107201 l_line_definition_owner_code  VARCHAR2(1);
107202 --
107203 -- adr variables
107204 l_segment                     VARCHAR2(30);
107205 l_ccid                        NUMBER;
107206 l_adr_transaction_coa_id      NUMBER;
107207 l_adr_accounting_coa_id       NUMBER;
107208 l_adr_flexfield_segment_code  VARCHAR2(30);
107209 l_adr_flex_value_set_id       NUMBER;
107210 l_adr_value_type_code         VARCHAR2(30);
107211 l_adr_value_combination_id    NUMBER;
107212 l_adr_value_segment_code      VARCHAR2(30);
107213 
107214 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107215 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107216 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107217 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107218 
107219 -- 4262811 Variables ------------------------------------------------------------------------------------------
107220 l_entered_amt_idx             NUMBER;
107221 l_accted_amt_idx              NUMBER;
107222 l_acc_rev_flag                VARCHAR2(1);
107223 l_accrual_line_num            NUMBER;
107224 l_tmp_amt                     NUMBER;
107225 l_acc_rev_natural_side_code   VARCHAR2(1);
107226 
107227 l_num_entries                 NUMBER;
107228 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107229 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107230 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107231 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107232 l_recog_line_1                NUMBER;
107233 l_recog_line_2                NUMBER;
107234 
107235 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107236 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107237 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107238 
107239 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107240 
107241 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107242 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107243 
107244 ---------------------------------------------------------------------------------------------------------------
107245 
107246 
107247 --
107248 -- bulk performance
107249 --
107250 l_balance_type_code           VARCHAR2(1);
107251 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107252 l_log_module                  VARCHAR2(240);
107253 
107254 --
107255 -- Upgrade strategy
107256 --
107257 l_actual_upg_option           VARCHAR2(1);
107258 l_enc_upg_option           VARCHAR2(1);
107259 
107260 --
107261 BEGIN
107262 --
107263 IF g_log_enabled THEN
107264       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
107265 END IF;
107266 --
107267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107268 
107269       trace
107270          (p_msg      => 'BEGIN of AcctLineType_178'
107271          ,p_level    => C_LEVEL_PROCEDURE
107272          ,p_module   => l_log_module);
107273 
107274 END IF;
107275 --
107276 l_component_type             := 'AMB_JLT';
107277 l_component_code             := 'AP_NON_RECOV_TAX_PREPAY';
107278 l_component_type_code        := 'S';
107279 l_component_appl_id          :=  200;
107280 l_amb_context_code           := 'DEFAULT';
107281 l_entity_code                := 'AP_INVOICES';
107282 l_event_class_code           := 'PREPAYMENTS';
107283 l_event_type_code            := 'PREPAYMENTS_ALL';
107284 l_line_definition_owner_code := 'S';
107285 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
107286 --
107287 l_balance_type_code          := 'A';
107288 l_segment                     := NULL;
107289 l_ccid                        := NULL;
107290 l_adr_transaction_coa_id      := NULL;
107291 l_adr_accounting_coa_id       := NULL;
107292 l_adr_flexfield_segment_code  := NULL;
107293 l_adr_flex_value_set_id       := NULL;
107294 l_adr_value_type_code         := NULL;
107295 l_adr_value_combination_id    := NULL;
107296 l_adr_value_segment_code      := NULL;
107297 
107298 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
107299 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
107300 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
107304 l_bflow_applied_to_amt       := NULL; -- 5132302
107301 l_budgetary_control_flag     := 'N';
107302 
107303 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
107305 l_entered_amt_idx            := NULL;          -- 4262811
107306 l_accted_amt_idx             := NULL;          -- 4262811
107307 l_acc_rev_flag               := NULL;          -- 4262811
107308 l_accrual_line_num           := NULL;          -- 4262811
107309 l_tmp_amt                    := NULL;          -- 4262811
107310 --
107311  
107312 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107313     l_balance_type_code <> 'B' THEN
107314 IF (NVL(p_source_33,'
107315 ') =  'NONREC_TAX' OR 
107316 NVL(p_source_33,'
107317 ') =  'TERV' OR 
107318 NVL(p_source_33,'
107319 ') =  'TIPV' OR 
107320 NVL(p_source_33,'
107321 ') =  'TRV') AND 
107322 NVL(p_source_95,'
107323 ') <>  'Y' AND 
107324 NVL(p_source_135,'
107325 ') <>  'Y'
107326  THEN 
107327 
107328    --
107329    XLA_AE_LINES_PKG.SetNewLine;
107330 
107331    p_balance_type_code          := l_balance_type_code;
107332    -- set the flag so later we will know whether the gain loss line needs to be created
107333    
107334    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
107335      p_actual_flag :='A';
107336    END IF;
107337 
107338    --
107339    -- bulk performance
107340    --
107341    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107342                                       p_header_num   => 0); -- 4262811
107343    --
107344    -- set accounting line options
107345    --
107346    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107347            p_natural_side_code          => 'D'
107348          , p_gain_or_loss_flag          => 'N'
107349          , p_gl_transfer_mode_code      => 'S'
107350          , p_acct_entry_type_code       => 'A'
107351          , p_switch_side_flag           => 'Y'
107352          , p_merge_duplicate_code       => 'A'
107353          );
107354    --
107355    l_acc_rev_natural_side_code := 'C';  -- 4262811
107356    -- 
107357    --
107358    -- set accounting line type info
107359    --
107360    xla_ae_lines_pkg.SetAcctLineType
107361       (p_component_type             => l_component_type
107362       ,p_event_type_code            => l_event_type_code
107363       ,p_line_definition_owner_code => l_line_definition_owner_code
107364       ,p_line_definition_code       => l_line_definition_code
107365       ,p_accounting_line_code       => l_component_code
107366       ,p_accounting_line_type_code  => l_component_type_code
107367       ,p_accounting_line_appl_id    => l_component_appl_id
107368       ,p_amb_context_code           => l_amb_context_code
107369       ,p_entity_code                => l_entity_code
107370       ,p_event_class_code           => l_event_class_code);
107371    --
107372    -- set accounting class
107373    --
107374    xla_ae_lines_pkg.SetAcctClass(
107375            p_accounting_class_code  => 'NRTAX'
107376          , p_ae_header_id           => l_ae_header_id
107377          );
107378 
107379    --
107380    -- set rounding class
107381    --
107382    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107383                       'NRTAX';
107384 
107385    --
107386    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107387    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107388    --
107389    -- bulk performance
107390    --
107391    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107392 
107393    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107394       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107395 
107396    -- 4955764
107397    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107398       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107399 
107400    -- 4458381 Public Sector Enh
107401    
107402    --
107403    -- set accounting attributes for the line type
107404    --
107405    l_entered_amt_idx := 23;
107406    l_accted_amt_idx  := 28;
107407    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
107408    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107409    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
107410    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
107411    l_rec_acct_attrs.array_num_value(2)  := 
107412 xla_ae_sources_pkg.GetSystemSourceNum(
107413    p_source_code           => 'XLA_EVENT_APPL_ID'
107414  , p_source_type_code      => 'Y'
107415  , p_source_application_id =>  602
107416 );
107417    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
107418    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
107419    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
107420    l_rec_acct_attrs.array_char_value(4)  := 
107421 xla_ae_sources_pkg.GetSystemSourceChar(
107422    p_source_code           => 'XLA_ENTITY_CODE'
107423  , p_source_type_code      => 'Y'
107424  , p_source_application_id =>  602
107425 );
107426    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
107427    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
107428    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
107429    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
107433    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
107430    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
107431    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
107432    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107434    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
107435    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
107436    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
107437    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
107438    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107439    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
107440    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
107441    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
107442    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
107443    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
107444    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
107445    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
107446    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
107447    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
107448    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
107449    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
107450    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
107451    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
107452    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
107453    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
107454    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
107455    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
107456    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
107457    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
107458    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
107459    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
107460    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
107461    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
107462    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
107463    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
107464    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
107465    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
107466    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
107467    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
107468    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
107469    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
107470    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
107471    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
107472    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
107473    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
107474    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
107475    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
107476    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
107477    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
107478    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
107479    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
107480    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
107481    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
107482    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
107483    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
107484    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
107485    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
107486    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
107487    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
107488    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
107489    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
107490    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
107491    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
107492    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
107493    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
107494    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
107495    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
107496    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
107497    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
107498    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
107499    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
107500    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
107501    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
107502    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
107503    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
107504 
107505    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107506    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107507 
107508    ---------------------------------------------------------------------------------------------------------------
107509    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107510    ---------------------------------------------------------------------------------------------------------------
107514    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107511    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107512 
107513    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107515 
107516    IF xla_accounting_cache_pkg.GetValueChar
107517          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107518          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107519    AND l_bflow_method_code = 'PRIOR_ENTRY'
107520 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107521    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107522          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107523        )
107524    THEN
107525          xla_ae_lines_pkg.BflowUpgEntry
107526            (p_business_method_code    => l_bflow_method_code
107527            ,p_business_class_code     => l_bflow_class_code
107528            ,p_balance_type            => l_balance_type_code);
107529    ELSE
107530       NULL;
107531 -- No business flow processing for business flow method of NONE.
107532    END IF;
107533 
107534    --
107535    -- call analytical criteria
107536    --
107537    
107538    --
107539    -- call description
107540    --
107541    
107542 xla_ae_lines_pkg.SetLineDescription(
107543    p_ae_header_id => l_ae_header_id
107544   ,p_description  => Description_1 (
107545      p_application_id         => p_application_id
107546    , p_ae_header_id           => l_ae_header_id 
107547 , p_source_1 => p_source_1
107548    )
107549 );
107550 
107551 
107552    --
107553    -- call ADRs
107554    -- Bug 4922099
107555    --
107556    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107557         (NVL(l_actual_upg_option, 'N') = 'O') OR
107558         (NVL(l_enc_upg_option, 'N') = 'O')
107559       )
107560    THEN
107561    NULL;
107562    --
107563    --
107564    
107565   l_ccid := AcctDerRule_33(
107566            p_application_id           => p_application_id
107567          , p_ae_header_id             => l_ae_header_id 
107568 , p_source_30 => p_source_30
107569          , x_transaction_coa_id       => l_adr_transaction_coa_id
107570          , x_accounting_coa_id        => l_adr_accounting_coa_id
107571          , x_value_type_code          => l_adr_value_type_code
107572          , p_side                     => 'NA'
107573    );
107574 
107575    xla_ae_lines_pkg.set_ccid(
107576     p_code_combination_id          => l_ccid
107577   , p_value_type_code              => l_adr_value_type_code
107578   , p_transaction_coa_id           => l_adr_transaction_coa_id
107579   , p_accounting_coa_id            => l_adr_accounting_coa_id
107580   , p_adr_code                     => 'AP_INVOICE_DIST'
107581   , p_adr_type_code                => 'S'
107582   , p_component_type               => l_component_type
107583   , p_component_code               => l_component_code
107584   , p_component_type_code          => l_component_type_code
107585   , p_component_appl_id            => l_component_appl_id
107586   , p_amb_context_code             => l_amb_context_code
107587   , p_side                         => 'NA'
107588   );
107589 
107590 
107591    --
107592    --
107593    END IF;
107594    --
107595    -- Bug 4922099
107596    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107597           (NVL(l_enc_upg_option, 'N') = 'O')
107598         ) AND
107599         (l_bflow_method_code = 'PRIOR_ENTRY')
107600       )
107601    THEN
107602       IF
107603       --
107604       1 = 2
107605       --
107606       THEN
107607       xla_accounting_err_pkg.build_message
107608                                     (p_appli_s_name            => 'XLA'
107609                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107610                                     ,p_token_1                 => 'LINE_NUMBER'
107611                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107612                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107613                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107614                                                                              l_component_type
107615                                                                             ,l_component_code
107616                                                                             ,l_component_type_code
107617                                                                             ,l_component_appl_id
107618                                                                             ,l_amb_context_code
107619                                                                             ,l_entity_code
107620                                                                             ,l_event_class_code
107621                                                                            )
107622                                     ,p_token_3                 => 'OWNER'
107623                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107624                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107625                                                                           ,p_lookup_code    => l_component_type_code
107626                                                                          )
107630                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107627                                     ,p_token_4                 => 'PRODUCT_NAME'
107628                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107629                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107631                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107632                                     ,p_ae_header_id            =>  NULL
107633                                        );
107634 
107635         IF (C_LEVEL_ERROR>= g_log_level) THEN
107636                  trace
107637                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107638                       ,p_level    => C_LEVEL_ERROR
107639                       ,p_module   => l_log_module);
107640         END IF;
107641       END IF;
107642    END IF;
107643    --
107644    --
107645    ------------------------------------------------------------------------------------------------
107646    -- 4219869 Business Flow
107647    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107648    -- Prior Entry.  Currently, the following code is always generated.
107649    ------------------------------------------------------------------------------------------------
107650    XLA_AE_LINES_PKG.ValidateCurrentLine;
107651 
107652    ------------------------------------------------------------------------------------
107653    -- 4219869 Business Flow
107654    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107655    ------------------------------------------------------------------------------------
107656    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107657 
107658    ----------------------------------------------------------------------------------
107659    -- 4219869 Business Flow
107660    -- Update journal entry status -- Need to generate this within IF <condition>
107661    ----------------------------------------------------------------------------------
107662    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107663          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107664          ,p_balance_type_code => l_balance_type_code
107665          );
107666 
107667    -------------------------------------------------------------------------------------------
107668    -- 4262811 - Generate the Accrual Reversal lines
107669    -------------------------------------------------------------------------------------------
107670    BEGIN
107671       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107672                               (g_array_event(p_event_id).array_value_num('header_index'));
107673       IF l_acc_rev_flag IS NULL THEN
107674          l_acc_rev_flag := 'N';
107675       END IF;
107676    EXCEPTION
107677       WHEN OTHERS THEN
107678          l_acc_rev_flag := 'N';
107679    END;
107680    --
107681    IF (l_acc_rev_flag = 'Y') THEN
107682 
107683        -- 4645092  ------------------------------------------------------------------------------
107684        -- To allow MPA report to determine if it should generate report process
107685        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107686        ------------------------------------------------------------------------------------------
107687 
107688        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107689        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107690    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107691    -- call ADRs
107692    -- Bug 4922099
107693    --
107694    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107695         (NVL(l_actual_upg_option, 'N') = 'O') OR
107696         (NVL(l_enc_upg_option, 'N') = 'O')
107697       )
107698    THEN
107699    NULL;
107700    --
107701    --
107702    
107703   l_ccid := AcctDerRule_33(
107704            p_application_id           => p_application_id
107705          , p_ae_header_id             => l_ae_header_id 
107706 , p_source_30 => p_source_30
107707          , x_transaction_coa_id       => l_adr_transaction_coa_id
107708          , x_accounting_coa_id        => l_adr_accounting_coa_id
107709          , x_value_type_code          => l_adr_value_type_code
107710          , p_side                     => 'NA'
107711    );
107712 
107713    xla_ae_lines_pkg.set_ccid(
107714     p_code_combination_id          => l_ccid
107715   , p_value_type_code              => l_adr_value_type_code
107716   , p_transaction_coa_id           => l_adr_transaction_coa_id
107717   , p_accounting_coa_id            => l_adr_accounting_coa_id
107718   , p_adr_code                     => 'AP_INVOICE_DIST'
107719   , p_adr_type_code                => 'S'
107720   , p_component_type               => l_component_type
107721   , p_component_code               => l_component_code
107722   , p_component_type_code          => l_component_type_code
107723   , p_component_appl_id            => l_component_appl_id
107724   , p_amb_context_code             => l_amb_context_code
107725   , p_side                         => 'NA'
107726   );
107727 
107728 
107729    --
107730    --
107731    END IF;
107732 
107733        --
107734        -- Update the line information that should be overwritten
107735        --
107736        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107737                                          p_header_num   => 1);
107741 
107738        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107739 
107740        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107742        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107743           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107744        END IF;
107745 
107746       --
107747       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107748       --
107749       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107750           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107751       ELSE
107752           ---------------------------------------------------------------------------------------------------
107753           -- 4262811a Switch Sign
107754           ---------------------------------------------------------------------------------------------------
107755           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107756           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107757                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107758           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107759                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107760           -- 5132302
107761           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107762                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107763 
107764       END IF;
107765 
107766       -- 4955764
107767       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107768       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107769 
107770 
107771       XLA_AE_LINES_PKG.ValidateCurrentLine;
107772       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107773 
107774       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107775                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107776                ,p_balance_type_code => l_balance_type_code);
107777 
107778    END IF;
107779 
107780    -----------------------------------------------------------------------------------------
107781    -- 4262811 Multiperiod Accounting
107782    -----------------------------------------------------------------------------------------
107783      -- No MPA option is assigned.
107784 
107785 
107786 END IF;
107787 END IF;
107788 --
107789 
107790 --
107791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107792    trace
107793       (p_msg      => 'END of AcctLineType_178'
107794       ,p_level    => C_LEVEL_PROCEDURE
107795       ,p_module   => l_log_module);
107796 END IF;
107797 --
107798 EXCEPTION
107799   WHEN xla_exceptions_pkg.application_exception THEN
107800       RAISE;
107801   WHEN OTHERS THEN
107802        xla_exceptions_pkg.raise_message
107803            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_178');
107804 END AcctLineType_178;
107805 --
107806 
107807 ---------------------------------------
107808 --
107809 -- PRIVATE FUNCTION
107810 --         AcctLineType_179
107811 --
107812 ---------------------------------------
107813 PROCEDURE AcctLineType_179 (
107814   p_application_id        IN NUMBER
107815  ,p_event_id              IN NUMBER
107816  ,p_calculate_acctd_flag  IN VARCHAR2
107817  ,p_calculate_g_l_flag    IN VARCHAR2
107818  ,p_actual_flag           IN OUT VARCHAR2
107819  ,p_balance_type_code     OUT VARCHAR2
107820  ,p_gain_or_loss_ref      OUT VARCHAR2
107821  
107822 --Invoice Distribution Description
107823  , p_source_1            IN VARCHAR2
107824 --Invoice Distribution Ledger Amount
107825  , p_source_21            IN NUMBER
107826 --Invoice Distribution Account
107827  , p_source_30            IN NUMBER
107828 --Invoice Distribution Type
107829  , p_source_33            IN VARCHAR2
107830  , p_source_33_meaning    IN VARCHAR2
107831 --Accounting Reversal Indicator
107832  , p_source_52            IN VARCHAR2
107833 --Distribution Link Type
107834  , p_source_54            IN VARCHAR2
107835 --Allocation to Main Distribution Identifier
107836  , p_source_56            IN NUMBER
107837 --Invoice Identifier
107838  , p_source_57            IN NUMBER
107839 --Invoice Distribution Identifier
107840  , p_source_63            IN NUMBER
107841 --Payables Encumbrance Upgrade Credit Account
107842  , p_source_64            IN NUMBER
107843 --Payables Encumbrance Upgrade Credit Amount
107844  , p_source_65            IN NUMBER
107845 --Invoice Currency Code
107846  , p_source_66            IN VARCHAR2
107847 --Payables Encumbrance Upgrade Credit Base Amount
107848  , p_source_67            IN NUMBER
107849 --Payables Encumbrance Upgrade Debit Account
107850  , p_source_68            IN NUMBER
107851 --Payables Encumbrance Upgrade Debit Amount
107852  , p_source_69            IN NUMBER
107853 --Payables Encumbrance Upgrade Debit Base Amount
107854  , p_source_70            IN NUMBER
107855 --Payables Encumbrance Upgrade Option
107856  , p_source_71            IN VARCHAR2
107857 --Invoice Distribution Amount
107858  , p_source_72            IN NUMBER
107859 --Purchase Order Exchange Rate Date
107860  , p_source_73            IN DATE
107864  , p_source_75            IN VARCHAR2
107861 --Purchase Order Exchange Rate
107862  , p_source_74            IN NUMBER
107863 --Purchase Order Exchange Rate Type
107865 --Deferred Accounting End Date
107866  , p_source_76            IN DATE
107867 --Deferred Accounting Option
107868  , p_source_77            IN VARCHAR2
107869 --Deferred Accounting Start Date
107870  , p_source_78            IN DATE
107871 --Override Accounted Amount Indicator
107872  , p_source_79            IN VARCHAR2
107873  , p_source_79_meaning    IN VARCHAR2
107874 --Invoice Supplier Identifier
107875  , p_source_80            IN NUMBER
107876 --Invoice Supplier Site Identifier
107877  , p_source_81            IN NUMBER
107878 --Third Party Type
107879  , p_source_82            IN VARCHAR2
107880 --Parent Reversal Identifier
107881  , p_source_83            IN NUMBER
107882 --Invoice Distribution Statistical Amount
107883  , p_source_84            IN NUMBER
107884 --Invoice Distribution Tax Line Identifier
107885  , p_source_85            IN NUMBER
107886 --Invoice Distribution Tax Distribution Identifier from Tax
107887  , p_source_86            IN NUMBER
107888 --Invoice Distribution Summary Tax Line Identifier
107889  , p_source_87            IN NUMBER
107890 --Payables Upgrade Credit Encumbrance Type Identifier
107891  , p_source_88            IN NUMBER
107892 --Payables Upgrade Debit Encumbrance Type Identifier
107893  , p_source_89            IN NUMBER
107894 --Business Flow Accounts Payable Application Identifier
107895  , p_source_90            IN NUMBER
107896 --Business Flow Invoice Distribution Type
107897  , p_source_91            IN VARCHAR2
107898 --Business Flow Invoice Entity Code
107899  , p_source_92            IN VARCHAR2
107900 --Business Flow Invoice Distribution Identifier
107901  , p_source_93            IN NUMBER
107902 --Business Flow Invoice Identifier
107903  , p_source_94            IN NUMBER
107904 --Accrue on Receipt Option
107905  , p_source_95            IN VARCHAR2
107906  , p_source_95_meaning    IN VARCHAR2
107907 --Self-Assessed Tax Flag
107908  , p_source_135            IN VARCHAR2
107909  , p_source_135_meaning    IN VARCHAR2
107910 )
107911 IS
107912 
107913 l_component_type              VARCHAR2(80);
107914 l_component_code              VARCHAR2(30);
107915 l_component_type_code         VARCHAR2(1);
107916 l_component_appl_id           INTEGER;
107917 l_amb_context_code            VARCHAR2(30);
107918 l_entity_code                 VARCHAR2(30);
107919 l_event_class_code            VARCHAR2(30);
107920 l_ae_header_id                NUMBER;
107921 l_event_type_code             VARCHAR2(30);
107922 l_line_definition_code        VARCHAR2(30);
107923 l_line_definition_owner_code  VARCHAR2(1);
107924 --
107925 -- adr variables
107926 l_segment                     VARCHAR2(30);
107927 l_ccid                        NUMBER;
107928 l_adr_transaction_coa_id      NUMBER;
107929 l_adr_accounting_coa_id       NUMBER;
107930 l_adr_flexfield_segment_code  VARCHAR2(30);
107931 l_adr_flex_value_set_id       NUMBER;
107932 l_adr_value_type_code         VARCHAR2(30);
107933 l_adr_value_combination_id    NUMBER;
107934 l_adr_value_segment_code      VARCHAR2(30);
107935 
107936 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107937 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107938 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107939 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107940 
107941 -- 4262811 Variables ------------------------------------------------------------------------------------------
107942 l_entered_amt_idx             NUMBER;
107943 l_accted_amt_idx              NUMBER;
107944 l_acc_rev_flag                VARCHAR2(1);
107945 l_accrual_line_num            NUMBER;
107946 l_tmp_amt                     NUMBER;
107947 l_acc_rev_natural_side_code   VARCHAR2(1);
107948 
107949 l_num_entries                 NUMBER;
107950 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107951 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107952 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107953 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107954 l_recog_line_1                NUMBER;
107955 l_recog_line_2                NUMBER;
107956 
107957 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107958 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107959 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107960 
107961 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107962 
107963 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107964 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107965 
107966 ---------------------------------------------------------------------------------------------------------------
107967 
107968 
107969 --
107970 -- bulk performance
107971 --
107972 l_balance_type_code           VARCHAR2(1);
107973 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107974 l_log_module                  VARCHAR2(240);
107975 
107976 --
107977 -- Upgrade strategy
107978 --
107979 l_actual_upg_option           VARCHAR2(1);
107980 l_enc_upg_option           VARCHAR2(1);
107981 
107982 --
107983 BEGIN
107984 --
107985 IF g_log_enabled THEN
107986       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
107990 
107987 END IF;
107988 --
107989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107991       trace
107992          (p_msg      => 'BEGIN of AcctLineType_179'
107993          ,p_level    => C_LEVEL_PROCEDURE
107994          ,p_module   => l_log_module);
107995 
107996 END IF;
107997 --
107998 l_component_type             := 'AMB_JLT';
107999 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY';
108000 l_component_type_code        := 'S';
108001 l_component_appl_id          :=  200;
108002 l_amb_context_code           := 'DEFAULT';
108003 l_entity_code                := 'AP_INVOICES';
108004 l_event_class_code           := 'PREPAYMENTS';
108005 l_event_type_code            := 'PREPAYMENTS_ALL';
108006 l_line_definition_owner_code := 'S';
108007 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
108008 --
108009 l_balance_type_code          := 'A';
108010 l_segment                     := NULL;
108011 l_ccid                        := NULL;
108012 l_adr_transaction_coa_id      := NULL;
108013 l_adr_accounting_coa_id       := NULL;
108014 l_adr_flexfield_segment_code  := NULL;
108015 l_adr_flex_value_set_id       := NULL;
108016 l_adr_value_type_code         := NULL;
108017 l_adr_value_combination_id    := NULL;
108018 l_adr_value_segment_code      := NULL;
108019 
108020 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108021 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
108022 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108023 l_budgetary_control_flag     := 'N';
108024 
108025 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108026 l_bflow_applied_to_amt       := NULL; -- 5132302
108027 l_entered_amt_idx            := NULL;          -- 4262811
108028 l_accted_amt_idx             := NULL;          -- 4262811
108029 l_acc_rev_flag               := NULL;          -- 4262811
108030 l_accrual_line_num           := NULL;          -- 4262811
108031 l_tmp_amt                    := NULL;          -- 4262811
108032 --
108033  
108034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108035     l_balance_type_code <> 'B' THEN
108036 IF NVL(p_source_33,'
108037 ') =  'NONREC_TAX' AND 
108038 NVL(p_source_95,'
108039 ') =  'Y' AND 
108040 NVL(p_source_135,'
108041 ') <>  'Y'
108042  THEN 
108043 
108044    --
108045    XLA_AE_LINES_PKG.SetNewLine;
108046 
108047    p_balance_type_code          := l_balance_type_code;
108048    -- set the flag so later we will know whether the gain loss line needs to be created
108049    
108050    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108051      p_actual_flag :='A';
108052    END IF;
108053 
108054    --
108055    -- bulk performance
108056    --
108057    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108058                                       p_header_num   => 0); -- 4262811
108059    --
108060    -- set accounting line options
108061    --
108062    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108063            p_natural_side_code          => 'D'
108064          , p_gain_or_loss_flag          => 'N'
108065          , p_gl_transfer_mode_code      => 'S'
108066          , p_acct_entry_type_code       => 'A'
108067          , p_switch_side_flag           => 'Y'
108068          , p_merge_duplicate_code       => 'A'
108069          );
108070    --
108071    l_acc_rev_natural_side_code := 'C';  -- 4262811
108072    -- 
108073    --
108074    -- set accounting line type info
108075    --
108076    xla_ae_lines_pkg.SetAcctLineType
108077       (p_component_type             => l_component_type
108078       ,p_event_type_code            => l_event_type_code
108079       ,p_line_definition_owner_code => l_line_definition_owner_code
108080       ,p_line_definition_code       => l_line_definition_code
108081       ,p_accounting_line_code       => l_component_code
108082       ,p_accounting_line_type_code  => l_component_type_code
108083       ,p_accounting_line_appl_id    => l_component_appl_id
108084       ,p_amb_context_code           => l_amb_context_code
108085       ,p_entity_code                => l_entity_code
108086       ,p_event_class_code           => l_event_class_code);
108087    --
108088    -- set accounting class
108089    --
108090    xla_ae_lines_pkg.SetAcctClass(
108091            p_accounting_class_code  => 'NRTAX'
108092          , p_ae_header_id           => l_ae_header_id
108093          );
108094 
108095    --
108096    -- set rounding class
108097    --
108098    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108099                       'NRTAX';
108100 
108101    --
108102    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108103    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108104    --
108105    -- bulk performance
108106    --
108107    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108108 
108109    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108110       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108111 
108112    -- 4955764
108113    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108114       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108115 
108119    -- set accounting attributes for the line type
108116    -- 4458381 Public Sector Enh
108117    
108118    --
108120    --
108121    l_entered_amt_idx := 23;
108122    l_accted_amt_idx  := 28;
108123    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
108124    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108125    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
108126    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
108127    l_rec_acct_attrs.array_num_value(2)  := 
108128 xla_ae_sources_pkg.GetSystemSourceNum(
108129    p_source_code           => 'XLA_EVENT_APPL_ID'
108130  , p_source_type_code      => 'Y'
108131  , p_source_application_id =>  602
108132 );
108133    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
108134    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
108135    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
108136    l_rec_acct_attrs.array_char_value(4)  := 
108137 xla_ae_sources_pkg.GetSystemSourceChar(
108138    p_source_code           => 'XLA_ENTITY_CODE'
108139  , p_source_type_code      => 'Y'
108140  , p_source_application_id =>  602
108141 );
108142    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
108143    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
108144    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
108145    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
108146    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
108147    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
108148    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108149    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
108150    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
108151    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
108152    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
108153    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
108154    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108155    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
108156    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
108157    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
108158    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
108159    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
108160    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
108161    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
108162    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
108163    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
108164    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
108165    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
108166    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
108167    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
108168    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
108169    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
108170    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
108171    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
108172    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
108173    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
108174    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
108175    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
108176    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
108177    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
108178    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
108179    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
108180    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
108181    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
108182    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
108183    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
108184    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
108185    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
108186    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
108187    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
108188    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
108189    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
108190    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
108191    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
108192    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
108193    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
108194    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
108195    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
108196    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
108197    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
108198    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
108199    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
108200    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
108201    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
108202    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
108203    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
108204    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
108205    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
108206    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
108210    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
108207    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
108208    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
108209    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
108211    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
108212    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
108213    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
108214    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
108215    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
108216    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
108217    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
108218    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
108219    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
108220 
108221    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108222    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108223 
108224    ---------------------------------------------------------------------------------------------------------------
108225    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108226    ---------------------------------------------------------------------------------------------------------------
108227    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108228 
108229    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108230    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108231 
108232    IF xla_accounting_cache_pkg.GetValueChar
108233          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108234          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108235    AND l_bflow_method_code = 'PRIOR_ENTRY'
108236 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108237    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108238          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108239        )
108240    THEN
108241          xla_ae_lines_pkg.BflowUpgEntry
108242            (p_business_method_code    => l_bflow_method_code
108243            ,p_business_class_code     => l_bflow_class_code
108244            ,p_balance_type            => l_balance_type_code);
108245    ELSE
108246       NULL;
108247 -- No business flow processing for business flow method of NONE.
108248    END IF;
108249 
108250    --
108251    -- call analytical criteria
108252    --
108253    
108254    --
108255    -- call description
108256    --
108257    
108258 xla_ae_lines_pkg.SetLineDescription(
108259    p_ae_header_id => l_ae_header_id
108260   ,p_description  => Description_1 (
108261      p_application_id         => p_application_id
108262    , p_ae_header_id           => l_ae_header_id 
108263 , p_source_1 => p_source_1
108264    )
108265 );
108266 
108267 
108268    --
108269    -- call ADRs
108270    -- Bug 4922099
108271    --
108272    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108273         (NVL(l_actual_upg_option, 'N') = 'O') OR
108274         (NVL(l_enc_upg_option, 'N') = 'O')
108275       )
108276    THEN
108277    NULL;
108278    --
108279    --
108280    
108281   l_ccid := AcctDerRule_33(
108282            p_application_id           => p_application_id
108283          , p_ae_header_id             => l_ae_header_id 
108284 , p_source_30 => p_source_30
108285          , x_transaction_coa_id       => l_adr_transaction_coa_id
108286          , x_accounting_coa_id        => l_adr_accounting_coa_id
108287          , x_value_type_code          => l_adr_value_type_code
108288          , p_side                     => 'NA'
108289    );
108290 
108291    xla_ae_lines_pkg.set_ccid(
108292     p_code_combination_id          => l_ccid
108293   , p_value_type_code              => l_adr_value_type_code
108294   , p_transaction_coa_id           => l_adr_transaction_coa_id
108295   , p_accounting_coa_id            => l_adr_accounting_coa_id
108296   , p_adr_code                     => 'AP_INVOICE_DIST'
108297   , p_adr_type_code                => 'S'
108298   , p_component_type               => l_component_type
108299   , p_component_code               => l_component_code
108300   , p_component_type_code          => l_component_type_code
108301   , p_component_appl_id            => l_component_appl_id
108302   , p_amb_context_code             => l_amb_context_code
108303   , p_side                         => 'NA'
108304   );
108305 
108306 
108307    --
108308    --
108309    END IF;
108310    --
108311    -- Bug 4922099
108312    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108313           (NVL(l_enc_upg_option, 'N') = 'O')
108314         ) AND
108315         (l_bflow_method_code = 'PRIOR_ENTRY')
108316       )
108317    THEN
108318       IF
108319       --
108320       1 = 2
108321       --
108322       THEN
108323       xla_accounting_err_pkg.build_message
108324                                     (p_appli_s_name            => 'XLA'
108325                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108326                                     ,p_token_1                 => 'LINE_NUMBER'
108327                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108328                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108332                                                                             ,l_component_type_code
108329                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108330                                                                              l_component_type
108331                                                                             ,l_component_code
108333                                                                             ,l_component_appl_id
108334                                                                             ,l_amb_context_code
108335                                                                             ,l_entity_code
108336                                                                             ,l_event_class_code
108337                                                                            )
108338                                     ,p_token_3                 => 'OWNER'
108339                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108340                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108341                                                                           ,p_lookup_code    => l_component_type_code
108342                                                                          )
108343                                     ,p_token_4                 => 'PRODUCT_NAME'
108344                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108345                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108346                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108347                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108348                                     ,p_ae_header_id            =>  NULL
108349                                        );
108350 
108351         IF (C_LEVEL_ERROR>= g_log_level) THEN
108352                  trace
108353                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108354                       ,p_level    => C_LEVEL_ERROR
108355                       ,p_module   => l_log_module);
108356         END IF;
108357       END IF;
108358    END IF;
108359    --
108360    --
108361    ------------------------------------------------------------------------------------------------
108362    -- 4219869 Business Flow
108363    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108364    -- Prior Entry.  Currently, the following code is always generated.
108365    ------------------------------------------------------------------------------------------------
108366    XLA_AE_LINES_PKG.ValidateCurrentLine;
108367 
108368    ------------------------------------------------------------------------------------
108369    -- 4219869 Business Flow
108370    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108371    ------------------------------------------------------------------------------------
108372    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108373 
108374    ----------------------------------------------------------------------------------
108375    -- 4219869 Business Flow
108376    -- Update journal entry status -- Need to generate this within IF <condition>
108377    ----------------------------------------------------------------------------------
108378    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108379          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108380          ,p_balance_type_code => l_balance_type_code
108381          );
108382 
108383    -------------------------------------------------------------------------------------------
108384    -- 4262811 - Generate the Accrual Reversal lines
108385    -------------------------------------------------------------------------------------------
108386    BEGIN
108387       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108388                               (g_array_event(p_event_id).array_value_num('header_index'));
108389       IF l_acc_rev_flag IS NULL THEN
108390          l_acc_rev_flag := 'N';
108391       END IF;
108392    EXCEPTION
108393       WHEN OTHERS THEN
108394          l_acc_rev_flag := 'N';
108395    END;
108396    --
108397    IF (l_acc_rev_flag = 'Y') THEN
108398 
108399        -- 4645092  ------------------------------------------------------------------------------
108400        -- To allow MPA report to determine if it should generate report process
108401        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108402        ------------------------------------------------------------------------------------------
108403 
108404        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108405        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108406    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
108407    -- call ADRs
108408    -- Bug 4922099
108409    --
108410    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108411         (NVL(l_actual_upg_option, 'N') = 'O') OR
108412         (NVL(l_enc_upg_option, 'N') = 'O')
108413       )
108414    THEN
108415    NULL;
108416    --
108417    --
108418    
108419   l_ccid := AcctDerRule_33(
108420            p_application_id           => p_application_id
108421          , p_ae_header_id             => l_ae_header_id 
108422 , p_source_30 => p_source_30
108423          , x_transaction_coa_id       => l_adr_transaction_coa_id
108424          , x_accounting_coa_id        => l_adr_accounting_coa_id
108428 
108425          , x_value_type_code          => l_adr_value_type_code
108426          , p_side                     => 'NA'
108427    );
108429    xla_ae_lines_pkg.set_ccid(
108430     p_code_combination_id          => l_ccid
108431   , p_value_type_code              => l_adr_value_type_code
108432   , p_transaction_coa_id           => l_adr_transaction_coa_id
108433   , p_accounting_coa_id            => l_adr_accounting_coa_id
108434   , p_adr_code                     => 'AP_INVOICE_DIST'
108435   , p_adr_type_code                => 'S'
108436   , p_component_type               => l_component_type
108437   , p_component_code               => l_component_code
108438   , p_component_type_code          => l_component_type_code
108439   , p_component_appl_id            => l_component_appl_id
108440   , p_amb_context_code             => l_amb_context_code
108441   , p_side                         => 'NA'
108442   );
108443 
108444 
108445    --
108446    --
108447    END IF;
108448 
108449        --
108450        -- Update the line information that should be overwritten
108451        --
108452        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108453                                          p_header_num   => 1);
108454        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108455 
108456        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108457 
108458        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108459           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108460        END IF;
108461 
108462       --
108463       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108464       --
108465       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108466           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108467       ELSE
108468           ---------------------------------------------------------------------------------------------------
108469           -- 4262811a Switch Sign
108470           ---------------------------------------------------------------------------------------------------
108471           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108472           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108473                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108474           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108475                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108476           -- 5132302
108477           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108478                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108479 
108480       END IF;
108481 
108482       -- 4955764
108483       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108484       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108485 
108486 
108487       XLA_AE_LINES_PKG.ValidateCurrentLine;
108488       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108489 
108490       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108491                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108492                ,p_balance_type_code => l_balance_type_code);
108493 
108494    END IF;
108495 
108496    -----------------------------------------------------------------------------------------
108497    -- 4262811 Multiperiod Accounting
108498    -----------------------------------------------------------------------------------------
108499      -- No MPA option is assigned.
108500 
108501 
108502 END IF;
108503 END IF;
108504 --
108505 
108506 --
108507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108508    trace
108509       (p_msg      => 'END of AcctLineType_179'
108510       ,p_level    => C_LEVEL_PROCEDURE
108511       ,p_module   => l_log_module);
108512 END IF;
108513 --
108514 EXCEPTION
108515   WHEN xla_exceptions_pkg.application_exception THEN
108516       RAISE;
108517   WHEN OTHERS THEN
108518        xla_exceptions_pkg.raise_message
108519            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_179');
108520 END AcctLineType_179;
108521 --
108522 
108523 ---------------------------------------
108524 --
108525 -- PRIVATE FUNCTION
108526 --         AcctLineType_180
108527 --
108528 ---------------------------------------
108529 PROCEDURE AcctLineType_180 (
108530   p_application_id        IN NUMBER
108531  ,p_event_id              IN NUMBER
108532  ,p_calculate_acctd_flag  IN VARCHAR2
108533  ,p_calculate_g_l_flag    IN VARCHAR2
108534  ,p_actual_flag           IN OUT VARCHAR2
108535  ,p_balance_type_code     OUT VARCHAR2
108536  ,p_gain_or_loss_ref      OUT VARCHAR2
108537  
108538 --Payment Currency Code
108539  , p_source_13            IN VARCHAR2
108540 --Automatic Offsets Value
108541  , p_source_15            IN VARCHAR2
108542  , p_source_15_meaning    IN VARCHAR2
108543 --Invoice Distribution Account
108544  , p_source_30            IN NUMBER
108545 --Payables Options Rounding Account
108549 --Distribution Link Type
108546  , p_source_48            IN NUMBER
108547 --Accounting Reversal Indicator
108548  , p_source_52            IN VARCHAR2
108550  , p_source_54            IN VARCHAR2
108551 --Override Accounted Amount Indicator
108552  , p_source_79            IN VARCHAR2
108553  , p_source_79_meaning    IN VARCHAR2
108554 --Third Party Type
108555  , p_source_82            IN VARCHAR2
108556 --Invoice Distribution Tax Line Identifier
108557  , p_source_85            IN NUMBER
108558 --Invoice Distribution Summary Tax Line Identifier
108559  , p_source_87            IN NUMBER
108560 --Business Flow Accounts Payable Application Identifier
108561  , p_source_90            IN NUMBER
108562 --When to Account for Payment Option
108563  , p_source_96            IN VARCHAR2
108564 --Payment Distribution Type
108565  , p_source_97            IN VARCHAR2
108566  , p_source_97_meaning    IN VARCHAR2
108567 --Payment Distribution Amount
108568  , p_source_98            IN NUMBER
108569 --Business Flow Payment Distribution Type
108570  , p_source_99            IN VARCHAR2
108571 --Business Flow Payment Entity Code
108572  , p_source_100            IN VARCHAR2
108573 --Business Flow Payment Distribution Identifier
108574  , p_source_101            IN NUMBER
108575 --Business Flow Payment Identifier
108576  , p_source_102            IN NUMBER
108577 --Payment Distribution Identifier
108578  , p_source_103            IN NUMBER
108579 --Payment Supplier Identifier
108580  , p_source_109            IN NUMBER
108581 --Payment Supplier Site Identifier
108582  , p_source_110            IN NUMBER
108583 --Payment Distribution Reversed Identifier
108584  , p_source_111            IN NUMBER
108585 --Payment Identifier
108586  , p_source_112            IN NUMBER
108587 --Payment Maturity Date
108588  , p_source_114            IN DATE
108589 --Payment Distribution (Payment Rate) Ledger Amount
108590  , p_source_115            IN NUMBER
108591 --Payment Exchange Date
108592  , p_source_117            IN DATE
108593 --Payment Exchange Rate
108594  , p_source_118            IN NUMBER
108595 --Payment Exchange Rate Type
108596  , p_source_119            IN VARCHAR2
108597 )
108598 IS
108599 
108600 l_component_type              VARCHAR2(80);
108601 l_component_code              VARCHAR2(30);
108602 l_component_type_code         VARCHAR2(1);
108603 l_component_appl_id           INTEGER;
108604 l_amb_context_code            VARCHAR2(30);
108605 l_entity_code                 VARCHAR2(30);
108606 l_event_class_code            VARCHAR2(30);
108607 l_ae_header_id                NUMBER;
108608 l_event_type_code             VARCHAR2(30);
108609 l_line_definition_code        VARCHAR2(30);
108610 l_line_definition_owner_code  VARCHAR2(1);
108611 --
108612 -- adr variables
108613 l_segment                     VARCHAR2(30);
108614 l_ccid                        NUMBER;
108615 l_adr_transaction_coa_id      NUMBER;
108616 l_adr_accounting_coa_id       NUMBER;
108617 l_adr_flexfield_segment_code  VARCHAR2(30);
108618 l_adr_flex_value_set_id       NUMBER;
108619 l_adr_value_type_code         VARCHAR2(30);
108620 l_adr_value_combination_id    NUMBER;
108621 l_adr_value_segment_code      VARCHAR2(30);
108622 
108623 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108624 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108625 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108626 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108627 
108628 -- 4262811 Variables ------------------------------------------------------------------------------------------
108629 l_entered_amt_idx             NUMBER;
108630 l_accted_amt_idx              NUMBER;
108631 l_acc_rev_flag                VARCHAR2(1);
108632 l_accrual_line_num            NUMBER;
108633 l_tmp_amt                     NUMBER;
108634 l_acc_rev_natural_side_code   VARCHAR2(1);
108635 
108636 l_num_entries                 NUMBER;
108637 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108638 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108639 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108640 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108641 l_recog_line_1                NUMBER;
108642 l_recog_line_2                NUMBER;
108643 
108644 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108645 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108646 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108647 
108648 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108649 
108650 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108651 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108652 
108653 ---------------------------------------------------------------------------------------------------------------
108654 
108655 
108656 --
108657 -- bulk performance
108658 --
108659 l_balance_type_code           VARCHAR2(1);
108660 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108661 l_log_module                  VARCHAR2(240);
108662 
108663 --
108664 -- Upgrade strategy
108665 --
108666 l_actual_upg_option           VARCHAR2(1);
108667 l_enc_upg_option           VARCHAR2(1);
108668 
108669 --
108670 BEGIN
108671 --
108672 IF g_log_enabled THEN
108676 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108673       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
108674 END IF;
108675 --
108677 
108678       trace
108679          (p_msg      => 'BEGIN of AcctLineType_180'
108680          ,p_level    => C_LEVEL_PROCEDURE
108681          ,p_module   => l_log_module);
108682 
108683 END IF;
108684 --
108685 l_component_type             := 'AMB_JLT';
108686 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
108687 l_component_type_code        := 'S';
108688 l_component_appl_id          :=  200;
108689 l_amb_context_code           := 'DEFAULT';
108690 l_entity_code                := 'AP_PAYMENTS';
108691 l_event_class_code           := 'RECONCILED PAYMENTS';
108692 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
108693 l_line_definition_owner_code := 'S';
108694 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
108695 --
108696 l_balance_type_code          := 'A';
108697 l_segment                     := NULL;
108698 l_ccid                        := NULL;
108699 l_adr_transaction_coa_id      := NULL;
108700 l_adr_accounting_coa_id       := NULL;
108701 l_adr_flexfield_segment_code  := NULL;
108702 l_adr_flex_value_set_id       := NULL;
108703 l_adr_value_type_code         := NULL;
108704 l_adr_value_combination_id    := NULL;
108705 l_adr_value_segment_code      := NULL;
108706 
108707 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108708 l_bflow_class_code           := '';    -- 4219869 Business Flow
108709 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108710 l_budgetary_control_flag     := 'N';
108711 
108712 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108713 l_bflow_applied_to_amt       := NULL; -- 5132302
108714 l_entered_amt_idx            := NULL;          -- 4262811
108715 l_accted_amt_idx             := NULL;          -- 4262811
108716 l_acc_rev_flag               := NULL;          -- 4262811
108717 l_accrual_line_num           := NULL;          -- 4262811
108718 l_tmp_amt                    := NULL;          -- 4262811
108719 --
108720  
108721 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108722     l_balance_type_code <> 'B' THEN
108723 IF (NVL(p_source_96,'
108724 ') =  'ALWAYS_ALWAYS' OR 
108725 NVL(p_source_96,'
108726 ') =  'ALWAYS_CLEAR') AND 
108727 NVL(p_source_97,'
108728 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
108729 p_source_114 IS NULL 
108730  THEN 
108731 
108732    --
108733    XLA_AE_LINES_PKG.SetNewLine;
108734 
108735    p_balance_type_code          := l_balance_type_code;
108736    -- set the flag so later we will know whether the gain loss line needs to be created
108737    
108738    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108739      p_actual_flag :='A';
108740    END IF;
108741 
108742    --
108743    -- bulk performance
108744    --
108745    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108746                                       p_header_num   => 0); -- 4262811
108747    --
108748    -- set accounting line options
108749    --
108750    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108751            p_natural_side_code          => 'D'
108752          , p_gain_or_loss_flag          => 'N'
108753          , p_gl_transfer_mode_code      => 'S'
108754          , p_acct_entry_type_code       => 'A'
108755          , p_switch_side_flag           => 'Y'
108756          , p_merge_duplicate_code       => 'A'
108757          );
108758    --
108759    l_acc_rev_natural_side_code := 'C';  -- 4262811
108760    -- 
108761    --
108762    -- set accounting line type info
108763    --
108764    xla_ae_lines_pkg.SetAcctLineType
108765       (p_component_type             => l_component_type
108766       ,p_event_type_code            => l_event_type_code
108767       ,p_line_definition_owner_code => l_line_definition_owner_code
108768       ,p_line_definition_code       => l_line_definition_code
108769       ,p_accounting_line_code       => l_component_code
108770       ,p_accounting_line_type_code  => l_component_type_code
108771       ,p_accounting_line_appl_id    => l_component_appl_id
108772       ,p_amb_context_code           => l_amb_context_code
108773       ,p_entity_code                => l_entity_code
108774       ,p_event_class_code           => l_event_class_code);
108775    --
108776    -- set accounting class
108777    --
108778    xla_ae_lines_pkg.SetAcctClass(
108779            p_accounting_class_code  => 'ROUNDING'
108780          , p_ae_header_id           => l_ae_header_id
108781          );
108782 
108783    --
108784    -- set rounding class
108785    --
108786    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108787                       'ROUNDING';
108788 
108789    --
108790    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108791    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108792    --
108793    -- bulk performance
108794    --
108795    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108796 
108797    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108798       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108799 
108800    -- 4955764
108801    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108802       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108803 
108807    -- set accounting attributes for the line type
108804    -- 4458381 Public Sector Enh
108805    
108806    --
108808    --
108809    l_entered_amt_idx := 10;
108810    l_accted_amt_idx  := 15;
108811    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
108812    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108813    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
108814    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
108815    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
108816    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
108817    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
108818    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108819    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
108820    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
108821    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
108822    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
108823    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
108824    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108825    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
108826    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
108827    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
108828    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
108829    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
108830    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
108831    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
108832    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
108833    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
108834    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
108835    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
108836    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
108837    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
108838    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
108839    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
108840    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
108841    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
108842    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
108843    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
108844    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
108845    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
108846    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
108847    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
108848    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
108849    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
108850    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
108851    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
108852    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
108853    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
108854    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
108855    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
108856    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
108857    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
108858    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
108859    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
108860 
108861    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108862    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108863 
108864    ---------------------------------------------------------------------------------------------------------------
108865    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108866    ---------------------------------------------------------------------------------------------------------------
108867    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108868 
108869    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108870    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108871 
108872    IF xla_accounting_cache_pkg.GetValueChar
108873          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108874          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108875    AND l_bflow_method_code = 'PRIOR_ENTRY'
108876 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108877    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108878          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108879        )
108880    THEN
108881          xla_ae_lines_pkg.BflowUpgEntry
108882            (p_business_method_code    => l_bflow_method_code
108883            ,p_business_class_code     => l_bflow_class_code
108884            ,p_balance_type            => l_balance_type_code);
108885    ELSE
108886       NULL;
108887 -- No business flow processing for business flow method of NONE.
108888    END IF;
108889 
108890    --
108891    -- call analytical criteria
108892    --
108893    
108894 
108895 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
108896 xla_ae_lines_pkg.SetAnalyticalCriteria(
108897    p_analytical_criterion_name    => 'Check Id'
108898  , p_analytical_criterion_owner   => 'S'
108899  , p_analytical_criterion_code    => 'CHECK_ID'
108903  , p_analytical_detail_char_1    =>  NULL
108900  , p_amb_context_code             => 'DEFAULT'
108901  , p_balancing_flag               => 'N'
108902  
108904  , p_analytical_detail_num_1     =>  p_source_112
108905  , p_analytical_detail_date_1    =>  NULL
108906 
108907  , p_ae_header_id                 => l_ae_header_id
108908 )
108909 ;
108910 --
108911 
108912    --
108913    -- call description
108914    --
108915    -- No description or it is inherited.
108916    --
108917    -- call ADRs
108918    -- Bug 4922099
108919    --
108920    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108921         (NVL(l_actual_upg_option, 'N') = 'O') OR
108922         (NVL(l_enc_upg_option, 'N') = 'O')
108923       )
108924    THEN
108925    NULL;
108926    --
108927    --
108928    
108929   l_ccid := AcctDerRule_40(
108930            p_application_id           => p_application_id
108931          , p_ae_header_id             => l_ae_header_id 
108932 , p_source_15 => p_source_15
108933 , p_source_15_meaning => p_source_15_meaning
108934 , p_source_30 => p_source_30
108935 , p_source_48 => p_source_48
108936          , x_transaction_coa_id       => l_adr_transaction_coa_id
108937          , x_accounting_coa_id        => l_adr_accounting_coa_id
108938          , x_value_type_code          => l_adr_value_type_code
108939          , p_side                     => 'NA'
108940    );
108941 
108942    xla_ae_lines_pkg.set_ccid(
108943     p_code_combination_id          => l_ccid
108944   , p_value_type_code              => l_adr_value_type_code
108945   , p_transaction_coa_id           => l_adr_transaction_coa_id
108946   , p_accounting_coa_id            => l_adr_accounting_coa_id
108947   , p_adr_code                     => 'AP_ROUNDING'
108948   , p_adr_type_code                => 'S'
108949   , p_component_type               => l_component_type
108950   , p_component_code               => l_component_code
108951   , p_component_type_code          => l_component_type_code
108952   , p_component_appl_id            => l_component_appl_id
108953   , p_amb_context_code             => l_amb_context_code
108954   , p_side                         => 'NA'
108955   );
108956 
108957 
108958    --
108959    --
108960    END IF;
108961    --
108962    -- Bug 4922099
108963    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108964           (NVL(l_enc_upg_option, 'N') = 'O')
108965         ) AND
108966         (l_bflow_method_code = 'PRIOR_ENTRY')
108967       )
108968    THEN
108969       IF
108970       --
108971       1 = 2
108972       --
108973       THEN
108974       xla_accounting_err_pkg.build_message
108975                                     (p_appli_s_name            => 'XLA'
108976                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108977                                     ,p_token_1                 => 'LINE_NUMBER'
108978                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108979                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108980                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108981                                                                              l_component_type
108982                                                                             ,l_component_code
108983                                                                             ,l_component_type_code
108984                                                                             ,l_component_appl_id
108985                                                                             ,l_amb_context_code
108986                                                                             ,l_entity_code
108987                                                                             ,l_event_class_code
108988                                                                            )
108989                                     ,p_token_3                 => 'OWNER'
108990                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108991                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108992                                                                           ,p_lookup_code    => l_component_type_code
108993                                                                          )
108994                                     ,p_token_4                 => 'PRODUCT_NAME'
108995                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108996                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108997                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108998                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108999                                     ,p_ae_header_id            =>  NULL
109000                                        );
109001 
109002         IF (C_LEVEL_ERROR>= g_log_level) THEN
109003                  trace
109004                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109005                       ,p_level    => C_LEVEL_ERROR
109006                       ,p_module   => l_log_module);
109007         END IF;
109008       END IF;
109009    END IF;
109010    --
109011    --
109012    ------------------------------------------------------------------------------------------------
109016    ------------------------------------------------------------------------------------------------
109013    -- 4219869 Business Flow
109014    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109015    -- Prior Entry.  Currently, the following code is always generated.
109017    XLA_AE_LINES_PKG.ValidateCurrentLine;
109018 
109019    ------------------------------------------------------------------------------------
109020    -- 4219869 Business Flow
109021    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109022    ------------------------------------------------------------------------------------
109023    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109024 
109025    ----------------------------------------------------------------------------------
109026    -- 4219869 Business Flow
109027    -- Update journal entry status -- Need to generate this within IF <condition>
109028    ----------------------------------------------------------------------------------
109029    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109030          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109031          ,p_balance_type_code => l_balance_type_code
109032          );
109033 
109034    -------------------------------------------------------------------------------------------
109035    -- 4262811 - Generate the Accrual Reversal lines
109036    -------------------------------------------------------------------------------------------
109037    BEGIN
109038       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109039                               (g_array_event(p_event_id).array_value_num('header_index'));
109040       IF l_acc_rev_flag IS NULL THEN
109041          l_acc_rev_flag := 'N';
109042       END IF;
109043    EXCEPTION
109044       WHEN OTHERS THEN
109045          l_acc_rev_flag := 'N';
109046    END;
109047    --
109048    IF (l_acc_rev_flag = 'Y') THEN
109049 
109050        -- 4645092  ------------------------------------------------------------------------------
109051        -- To allow MPA report to determine if it should generate report process
109052        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109053        ------------------------------------------------------------------------------------------
109054 
109055        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109056        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109057    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109058    -- call ADRs
109059    -- Bug 4922099
109060    --
109061    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109062         (NVL(l_actual_upg_option, 'N') = 'O') OR
109063         (NVL(l_enc_upg_option, 'N') = 'O')
109064       )
109065    THEN
109066    NULL;
109067    --
109068    --
109069    
109070   l_ccid := AcctDerRule_40(
109071            p_application_id           => p_application_id
109072          , p_ae_header_id             => l_ae_header_id 
109073 , p_source_15 => p_source_15
109074 , p_source_15_meaning => p_source_15_meaning
109075 , p_source_30 => p_source_30
109076 , p_source_48 => p_source_48
109077          , x_transaction_coa_id       => l_adr_transaction_coa_id
109078          , x_accounting_coa_id        => l_adr_accounting_coa_id
109079          , x_value_type_code          => l_adr_value_type_code
109080          , p_side                     => 'NA'
109081    );
109082 
109083    xla_ae_lines_pkg.set_ccid(
109084     p_code_combination_id          => l_ccid
109085   , p_value_type_code              => l_adr_value_type_code
109086   , p_transaction_coa_id           => l_adr_transaction_coa_id
109087   , p_accounting_coa_id            => l_adr_accounting_coa_id
109088   , p_adr_code                     => 'AP_ROUNDING'
109089   , p_adr_type_code                => 'S'
109090   , p_component_type               => l_component_type
109091   , p_component_code               => l_component_code
109092   , p_component_type_code          => l_component_type_code
109093   , p_component_appl_id            => l_component_appl_id
109094   , p_amb_context_code             => l_amb_context_code
109095   , p_side                         => 'NA'
109096   );
109097 
109098 
109099    --
109100    --
109101    END IF;
109102 
109103        --
109104        -- Update the line information that should be overwritten
109105        --
109106        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109107                                          p_header_num   => 1);
109108        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109109 
109110        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109111 
109112        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109113           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109114        END IF;
109115 
109116       --
109117       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109118       --
109119       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109120           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109121       ELSE
109122           ---------------------------------------------------------------------------------------------------
109123           -- 4262811a Switch Sign
109127                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109124           ---------------------------------------------------------------------------------------------------
109125           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109126           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109128           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109129                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109130           -- 5132302
109131           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109132                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109133 
109134       END IF;
109135 
109136       -- 4955764
109137       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109138       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109139 
109140 
109141       XLA_AE_LINES_PKG.ValidateCurrentLine;
109142       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109143 
109144       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109145                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109146                ,p_balance_type_code => l_balance_type_code);
109147 
109148    END IF;
109149 
109150    -----------------------------------------------------------------------------------------
109151    -- 4262811 Multiperiod Accounting
109152    -----------------------------------------------------------------------------------------
109153      -- No MPA option is assigned.
109154 
109155 
109156 END IF;
109157 END IF;
109158 --
109159 
109160 --
109161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109162    trace
109163       (p_msg      => 'END of AcctLineType_180'
109164       ,p_level    => C_LEVEL_PROCEDURE
109165       ,p_module   => l_log_module);
109166 END IF;
109167 --
109168 EXCEPTION
109169   WHEN xla_exceptions_pkg.application_exception THEN
109170       RAISE;
109171   WHEN OTHERS THEN
109172        xla_exceptions_pkg.raise_message
109173            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_180');
109174 END AcctLineType_180;
109175 --
109176 
109177 ---------------------------------------
109178 --
109179 -- PRIVATE FUNCTION
109180 --         AcctLineType_181
109181 --
109182 ---------------------------------------
109183 PROCEDURE AcctLineType_181 (
109184   p_application_id        IN NUMBER
109185  ,p_event_id              IN NUMBER
109186  ,p_calculate_acctd_flag  IN VARCHAR2
109187  ,p_calculate_g_l_flag    IN VARCHAR2
109188  ,p_actual_flag           IN OUT VARCHAR2
109189  ,p_balance_type_code     OUT VARCHAR2
109190  ,p_gain_or_loss_ref      OUT VARCHAR2
109191  
109192 --Invoice Distribution Description
109193  , p_source_1            IN VARCHAR2
109194 --Invoice Distribution Ledger Amount
109195  , p_source_21            IN NUMBER
109196 --Invoice Distribution Account
109197  , p_source_30            IN NUMBER
109198 --Prepaid Expense Account Source Option
109199  , p_source_31            IN VARCHAR2
109200  , p_source_31_meaning    IN VARCHAR2
109201 --Purchase Order Number
109202  , p_source_32            IN VARCHAR2
109203 --Invoice Distribution Type
109204  , p_source_33            IN VARCHAR2
109205  , p_source_33_meaning    IN VARCHAR2
109206 --Purchase Order Charge Account
109207  , p_source_45            IN NUMBER
109208 --Accounting Reversal Indicator
109209  , p_source_52            IN VARCHAR2
109210 --Distribution Link Type
109211  , p_source_54            IN VARCHAR2
109212 --Allocation to Main Distribution Identifier
109213  , p_source_56            IN NUMBER
109214 --Invoice Identifier
109215  , p_source_57            IN NUMBER
109216 --Invoice Distribution Identifier
109217  , p_source_63            IN NUMBER
109218 --Payables Encumbrance Upgrade Credit Account
109219  , p_source_64            IN NUMBER
109220 --Payables Encumbrance Upgrade Credit Amount
109221  , p_source_65            IN NUMBER
109222 --Invoice Currency Code
109223  , p_source_66            IN VARCHAR2
109224 --Payables Encumbrance Upgrade Credit Base Amount
109225  , p_source_67            IN NUMBER
109226 --Payables Encumbrance Upgrade Debit Account
109227  , p_source_68            IN NUMBER
109228 --Payables Encumbrance Upgrade Debit Amount
109229  , p_source_69            IN NUMBER
109230 --Payables Encumbrance Upgrade Debit Base Amount
109231  , p_source_70            IN NUMBER
109232 --Payables Encumbrance Upgrade Option
109233  , p_source_71            IN VARCHAR2
109234 --Invoice Distribution Amount
109235  , p_source_72            IN NUMBER
109236 --Deferred Accounting End Date
109237  , p_source_76            IN DATE
109238 --Deferred Accounting Option
109239  , p_source_77            IN VARCHAR2
109240 --Deferred Accounting Start Date
109241  , p_source_78            IN DATE
109242 --Override Accounted Amount Indicator
109243  , p_source_79            IN VARCHAR2
109244  , p_source_79_meaning    IN VARCHAR2
109245 --Invoice Supplier Identifier
109246  , p_source_80            IN NUMBER
109247 --Invoice Supplier Site Identifier
109248  , p_source_81            IN NUMBER
109249 --Third Party Type
109250  , p_source_82            IN VARCHAR2
109251 --Parent Reversal Identifier
109255 --Invoice Distribution Tax Line Identifier
109252  , p_source_83            IN NUMBER
109253 --Invoice Distribution Statistical Amount
109254  , p_source_84            IN NUMBER
109256  , p_source_85            IN NUMBER
109257 --Invoice Distribution Tax Distribution Identifier from Tax
109258  , p_source_86            IN NUMBER
109259 --Invoice Distribution Summary Tax Line Identifier
109260  , p_source_87            IN NUMBER
109261 --Payables Upgrade Credit Encumbrance Type Identifier
109262  , p_source_88            IN NUMBER
109263 --Payables Upgrade Debit Encumbrance Type Identifier
109264  , p_source_89            IN NUMBER
109265 --Business Flow Accounts Payable Application Identifier
109266  , p_source_90            IN NUMBER
109267 --Business Flow Invoice Distribution Type
109268  , p_source_91            IN VARCHAR2
109269 --Business Flow Invoice Entity Code
109270  , p_source_92            IN VARCHAR2
109271 --Business Flow Invoice Distribution Identifier
109272  , p_source_93            IN NUMBER
109273 --Business Flow Invoice Identifier
109274  , p_source_94            IN NUMBER
109275 --Accrue on Receipt Option
109276  , p_source_95            IN VARCHAR2
109277  , p_source_95_meaning    IN VARCHAR2
109278 --Invoice Exchange Date
109279  , p_source_136            IN DATE
109280 --Invoice Exchange Rate
109281  , p_source_137            IN NUMBER
109282 --Invoice Exchange Rate Type
109283  , p_source_138            IN VARCHAR2
109284 )
109285 IS
109286 
109287 l_component_type              VARCHAR2(80);
109288 l_component_code              VARCHAR2(30);
109289 l_component_type_code         VARCHAR2(1);
109290 l_component_appl_id           INTEGER;
109291 l_amb_context_code            VARCHAR2(30);
109292 l_entity_code                 VARCHAR2(30);
109293 l_event_class_code            VARCHAR2(30);
109294 l_ae_header_id                NUMBER;
109295 l_event_type_code             VARCHAR2(30);
109296 l_line_definition_code        VARCHAR2(30);
109297 l_line_definition_owner_code  VARCHAR2(1);
109298 --
109299 -- adr variables
109300 l_segment                     VARCHAR2(30);
109301 l_ccid                        NUMBER;
109302 l_adr_transaction_coa_id      NUMBER;
109303 l_adr_accounting_coa_id       NUMBER;
109304 l_adr_flexfield_segment_code  VARCHAR2(30);
109305 l_adr_flex_value_set_id       NUMBER;
109306 l_adr_value_type_code         VARCHAR2(30);
109307 l_adr_value_combination_id    NUMBER;
109308 l_adr_value_segment_code      VARCHAR2(30);
109309 
109310 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109311 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109312 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109313 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109314 
109315 -- 4262811 Variables ------------------------------------------------------------------------------------------
109316 l_entered_amt_idx             NUMBER;
109317 l_accted_amt_idx              NUMBER;
109318 l_acc_rev_flag                VARCHAR2(1);
109319 l_accrual_line_num            NUMBER;
109320 l_tmp_amt                     NUMBER;
109321 l_acc_rev_natural_side_code   VARCHAR2(1);
109322 
109323 l_num_entries                 NUMBER;
109324 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109325 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109326 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109327 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109328 l_recog_line_1                NUMBER;
109329 l_recog_line_2                NUMBER;
109330 
109331 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109332 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109333 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109334 
109335 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109336 
109337 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109338 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109339 
109340 ---------------------------------------------------------------------------------------------------------------
109341 
109342 
109343 --
109344 -- bulk performance
109345 --
109346 l_balance_type_code           VARCHAR2(1);
109347 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109348 l_log_module                  VARCHAR2(240);
109349 
109350 --
109351 -- Upgrade strategy
109352 --
109353 l_actual_upg_option           VARCHAR2(1);
109354 l_enc_upg_option           VARCHAR2(1);
109355 
109356 --
109357 BEGIN
109358 --
109359 IF g_log_enabled THEN
109360       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
109361 END IF;
109362 --
109363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109364 
109365       trace
109366          (p_msg      => 'BEGIN of AcctLineType_181'
109367          ,p_level    => C_LEVEL_PROCEDURE
109368          ,p_module   => l_log_module);
109369 
109370 END IF;
109371 --
109372 l_component_type             := 'AMB_JLT';
109373 l_component_code             := 'AP_PREPAID_EXPENSE_PREPAY';
109374 l_component_type_code        := 'S';
109375 l_component_appl_id          :=  200;
109376 l_amb_context_code           := 'DEFAULT';
109377 l_entity_code                := 'AP_INVOICES';
109378 l_event_class_code           := 'PREPAYMENTS';
109379 l_event_type_code            := 'PREPAYMENTS_ALL';
109383 l_balance_type_code          := 'A';
109380 l_line_definition_owner_code := 'S';
109381 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
109382 --
109384 l_segment                     := NULL;
109385 l_ccid                        := NULL;
109386 l_adr_transaction_coa_id      := NULL;
109387 l_adr_accounting_coa_id       := NULL;
109388 l_adr_flexfield_segment_code  := NULL;
109389 l_adr_flex_value_set_id       := NULL;
109390 l_adr_value_type_code         := NULL;
109391 l_adr_value_combination_id    := NULL;
109392 l_adr_value_segment_code      := NULL;
109393 
109394 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
109395 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
109396 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109397 l_budgetary_control_flag     := 'N';
109398 
109399 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109400 l_bflow_applied_to_amt       := NULL; -- 5132302
109401 l_entered_amt_idx            := NULL;          -- 4262811
109402 l_accted_amt_idx             := NULL;          -- 4262811
109403 l_acc_rev_flag               := NULL;          -- 4262811
109404 l_accrual_line_num           := NULL;          -- 4262811
109405 l_tmp_amt                    := NULL;          -- 4262811
109406 --
109407  
109408 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109409     l_balance_type_code <> 'B' THEN
109410 IF NVL(p_source_33,'
109411 ') =  'RETROEXPENSE' OR 
109412 NVL(p_source_33,'
109413 ') =  'ITEM' OR 
109414 (NVL(p_source_33,'
109415 ') =  'ERV' AND 
109416 NVL(p_source_95,'
109417 ') <>  'Y') OR 
109418 (NVL(p_source_33,'
109419 ') =  'IPV' AND 
109420 NVL(p_source_95,'
109421 ') <>  'Y')
109422  THEN 
109423 
109424    --
109425    XLA_AE_LINES_PKG.SetNewLine;
109426 
109427    p_balance_type_code          := l_balance_type_code;
109428    -- set the flag so later we will know whether the gain loss line needs to be created
109429    
109430    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109431      p_actual_flag :='A';
109432    END IF;
109433 
109434    --
109435    -- bulk performance
109436    --
109437    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109438                                       p_header_num   => 0); -- 4262811
109439    --
109440    -- set accounting line options
109441    --
109442    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109443            p_natural_side_code          => 'D'
109444          , p_gain_or_loss_flag          => 'N'
109445          , p_gl_transfer_mode_code      => 'S'
109446          , p_acct_entry_type_code       => 'A'
109447          , p_switch_side_flag           => 'Y'
109448          , p_merge_duplicate_code       => 'A'
109449          );
109450    --
109451    l_acc_rev_natural_side_code := 'C';  -- 4262811
109452    -- 
109453    --
109454    -- set accounting line type info
109455    --
109456    xla_ae_lines_pkg.SetAcctLineType
109457       (p_component_type             => l_component_type
109458       ,p_event_type_code            => l_event_type_code
109459       ,p_line_definition_owner_code => l_line_definition_owner_code
109460       ,p_line_definition_code       => l_line_definition_code
109461       ,p_accounting_line_code       => l_component_code
109462       ,p_accounting_line_type_code  => l_component_type_code
109463       ,p_accounting_line_appl_id    => l_component_appl_id
109464       ,p_amb_context_code           => l_amb_context_code
109465       ,p_entity_code                => l_entity_code
109466       ,p_event_class_code           => l_event_class_code);
109467    --
109468    -- set accounting class
109469    --
109470    xla_ae_lines_pkg.SetAcctClass(
109471            p_accounting_class_code  => 'PREPAID_EXPENSE'
109472          , p_ae_header_id           => l_ae_header_id
109473          );
109474 
109475    --
109476    -- set rounding class
109477    --
109478    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109479                       'PREPAID_EXPENSE';
109480 
109481    --
109482    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109483    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109484    --
109485    -- bulk performance
109486    --
109487    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109488 
109489    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109490       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109491 
109492    -- 4955764
109493    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109494       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109495 
109496    -- 4458381 Public Sector Enh
109497    
109498    --
109499    -- set accounting attributes for the line type
109500    --
109501    l_entered_amt_idx := 23;
109502    l_accted_amt_idx  := 28;
109503    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
109504    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109505    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
109506    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
109507    l_rec_acct_attrs.array_num_value(2)  := 
109508 xla_ae_sources_pkg.GetSystemSourceNum(
109509    p_source_code           => 'XLA_EVENT_APPL_ID'
109513    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
109510  , p_source_type_code      => 'Y'
109511  , p_source_application_id =>  602
109512 );
109514    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
109515    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
109516    l_rec_acct_attrs.array_char_value(4)  := 
109517 xla_ae_sources_pkg.GetSystemSourceChar(
109518    p_source_code           => 'XLA_ENTITY_CODE'
109519  , p_source_type_code      => 'Y'
109520  , p_source_application_id =>  602
109521 );
109522    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
109523    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
109524    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
109525    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
109526    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
109527    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
109528    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109529    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
109530    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
109531    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
109532    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
109533    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
109534    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109535    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
109536    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
109537    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
109538    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
109539    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
109540    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
109541    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
109542    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
109543    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
109544    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
109545    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
109546    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
109547    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
109548    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
109549    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
109550    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
109551    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
109552    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
109553    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
109554    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
109555    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
109556    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
109557    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
109558    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
109559    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
109560    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
109561    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
109562    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
109563    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
109564    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
109565    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
109566    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
109567    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
109568    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
109569    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
109570    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
109571    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
109572    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
109573    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
109574    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
109575    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
109576    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
109577    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
109578    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
109579    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
109580    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
109581    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
109582    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
109583    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
109584    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
109585    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
109586    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
109587    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
109588    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
109589    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
109590    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
109591    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
109592    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
109593    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
109594    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
109595    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
109599    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
109596    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
109597    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
109598    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
109600 
109601    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109602    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109603 
109604    ---------------------------------------------------------------------------------------------------------------
109605    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109606    ---------------------------------------------------------------------------------------------------------------
109607    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109608 
109609    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109610    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109611 
109612    IF xla_accounting_cache_pkg.GetValueChar
109613          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109614          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109615    AND l_bflow_method_code = 'PRIOR_ENTRY'
109616 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109617    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109618          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109619        )
109620    THEN
109621          xla_ae_lines_pkg.BflowUpgEntry
109622            (p_business_method_code    => l_bflow_method_code
109623            ,p_business_class_code     => l_bflow_class_code
109624            ,p_balance_type            => l_balance_type_code);
109625    ELSE
109626       NULL;
109627 -- No business flow processing for business flow method of NONE.
109628    END IF;
109629 
109630    --
109631    -- call analytical criteria
109632    --
109633    
109634    --
109635    -- call description
109636    --
109637    
109638 xla_ae_lines_pkg.SetLineDescription(
109639    p_ae_header_id => l_ae_header_id
109640   ,p_description  => Description_1 (
109641      p_application_id         => p_application_id
109642    , p_ae_header_id           => l_ae_header_id 
109643 , p_source_1 => p_source_1
109644    )
109645 );
109646 
109647 
109648    --
109649    -- call ADRs
109650    -- Bug 4922099
109651    --
109652    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109653         (NVL(l_actual_upg_option, 'N') = 'O') OR
109654         (NVL(l_enc_upg_option, 'N') = 'O')
109655       )
109656    THEN
109657    NULL;
109658    --
109659    --
109660    
109661   l_ccid := AcctDerRule_36(
109662            p_application_id           => p_application_id
109663          , p_ae_header_id             => l_ae_header_id 
109664 , p_source_30 => p_source_30
109665 , p_source_31 => p_source_31
109666 , p_source_31_meaning => p_source_31_meaning
109667 , p_source_32 => p_source_32
109668 , p_source_33 => p_source_33
109669 , p_source_33_meaning => p_source_33_meaning
109670 , p_source_45 => p_source_45
109671          , x_transaction_coa_id       => l_adr_transaction_coa_id
109672          , x_accounting_coa_id        => l_adr_accounting_coa_id
109673          , x_value_type_code          => l_adr_value_type_code
109674          , p_side                     => 'NA'
109675    );
109676 
109677    xla_ae_lines_pkg.set_ccid(
109678     p_code_combination_id          => l_ccid
109679   , p_value_type_code              => l_adr_value_type_code
109680   , p_transaction_coa_id           => l_adr_transaction_coa_id
109681   , p_accounting_coa_id            => l_adr_accounting_coa_id
109682   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
109683   , p_adr_type_code                => 'S'
109684   , p_component_type               => l_component_type
109685   , p_component_code               => l_component_code
109686   , p_component_type_code          => l_component_type_code
109687   , p_component_appl_id            => l_component_appl_id
109688   , p_amb_context_code             => l_amb_context_code
109689   , p_side                         => 'NA'
109690   );
109691 
109692 
109693    l_segment := AcctDerRule_13(
109694            p_application_id           => p_application_id
109695          , p_ae_header_id             => l_ae_header_id 
109696 , p_source_30 => p_source_30
109697 , p_source_31 => p_source_31
109698 , p_source_31_meaning => p_source_31_meaning
109699 , p_source_32 => p_source_32
109700 , p_source_33 => p_source_33
109701 , p_source_33_meaning => p_source_33_meaning
109702          , x_transaction_coa_id       => l_adr_transaction_coa_id
109703          , x_accounting_coa_id        => l_adr_accounting_coa_id
109704          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109705          , x_flex_value_set_id        => l_adr_flex_value_set_id
109706          , x_value_type_code          => l_adr_value_type_code
109707          , x_value_combination_id     => l_adr_value_combination_id
109708          , x_value_segment_code       => l_adr_value_segment_code
109709          , p_side                     => 'NA'
109710          , p_override_seg_flag        => 'Y'
109711    );
109712 
109713    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109714 
109715       xla_ae_lines_pkg.set_segment(
109719         , p_from_combination_id     => l_adr_value_combination_id
109716           p_to_segment_code         => 'GL_ACCOUNT'
109717         , p_segment_value           => l_segment
109718         , p_from_segment_code       => l_adr_value_segment_code
109720         , p_value_type_code         => l_adr_value_type_code
109721         , p_transaction_coa_id      => l_adr_transaction_coa_id
109722         , p_accounting_coa_id       => l_adr_accounting_coa_id
109723         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109724         , p_flex_value_set_id       => l_adr_flex_value_set_id
109725         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
109726         , p_adr_type_code           => 'S'
109727         , p_component_type          => l_component_type
109728         , p_component_code          => l_component_code
109729         , p_component_type_code     => l_component_type_code
109730         , p_component_appl_id       => l_component_appl_id
109731         , p_amb_context_code        => l_amb_context_code
109732         , p_entity_code             => 'AP_INVOICES'
109733         , p_event_class_code        => 'PREPAYMENTS'
109734         , p_side                    => 'NA'
109735         );
109736 
109737   END IF;
109738 
109739    --
109740    --
109741    END IF;
109742    --
109743    -- Bug 4922099
109744    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109745           (NVL(l_enc_upg_option, 'N') = 'O')
109746         ) AND
109747         (l_bflow_method_code = 'PRIOR_ENTRY')
109748       )
109749    THEN
109750       IF
109751       --
109752       1 = 2
109753       --
109754       THEN
109755       xla_accounting_err_pkg.build_message
109756                                     (p_appli_s_name            => 'XLA'
109757                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109758                                     ,p_token_1                 => 'LINE_NUMBER'
109759                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109760                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109761                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109762                                                                              l_component_type
109763                                                                             ,l_component_code
109764                                                                             ,l_component_type_code
109765                                                                             ,l_component_appl_id
109766                                                                             ,l_amb_context_code
109767                                                                             ,l_entity_code
109768                                                                             ,l_event_class_code
109769                                                                            )
109770                                     ,p_token_3                 => 'OWNER'
109771                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109772                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109773                                                                           ,p_lookup_code    => l_component_type_code
109774                                                                          )
109775                                     ,p_token_4                 => 'PRODUCT_NAME'
109776                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109777                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109778                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109779                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109780                                     ,p_ae_header_id            =>  NULL
109781                                        );
109782 
109783         IF (C_LEVEL_ERROR>= g_log_level) THEN
109784                  trace
109785                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109786                       ,p_level    => C_LEVEL_ERROR
109787                       ,p_module   => l_log_module);
109788         END IF;
109789       END IF;
109790    END IF;
109791    --
109792    --
109793    ------------------------------------------------------------------------------------------------
109794    -- 4219869 Business Flow
109795    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109796    -- Prior Entry.  Currently, the following code is always generated.
109797    ------------------------------------------------------------------------------------------------
109798    XLA_AE_LINES_PKG.ValidateCurrentLine;
109799 
109800    ------------------------------------------------------------------------------------
109801    -- 4219869 Business Flow
109802    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109803    ------------------------------------------------------------------------------------
109804    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109805 
109806    ----------------------------------------------------------------------------------
109807    -- 4219869 Business Flow
109808    -- Update journal entry status -- Need to generate this within IF <condition>
109809    ----------------------------------------------------------------------------------
109810    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109814 
109811          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109812          ,p_balance_type_code => l_balance_type_code
109813          );
109815    -------------------------------------------------------------------------------------------
109816    -- 4262811 - Generate the Accrual Reversal lines
109817    -------------------------------------------------------------------------------------------
109818    BEGIN
109819       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109820                               (g_array_event(p_event_id).array_value_num('header_index'));
109821       IF l_acc_rev_flag IS NULL THEN
109822          l_acc_rev_flag := 'N';
109823       END IF;
109824    EXCEPTION
109825       WHEN OTHERS THEN
109826          l_acc_rev_flag := 'N';
109827    END;
109828    --
109829    IF (l_acc_rev_flag = 'Y') THEN
109830 
109831        -- 4645092  ------------------------------------------------------------------------------
109832        -- To allow MPA report to determine if it should generate report process
109833        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109834        ------------------------------------------------------------------------------------------
109835 
109836        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109837        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109838    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109839    -- call ADRs
109840    -- Bug 4922099
109841    --
109842    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109843         (NVL(l_actual_upg_option, 'N') = 'O') OR
109844         (NVL(l_enc_upg_option, 'N') = 'O')
109845       )
109846    THEN
109847    NULL;
109848    --
109849    --
109850    
109851   l_ccid := AcctDerRule_36(
109852            p_application_id           => p_application_id
109853          , p_ae_header_id             => l_ae_header_id 
109854 , p_source_30 => p_source_30
109855 , p_source_31 => p_source_31
109856 , p_source_31_meaning => p_source_31_meaning
109857 , p_source_32 => p_source_32
109858 , p_source_33 => p_source_33
109859 , p_source_33_meaning => p_source_33_meaning
109860 , p_source_45 => p_source_45
109861          , x_transaction_coa_id       => l_adr_transaction_coa_id
109862          , x_accounting_coa_id        => l_adr_accounting_coa_id
109863          , x_value_type_code          => l_adr_value_type_code
109864          , p_side                     => 'NA'
109865    );
109866 
109867    xla_ae_lines_pkg.set_ccid(
109868     p_code_combination_id          => l_ccid
109869   , p_value_type_code              => l_adr_value_type_code
109870   , p_transaction_coa_id           => l_adr_transaction_coa_id
109871   , p_accounting_coa_id            => l_adr_accounting_coa_id
109872   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
109873   , p_adr_type_code                => 'S'
109874   , p_component_type               => l_component_type
109875   , p_component_code               => l_component_code
109876   , p_component_type_code          => l_component_type_code
109877   , p_component_appl_id            => l_component_appl_id
109878   , p_amb_context_code             => l_amb_context_code
109879   , p_side                         => 'NA'
109880   );
109881 
109882 
109883    l_segment := AcctDerRule_13(
109884            p_application_id           => p_application_id
109885          , p_ae_header_id             => l_ae_header_id 
109886 , p_source_30 => p_source_30
109887 , p_source_31 => p_source_31
109888 , p_source_31_meaning => p_source_31_meaning
109889 , p_source_32 => p_source_32
109890 , p_source_33 => p_source_33
109891 , p_source_33_meaning => p_source_33_meaning
109892          , x_transaction_coa_id       => l_adr_transaction_coa_id
109893          , x_accounting_coa_id        => l_adr_accounting_coa_id
109894          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109895          , x_flex_value_set_id        => l_adr_flex_value_set_id
109896          , x_value_type_code          => l_adr_value_type_code
109897          , x_value_combination_id     => l_adr_value_combination_id
109898          , x_value_segment_code       => l_adr_value_segment_code
109899          , p_side                     => 'NA'
109900          , p_override_seg_flag        => 'Y'
109901    );
109902 
109903    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109904 
109905       xla_ae_lines_pkg.set_segment(
109906           p_to_segment_code         => 'GL_ACCOUNT'
109907         , p_segment_value           => l_segment
109908         , p_from_segment_code       => l_adr_value_segment_code
109909         , p_from_combination_id     => l_adr_value_combination_id
109910         , p_value_type_code         => l_adr_value_type_code
109911         , p_transaction_coa_id      => l_adr_transaction_coa_id
109912         , p_accounting_coa_id       => l_adr_accounting_coa_id
109913         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109914         , p_flex_value_set_id       => l_adr_flex_value_set_id
109915         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
109916         , p_adr_type_code           => 'S'
109917         , p_component_type          => l_component_type
109918         , p_component_code          => l_component_code
109919         , p_component_type_code     => l_component_type_code
109920         , p_component_appl_id       => l_component_appl_id
109921         , p_amb_context_code        => l_amb_context_code
109922         , p_entity_code             => 'AP_INVOICES'
109923         , p_event_class_code        => 'PREPAYMENTS'
109924         , p_side                    => 'NA'
109925         );
109929    --
109926 
109927   END IF;
109928 
109930    --
109931    END IF;
109932 
109933        --
109934        -- Update the line information that should be overwritten
109935        --
109936        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109937                                          p_header_num   => 1);
109938        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109939 
109940        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109941 
109942        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109943           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109944        END IF;
109945 
109946       --
109947       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109948       --
109949       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109950           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109951       ELSE
109952           ---------------------------------------------------------------------------------------------------
109953           -- 4262811a Switch Sign
109954           ---------------------------------------------------------------------------------------------------
109955           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109956           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109957                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109958           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109959                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109960           -- 5132302
109961           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109962                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109963 
109964       END IF;
109965 
109966       -- 4955764
109967       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109968       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109969 
109970 
109971       XLA_AE_LINES_PKG.ValidateCurrentLine;
109972       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109973 
109974       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109975                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109976                ,p_balance_type_code => l_balance_type_code);
109977 
109978    END IF;
109979 
109980    -----------------------------------------------------------------------------------------
109981    -- 4262811 Multiperiod Accounting
109982    -----------------------------------------------------------------------------------------
109983      -- No MPA option is assigned.
109984 
109985 
109986 END IF;
109987 END IF;
109988 --
109989 
109990 --
109991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109992    trace
109993       (p_msg      => 'END of AcctLineType_181'
109994       ,p_level    => C_LEVEL_PROCEDURE
109995       ,p_module   => l_log_module);
109996 END IF;
109997 --
109998 EXCEPTION
109999   WHEN xla_exceptions_pkg.application_exception THEN
110000       RAISE;
110001   WHEN OTHERS THEN
110002        xla_exceptions_pkg.raise_message
110003            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_181');
110004 END AcctLineType_181;
110005 --
110006 
110007 ---------------------------------------
110008 --
110009 -- PRIVATE FUNCTION
110010 --         AcctLineType_182
110011 --
110012 ---------------------------------------
110013 PROCEDURE AcctLineType_182 (
110014   p_application_id        IN NUMBER
110015  ,p_event_id              IN NUMBER
110016  ,p_calculate_acctd_flag  IN VARCHAR2
110017  ,p_calculate_g_l_flag    IN VARCHAR2
110018  ,p_actual_flag           IN OUT VARCHAR2
110019  ,p_balance_type_code     OUT VARCHAR2
110020  ,p_gain_or_loss_ref      OUT VARCHAR2
110021  
110022 --Accounting Reversal Indicator
110023  , p_source_52            IN VARCHAR2
110024 --Distribution Link Type
110025  , p_source_54            IN VARCHAR2
110026 --Invoice Identifier
110027  , p_source_57            IN NUMBER
110028 --Payables Encumbrance Upgrade Credit Account
110029  , p_source_64            IN NUMBER
110030 --Payables Encumbrance Upgrade Credit Amount
110031  , p_source_65            IN NUMBER
110032 --Invoice Currency Code
110033  , p_source_66            IN VARCHAR2
110034 --Payables Encumbrance Upgrade Credit Base Amount
110035  , p_source_67            IN NUMBER
110036 --Payables Encumbrance Upgrade Debit Account
110037  , p_source_68            IN NUMBER
110038 --Payables Encumbrance Upgrade Debit Amount
110039  , p_source_69            IN NUMBER
110040 --Payables Encumbrance Upgrade Debit Base Amount
110041  , p_source_70            IN NUMBER
110042 --Payables Encumbrance Upgrade Option
110043  , p_source_71            IN VARCHAR2
110044 --Deferred Accounting End Date
110045  , p_source_76            IN DATE
110046 --Deferred Accounting Option
110047  , p_source_77            IN VARCHAR2
110048 --Deferred Accounting Start Date
110049  , p_source_78            IN DATE
110050 --Override Accounted Amount Indicator
110051  , p_source_79            IN VARCHAR2
110055 --Invoice Distribution Tax Line Identifier
110052  , p_source_79_meaning    IN VARCHAR2
110053 --Third Party Type
110054  , p_source_82            IN VARCHAR2
110056  , p_source_85            IN NUMBER
110057 --Invoice Distribution Tax Distribution Identifier from Tax
110058  , p_source_86            IN NUMBER
110059 --Invoice Distribution Summary Tax Line Identifier
110060  , p_source_87            IN NUMBER
110061 --Payables Upgrade Credit Encumbrance Type Identifier
110062  , p_source_88            IN NUMBER
110063 --Payables Upgrade Debit Encumbrance Type Identifier
110064  , p_source_89            IN NUMBER
110065 --Business Flow Accounts Payable Application Identifier
110066  , p_source_90            IN NUMBER
110067 --Prepayment Application Distribution Identifier
110068  , p_source_127            IN NUMBER
110069 --Upgrade Encumbrance Credit Account Class
110070  , p_source_130            IN VARCHAR2
110071 --Upgrade Encumbrance Debit Account Class
110072  , p_source_131            IN VARCHAR2
110073 --Prepayment Distribution Amount
110074  , p_source_132            IN NUMBER
110075 --Identifier of the Prepayment Application Reversed
110076  , p_source_134            IN NUMBER
110077 --Business Flow Prepayment Invoice Distribution Type
110078  , p_source_139            IN VARCHAR2
110079 --Business Flow Prepayment Invoice Entity Code
110080  , p_source_140            IN VARCHAR2
110081 --Business Flow Prepayment Invoice Distribution Identifier
110082  , p_source_141            IN NUMBER
110083 --Business Flow Prepayment Invoice Identifier
110084  , p_source_142            IN NUMBER
110085 --Prepayment Distribution Type
110086  , p_source_143            IN VARCHAR2
110087 --Prepayment Distribution (Prepayment Rate) Ledger Amount
110088  , p_source_144            IN NUMBER
110089 --Deferred Prepayment Settlement Option Code
110090  , p_source_165            IN VARCHAR2
110091  , p_source_165_meaning    IN VARCHAR2
110092 )
110093 IS
110094 
110095 l_component_type              VARCHAR2(80);
110096 l_component_code              VARCHAR2(30);
110097 l_component_type_code         VARCHAR2(1);
110098 l_component_appl_id           INTEGER;
110099 l_amb_context_code            VARCHAR2(30);
110100 l_entity_code                 VARCHAR2(30);
110101 l_event_class_code            VARCHAR2(30);
110102 l_ae_header_id                NUMBER;
110103 l_event_type_code             VARCHAR2(30);
110104 l_line_definition_code        VARCHAR2(30);
110105 l_line_definition_owner_code  VARCHAR2(1);
110106 --
110107 -- adr variables
110108 l_segment                     VARCHAR2(30);
110109 l_ccid                        NUMBER;
110110 l_adr_transaction_coa_id      NUMBER;
110111 l_adr_accounting_coa_id       NUMBER;
110112 l_adr_flexfield_segment_code  VARCHAR2(30);
110113 l_adr_flex_value_set_id       NUMBER;
110114 l_adr_value_type_code         VARCHAR2(30);
110115 l_adr_value_combination_id    NUMBER;
110116 l_adr_value_segment_code      VARCHAR2(30);
110117 
110118 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110119 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110120 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110121 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110122 
110123 -- 4262811 Variables ------------------------------------------------------------------------------------------
110124 l_entered_amt_idx             NUMBER;
110125 l_accted_amt_idx              NUMBER;
110126 l_acc_rev_flag                VARCHAR2(1);
110127 l_accrual_line_num            NUMBER;
110128 l_tmp_amt                     NUMBER;
110129 l_acc_rev_natural_side_code   VARCHAR2(1);
110130 
110131 l_num_entries                 NUMBER;
110132 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110133 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110134 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110135 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110136 l_recog_line_1                NUMBER;
110137 l_recog_line_2                NUMBER;
110138 
110139 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110140 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110141 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110142 
110143 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110144 
110145 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110146 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110147 
110148 ---------------------------------------------------------------------------------------------------------------
110149 
110150 
110151 --
110152 -- bulk performance
110153 --
110154 l_balance_type_code           VARCHAR2(1);
110155 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110156 l_log_module                  VARCHAR2(240);
110157 
110158 --
110159 -- Upgrade strategy
110160 --
110161 l_actual_upg_option           VARCHAR2(1);
110162 l_enc_upg_option           VARCHAR2(1);
110163 
110164 --
110165 BEGIN
110166 --
110167 IF g_log_enabled THEN
110168       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
110169 END IF;
110170 --
110171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110172 
110173       trace
110174          (p_msg      => 'BEGIN of AcctLineType_182'
110175          ,p_level    => C_LEVEL_PROCEDURE
110179 --
110176          ,p_module   => l_log_module);
110177 
110178 END IF;
110180 l_component_type             := 'AMB_JLT';
110181 l_component_code             := 'AP_PREPAID_EXP_ACCR_PREPAY_APP';
110182 l_component_type_code        := 'S';
110183 l_component_appl_id          :=  200;
110184 l_amb_context_code           := 'DEFAULT';
110185 l_entity_code                := 'AP_INVOICES';
110186 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
110187 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
110188 l_line_definition_owner_code := 'S';
110189 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
110190 --
110191 l_balance_type_code          := 'A';
110192 l_segment                     := NULL;
110193 l_ccid                        := NULL;
110194 l_adr_transaction_coa_id      := NULL;
110195 l_adr_accounting_coa_id       := NULL;
110196 l_adr_flexfield_segment_code  := NULL;
110197 l_adr_flex_value_set_id       := NULL;
110198 l_adr_value_type_code         := NULL;
110199 l_adr_value_combination_id    := NULL;
110200 l_adr_value_segment_code      := NULL;
110201 
110202 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
110203 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
110204 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110205 l_budgetary_control_flag     := 'N';
110206 
110207 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110208 l_bflow_applied_to_amt       := NULL; -- 5132302
110209 l_entered_amt_idx            := NULL;          -- 4262811
110210 l_accted_amt_idx             := NULL;          -- 4262811
110211 l_acc_rev_flag               := NULL;          -- 4262811
110212 l_accrual_line_num           := NULL;          -- 4262811
110213 l_tmp_amt                    := NULL;          -- 4262811
110214 --
110215  
110216 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110217     l_balance_type_code <> 'B' THEN
110218 IF NVL(p_source_143,'
110219 ') =  'PREPAY APPL' OR 
110220 NVL(p_source_143,'
110221 ') =  'TAX DIFF' OR 
110222 NVL(p_source_143,'
110223 ') =  'FINAL APPLICATION ROUNDING' OR 
110224 (NVL(p_source_143,'
110225 ') =  'PREPAY APPL REC TAX' AND 
110226 NVL(p_source_165,'
110227 ') <>  'DEFERRED') OR 
110228 NVL(p_source_143,'
110229 ') =  'PREPAY APPL NONREC TAX'
110230  THEN 
110231 
110232    --
110233    XLA_AE_LINES_PKG.SetNewLine;
110234 
110235    p_balance_type_code          := l_balance_type_code;
110236    -- set the flag so later we will know whether the gain loss line needs to be created
110237    
110238    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110239      p_actual_flag :='A';
110240    END IF;
110241 
110242    --
110243    -- bulk performance
110244    --
110245    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110246                                       p_header_num   => 0); -- 4262811
110247    --
110248    -- set accounting line options
110249    --
110250    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110251            p_natural_side_code          => 'D'
110252          , p_gain_or_loss_flag          => 'N'
110253          , p_gl_transfer_mode_code      => 'S'
110254          , p_acct_entry_type_code       => 'A'
110255          , p_switch_side_flag           => 'Y'
110256          , p_merge_duplicate_code       => 'A'
110257          );
110258    --
110259    l_acc_rev_natural_side_code := 'C';  -- 4262811
110260    -- 
110261    --
110262    -- set accounting line type info
110263    --
110264    xla_ae_lines_pkg.SetAcctLineType
110265       (p_component_type             => l_component_type
110266       ,p_event_type_code            => l_event_type_code
110267       ,p_line_definition_owner_code => l_line_definition_owner_code
110268       ,p_line_definition_code       => l_line_definition_code
110269       ,p_accounting_line_code       => l_component_code
110270       ,p_accounting_line_type_code  => l_component_type_code
110271       ,p_accounting_line_appl_id    => l_component_appl_id
110272       ,p_amb_context_code           => l_amb_context_code
110273       ,p_entity_code                => l_entity_code
110274       ,p_event_class_code           => l_event_class_code);
110275    --
110276    -- set accounting class
110277    --
110278    xla_ae_lines_pkg.SetAcctClass(
110279            p_accounting_class_code  => 'PREPAID_EXPENSE'
110280          , p_ae_header_id           => l_ae_header_id
110281          );
110282 
110283    --
110284    -- set rounding class
110285    --
110286    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110287                       'PREPAID_EXPENSE';
110288 
110289    --
110290    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110291    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110292    --
110293    -- bulk performance
110294    --
110295    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110296 
110297    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110298       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110299 
110300    -- 4955764
110301    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110305    
110302       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110303 
110304    -- 4458381 Public Sector Enh
110306    --
110307    -- set accounting attributes for the line type
110308    --
110309    l_entered_amt_idx := 25;
110310    l_accted_amt_idx  := 27;
110311    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
110312    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110313    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
110314    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
110315    l_rec_acct_attrs.array_num_value(2)  := 
110316 xla_ae_sources_pkg.GetSystemSourceNum(
110317    p_source_code           => 'XLA_EVENT_APPL_ID'
110318  , p_source_type_code      => 'Y'
110319  , p_source_application_id =>  602
110320 );
110321    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
110322    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
110323    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
110324    l_rec_acct_attrs.array_char_value(4)  := 
110325 xla_ae_sources_pkg.GetSystemSourceChar(
110326    p_source_code           => 'XLA_ENTITY_CODE'
110327  , p_source_type_code      => 'Y'
110328  , p_source_application_id =>  602
110329 );
110330    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
110331    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
110332    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
110333    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
110334    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
110335    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
110336    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110337    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
110338    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
110339    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
110340    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
110341    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
110342    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110343    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
110344    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
110345    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
110346    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
110347    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
110348    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
110349    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
110350    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
110351    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
110352    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
110353    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
110354    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
110355    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
110356    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
110357    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
110358    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
110359    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
110360    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
110361    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
110362    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
110363    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
110364    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
110365    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
110366    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
110367    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
110368    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
110369    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
110370    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
110371    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
110372    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
110373    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
110374    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
110375    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
110376    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
110377    l_rec_acct_attrs.array_date_value(28)  := p_source_76;
110378    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
110379    l_rec_acct_attrs.array_char_value(29)  := p_source_77;
110380    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
110381    l_rec_acct_attrs.array_date_value(30)  := p_source_78;
110382    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
110383    l_rec_acct_attrs.array_char_value(31)  := p_source_79;
110384    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
110385    l_rec_acct_attrs.array_char_value(32)  := p_source_82;
110386    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
110387    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_134);
110388    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
110389    l_rec_acct_attrs.array_char_value(34)  := p_source_54;
110390    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
110391    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
110392    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
110396    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
110393    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
110394    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
110395    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
110397    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
110398    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
110399    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
110400 
110401    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110402    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110403 
110404    ---------------------------------------------------------------------------------------------------------------
110405    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110406    ---------------------------------------------------------------------------------------------------------------
110407    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110408 
110409    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110410    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110411 
110412    IF xla_accounting_cache_pkg.GetValueChar
110413          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110414          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110415    AND l_bflow_method_code = 'PRIOR_ENTRY'
110416 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110417    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110418          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110419        )
110420    THEN
110421          xla_ae_lines_pkg.BflowUpgEntry
110422            (p_business_method_code    => l_bflow_method_code
110423            ,p_business_class_code     => l_bflow_class_code
110424            ,p_balance_type            => l_balance_type_code);
110425    ELSE
110426       NULL;
110427 XLA_AE_LINES_PKG.business_flow_validation(
110428                                 p_business_method_code     => l_bflow_method_code
110429                                ,p_business_class_code      => l_bflow_class_code
110430                                ,p_inherit_description_flag => l_inherit_desc_flag);
110431    END IF;
110432 
110433    --
110434    -- call analytical criteria
110435    --
110436    -- Inherited Analytical Criteria for business flow method of Prior Entry.
110437    --
110438    -- call description
110439    --
110440    -- No description or it is inherited.
110441    --
110442    -- call ADRs
110443    -- Bug 4922099
110444    --
110445    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110446         (NVL(l_actual_upg_option, 'N') = 'O') OR
110447         (NVL(l_enc_upg_option, 'N') = 'O')
110448       )
110449    THEN
110450    NULL;
110451    --
110452    --
110453    
110454    --
110455    --
110456    END IF;
110457    --
110458    -- Bug 4922099
110459    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110460           (NVL(l_enc_upg_option, 'N') = 'O')
110461         ) AND
110462         (l_bflow_method_code = 'PRIOR_ENTRY')
110463       )
110464    THEN
110465       IF
110466       --
110467       1 = 1
110468       --
110469       THEN
110470       xla_accounting_err_pkg.build_message
110471                                     (p_appli_s_name            => 'XLA'
110472                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110473                                     ,p_token_1                 => 'LINE_NUMBER'
110474                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110475                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110476                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110477                                                                              l_component_type
110478                                                                             ,l_component_code
110479                                                                             ,l_component_type_code
110480                                                                             ,l_component_appl_id
110481                                                                             ,l_amb_context_code
110482                                                                             ,l_entity_code
110483                                                                             ,l_event_class_code
110484                                                                            )
110485                                     ,p_token_3                 => 'OWNER'
110486                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110487                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110488                                                                           ,p_lookup_code    => l_component_type_code
110489                                                                          )
110490                                     ,p_token_4                 => 'PRODUCT_NAME'
110491                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110492                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110493                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110497 
110494                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110495                                     ,p_ae_header_id            =>  NULL
110496                                        );
110498         IF (C_LEVEL_ERROR>= g_log_level) THEN
110499                  trace
110500                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110501                       ,p_level    => C_LEVEL_ERROR
110502                       ,p_module   => l_log_module);
110503         END IF;
110504       END IF;
110505    END IF;
110506    --
110507    --
110508    ------------------------------------------------------------------------------------------------
110509    -- 4219869 Business Flow
110510    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110511    -- Prior Entry.  Currently, the following code is always generated.
110512    ------------------------------------------------------------------------------------------------
110513    -- No ValidateCurrentLine for business flow method of Prior Entry
110514 
110515    ------------------------------------------------------------------------------------
110516    -- 4219869 Business Flow
110517    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110518    ------------------------------------------------------------------------------------
110519    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110520 
110521    ----------------------------------------------------------------------------------
110522    -- 4219869 Business Flow
110523    -- Update journal entry status -- Need to generate this within IF <condition>
110524    ----------------------------------------------------------------------------------
110525    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110526          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110527          ,p_balance_type_code => l_balance_type_code
110528          );
110529 
110530    -------------------------------------------------------------------------------------------
110531    -- 4262811 - Generate the Accrual Reversal lines
110532    -------------------------------------------------------------------------------------------
110533    BEGIN
110534       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110535                               (g_array_event(p_event_id).array_value_num('header_index'));
110536       IF l_acc_rev_flag IS NULL THEN
110537          l_acc_rev_flag := 'N';
110538       END IF;
110539    EXCEPTION
110540       WHEN OTHERS THEN
110541          l_acc_rev_flag := 'N';
110542    END;
110543    --
110544    IF (l_acc_rev_flag = 'Y') THEN
110545 
110546        -- 4645092  ------------------------------------------------------------------------------
110547        -- To allow MPA report to determine if it should generate report process
110548        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110549        ------------------------------------------------------------------------------------------
110550 
110551        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110552        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110553    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110554    -- call ADRs
110555    -- Bug 4922099
110556    --
110557    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110558         (NVL(l_actual_upg_option, 'N') = 'O') OR
110559         (NVL(l_enc_upg_option, 'N') = 'O')
110560       )
110561    THEN
110562    NULL;
110563    --
110564    --
110565    
110566    --
110567    --
110568    END IF;
110569 
110570        --
110571        -- Update the line information that should be overwritten
110572        --
110573        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110574                                          p_header_num   => 1);
110575        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110576 
110577        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110578 
110579        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110580           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110581        END IF;
110582 
110583       --
110584       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110585       --
110586       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110587           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110588       ELSE
110589           ---------------------------------------------------------------------------------------------------
110590           -- 4262811a Switch Sign
110591           ---------------------------------------------------------------------------------------------------
110592           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110593           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110594                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110595           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110596                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110597           -- 5132302
110598           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110602 
110599                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110600 
110601       END IF;
110603       -- 4955764
110604       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110605       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110606 
110607 
110608       XLA_AE_LINES_PKG.ValidateCurrentLine;
110609       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110610 
110611       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110612                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110613                ,p_balance_type_code => l_balance_type_code);
110614 
110615    END IF;
110616 
110617    -----------------------------------------------------------------------------------------
110618    -- 4262811 Multiperiod Accounting
110619    -----------------------------------------------------------------------------------------
110620      -- No MPA option is assigned.
110621 
110622 
110623 END IF;
110624 END IF;
110625 --
110626 
110627 --
110628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110629    trace
110630       (p_msg      => 'END of AcctLineType_182'
110631       ,p_level    => C_LEVEL_PROCEDURE
110632       ,p_module   => l_log_module);
110633 END IF;
110634 --
110635 EXCEPTION
110636   WHEN xla_exceptions_pkg.application_exception THEN
110637       RAISE;
110638   WHEN OTHERS THEN
110639        xla_exceptions_pkg.raise_message
110640            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_182');
110641 END AcctLineType_182;
110642 --
110643 
110644 ---------------------------------------
110645 --
110646 -- PRIVATE FUNCTION
110647 --         AcctLineType_183
110648 --
110649 ---------------------------------------
110650 PROCEDURE AcctLineType_183 (
110651   p_application_id        IN NUMBER
110652  ,p_event_id              IN NUMBER
110653  ,p_calculate_acctd_flag  IN VARCHAR2
110654  ,p_calculate_g_l_flag    IN VARCHAR2
110655  ,p_actual_flag           IN OUT VARCHAR2
110656  ,p_balance_type_code     OUT VARCHAR2
110657  ,p_gain_or_loss_ref      OUT VARCHAR2
110658  
110659 --Invoice Distribution Description
110660  , p_source_1            IN VARCHAR2
110661 --Invoice Distribution Ledger Amount
110662  , p_source_21            IN NUMBER
110663 --Invoice Distribution Account
110664  , p_source_30            IN NUMBER
110665 --Invoice Distribution Type
110666  , p_source_33            IN VARCHAR2
110667  , p_source_33_meaning    IN VARCHAR2
110668 --Accounting Reversal Indicator
110669  , p_source_52            IN VARCHAR2
110670 --Distribution Link Type
110671  , p_source_54            IN VARCHAR2
110672 --Allocation to Main Distribution Identifier
110673  , p_source_56            IN NUMBER
110674 --Invoice Identifier
110675  , p_source_57            IN NUMBER
110676 --Invoice Distribution Identifier
110677  , p_source_63            IN NUMBER
110678 --Payables Encumbrance Upgrade Credit Account
110679  , p_source_64            IN NUMBER
110680 --Payables Encumbrance Upgrade Credit Amount
110681  , p_source_65            IN NUMBER
110682 --Invoice Currency Code
110683  , p_source_66            IN VARCHAR2
110684 --Payables Encumbrance Upgrade Credit Base Amount
110685  , p_source_67            IN NUMBER
110686 --Payables Encumbrance Upgrade Debit Account
110687  , p_source_68            IN NUMBER
110688 --Payables Encumbrance Upgrade Debit Amount
110689  , p_source_69            IN NUMBER
110690 --Payables Encumbrance Upgrade Debit Base Amount
110691  , p_source_70            IN NUMBER
110692 --Payables Encumbrance Upgrade Option
110693  , p_source_71            IN VARCHAR2
110694 --Invoice Distribution Amount
110695  , p_source_72            IN NUMBER
110696 --Deferred Accounting End Date
110697  , p_source_76            IN DATE
110698 --Deferred Accounting Option
110699  , p_source_77            IN VARCHAR2
110700 --Deferred Accounting Start Date
110701  , p_source_78            IN DATE
110702 --Override Accounted Amount Indicator
110703  , p_source_79            IN VARCHAR2
110704  , p_source_79_meaning    IN VARCHAR2
110705 --Invoice Supplier Identifier
110706  , p_source_80            IN NUMBER
110707 --Invoice Supplier Site Identifier
110708  , p_source_81            IN NUMBER
110709 --Third Party Type
110710  , p_source_82            IN VARCHAR2
110711 --Parent Reversal Identifier
110712  , p_source_83            IN NUMBER
110713 --Invoice Distribution Statistical Amount
110714  , p_source_84            IN NUMBER
110715 --Invoice Distribution Tax Line Identifier
110716  , p_source_85            IN NUMBER
110717 --Invoice Distribution Tax Distribution Identifier from Tax
110718  , p_source_86            IN NUMBER
110719 --Invoice Distribution Summary Tax Line Identifier
110720  , p_source_87            IN NUMBER
110721 --Payables Upgrade Credit Encumbrance Type Identifier
110722  , p_source_88            IN NUMBER
110723 --Payables Upgrade Debit Encumbrance Type Identifier
110724  , p_source_89            IN NUMBER
110725 --Business Flow Accounts Payable Application Identifier
110726  , p_source_90            IN NUMBER
110727 --Business Flow Invoice Distribution Type
110728  , p_source_91            IN VARCHAR2
110729 --Business Flow Invoice Entity Code
110730  , p_source_92            IN VARCHAR2
110731 --Business Flow Invoice Distribution Identifier
110732  , p_source_93            IN NUMBER
110733 --Business Flow Invoice Identifier
110734  , p_source_94            IN NUMBER
110738 --Invoice Exchange Date
110735 --Self-Assessed Tax Flag
110736  , p_source_135            IN VARCHAR2
110737  , p_source_135_meaning    IN VARCHAR2
110739  , p_source_136            IN DATE
110740 --Invoice Exchange Rate
110741  , p_source_137            IN NUMBER
110742 --Invoice Exchange Rate Type
110743  , p_source_138            IN VARCHAR2
110744 )
110745 IS
110746 
110747 l_component_type              VARCHAR2(80);
110748 l_component_code              VARCHAR2(30);
110749 l_component_type_code         VARCHAR2(1);
110750 l_component_appl_id           INTEGER;
110751 l_amb_context_code            VARCHAR2(30);
110752 l_entity_code                 VARCHAR2(30);
110753 l_event_class_code            VARCHAR2(30);
110754 l_ae_header_id                NUMBER;
110755 l_event_type_code             VARCHAR2(30);
110756 l_line_definition_code        VARCHAR2(30);
110757 l_line_definition_owner_code  VARCHAR2(1);
110758 --
110759 -- adr variables
110760 l_segment                     VARCHAR2(30);
110761 l_ccid                        NUMBER;
110762 l_adr_transaction_coa_id      NUMBER;
110763 l_adr_accounting_coa_id       NUMBER;
110764 l_adr_flexfield_segment_code  VARCHAR2(30);
110765 l_adr_flex_value_set_id       NUMBER;
110766 l_adr_value_type_code         VARCHAR2(30);
110767 l_adr_value_combination_id    NUMBER;
110768 l_adr_value_segment_code      VARCHAR2(30);
110769 
110770 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110771 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110772 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110773 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110774 
110775 -- 4262811 Variables ------------------------------------------------------------------------------------------
110776 l_entered_amt_idx             NUMBER;
110777 l_accted_amt_idx              NUMBER;
110778 l_acc_rev_flag                VARCHAR2(1);
110779 l_accrual_line_num            NUMBER;
110780 l_tmp_amt                     NUMBER;
110781 l_acc_rev_natural_side_code   VARCHAR2(1);
110782 
110783 l_num_entries                 NUMBER;
110784 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110785 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110786 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110787 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110788 l_recog_line_1                NUMBER;
110789 l_recog_line_2                NUMBER;
110790 
110791 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110792 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110793 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110794 
110795 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110796 
110797 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110798 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110799 
110800 ---------------------------------------------------------------------------------------------------------------
110801 
110802 
110803 --
110804 -- bulk performance
110805 --
110806 l_balance_type_code           VARCHAR2(1);
110807 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110808 l_log_module                  VARCHAR2(240);
110809 
110810 --
110811 -- Upgrade strategy
110812 --
110813 l_actual_upg_option           VARCHAR2(1);
110814 l_enc_upg_option           VARCHAR2(1);
110815 
110816 --
110817 BEGIN
110818 --
110819 IF g_log_enabled THEN
110820       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
110821 END IF;
110822 --
110823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110824 
110825       trace
110826          (p_msg      => 'BEGIN of AcctLineType_183'
110827          ,p_level    => C_LEVEL_PROCEDURE
110828          ,p_module   => l_log_module);
110829 
110830 END IF;
110831 --
110832 l_component_type             := 'AMB_JLT';
110833 l_component_code             := 'AP_RECOV_TAX_CM';
110834 l_component_type_code        := 'S';
110835 l_component_appl_id          :=  200;
110836 l_amb_context_code           := 'DEFAULT';
110837 l_entity_code                := 'AP_INVOICES';
110838 l_event_class_code           := 'CREDIT MEMOS';
110839 l_event_type_code            := 'CREDIT MEMOS_ALL';
110840 l_line_definition_owner_code := 'S';
110841 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
110842 --
110843 l_balance_type_code          := 'A';
110844 l_segment                     := NULL;
110845 l_ccid                        := NULL;
110846 l_adr_transaction_coa_id      := NULL;
110847 l_adr_accounting_coa_id       := NULL;
110848 l_adr_flexfield_segment_code  := NULL;
110849 l_adr_flex_value_set_id       := NULL;
110850 l_adr_value_type_code         := NULL;
110851 l_adr_value_combination_id    := NULL;
110852 l_adr_value_segment_code      := NULL;
110853 
110854 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
110855 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
110856 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110857 l_budgetary_control_flag     := 'N';
110858 
110859 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110860 l_bflow_applied_to_amt       := NULL; -- 5132302
110861 l_entered_amt_idx            := NULL;          -- 4262811
110865 l_tmp_amt                    := NULL;          -- 4262811
110862 l_accted_amt_idx             := NULL;          -- 4262811
110863 l_acc_rev_flag               := NULL;          -- 4262811
110864 l_accrual_line_num           := NULL;          -- 4262811
110866 --
110867  
110868 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110869     l_balance_type_code <> 'B' THEN
110870 IF NVL(p_source_33,'
110871 ') =  'REC_TAX' AND 
110872 NVL(p_source_135,'
110873 ') <>  'Y'
110874  THEN 
110875 
110876    --
110877    XLA_AE_LINES_PKG.SetNewLine;
110878 
110879    p_balance_type_code          := l_balance_type_code;
110880    -- set the flag so later we will know whether the gain loss line needs to be created
110881    
110882    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110883      p_actual_flag :='A';
110884    END IF;
110885 
110886    --
110887    -- bulk performance
110888    --
110889    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110890                                       p_header_num   => 0); -- 4262811
110891    --
110892    -- set accounting line options
110893    --
110894    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110895            p_natural_side_code          => 'D'
110896          , p_gain_or_loss_flag          => 'N'
110897          , p_gl_transfer_mode_code      => 'S'
110898          , p_acct_entry_type_code       => 'A'
110899          , p_switch_side_flag           => 'Y'
110900          , p_merge_duplicate_code       => 'A'
110901          );
110902    --
110903    l_acc_rev_natural_side_code := 'C';  -- 4262811
110904    -- 
110905    --
110906    -- set accounting line type info
110907    --
110908    xla_ae_lines_pkg.SetAcctLineType
110909       (p_component_type             => l_component_type
110910       ,p_event_type_code            => l_event_type_code
110911       ,p_line_definition_owner_code => l_line_definition_owner_code
110912       ,p_line_definition_code       => l_line_definition_code
110913       ,p_accounting_line_code       => l_component_code
110914       ,p_accounting_line_type_code  => l_component_type_code
110915       ,p_accounting_line_appl_id    => l_component_appl_id
110916       ,p_amb_context_code           => l_amb_context_code
110917       ,p_entity_code                => l_entity_code
110918       ,p_event_class_code           => l_event_class_code);
110919    --
110920    -- set accounting class
110921    --
110922    xla_ae_lines_pkg.SetAcctClass(
110923            p_accounting_class_code  => 'RTAX'
110924          , p_ae_header_id           => l_ae_header_id
110925          );
110926 
110927    --
110928    -- set rounding class
110929    --
110930    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110931                       'RTAX';
110932 
110933    --
110934    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110935    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110936    --
110937    -- bulk performance
110938    --
110939    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110940 
110941    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110942       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110943 
110944    -- 4955764
110945    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110946       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110947 
110948    -- 4458381 Public Sector Enh
110949    
110950    --
110951    -- set accounting attributes for the line type
110952    --
110953    l_entered_amt_idx := 23;
110954    l_accted_amt_idx  := 28;
110955    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
110956    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110957    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
110958    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
110959    l_rec_acct_attrs.array_num_value(2)  := 
110960 xla_ae_sources_pkg.GetSystemSourceNum(
110961    p_source_code           => 'XLA_EVENT_APPL_ID'
110962  , p_source_type_code      => 'Y'
110963  , p_source_application_id =>  602
110964 );
110965    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
110966    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
110967    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
110968    l_rec_acct_attrs.array_char_value(4)  := 
110969 xla_ae_sources_pkg.GetSystemSourceChar(
110970    p_source_code           => 'XLA_ENTITY_CODE'
110971  , p_source_type_code      => 'Y'
110972  , p_source_application_id =>  602
110973 );
110974    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
110975    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
110976    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
110977    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
110978    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
110979    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
110980    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110981    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
110985    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
110982    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
110983    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
110984    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
110986    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110987    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
110988    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
110989    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
110990    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
110991    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
110992    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
110993    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
110994    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
110995    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
110996    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
110997    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
110998    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
110999    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
111000    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
111001    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
111002    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
111003    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
111004    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
111005    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
111006    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
111007    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
111008    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
111009    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
111010    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
111011    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
111012    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
111013    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
111014    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
111015    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
111016    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
111017    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
111018    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
111019    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
111020    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
111021    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
111022    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
111023    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
111024    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
111025    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
111026    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
111027    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
111028    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
111029    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
111030    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
111031    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
111032    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
111033    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
111034    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
111035    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
111036    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
111037    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
111038    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
111039    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
111040    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
111041    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
111042    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
111043    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
111044    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
111045    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
111046    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
111047    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
111048    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
111049    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
111050    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
111051    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
111052 
111053    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111054    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111055 
111056    ---------------------------------------------------------------------------------------------------------------
111057    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111058    ---------------------------------------------------------------------------------------------------------------
111059    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111060 
111061    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111062    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111063 
111064    IF xla_accounting_cache_pkg.GetValueChar
111065          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111069    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111066          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111067    AND l_bflow_method_code = 'PRIOR_ENTRY'
111068 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111070          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111071        )
111072    THEN
111073          xla_ae_lines_pkg.BflowUpgEntry
111074            (p_business_method_code    => l_bflow_method_code
111075            ,p_business_class_code     => l_bflow_class_code
111076            ,p_balance_type            => l_balance_type_code);
111077    ELSE
111078       NULL;
111079 -- No business flow processing for business flow method of NONE.
111080    END IF;
111081 
111082    --
111083    -- call analytical criteria
111084    --
111085    
111086    --
111087    -- call description
111088    --
111089    
111090 xla_ae_lines_pkg.SetLineDescription(
111091    p_ae_header_id => l_ae_header_id
111092   ,p_description  => Description_1 (
111093      p_application_id         => p_application_id
111094    , p_ae_header_id           => l_ae_header_id 
111095 , p_source_1 => p_source_1
111096    )
111097 );
111098 
111099 
111100    --
111101    -- call ADRs
111102    -- Bug 4922099
111103    --
111104    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111105         (NVL(l_actual_upg_option, 'N') = 'O') OR
111106         (NVL(l_enc_upg_option, 'N') = 'O')
111107       )
111108    THEN
111109    NULL;
111110    --
111111    --
111112    
111113   l_ccid := AcctDerRule_33(
111114            p_application_id           => p_application_id
111115          , p_ae_header_id             => l_ae_header_id 
111116 , p_source_30 => p_source_30
111117          , x_transaction_coa_id       => l_adr_transaction_coa_id
111118          , x_accounting_coa_id        => l_adr_accounting_coa_id
111119          , x_value_type_code          => l_adr_value_type_code
111120          , p_side                     => 'NA'
111121    );
111122 
111123    xla_ae_lines_pkg.set_ccid(
111124     p_code_combination_id          => l_ccid
111125   , p_value_type_code              => l_adr_value_type_code
111126   , p_transaction_coa_id           => l_adr_transaction_coa_id
111127   , p_accounting_coa_id            => l_adr_accounting_coa_id
111128   , p_adr_code                     => 'AP_INVOICE_DIST'
111129   , p_adr_type_code                => 'S'
111130   , p_component_type               => l_component_type
111131   , p_component_code               => l_component_code
111132   , p_component_type_code          => l_component_type_code
111133   , p_component_appl_id            => l_component_appl_id
111134   , p_amb_context_code             => l_amb_context_code
111135   , p_side                         => 'NA'
111136   );
111137 
111138 
111139    --
111140    --
111141    END IF;
111142    --
111143    -- Bug 4922099
111144    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111145           (NVL(l_enc_upg_option, 'N') = 'O')
111146         ) AND
111147         (l_bflow_method_code = 'PRIOR_ENTRY')
111148       )
111149    THEN
111150       IF
111151       --
111152       1 = 2
111153       --
111154       THEN
111155       xla_accounting_err_pkg.build_message
111156                                     (p_appli_s_name            => 'XLA'
111157                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111158                                     ,p_token_1                 => 'LINE_NUMBER'
111159                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111160                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111161                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111162                                                                              l_component_type
111163                                                                             ,l_component_code
111164                                                                             ,l_component_type_code
111165                                                                             ,l_component_appl_id
111166                                                                             ,l_amb_context_code
111167                                                                             ,l_entity_code
111168                                                                             ,l_event_class_code
111169                                                                            )
111170                                     ,p_token_3                 => 'OWNER'
111171                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111172                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111173                                                                           ,p_lookup_code    => l_component_type_code
111174                                                                          )
111175                                     ,p_token_4                 => 'PRODUCT_NAME'
111176                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111177                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111178                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111179                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111183         IF (C_LEVEL_ERROR>= g_log_level) THEN
111180                                     ,p_ae_header_id            =>  NULL
111181                                        );
111182 
111184                  trace
111185                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111186                       ,p_level    => C_LEVEL_ERROR
111187                       ,p_module   => l_log_module);
111188         END IF;
111189       END IF;
111190    END IF;
111191    --
111192    --
111193    ------------------------------------------------------------------------------------------------
111194    -- 4219869 Business Flow
111195    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111196    -- Prior Entry.  Currently, the following code is always generated.
111197    ------------------------------------------------------------------------------------------------
111198    XLA_AE_LINES_PKG.ValidateCurrentLine;
111199 
111200    ------------------------------------------------------------------------------------
111201    -- 4219869 Business Flow
111202    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111203    ------------------------------------------------------------------------------------
111204    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111205 
111206    ----------------------------------------------------------------------------------
111207    -- 4219869 Business Flow
111208    -- Update journal entry status -- Need to generate this within IF <condition>
111209    ----------------------------------------------------------------------------------
111210    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111211          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111212          ,p_balance_type_code => l_balance_type_code
111213          );
111214 
111215    -------------------------------------------------------------------------------------------
111216    -- 4262811 - Generate the Accrual Reversal lines
111217    -------------------------------------------------------------------------------------------
111218    BEGIN
111219       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111220                               (g_array_event(p_event_id).array_value_num('header_index'));
111221       IF l_acc_rev_flag IS NULL THEN
111222          l_acc_rev_flag := 'N';
111223       END IF;
111224    EXCEPTION
111225       WHEN OTHERS THEN
111226          l_acc_rev_flag := 'N';
111227    END;
111228    --
111229    IF (l_acc_rev_flag = 'Y') THEN
111230 
111231        -- 4645092  ------------------------------------------------------------------------------
111232        -- To allow MPA report to determine if it should generate report process
111233        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111234        ------------------------------------------------------------------------------------------
111235 
111236        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111237        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111238    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111239    -- call ADRs
111240    -- Bug 4922099
111241    --
111242    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111243         (NVL(l_actual_upg_option, 'N') = 'O') OR
111244         (NVL(l_enc_upg_option, 'N') = 'O')
111245       )
111246    THEN
111247    NULL;
111248    --
111249    --
111250    
111251   l_ccid := AcctDerRule_33(
111252            p_application_id           => p_application_id
111253          , p_ae_header_id             => l_ae_header_id 
111254 , p_source_30 => p_source_30
111255          , x_transaction_coa_id       => l_adr_transaction_coa_id
111256          , x_accounting_coa_id        => l_adr_accounting_coa_id
111257          , x_value_type_code          => l_adr_value_type_code
111258          , p_side                     => 'NA'
111259    );
111260 
111261    xla_ae_lines_pkg.set_ccid(
111262     p_code_combination_id          => l_ccid
111263   , p_value_type_code              => l_adr_value_type_code
111264   , p_transaction_coa_id           => l_adr_transaction_coa_id
111265   , p_accounting_coa_id            => l_adr_accounting_coa_id
111266   , p_adr_code                     => 'AP_INVOICE_DIST'
111267   , p_adr_type_code                => 'S'
111268   , p_component_type               => l_component_type
111269   , p_component_code               => l_component_code
111270   , p_component_type_code          => l_component_type_code
111271   , p_component_appl_id            => l_component_appl_id
111272   , p_amb_context_code             => l_amb_context_code
111273   , p_side                         => 'NA'
111274   );
111275 
111276 
111277    --
111278    --
111279    END IF;
111280 
111281        --
111282        -- Update the line information that should be overwritten
111283        --
111284        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111285                                          p_header_num   => 1);
111286        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111287 
111288        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111289 
111290        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111291           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111292        END IF;
111293 
111294       --
111295       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111296       --
111300           ---------------------------------------------------------------------------------------------------
111297       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111298           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111299       ELSE
111301           -- 4262811a Switch Sign
111302           ---------------------------------------------------------------------------------------------------
111303           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111304           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111305                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111306           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111307                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111308           -- 5132302
111309           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111310                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111311 
111312       END IF;
111313 
111314       -- 4955764
111315       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111316       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111317 
111318 
111319       XLA_AE_LINES_PKG.ValidateCurrentLine;
111320       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111321 
111322       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111323                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111324                ,p_balance_type_code => l_balance_type_code);
111325 
111326    END IF;
111327 
111328    -----------------------------------------------------------------------------------------
111329    -- 4262811 Multiperiod Accounting
111330    -----------------------------------------------------------------------------------------
111331      -- No MPA option is assigned.
111332 
111333 
111334 END IF;
111335 END IF;
111336 --
111337 
111338 --
111339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111340    trace
111341       (p_msg      => 'END of AcctLineType_183'
111342       ,p_level    => C_LEVEL_PROCEDURE
111343       ,p_module   => l_log_module);
111344 END IF;
111345 --
111346 EXCEPTION
111347   WHEN xla_exceptions_pkg.application_exception THEN
111348       RAISE;
111349   WHEN OTHERS THEN
111350        xla_exceptions_pkg.raise_message
111351            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_183');
111352 END AcctLineType_183;
111353 --
111354 
111355 ---------------------------------------
111356 --
111357 -- PRIVATE FUNCTION
111358 --         AcctLineType_184
111359 --
111360 ---------------------------------------
111361 PROCEDURE AcctLineType_184 (
111362   p_application_id        IN NUMBER
111363  ,p_event_id              IN NUMBER
111364  ,p_calculate_acctd_flag  IN VARCHAR2
111365  ,p_calculate_g_l_flag    IN VARCHAR2
111366  ,p_actual_flag           IN OUT VARCHAR2
111367  ,p_balance_type_code     OUT VARCHAR2
111368  ,p_gain_or_loss_ref      OUT VARCHAR2
111369  
111370 --Invoice Distribution Description
111371  , p_source_1            IN VARCHAR2
111372 --Invoice Distribution Ledger Amount
111373  , p_source_21            IN NUMBER
111374 --Invoice Distribution Account
111375  , p_source_30            IN NUMBER
111376 --Invoice Distribution Type
111377  , p_source_33            IN VARCHAR2
111378  , p_source_33_meaning    IN VARCHAR2
111379 --Accounting Reversal Indicator
111380  , p_source_52            IN VARCHAR2
111381 --Distribution Link Type
111382  , p_source_54            IN VARCHAR2
111383 --Allocation to Main Distribution Identifier
111384  , p_source_56            IN NUMBER
111385 --Invoice Identifier
111386  , p_source_57            IN NUMBER
111387 --Invoice Distribution Identifier
111388  , p_source_63            IN NUMBER
111389 --Payables Encumbrance Upgrade Credit Account
111390  , p_source_64            IN NUMBER
111391 --Payables Encumbrance Upgrade Credit Amount
111392  , p_source_65            IN NUMBER
111393 --Invoice Currency Code
111394  , p_source_66            IN VARCHAR2
111395 --Payables Encumbrance Upgrade Credit Base Amount
111396  , p_source_67            IN NUMBER
111397 --Payables Encumbrance Upgrade Debit Account
111398  , p_source_68            IN NUMBER
111399 --Payables Encumbrance Upgrade Debit Amount
111400  , p_source_69            IN NUMBER
111401 --Payables Encumbrance Upgrade Debit Base Amount
111402  , p_source_70            IN NUMBER
111403 --Payables Encumbrance Upgrade Option
111404  , p_source_71            IN VARCHAR2
111405 --Invoice Distribution Amount
111406  , p_source_72            IN NUMBER
111407 --Deferred Accounting End Date
111408  , p_source_76            IN DATE
111409 --Deferred Accounting Option
111410  , p_source_77            IN VARCHAR2
111411 --Deferred Accounting Start Date
111412  , p_source_78            IN DATE
111413 --Override Accounted Amount Indicator
111414  , p_source_79            IN VARCHAR2
111415  , p_source_79_meaning    IN VARCHAR2
111416 --Invoice Supplier Identifier
111417  , p_source_80            IN NUMBER
111418 --Invoice Supplier Site Identifier
111419  , p_source_81            IN NUMBER
111423  , p_source_83            IN NUMBER
111420 --Third Party Type
111421  , p_source_82            IN VARCHAR2
111422 --Parent Reversal Identifier
111424 --Invoice Distribution Tax Line Identifier
111425  , p_source_85            IN NUMBER
111426 --Invoice Distribution Tax Distribution Identifier from Tax
111427  , p_source_86            IN NUMBER
111428 --Invoice Distribution Summary Tax Line Identifier
111429  , p_source_87            IN NUMBER
111430 --Payables Upgrade Credit Encumbrance Type Identifier
111431  , p_source_88            IN NUMBER
111432 --Payables Upgrade Debit Encumbrance Type Identifier
111433  , p_source_89            IN NUMBER
111434 --Business Flow Accounts Payable Application Identifier
111435  , p_source_90            IN NUMBER
111436 --Business Flow Invoice Distribution Type
111437  , p_source_91            IN VARCHAR2
111438 --Business Flow Invoice Entity Code
111439  , p_source_92            IN VARCHAR2
111440 --Business Flow Invoice Distribution Identifier
111441  , p_source_93            IN NUMBER
111442 --Business Flow Invoice Identifier
111443  , p_source_94            IN NUMBER
111444 --Self-Assessed Tax Flag
111445  , p_source_135            IN VARCHAR2
111446  , p_source_135_meaning    IN VARCHAR2
111447 --Invoice Exchange Date
111448  , p_source_136            IN DATE
111449 --Invoice Exchange Rate
111450  , p_source_137            IN NUMBER
111451 --Invoice Exchange Rate Type
111452  , p_source_138            IN VARCHAR2
111453 )
111454 IS
111455 
111456 l_component_type              VARCHAR2(80);
111457 l_component_code              VARCHAR2(30);
111458 l_component_type_code         VARCHAR2(1);
111459 l_component_appl_id           INTEGER;
111460 l_amb_context_code            VARCHAR2(30);
111461 l_entity_code                 VARCHAR2(30);
111462 l_event_class_code            VARCHAR2(30);
111463 l_ae_header_id                NUMBER;
111464 l_event_type_code             VARCHAR2(30);
111465 l_line_definition_code        VARCHAR2(30);
111466 l_line_definition_owner_code  VARCHAR2(1);
111467 --
111468 -- adr variables
111469 l_segment                     VARCHAR2(30);
111470 l_ccid                        NUMBER;
111471 l_adr_transaction_coa_id      NUMBER;
111472 l_adr_accounting_coa_id       NUMBER;
111473 l_adr_flexfield_segment_code  VARCHAR2(30);
111474 l_adr_flex_value_set_id       NUMBER;
111475 l_adr_value_type_code         VARCHAR2(30);
111476 l_adr_value_combination_id    NUMBER;
111477 l_adr_value_segment_code      VARCHAR2(30);
111478 
111479 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111480 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111481 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111482 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111483 
111484 -- 4262811 Variables ------------------------------------------------------------------------------------------
111485 l_entered_amt_idx             NUMBER;
111486 l_accted_amt_idx              NUMBER;
111487 l_acc_rev_flag                VARCHAR2(1);
111488 l_accrual_line_num            NUMBER;
111489 l_tmp_amt                     NUMBER;
111490 l_acc_rev_natural_side_code   VARCHAR2(1);
111491 
111492 l_num_entries                 NUMBER;
111493 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111494 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111495 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111496 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111497 l_recog_line_1                NUMBER;
111498 l_recog_line_2                NUMBER;
111499 
111500 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111501 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111502 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111503 
111504 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111505 
111506 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111507 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111508 
111509 ---------------------------------------------------------------------------------------------------------------
111510 
111511 
111512 --
111513 -- bulk performance
111514 --
111515 l_balance_type_code           VARCHAR2(1);
111516 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111517 l_log_module                  VARCHAR2(240);
111518 
111519 --
111520 -- Upgrade strategy
111521 --
111522 l_actual_upg_option           VARCHAR2(1);
111523 l_enc_upg_option           VARCHAR2(1);
111524 
111525 --
111526 BEGIN
111527 --
111528 IF g_log_enabled THEN
111529       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
111530 END IF;
111531 --
111532 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111533 
111534       trace
111535          (p_msg      => 'BEGIN of AcctLineType_184'
111536          ,p_level    => C_LEVEL_PROCEDURE
111537          ,p_module   => l_log_module);
111538 
111539 END IF;
111540 --
111541 l_component_type             := 'AMB_JLT';
111542 l_component_code             := 'AP_RECOV_TAX_DM';
111543 l_component_type_code        := 'S';
111544 l_component_appl_id          :=  200;
111545 l_amb_context_code           := 'DEFAULT';
111546 l_entity_code                := 'AP_INVOICES';
111550 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
111547 l_event_class_code           := 'DEBIT MEMOS';
111548 l_event_type_code            := 'DEBIT MEMOS_ALL';
111549 l_line_definition_owner_code := 'S';
111551 --
111552 l_balance_type_code          := 'A';
111553 l_segment                     := NULL;
111554 l_ccid                        := NULL;
111555 l_adr_transaction_coa_id      := NULL;
111556 l_adr_accounting_coa_id       := NULL;
111557 l_adr_flexfield_segment_code  := NULL;
111558 l_adr_flex_value_set_id       := NULL;
111559 l_adr_value_type_code         := NULL;
111560 l_adr_value_combination_id    := NULL;
111561 l_adr_value_segment_code      := NULL;
111562 
111563 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
111564 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
111565 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111566 l_budgetary_control_flag     := 'N';
111567 
111568 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111569 l_bflow_applied_to_amt       := NULL; -- 5132302
111570 l_entered_amt_idx            := NULL;          -- 4262811
111571 l_accted_amt_idx             := NULL;          -- 4262811
111572 l_acc_rev_flag               := NULL;          -- 4262811
111573 l_accrual_line_num           := NULL;          -- 4262811
111574 l_tmp_amt                    := NULL;          -- 4262811
111575 --
111576  
111577 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111578     l_balance_type_code <> 'B' THEN
111579 IF NVL(p_source_33,'
111580 ') =  'REC_TAX' AND 
111581 NVL(p_source_135,'
111582 ') <>  'Y'
111583  THEN 
111584 
111585    --
111586    XLA_AE_LINES_PKG.SetNewLine;
111587 
111588    p_balance_type_code          := l_balance_type_code;
111589    -- set the flag so later we will know whether the gain loss line needs to be created
111590    
111591    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111592      p_actual_flag :='A';
111593    END IF;
111594 
111595    --
111596    -- bulk performance
111597    --
111598    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111599                                       p_header_num   => 0); -- 4262811
111600    --
111601    -- set accounting line options
111602    --
111603    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111604            p_natural_side_code          => 'D'
111605          , p_gain_or_loss_flag          => 'N'
111606          , p_gl_transfer_mode_code      => 'S'
111607          , p_acct_entry_type_code       => 'A'
111608          , p_switch_side_flag           => 'Y'
111609          , p_merge_duplicate_code       => 'A'
111610          );
111611    --
111612    l_acc_rev_natural_side_code := 'C';  -- 4262811
111613    -- 
111614    --
111615    -- set accounting line type info
111616    --
111617    xla_ae_lines_pkg.SetAcctLineType
111618       (p_component_type             => l_component_type
111619       ,p_event_type_code            => l_event_type_code
111620       ,p_line_definition_owner_code => l_line_definition_owner_code
111621       ,p_line_definition_code       => l_line_definition_code
111622       ,p_accounting_line_code       => l_component_code
111623       ,p_accounting_line_type_code  => l_component_type_code
111624       ,p_accounting_line_appl_id    => l_component_appl_id
111625       ,p_amb_context_code           => l_amb_context_code
111626       ,p_entity_code                => l_entity_code
111627       ,p_event_class_code           => l_event_class_code);
111628    --
111629    -- set accounting class
111630    --
111631    xla_ae_lines_pkg.SetAcctClass(
111632            p_accounting_class_code  => 'RTAX'
111633          , p_ae_header_id           => l_ae_header_id
111634          );
111635 
111636    --
111637    -- set rounding class
111638    --
111639    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111640                       'RTAX';
111641 
111642    --
111643    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111644    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111645    --
111646    -- bulk performance
111647    --
111648    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111649 
111650    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111651       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111652 
111653    -- 4955764
111654    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111655       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111656 
111657    -- 4458381 Public Sector Enh
111658    
111659    --
111660    -- set accounting attributes for the line type
111661    --
111662    l_entered_amt_idx := 23;
111663    l_accted_amt_idx  := 28;
111664    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111665    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111666    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
111667    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
111668    l_rec_acct_attrs.array_num_value(2)  := 
111669 xla_ae_sources_pkg.GetSystemSourceNum(
111670    p_source_code           => 'XLA_EVENT_APPL_ID'
111671  , p_source_type_code      => 'Y'
111672  , p_source_application_id =>  602
111673 );
111674    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
111678 xla_ae_sources_pkg.GetSystemSourceChar(
111675    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
111676    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
111677    l_rec_acct_attrs.array_char_value(4)  := 
111679    p_source_code           => 'XLA_ENTITY_CODE'
111680  , p_source_type_code      => 'Y'
111681  , p_source_application_id =>  602
111682 );
111683    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
111684    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
111685    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
111686    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
111687    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
111688    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
111689    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111690    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
111691    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
111692    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
111693    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
111694    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
111695    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111696    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
111697    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
111698    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
111699    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
111700    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
111701    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
111702    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
111703    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
111704    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
111705    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
111706    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
111707    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
111708    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
111709    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
111710    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
111711    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
111712    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
111713    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
111714    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
111715    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
111716    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
111717    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
111718    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
111719    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
111720    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
111721    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
111722    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
111723    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
111724    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
111725    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
111726    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
111727    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
111728    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
111729    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
111730    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
111731    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
111732    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
111733    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
111734    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
111735    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
111736    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
111737    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
111738    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
111739    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
111740    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
111741    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
111742    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
111743    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
111744    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
111745    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
111746    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
111747    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
111748    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
111749    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
111750    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
111751    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
111752    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
111753    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
111754    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
111755    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
111756    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
111757    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
111758    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
111759 
111760    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111764    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111761    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111762 
111763    ---------------------------------------------------------------------------------------------------------------
111765    ---------------------------------------------------------------------------------------------------------------
111766    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111767 
111768    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111769    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111770 
111771    IF xla_accounting_cache_pkg.GetValueChar
111772          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111773          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111774    AND l_bflow_method_code = 'PRIOR_ENTRY'
111775 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111776    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111777          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111778        )
111779    THEN
111780          xla_ae_lines_pkg.BflowUpgEntry
111781            (p_business_method_code    => l_bflow_method_code
111782            ,p_business_class_code     => l_bflow_class_code
111783            ,p_balance_type            => l_balance_type_code);
111784    ELSE
111785       NULL;
111786 -- No business flow processing for business flow method of NONE.
111787    END IF;
111788 
111789    --
111790    -- call analytical criteria
111791    --
111792    
111793    --
111794    -- call description
111795    --
111796    
111797 xla_ae_lines_pkg.SetLineDescription(
111798    p_ae_header_id => l_ae_header_id
111799   ,p_description  => Description_1 (
111800      p_application_id         => p_application_id
111801    , p_ae_header_id           => l_ae_header_id 
111802 , p_source_1 => p_source_1
111803    )
111804 );
111805 
111806 
111807    --
111808    -- call ADRs
111809    -- Bug 4922099
111810    --
111811    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111812         (NVL(l_actual_upg_option, 'N') = 'O') OR
111813         (NVL(l_enc_upg_option, 'N') = 'O')
111814       )
111815    THEN
111816    NULL;
111817    --
111818    --
111819    
111820   l_ccid := AcctDerRule_33(
111821            p_application_id           => p_application_id
111822          , p_ae_header_id             => l_ae_header_id 
111823 , p_source_30 => p_source_30
111824          , x_transaction_coa_id       => l_adr_transaction_coa_id
111825          , x_accounting_coa_id        => l_adr_accounting_coa_id
111826          , x_value_type_code          => l_adr_value_type_code
111827          , p_side                     => 'NA'
111828    );
111829 
111830    xla_ae_lines_pkg.set_ccid(
111831     p_code_combination_id          => l_ccid
111832   , p_value_type_code              => l_adr_value_type_code
111833   , p_transaction_coa_id           => l_adr_transaction_coa_id
111834   , p_accounting_coa_id            => l_adr_accounting_coa_id
111835   , p_adr_code                     => 'AP_INVOICE_DIST'
111836   , p_adr_type_code                => 'S'
111837   , p_component_type               => l_component_type
111838   , p_component_code               => l_component_code
111839   , p_component_type_code          => l_component_type_code
111840   , p_component_appl_id            => l_component_appl_id
111841   , p_amb_context_code             => l_amb_context_code
111842   , p_side                         => 'NA'
111843   );
111844 
111845 
111846    --
111847    --
111848    END IF;
111849    --
111850    -- Bug 4922099
111851    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111852           (NVL(l_enc_upg_option, 'N') = 'O')
111853         ) AND
111854         (l_bflow_method_code = 'PRIOR_ENTRY')
111855       )
111856    THEN
111857       IF
111858       --
111859       1 = 2
111860       --
111861       THEN
111862       xla_accounting_err_pkg.build_message
111863                                     (p_appli_s_name            => 'XLA'
111864                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111865                                     ,p_token_1                 => 'LINE_NUMBER'
111866                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111867                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111868                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111869                                                                              l_component_type
111870                                                                             ,l_component_code
111871                                                                             ,l_component_type_code
111872                                                                             ,l_component_appl_id
111873                                                                             ,l_amb_context_code
111874                                                                             ,l_entity_code
111875                                                                             ,l_event_class_code
111876                                                                            )
111877                                     ,p_token_3                 => 'OWNER'
111881                                                                          )
111878                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111879                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111880                                                                           ,p_lookup_code    => l_component_type_code
111882                                     ,p_token_4                 => 'PRODUCT_NAME'
111883                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111884                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111885                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111886                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111887                                     ,p_ae_header_id            =>  NULL
111888                                        );
111889 
111890         IF (C_LEVEL_ERROR>= g_log_level) THEN
111891                  trace
111892                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111893                       ,p_level    => C_LEVEL_ERROR
111894                       ,p_module   => l_log_module);
111895         END IF;
111896       END IF;
111897    END IF;
111898    --
111899    --
111900    ------------------------------------------------------------------------------------------------
111901    -- 4219869 Business Flow
111902    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111903    -- Prior Entry.  Currently, the following code is always generated.
111904    ------------------------------------------------------------------------------------------------
111905    XLA_AE_LINES_PKG.ValidateCurrentLine;
111906 
111907    ------------------------------------------------------------------------------------
111908    -- 4219869 Business Flow
111909    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111910    ------------------------------------------------------------------------------------
111911    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111912 
111913    ----------------------------------------------------------------------------------
111914    -- 4219869 Business Flow
111915    -- Update journal entry status -- Need to generate this within IF <condition>
111916    ----------------------------------------------------------------------------------
111917    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111918          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111919          ,p_balance_type_code => l_balance_type_code
111920          );
111921 
111922    -------------------------------------------------------------------------------------------
111923    -- 4262811 - Generate the Accrual Reversal lines
111924    -------------------------------------------------------------------------------------------
111925    BEGIN
111926       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111927                               (g_array_event(p_event_id).array_value_num('header_index'));
111928       IF l_acc_rev_flag IS NULL THEN
111929          l_acc_rev_flag := 'N';
111930       END IF;
111931    EXCEPTION
111932       WHEN OTHERS THEN
111933          l_acc_rev_flag := 'N';
111934    END;
111935    --
111936    IF (l_acc_rev_flag = 'Y') THEN
111937 
111938        -- 4645092  ------------------------------------------------------------------------------
111939        -- To allow MPA report to determine if it should generate report process
111940        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111941        ------------------------------------------------------------------------------------------
111942 
111943        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111944        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111945    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111946    -- call ADRs
111947    -- Bug 4922099
111948    --
111949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111950         (NVL(l_actual_upg_option, 'N') = 'O') OR
111951         (NVL(l_enc_upg_option, 'N') = 'O')
111952       )
111953    THEN
111954    NULL;
111955    --
111956    --
111957    
111958   l_ccid := AcctDerRule_33(
111959            p_application_id           => p_application_id
111960          , p_ae_header_id             => l_ae_header_id 
111961 , p_source_30 => p_source_30
111962          , x_transaction_coa_id       => l_adr_transaction_coa_id
111963          , x_accounting_coa_id        => l_adr_accounting_coa_id
111964          , x_value_type_code          => l_adr_value_type_code
111965          , p_side                     => 'NA'
111966    );
111967 
111968    xla_ae_lines_pkg.set_ccid(
111969     p_code_combination_id          => l_ccid
111970   , p_value_type_code              => l_adr_value_type_code
111971   , p_transaction_coa_id           => l_adr_transaction_coa_id
111972   , p_accounting_coa_id            => l_adr_accounting_coa_id
111973   , p_adr_code                     => 'AP_INVOICE_DIST'
111974   , p_adr_type_code                => 'S'
111975   , p_component_type               => l_component_type
111976   , p_component_code               => l_component_code
111977   , p_component_type_code          => l_component_type_code
111978   , p_component_appl_id            => l_component_appl_id
111979   , p_amb_context_code             => l_amb_context_code
111983 
111980   , p_side                         => 'NA'
111981   );
111982 
111984    --
111985    --
111986    END IF;
111987 
111988        --
111989        -- Update the line information that should be overwritten
111990        --
111991        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111992                                          p_header_num   => 1);
111993        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111994 
111995        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111996 
111997        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111998           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111999        END IF;
112000 
112001       --
112002       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112003       --
112004       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112005           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112006       ELSE
112007           ---------------------------------------------------------------------------------------------------
112008           -- 4262811a Switch Sign
112009           ---------------------------------------------------------------------------------------------------
112010           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112011           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112012                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112013           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112014                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112015           -- 5132302
112016           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112017                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112018 
112019       END IF;
112020 
112021       -- 4955764
112022       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112023       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112024 
112025 
112026       XLA_AE_LINES_PKG.ValidateCurrentLine;
112027       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112028 
112029       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112030                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112031                ,p_balance_type_code => l_balance_type_code);
112032 
112033    END IF;
112034 
112035    -----------------------------------------------------------------------------------------
112036    -- 4262811 Multiperiod Accounting
112037    -----------------------------------------------------------------------------------------
112038      -- No MPA option is assigned.
112039 
112040 
112041 END IF;
112042 END IF;
112043 --
112044 
112045 --
112046 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112047    trace
112048       (p_msg      => 'END of AcctLineType_184'
112049       ,p_level    => C_LEVEL_PROCEDURE
112050       ,p_module   => l_log_module);
112051 END IF;
112052 --
112053 EXCEPTION
112054   WHEN xla_exceptions_pkg.application_exception THEN
112055       RAISE;
112056   WHEN OTHERS THEN
112057        xla_exceptions_pkg.raise_message
112058            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_184');
112059 END AcctLineType_184;
112060 --
112061 
112062 ---------------------------------------
112063 --
112064 -- PRIVATE FUNCTION
112065 --         AcctLineType_185
112066 --
112067 ---------------------------------------
112068 PROCEDURE AcctLineType_185 (
112069   p_application_id        IN NUMBER
112070  ,p_event_id              IN NUMBER
112071  ,p_calculate_acctd_flag  IN VARCHAR2
112072  ,p_calculate_g_l_flag    IN VARCHAR2
112073  ,p_actual_flag           IN OUT VARCHAR2
112074  ,p_balance_type_code     OUT VARCHAR2
112075  ,p_gain_or_loss_ref      OUT VARCHAR2
112076  
112077 --Invoice Distribution Description
112078  , p_source_1            IN VARCHAR2
112079 --Invoice Distribution Ledger Amount
112080  , p_source_21            IN NUMBER
112081 --Invoice Distribution Account
112082  , p_source_30            IN NUMBER
112083 --Invoice Distribution Type
112084  , p_source_33            IN VARCHAR2
112085  , p_source_33_meaning    IN VARCHAR2
112086 --Accounting Reversal Indicator
112087  , p_source_52            IN VARCHAR2
112088 --Distribution Link Type
112089  , p_source_54            IN VARCHAR2
112090 --Allocation to Main Distribution Identifier
112091  , p_source_56            IN NUMBER
112092 --Invoice Identifier
112093  , p_source_57            IN NUMBER
112094 --Invoice Distribution Identifier
112095  , p_source_63            IN NUMBER
112096 --Payables Encumbrance Upgrade Credit Account
112097  , p_source_64            IN NUMBER
112098 --Payables Encumbrance Upgrade Credit Amount
112099  , p_source_65            IN NUMBER
112100 --Invoice Currency Code
112101  , p_source_66            IN VARCHAR2
112102 --Payables Encumbrance Upgrade Credit Base Amount
112103  , p_source_67            IN NUMBER
112107  , p_source_69            IN NUMBER
112104 --Payables Encumbrance Upgrade Debit Account
112105  , p_source_68            IN NUMBER
112106 --Payables Encumbrance Upgrade Debit Amount
112108 --Payables Encumbrance Upgrade Debit Base Amount
112109  , p_source_70            IN NUMBER
112110 --Payables Encumbrance Upgrade Option
112111  , p_source_71            IN VARCHAR2
112112 --Invoice Distribution Amount
112113  , p_source_72            IN NUMBER
112114 --Deferred Accounting End Date
112115  , p_source_76            IN DATE
112116 --Deferred Accounting Option
112117  , p_source_77            IN VARCHAR2
112118 --Deferred Accounting Start Date
112119  , p_source_78            IN DATE
112120 --Override Accounted Amount Indicator
112121  , p_source_79            IN VARCHAR2
112122  , p_source_79_meaning    IN VARCHAR2
112123 --Invoice Supplier Identifier
112124  , p_source_80            IN NUMBER
112125 --Invoice Supplier Site Identifier
112126  , p_source_81            IN NUMBER
112127 --Third Party Type
112128  , p_source_82            IN VARCHAR2
112129 --Parent Reversal Identifier
112130  , p_source_83            IN NUMBER
112131 --Invoice Distribution Statistical Amount
112132  , p_source_84            IN NUMBER
112133 --Invoice Distribution Tax Line Identifier
112134  , p_source_85            IN NUMBER
112135 --Invoice Distribution Tax Distribution Identifier from Tax
112136  , p_source_86            IN NUMBER
112137 --Invoice Distribution Summary Tax Line Identifier
112138  , p_source_87            IN NUMBER
112139 --Payables Upgrade Credit Encumbrance Type Identifier
112140  , p_source_88            IN NUMBER
112141 --Payables Upgrade Debit Encumbrance Type Identifier
112142  , p_source_89            IN NUMBER
112143 --Business Flow Accounts Payable Application Identifier
112144  , p_source_90            IN NUMBER
112145 --Business Flow Invoice Distribution Type
112146  , p_source_91            IN VARCHAR2
112147 --Business Flow Invoice Entity Code
112148  , p_source_92            IN VARCHAR2
112149 --Business Flow Invoice Distribution Identifier
112150  , p_source_93            IN NUMBER
112151 --Business Flow Invoice Identifier
112152  , p_source_94            IN NUMBER
112153 --Self-Assessed Tax Flag
112154  , p_source_135            IN VARCHAR2
112155  , p_source_135_meaning    IN VARCHAR2
112156 --Invoice Exchange Date
112157  , p_source_136            IN DATE
112158 --Invoice Exchange Rate
112159  , p_source_137            IN NUMBER
112160 --Invoice Exchange Rate Type
112161  , p_source_138            IN VARCHAR2
112162 )
112163 IS
112164 
112165 l_component_type              VARCHAR2(80);
112166 l_component_code              VARCHAR2(30);
112167 l_component_type_code         VARCHAR2(1);
112168 l_component_appl_id           INTEGER;
112169 l_amb_context_code            VARCHAR2(30);
112170 l_entity_code                 VARCHAR2(30);
112171 l_event_class_code            VARCHAR2(30);
112172 l_ae_header_id                NUMBER;
112173 l_event_type_code             VARCHAR2(30);
112174 l_line_definition_code        VARCHAR2(30);
112175 l_line_definition_owner_code  VARCHAR2(1);
112176 --
112177 -- adr variables
112178 l_segment                     VARCHAR2(30);
112179 l_ccid                        NUMBER;
112180 l_adr_transaction_coa_id      NUMBER;
112181 l_adr_accounting_coa_id       NUMBER;
112182 l_adr_flexfield_segment_code  VARCHAR2(30);
112183 l_adr_flex_value_set_id       NUMBER;
112184 l_adr_value_type_code         VARCHAR2(30);
112185 l_adr_value_combination_id    NUMBER;
112186 l_adr_value_segment_code      VARCHAR2(30);
112187 
112188 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112189 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112190 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112191 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112192 
112193 -- 4262811 Variables ------------------------------------------------------------------------------------------
112194 l_entered_amt_idx             NUMBER;
112195 l_accted_amt_idx              NUMBER;
112196 l_acc_rev_flag                VARCHAR2(1);
112197 l_accrual_line_num            NUMBER;
112198 l_tmp_amt                     NUMBER;
112199 l_acc_rev_natural_side_code   VARCHAR2(1);
112200 
112201 l_num_entries                 NUMBER;
112202 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112203 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112204 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112205 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112206 l_recog_line_1                NUMBER;
112207 l_recog_line_2                NUMBER;
112208 
112209 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112210 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112211 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112212 
112213 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112214 
112215 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112216 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112217 
112218 ---------------------------------------------------------------------------------------------------------------
112219 
112220 
112221 --
112222 -- bulk performance
112223 --
112224 l_balance_type_code           VARCHAR2(1);
112225 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112226 l_log_module                  VARCHAR2(240);
112227 
112228 --
112232 l_enc_upg_option           VARCHAR2(1);
112229 -- Upgrade strategy
112230 --
112231 l_actual_upg_option           VARCHAR2(1);
112233 
112234 --
112235 BEGIN
112236 --
112237 IF g_log_enabled THEN
112238       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
112239 END IF;
112240 --
112241 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112242 
112243       trace
112244          (p_msg      => 'BEGIN of AcctLineType_185'
112245          ,p_level    => C_LEVEL_PROCEDURE
112246          ,p_module   => l_log_module);
112247 
112248 END IF;
112249 --
112250 l_component_type             := 'AMB_JLT';
112251 l_component_code             := 'AP_RECOV_TAX_INV';
112252 l_component_type_code        := 'S';
112253 l_component_appl_id          :=  200;
112254 l_amb_context_code           := 'DEFAULT';
112255 l_entity_code                := 'AP_INVOICES';
112256 l_event_class_code           := 'INVOICES';
112257 l_event_type_code            := 'INVOICES_ALL';
112258 l_line_definition_owner_code := 'S';
112259 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
112260 --
112261 l_balance_type_code          := 'A';
112262 l_segment                     := NULL;
112263 l_ccid                        := NULL;
112264 l_adr_transaction_coa_id      := NULL;
112265 l_adr_accounting_coa_id       := NULL;
112266 l_adr_flexfield_segment_code  := NULL;
112267 l_adr_flex_value_set_id       := NULL;
112268 l_adr_value_type_code         := NULL;
112269 l_adr_value_combination_id    := NULL;
112270 l_adr_value_segment_code      := NULL;
112271 
112272 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112273 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
112274 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112275 l_budgetary_control_flag     := 'N';
112276 
112277 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112278 l_bflow_applied_to_amt       := NULL; -- 5132302
112279 l_entered_amt_idx            := NULL;          -- 4262811
112280 l_accted_amt_idx             := NULL;          -- 4262811
112281 l_acc_rev_flag               := NULL;          -- 4262811
112282 l_accrual_line_num           := NULL;          -- 4262811
112283 l_tmp_amt                    := NULL;          -- 4262811
112284 --
112285  
112286 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112287     l_balance_type_code <> 'B' THEN
112288 IF NVL(p_source_33,'
112289 ') =  'REC_TAX' AND 
112290 NVL(p_source_135,'
112291 ') <>  'Y'
112292  THEN 
112293 
112294    --
112295    XLA_AE_LINES_PKG.SetNewLine;
112296 
112297    p_balance_type_code          := l_balance_type_code;
112298    -- set the flag so later we will know whether the gain loss line needs to be created
112299    
112300    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112301      p_actual_flag :='A';
112302    END IF;
112303 
112304    --
112305    -- bulk performance
112306    --
112307    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112308                                       p_header_num   => 0); -- 4262811
112309    --
112310    -- set accounting line options
112311    --
112312    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112313            p_natural_side_code          => 'D'
112314          , p_gain_or_loss_flag          => 'N'
112315          , p_gl_transfer_mode_code      => 'S'
112316          , p_acct_entry_type_code       => 'A'
112317          , p_switch_side_flag           => 'Y'
112318          , p_merge_duplicate_code       => 'A'
112319          );
112320    --
112321    l_acc_rev_natural_side_code := 'C';  -- 4262811
112322    -- 
112323    --
112324    -- set accounting line type info
112325    --
112326    xla_ae_lines_pkg.SetAcctLineType
112327       (p_component_type             => l_component_type
112328       ,p_event_type_code            => l_event_type_code
112329       ,p_line_definition_owner_code => l_line_definition_owner_code
112330       ,p_line_definition_code       => l_line_definition_code
112331       ,p_accounting_line_code       => l_component_code
112332       ,p_accounting_line_type_code  => l_component_type_code
112333       ,p_accounting_line_appl_id    => l_component_appl_id
112334       ,p_amb_context_code           => l_amb_context_code
112335       ,p_entity_code                => l_entity_code
112336       ,p_event_class_code           => l_event_class_code);
112337    --
112338    -- set accounting class
112339    --
112340    xla_ae_lines_pkg.SetAcctClass(
112341            p_accounting_class_code  => 'RTAX'
112342          , p_ae_header_id           => l_ae_header_id
112343          );
112344 
112345    --
112346    -- set rounding class
112347    --
112348    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112349                       'RTAX';
112350 
112351    --
112352    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112353    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112354    --
112355    -- bulk performance
112356    --
112357    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112358 
112359    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112360       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112361 
112362    -- 4955764
112363    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112367    
112364       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112365 
112366    -- 4458381 Public Sector Enh
112368    --
112369    -- set accounting attributes for the line type
112370    --
112371    l_entered_amt_idx := 24;
112372    l_accted_amt_idx  := 29;
112373    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
112374    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112375    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
112376    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112377    l_rec_acct_attrs.array_num_value(2)  := 
112378 xla_ae_sources_pkg.GetSystemSourceNum(
112379    p_source_code           => 'XLA_EVENT_APPL_ID'
112380  , p_source_type_code      => 'Y'
112381  , p_source_application_id =>  602
112382 );
112383    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112384    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
112385    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112386    l_rec_acct_attrs.array_char_value(4)  := 
112387 xla_ae_sources_pkg.GetSystemSourceChar(
112388    p_source_code           => 'XLA_ENTITY_CODE'
112389  , p_source_type_code      => 'Y'
112390  , p_source_application_id =>  602
112391 );
112392    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112393    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
112394    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112395    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
112396    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
112397    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
112398    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
112399    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
112400    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112401    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
112402    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
112403    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
112404    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
112405    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
112406    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112407    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
112408    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
112409    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
112410    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
112411    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
112412    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
112413    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
112414    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
112415    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
112416    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
112417    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
112418    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
112419    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
112420    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
112421    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
112422    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
112423    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
112424    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
112425    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
112426    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
112427    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
112428    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
112429    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
112430    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
112431    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
112432    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
112433    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
112434    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
112435    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
112436    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
112437    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
112438    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
112439    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
112440    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
112441    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
112442    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
112443    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
112444    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
112445    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
112446    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
112447    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
112448    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
112449    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
112450    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
112451    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
112452    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
112453    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
112454    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
112455    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
112459    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
112456    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
112457    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
112458    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
112460    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
112461    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
112462    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
112463    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
112464    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
112465    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
112466    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
112467    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
112468    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
112469    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
112470    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
112471    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
112472 
112473    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112474    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112475 
112476    ---------------------------------------------------------------------------------------------------------------
112477    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112478    ---------------------------------------------------------------------------------------------------------------
112479    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112480 
112481    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112482    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112483 
112484    IF xla_accounting_cache_pkg.GetValueChar
112485          (p_source_code         => 'LEDGER_CATEGORY_CODE'
112486          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112487    AND l_bflow_method_code = 'PRIOR_ENTRY'
112488 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112489    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112490          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112491        )
112492    THEN
112493          xla_ae_lines_pkg.BflowUpgEntry
112494            (p_business_method_code    => l_bflow_method_code
112495            ,p_business_class_code     => l_bflow_class_code
112496            ,p_balance_type            => l_balance_type_code);
112497    ELSE
112498       NULL;
112499 -- No business flow processing for business flow method of NONE.
112500    END IF;
112501 
112502    --
112503    -- call analytical criteria
112504    --
112505    
112506    --
112507    -- call description
112508    --
112509    
112510 xla_ae_lines_pkg.SetLineDescription(
112511    p_ae_header_id => l_ae_header_id
112512   ,p_description  => Description_1 (
112513      p_application_id         => p_application_id
112514    , p_ae_header_id           => l_ae_header_id 
112515 , p_source_1 => p_source_1
112516    )
112517 );
112518 
112519 
112520    --
112521    -- call ADRs
112522    -- Bug 4922099
112523    --
112524    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112525         (NVL(l_actual_upg_option, 'N') = 'O') OR
112526         (NVL(l_enc_upg_option, 'N') = 'O')
112527       )
112528    THEN
112529    NULL;
112530    --
112531    --
112532    
112533   l_ccid := AcctDerRule_33(
112534            p_application_id           => p_application_id
112535          , p_ae_header_id             => l_ae_header_id 
112536 , p_source_30 => p_source_30
112537          , x_transaction_coa_id       => l_adr_transaction_coa_id
112538          , x_accounting_coa_id        => l_adr_accounting_coa_id
112539          , x_value_type_code          => l_adr_value_type_code
112540          , p_side                     => 'NA'
112541    );
112542 
112543    xla_ae_lines_pkg.set_ccid(
112544     p_code_combination_id          => l_ccid
112545   , p_value_type_code              => l_adr_value_type_code
112546   , p_transaction_coa_id           => l_adr_transaction_coa_id
112547   , p_accounting_coa_id            => l_adr_accounting_coa_id
112548   , p_adr_code                     => 'AP_INVOICE_DIST'
112549   , p_adr_type_code                => 'S'
112550   , p_component_type               => l_component_type
112551   , p_component_code               => l_component_code
112552   , p_component_type_code          => l_component_type_code
112553   , p_component_appl_id            => l_component_appl_id
112554   , p_amb_context_code             => l_amb_context_code
112555   , p_side                         => 'NA'
112556   );
112557 
112558 
112559    --
112560    --
112561    END IF;
112562    --
112563    -- Bug 4922099
112564    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112565           (NVL(l_enc_upg_option, 'N') = 'O')
112566         ) AND
112567         (l_bflow_method_code = 'PRIOR_ENTRY')
112568       )
112569    THEN
112570       IF
112571       --
112572       1 = 2
112573       --
112574       THEN
112575       xla_accounting_err_pkg.build_message
112576                                     (p_appli_s_name            => 'XLA'
112577                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112581                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112578                                     ,p_token_1                 => 'LINE_NUMBER'
112579                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112580                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112582                                                                              l_component_type
112583                                                                             ,l_component_code
112584                                                                             ,l_component_type_code
112585                                                                             ,l_component_appl_id
112586                                                                             ,l_amb_context_code
112587                                                                             ,l_entity_code
112588                                                                             ,l_event_class_code
112589                                                                            )
112590                                     ,p_token_3                 => 'OWNER'
112591                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112592                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112593                                                                           ,p_lookup_code    => l_component_type_code
112594                                                                          )
112595                                     ,p_token_4                 => 'PRODUCT_NAME'
112596                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112597                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112598                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112599                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112600                                     ,p_ae_header_id            =>  NULL
112601                                        );
112602 
112603         IF (C_LEVEL_ERROR>= g_log_level) THEN
112604                  trace
112605                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112606                       ,p_level    => C_LEVEL_ERROR
112607                       ,p_module   => l_log_module);
112608         END IF;
112609       END IF;
112610    END IF;
112611    --
112612    --
112613    ------------------------------------------------------------------------------------------------
112614    -- 4219869 Business Flow
112615    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112616    -- Prior Entry.  Currently, the following code is always generated.
112617    ------------------------------------------------------------------------------------------------
112618    XLA_AE_LINES_PKG.ValidateCurrentLine;
112619 
112620    ------------------------------------------------------------------------------------
112621    -- 4219869 Business Flow
112622    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112623    ------------------------------------------------------------------------------------
112624    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112625 
112626    ----------------------------------------------------------------------------------
112627    -- 4219869 Business Flow
112628    -- Update journal entry status -- Need to generate this within IF <condition>
112629    ----------------------------------------------------------------------------------
112630    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112631          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112632          ,p_balance_type_code => l_balance_type_code
112633          );
112634 
112635    -------------------------------------------------------------------------------------------
112636    -- 4262811 - Generate the Accrual Reversal lines
112637    -------------------------------------------------------------------------------------------
112638    BEGIN
112639       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112640                               (g_array_event(p_event_id).array_value_num('header_index'));
112641       IF l_acc_rev_flag IS NULL THEN
112642          l_acc_rev_flag := 'N';
112643       END IF;
112644    EXCEPTION
112645       WHEN OTHERS THEN
112646          l_acc_rev_flag := 'N';
112647    END;
112648    --
112649    IF (l_acc_rev_flag = 'Y') THEN
112650 
112651        -- 4645092  ------------------------------------------------------------------------------
112652        -- To allow MPA report to determine if it should generate report process
112653        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112654        ------------------------------------------------------------------------------------------
112655 
112656        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112657        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112658    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112659    -- call ADRs
112660    -- Bug 4922099
112661    --
112662    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112663         (NVL(l_actual_upg_option, 'N') = 'O') OR
112664         (NVL(l_enc_upg_option, 'N') = 'O')
112665       )
112666    THEN
112667    NULL;
112668    --
112669    --
112670    
112674 , p_source_30 => p_source_30
112671   l_ccid := AcctDerRule_33(
112672            p_application_id           => p_application_id
112673          , p_ae_header_id             => l_ae_header_id 
112675          , x_transaction_coa_id       => l_adr_transaction_coa_id
112676          , x_accounting_coa_id        => l_adr_accounting_coa_id
112677          , x_value_type_code          => l_adr_value_type_code
112678          , p_side                     => 'NA'
112679    );
112680 
112681    xla_ae_lines_pkg.set_ccid(
112682     p_code_combination_id          => l_ccid
112683   , p_value_type_code              => l_adr_value_type_code
112684   , p_transaction_coa_id           => l_adr_transaction_coa_id
112685   , p_accounting_coa_id            => l_adr_accounting_coa_id
112686   , p_adr_code                     => 'AP_INVOICE_DIST'
112687   , p_adr_type_code                => 'S'
112688   , p_component_type               => l_component_type
112689   , p_component_code               => l_component_code
112690   , p_component_type_code          => l_component_type_code
112691   , p_component_appl_id            => l_component_appl_id
112692   , p_amb_context_code             => l_amb_context_code
112693   , p_side                         => 'NA'
112694   );
112695 
112696 
112697    --
112698    --
112699    END IF;
112700 
112701        --
112702        -- Update the line information that should be overwritten
112703        --
112704        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112705                                          p_header_num   => 1);
112706        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112707 
112708        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112709 
112710        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112711           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112712        END IF;
112713 
112714       --
112715       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112716       --
112717       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112718           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112719       ELSE
112720           ---------------------------------------------------------------------------------------------------
112721           -- 4262811a Switch Sign
112722           ---------------------------------------------------------------------------------------------------
112723           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112724           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112725                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112726           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112727                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112728           -- 5132302
112729           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112730                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112731 
112732       END IF;
112733 
112734       -- 4955764
112735       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112736       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112737 
112738 
112739       XLA_AE_LINES_PKG.ValidateCurrentLine;
112740       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112741 
112742       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112743                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112744                ,p_balance_type_code => l_balance_type_code);
112745 
112746    END IF;
112747 
112748    -----------------------------------------------------------------------------------------
112749    -- 4262811 Multiperiod Accounting
112750    -----------------------------------------------------------------------------------------
112751      -- No MPA option is assigned.
112752 
112753 
112754 END IF;
112755 END IF;
112756 --
112757 
112758 --
112759 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112760    trace
112761       (p_msg      => 'END of AcctLineType_185'
112762       ,p_level    => C_LEVEL_PROCEDURE
112763       ,p_module   => l_log_module);
112764 END IF;
112765 --
112766 EXCEPTION
112767   WHEN xla_exceptions_pkg.application_exception THEN
112768       RAISE;
112769   WHEN OTHERS THEN
112770        xla_exceptions_pkg.raise_message
112771            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_185');
112772 END AcctLineType_185;
112773 --
112774 
112775 ---------------------------------------
112776 --
112777 -- PRIVATE FUNCTION
112778 --         AcctLineType_186
112779 --
112780 ---------------------------------------
112781 PROCEDURE AcctLineType_186 (
112782   p_application_id        IN NUMBER
112783  ,p_event_id              IN NUMBER
112784  ,p_calculate_acctd_flag  IN VARCHAR2
112785  ,p_calculate_g_l_flag    IN VARCHAR2
112786  ,p_actual_flag           IN OUT VARCHAR2
112787  ,p_balance_type_code     OUT VARCHAR2
112788  ,p_gain_or_loss_ref      OUT VARCHAR2
112789  
112793  , p_source_21            IN NUMBER
112790 --Invoice Distribution Description
112791  , p_source_1            IN VARCHAR2
112792 --Invoice Distribution Ledger Amount
112794 --Invoice Distribution Account
112795  , p_source_30            IN NUMBER
112796 --Invoice Distribution Type
112797  , p_source_33            IN VARCHAR2
112798  , p_source_33_meaning    IN VARCHAR2
112799 --Accounting Reversal Indicator
112800  , p_source_52            IN VARCHAR2
112801 --Distribution Link Type
112802  , p_source_54            IN VARCHAR2
112803 --Allocation to Main Distribution Identifier
112804  , p_source_56            IN NUMBER
112805 --Invoice Identifier
112806  , p_source_57            IN NUMBER
112807 --Invoice Distribution Identifier
112808  , p_source_63            IN NUMBER
112809 --Payables Encumbrance Upgrade Credit Account
112810  , p_source_64            IN NUMBER
112811 --Payables Encumbrance Upgrade Credit Amount
112812  , p_source_65            IN NUMBER
112813 --Invoice Currency Code
112814  , p_source_66            IN VARCHAR2
112815 --Payables Encumbrance Upgrade Credit Base Amount
112816  , p_source_67            IN NUMBER
112817 --Payables Encumbrance Upgrade Debit Account
112818  , p_source_68            IN NUMBER
112819 --Payables Encumbrance Upgrade Debit Amount
112820  , p_source_69            IN NUMBER
112821 --Payables Encumbrance Upgrade Debit Base Amount
112822  , p_source_70            IN NUMBER
112823 --Payables Encumbrance Upgrade Option
112824  , p_source_71            IN VARCHAR2
112825 --Invoice Distribution Amount
112826  , p_source_72            IN NUMBER
112827 --Deferred Accounting End Date
112828  , p_source_76            IN DATE
112829 --Deferred Accounting Option
112830  , p_source_77            IN VARCHAR2
112831 --Deferred Accounting Start Date
112832  , p_source_78            IN DATE
112833 --Override Accounted Amount Indicator
112834  , p_source_79            IN VARCHAR2
112835  , p_source_79_meaning    IN VARCHAR2
112836 --Invoice Supplier Identifier
112837  , p_source_80            IN NUMBER
112838 --Invoice Supplier Site Identifier
112839  , p_source_81            IN NUMBER
112840 --Third Party Type
112841  , p_source_82            IN VARCHAR2
112842 --Parent Reversal Identifier
112843  , p_source_83            IN NUMBER
112844 --Invoice Distribution Statistical Amount
112845  , p_source_84            IN NUMBER
112846 --Invoice Distribution Tax Line Identifier
112847  , p_source_85            IN NUMBER
112848 --Invoice Distribution Tax Distribution Identifier from Tax
112849  , p_source_86            IN NUMBER
112850 --Invoice Distribution Summary Tax Line Identifier
112851  , p_source_87            IN NUMBER
112852 --Payables Upgrade Credit Encumbrance Type Identifier
112853  , p_source_88            IN NUMBER
112854 --Payables Upgrade Debit Encumbrance Type Identifier
112855  , p_source_89            IN NUMBER
112856 --Business Flow Accounts Payable Application Identifier
112857  , p_source_90            IN NUMBER
112858 --Business Flow Invoice Distribution Type
112859  , p_source_91            IN VARCHAR2
112860 --Business Flow Invoice Entity Code
112861  , p_source_92            IN VARCHAR2
112862 --Business Flow Invoice Distribution Identifier
112863  , p_source_93            IN NUMBER
112864 --Business Flow Invoice Identifier
112865  , p_source_94            IN NUMBER
112866 --Deferred Recoverable Tax Option
112867  , p_source_125            IN VARCHAR2
112868  , p_source_125_meaning    IN VARCHAR2
112869 --Self-Assessed Tax Flag
112870  , p_source_135            IN VARCHAR2
112871  , p_source_135_meaning    IN VARCHAR2
112872 --Invoice Exchange Date
112873  , p_source_136            IN DATE
112874 --Invoice Exchange Rate
112875  , p_source_137            IN NUMBER
112876 --Invoice Exchange Rate Type
112877  , p_source_138            IN VARCHAR2
112878 )
112879 IS
112880 
112881 l_component_type              VARCHAR2(80);
112882 l_component_code              VARCHAR2(30);
112883 l_component_type_code         VARCHAR2(1);
112884 l_component_appl_id           INTEGER;
112885 l_amb_context_code            VARCHAR2(30);
112886 l_entity_code                 VARCHAR2(30);
112887 l_event_class_code            VARCHAR2(30);
112888 l_ae_header_id                NUMBER;
112889 l_event_type_code             VARCHAR2(30);
112890 l_line_definition_code        VARCHAR2(30);
112891 l_line_definition_owner_code  VARCHAR2(1);
112892 --
112893 -- adr variables
112894 l_segment                     VARCHAR2(30);
112895 l_ccid                        NUMBER;
112896 l_adr_transaction_coa_id      NUMBER;
112897 l_adr_accounting_coa_id       NUMBER;
112898 l_adr_flexfield_segment_code  VARCHAR2(30);
112899 l_adr_flex_value_set_id       NUMBER;
112900 l_adr_value_type_code         VARCHAR2(30);
112901 l_adr_value_combination_id    NUMBER;
112902 l_adr_value_segment_code      VARCHAR2(30);
112903 
112904 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112905 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112906 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112907 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112908 
112909 -- 4262811 Variables ------------------------------------------------------------------------------------------
112910 l_entered_amt_idx             NUMBER;
112911 l_accted_amt_idx              NUMBER;
112912 l_acc_rev_flag                VARCHAR2(1);
112913 l_accrual_line_num            NUMBER;
112914 l_tmp_amt                     NUMBER;
112915 l_acc_rev_natural_side_code   VARCHAR2(1);
112916 
112917 l_num_entries                 NUMBER;
112921 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112918 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112919 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112920 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112922 l_recog_line_1                NUMBER;
112923 l_recog_line_2                NUMBER;
112924 
112925 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112926 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112927 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112928 
112929 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112930 
112931 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112932 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112933 
112934 ---------------------------------------------------------------------------------------------------------------
112935 
112936 
112937 --
112938 -- bulk performance
112939 --
112940 l_balance_type_code           VARCHAR2(1);
112941 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112942 l_log_module                  VARCHAR2(240);
112943 
112944 --
112945 -- Upgrade strategy
112946 --
112947 l_actual_upg_option           VARCHAR2(1);
112948 l_enc_upg_option           VARCHAR2(1);
112949 
112950 --
112951 BEGIN
112952 --
112953 IF g_log_enabled THEN
112954       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
112955 END IF;
112956 --
112957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112958 
112959       trace
112960          (p_msg      => 'BEGIN of AcctLineType_186'
112961          ,p_level    => C_LEVEL_PROCEDURE
112962          ,p_module   => l_log_module);
112963 
112964 END IF;
112965 --
112966 l_component_type             := 'AMB_JLT';
112967 l_component_code             := 'AP_RECOV_TAX_PREPAY';
112968 l_component_type_code        := 'S';
112969 l_component_appl_id          :=  200;
112970 l_amb_context_code           := 'DEFAULT';
112971 l_entity_code                := 'AP_INVOICES';
112972 l_event_class_code           := 'PREPAYMENTS';
112973 l_event_type_code            := 'PREPAYMENTS_ALL';
112974 l_line_definition_owner_code := 'S';
112975 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
112976 --
112977 l_balance_type_code          := 'A';
112978 l_segment                     := NULL;
112979 l_ccid                        := NULL;
112980 l_adr_transaction_coa_id      := NULL;
112981 l_adr_accounting_coa_id       := NULL;
112982 l_adr_flexfield_segment_code  := NULL;
112983 l_adr_flex_value_set_id       := NULL;
112984 l_adr_value_type_code         := NULL;
112985 l_adr_value_combination_id    := NULL;
112986 l_adr_value_segment_code      := NULL;
112987 
112988 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112989 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
112990 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112991 l_budgetary_control_flag     := 'N';
112992 
112993 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112994 l_bflow_applied_to_amt       := NULL; -- 5132302
112995 l_entered_amt_idx            := NULL;          -- 4262811
112996 l_accted_amt_idx             := NULL;          -- 4262811
112997 l_acc_rev_flag               := NULL;          -- 4262811
112998 l_accrual_line_num           := NULL;          -- 4262811
112999 l_tmp_amt                    := NULL;          -- 4262811
113000 --
113001  
113002 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113003     l_balance_type_code <> 'B' THEN
113004 IF NVL(p_source_33,'
113005 ') =  'REC_TAX' AND 
113006 NVL(p_source_125,'
113007 ') =  'IMMEDIATE' AND 
113008 NVL(p_source_135,'
113009 ') <>  'Y'
113010  THEN 
113011 
113012    --
113013    XLA_AE_LINES_PKG.SetNewLine;
113014 
113015    p_balance_type_code          := l_balance_type_code;
113016    -- set the flag so later we will know whether the gain loss line needs to be created
113017    
113018    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113019      p_actual_flag :='A';
113020    END IF;
113021 
113022    --
113023    -- bulk performance
113024    --
113025    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113026                                       p_header_num   => 0); -- 4262811
113027    --
113028    -- set accounting line options
113029    --
113030    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113031            p_natural_side_code          => 'D'
113032          , p_gain_or_loss_flag          => 'N'
113033          , p_gl_transfer_mode_code      => 'S'
113034          , p_acct_entry_type_code       => 'A'
113035          , p_switch_side_flag           => 'Y'
113036          , p_merge_duplicate_code       => 'A'
113037          );
113038    --
113039    l_acc_rev_natural_side_code := 'C';  -- 4262811
113040    -- 
113041    --
113042    -- set accounting line type info
113043    --
113044    xla_ae_lines_pkg.SetAcctLineType
113045       (p_component_type             => l_component_type
113046       ,p_event_type_code            => l_event_type_code
113047       ,p_line_definition_owner_code => l_line_definition_owner_code
113048       ,p_line_definition_code       => l_line_definition_code
113049       ,p_accounting_line_code       => l_component_code
113050       ,p_accounting_line_type_code  => l_component_type_code
113054       ,p_event_class_code           => l_event_class_code);
113051       ,p_accounting_line_appl_id    => l_component_appl_id
113052       ,p_amb_context_code           => l_amb_context_code
113053       ,p_entity_code                => l_entity_code
113055    --
113056    -- set accounting class
113057    --
113058    xla_ae_lines_pkg.SetAcctClass(
113059            p_accounting_class_code  => 'RTAX'
113060          , p_ae_header_id           => l_ae_header_id
113061          );
113062 
113063    --
113064    -- set rounding class
113065    --
113066    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113067                       'RTAX';
113068 
113069    --
113070    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113071    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113072    --
113073    -- bulk performance
113074    --
113075    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113076 
113077    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113078       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113079 
113080    -- 4955764
113081    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113082       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113083 
113084    -- 4458381 Public Sector Enh
113085    
113086    --
113087    -- set accounting attributes for the line type
113088    --
113089    l_entered_amt_idx := 23;
113090    l_accted_amt_idx  := 28;
113091    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
113092    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113093    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
113094    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113095    l_rec_acct_attrs.array_num_value(2)  := 
113096 xla_ae_sources_pkg.GetSystemSourceNum(
113097    p_source_code           => 'XLA_EVENT_APPL_ID'
113098  , p_source_type_code      => 'Y'
113099  , p_source_application_id =>  602
113100 );
113101    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113102    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
113103    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113104    l_rec_acct_attrs.array_char_value(4)  := 
113105 xla_ae_sources_pkg.GetSystemSourceChar(
113106    p_source_code           => 'XLA_ENTITY_CODE'
113107  , p_source_type_code      => 'Y'
113108  , p_source_application_id =>  602
113109 );
113110    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113111    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
113112    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113113    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
113114    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
113115    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
113116    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113117    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
113118    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
113119    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
113120    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
113121    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
113122    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113123    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
113124    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
113125    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
113126    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
113127    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
113128    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
113129    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
113130    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
113131    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
113132    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
113133    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
113134    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
113135    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
113136    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
113137    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
113138    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
113139    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
113140    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
113141    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
113142    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
113143    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
113144    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
113145    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
113146    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
113147    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
113148    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
113149    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
113150    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
113154    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
113151    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
113152    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
113153    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
113155    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
113156    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
113157    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
113158    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
113159    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
113160    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
113161    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
113162    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
113163    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
113164    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
113165    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
113166    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
113167    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
113168    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
113169    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
113170    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
113171    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
113172    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
113173    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
113174    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
113175    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
113176    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
113177    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
113178    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
113179    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
113180    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
113181    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
113182    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
113183    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
113184    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
113185    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
113186    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
113187    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
113188 
113189    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113190    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113191 
113192    ---------------------------------------------------------------------------------------------------------------
113193    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113194    ---------------------------------------------------------------------------------------------------------------
113195    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113196 
113197    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113198    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113199 
113200    IF xla_accounting_cache_pkg.GetValueChar
113201          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113202          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113203    AND l_bflow_method_code = 'PRIOR_ENTRY'
113204 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113205    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113206          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113207        )
113208    THEN
113209          xla_ae_lines_pkg.BflowUpgEntry
113210            (p_business_method_code    => l_bflow_method_code
113211            ,p_business_class_code     => l_bflow_class_code
113212            ,p_balance_type            => l_balance_type_code);
113213    ELSE
113214       NULL;
113215 -- No business flow processing for business flow method of NONE.
113216    END IF;
113217 
113218    --
113219    -- call analytical criteria
113220    --
113221    
113222    --
113223    -- call description
113224    --
113225    
113226 xla_ae_lines_pkg.SetLineDescription(
113227    p_ae_header_id => l_ae_header_id
113228   ,p_description  => Description_1 (
113229      p_application_id         => p_application_id
113230    , p_ae_header_id           => l_ae_header_id 
113231 , p_source_1 => p_source_1
113232    )
113233 );
113234 
113235 
113236    --
113237    -- call ADRs
113238    -- Bug 4922099
113239    --
113240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113241         (NVL(l_actual_upg_option, 'N') = 'O') OR
113242         (NVL(l_enc_upg_option, 'N') = 'O')
113243       )
113244    THEN
113245    NULL;
113246    --
113247    --
113248    
113249   l_ccid := AcctDerRule_33(
113250            p_application_id           => p_application_id
113251          , p_ae_header_id             => l_ae_header_id 
113252 , p_source_30 => p_source_30
113253          , x_transaction_coa_id       => l_adr_transaction_coa_id
113254          , x_accounting_coa_id        => l_adr_accounting_coa_id
113255          , x_value_type_code          => l_adr_value_type_code
113256          , p_side                     => 'NA'
113257    );
113258 
113262   , p_transaction_coa_id           => l_adr_transaction_coa_id
113259    xla_ae_lines_pkg.set_ccid(
113260     p_code_combination_id          => l_ccid
113261   , p_value_type_code              => l_adr_value_type_code
113263   , p_accounting_coa_id            => l_adr_accounting_coa_id
113264   , p_adr_code                     => 'AP_INVOICE_DIST'
113265   , p_adr_type_code                => 'S'
113266   , p_component_type               => l_component_type
113267   , p_component_code               => l_component_code
113268   , p_component_type_code          => l_component_type_code
113269   , p_component_appl_id            => l_component_appl_id
113270   , p_amb_context_code             => l_amb_context_code
113271   , p_side                         => 'NA'
113272   );
113273 
113274 
113275    --
113276    --
113277    END IF;
113278    --
113279    -- Bug 4922099
113280    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113281           (NVL(l_enc_upg_option, 'N') = 'O')
113282         ) AND
113283         (l_bflow_method_code = 'PRIOR_ENTRY')
113284       )
113285    THEN
113286       IF
113287       --
113288       1 = 2
113289       --
113290       THEN
113291       xla_accounting_err_pkg.build_message
113292                                     (p_appli_s_name            => 'XLA'
113293                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113294                                     ,p_token_1                 => 'LINE_NUMBER'
113295                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113296                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113297                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113298                                                                              l_component_type
113299                                                                             ,l_component_code
113300                                                                             ,l_component_type_code
113301                                                                             ,l_component_appl_id
113302                                                                             ,l_amb_context_code
113303                                                                             ,l_entity_code
113304                                                                             ,l_event_class_code
113305                                                                            )
113306                                     ,p_token_3                 => 'OWNER'
113307                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113308                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113309                                                                           ,p_lookup_code    => l_component_type_code
113310                                                                          )
113311                                     ,p_token_4                 => 'PRODUCT_NAME'
113312                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113313                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113314                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113315                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113316                                     ,p_ae_header_id            =>  NULL
113317                                        );
113318 
113319         IF (C_LEVEL_ERROR>= g_log_level) THEN
113320                  trace
113321                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113322                       ,p_level    => C_LEVEL_ERROR
113323                       ,p_module   => l_log_module);
113324         END IF;
113325       END IF;
113326    END IF;
113327    --
113328    --
113329    ------------------------------------------------------------------------------------------------
113330    -- 4219869 Business Flow
113331    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113332    -- Prior Entry.  Currently, the following code is always generated.
113333    ------------------------------------------------------------------------------------------------
113334    XLA_AE_LINES_PKG.ValidateCurrentLine;
113335 
113336    ------------------------------------------------------------------------------------
113337    -- 4219869 Business Flow
113338    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113339    ------------------------------------------------------------------------------------
113340    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113341 
113342    ----------------------------------------------------------------------------------
113343    -- 4219869 Business Flow
113344    -- Update journal entry status -- Need to generate this within IF <condition>
113345    ----------------------------------------------------------------------------------
113346    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113347          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113348          ,p_balance_type_code => l_balance_type_code
113349          );
113350 
113351    -------------------------------------------------------------------------------------------
113352    -- 4262811 - Generate the Accrual Reversal lines
113353    -------------------------------------------------------------------------------------------
113354    BEGIN
113358          l_acc_rev_flag := 'N';
113355       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113356                               (g_array_event(p_event_id).array_value_num('header_index'));
113357       IF l_acc_rev_flag IS NULL THEN
113359       END IF;
113360    EXCEPTION
113361       WHEN OTHERS THEN
113362          l_acc_rev_flag := 'N';
113363    END;
113364    --
113365    IF (l_acc_rev_flag = 'Y') THEN
113366 
113367        -- 4645092  ------------------------------------------------------------------------------
113368        -- To allow MPA report to determine if it should generate report process
113369        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113370        ------------------------------------------------------------------------------------------
113371 
113372        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113373        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113374    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113375    -- call ADRs
113376    -- Bug 4922099
113377    --
113378    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113379         (NVL(l_actual_upg_option, 'N') = 'O') OR
113380         (NVL(l_enc_upg_option, 'N') = 'O')
113381       )
113382    THEN
113383    NULL;
113384    --
113385    --
113386    
113387   l_ccid := AcctDerRule_33(
113388            p_application_id           => p_application_id
113389          , p_ae_header_id             => l_ae_header_id 
113390 , p_source_30 => p_source_30
113391          , x_transaction_coa_id       => l_adr_transaction_coa_id
113392          , x_accounting_coa_id        => l_adr_accounting_coa_id
113393          , x_value_type_code          => l_adr_value_type_code
113394          , p_side                     => 'NA'
113395    );
113396 
113397    xla_ae_lines_pkg.set_ccid(
113398     p_code_combination_id          => l_ccid
113399   , p_value_type_code              => l_adr_value_type_code
113400   , p_transaction_coa_id           => l_adr_transaction_coa_id
113401   , p_accounting_coa_id            => l_adr_accounting_coa_id
113402   , p_adr_code                     => 'AP_INVOICE_DIST'
113403   , p_adr_type_code                => 'S'
113404   , p_component_type               => l_component_type
113405   , p_component_code               => l_component_code
113406   , p_component_type_code          => l_component_type_code
113407   , p_component_appl_id            => l_component_appl_id
113408   , p_amb_context_code             => l_amb_context_code
113409   , p_side                         => 'NA'
113410   );
113411 
113412 
113413    --
113414    --
113415    END IF;
113416 
113417        --
113418        -- Update the line information that should be overwritten
113419        --
113420        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113421                                          p_header_num   => 1);
113422        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113423 
113424        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113425 
113426        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113427           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113428        END IF;
113429 
113430       --
113431       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113432       --
113433       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113434           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113435       ELSE
113436           ---------------------------------------------------------------------------------------------------
113437           -- 4262811a Switch Sign
113438           ---------------------------------------------------------------------------------------------------
113439           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113440           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113441                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113442           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113443                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113444           -- 5132302
113445           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113446                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113447 
113448       END IF;
113449 
113450       -- 4955764
113451       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113452       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113453 
113454 
113455       XLA_AE_LINES_PKG.ValidateCurrentLine;
113456       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113457 
113458       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113459                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113460                ,p_balance_type_code => l_balance_type_code);
113461 
113462    END IF;
113463 
113464    -----------------------------------------------------------------------------------------
113465    -- 4262811 Multiperiod Accounting
113466    -----------------------------------------------------------------------------------------
113470 END IF;
113467      -- No MPA option is assigned.
113468 
113469 
113471 END IF;
113472 --
113473 
113474 --
113475 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113476    trace
113477       (p_msg      => 'END of AcctLineType_186'
113478       ,p_level    => C_LEVEL_PROCEDURE
113479       ,p_module   => l_log_module);
113480 END IF;
113481 --
113482 EXCEPTION
113483   WHEN xla_exceptions_pkg.application_exception THEN
113484       RAISE;
113485   WHEN OTHERS THEN
113486        xla_exceptions_pkg.raise_message
113487            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_186');
113488 END AcctLineType_186;
113489 --
113490 
113491 ---------------------------------------
113492 --
113493 -- PRIVATE FUNCTION
113494 --         AcctLineType_187
113495 --
113496 ---------------------------------------
113497 PROCEDURE AcctLineType_187 (
113498   p_application_id        IN NUMBER
113499  ,p_event_id              IN NUMBER
113500  ,p_calculate_acctd_flag  IN VARCHAR2
113501  ,p_calculate_g_l_flag    IN VARCHAR2
113502  ,p_actual_flag           IN OUT VARCHAR2
113503  ,p_balance_type_code     OUT VARCHAR2
113504  ,p_gain_or_loss_ref      OUT VARCHAR2
113505  
113506 --Invoice Distribution Description
113507  , p_source_1            IN VARCHAR2
113508 --Automatic Offsets Value
113509  , p_source_15            IN VARCHAR2
113510  , p_source_15_meaning    IN VARCHAR2
113511 --Invoice Distribution Ledger Amount
113512  , p_source_21            IN NUMBER
113513 --Invoice Distribution Account
113514  , p_source_30            IN NUMBER
113515 --Invoice Distribution Type
113516  , p_source_33            IN VARCHAR2
113517  , p_source_33_meaning    IN VARCHAR2
113518 --Retainage Account
113519  , p_source_40            IN NUMBER
113520 --Retainage Related Item Distribution Account
113521  , p_source_42            IN NUMBER
113522 --Accounting Reversal Indicator
113523  , p_source_52            IN VARCHAR2
113524 --Distribution Link Type
113525  , p_source_54            IN VARCHAR2
113526 --Allocation to Main Distribution Identifier
113527  , p_source_56            IN NUMBER
113528 --Invoice Identifier
113529  , p_source_57            IN NUMBER
113530 --Invoice Distribution Identifier
113531  , p_source_63            IN NUMBER
113532 --Payables Encumbrance Upgrade Credit Account
113533  , p_source_64            IN NUMBER
113534 --Payables Encumbrance Upgrade Credit Amount
113535  , p_source_65            IN NUMBER
113536 --Invoice Currency Code
113537  , p_source_66            IN VARCHAR2
113538 --Payables Encumbrance Upgrade Credit Base Amount
113539  , p_source_67            IN NUMBER
113540 --Payables Encumbrance Upgrade Debit Account
113541  , p_source_68            IN NUMBER
113542 --Payables Encumbrance Upgrade Debit Amount
113543  , p_source_69            IN NUMBER
113544 --Payables Encumbrance Upgrade Debit Base Amount
113545  , p_source_70            IN NUMBER
113546 --Payables Encumbrance Upgrade Option
113547  , p_source_71            IN VARCHAR2
113548 --Invoice Distribution Amount
113549  , p_source_72            IN NUMBER
113550 --Deferred Accounting End Date
113551  , p_source_76            IN DATE
113552 --Deferred Accounting Option
113553  , p_source_77            IN VARCHAR2
113554 --Deferred Accounting Start Date
113555  , p_source_78            IN DATE
113556 --Override Accounted Amount Indicator
113557  , p_source_79            IN VARCHAR2
113558  , p_source_79_meaning    IN VARCHAR2
113559 --Invoice Supplier Identifier
113560  , p_source_80            IN NUMBER
113561 --Invoice Supplier Site Identifier
113562  , p_source_81            IN NUMBER
113563 --Third Party Type
113564  , p_source_82            IN VARCHAR2
113565 --Parent Reversal Identifier
113566  , p_source_83            IN NUMBER
113567 --Invoice Distribution Statistical Amount
113568  , p_source_84            IN NUMBER
113569 --Invoice Distribution Tax Line Identifier
113570  , p_source_85            IN NUMBER
113571 --Invoice Distribution Tax Distribution Identifier from Tax
113572  , p_source_86            IN NUMBER
113573 --Invoice Distribution Summary Tax Line Identifier
113574  , p_source_87            IN NUMBER
113575 --Payables Upgrade Credit Encumbrance Type Identifier
113576  , p_source_88            IN NUMBER
113577 --Payables Upgrade Debit Encumbrance Type Identifier
113578  , p_source_89            IN NUMBER
113579 --Business Flow Accounts Payable Application Identifier
113580  , p_source_90            IN NUMBER
113581 --Business Flow Invoice Distribution Type
113582  , p_source_91            IN VARCHAR2
113583 --Business Flow Invoice Entity Code
113584  , p_source_92            IN VARCHAR2
113585 --Business Flow Invoice Distribution Identifier
113586  , p_source_93            IN NUMBER
113587 --Business Flow Invoice Identifier
113588  , p_source_94            IN NUMBER
113589 --Invoice Exchange Date
113590  , p_source_136            IN DATE
113591 --Invoice Exchange Rate
113592  , p_source_137            IN NUMBER
113593 --Invoice Exchange Rate Type
113594  , p_source_138            IN VARCHAR2
113595 --Invoice Type
113596  , p_source_164            IN VARCHAR2
113597  , p_source_164_meaning    IN VARCHAR2
113598 )
113599 IS
113600 
113601 l_component_type              VARCHAR2(80);
113602 l_component_code              VARCHAR2(30);
113603 l_component_type_code         VARCHAR2(1);
113604 l_component_appl_id           INTEGER;
113605 l_amb_context_code            VARCHAR2(30);
113606 l_entity_code                 VARCHAR2(30);
113610 l_line_definition_code        VARCHAR2(30);
113607 l_event_class_code            VARCHAR2(30);
113608 l_ae_header_id                NUMBER;
113609 l_event_type_code             VARCHAR2(30);
113611 l_line_definition_owner_code  VARCHAR2(1);
113612 --
113613 -- adr variables
113614 l_segment                     VARCHAR2(30);
113615 l_ccid                        NUMBER;
113616 l_adr_transaction_coa_id      NUMBER;
113617 l_adr_accounting_coa_id       NUMBER;
113618 l_adr_flexfield_segment_code  VARCHAR2(30);
113619 l_adr_flex_value_set_id       NUMBER;
113620 l_adr_value_type_code         VARCHAR2(30);
113621 l_adr_value_combination_id    NUMBER;
113622 l_adr_value_segment_code      VARCHAR2(30);
113623 
113624 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113625 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113626 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113627 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113628 
113629 -- 4262811 Variables ------------------------------------------------------------------------------------------
113630 l_entered_amt_idx             NUMBER;
113631 l_accted_amt_idx              NUMBER;
113632 l_acc_rev_flag                VARCHAR2(1);
113633 l_accrual_line_num            NUMBER;
113634 l_tmp_amt                     NUMBER;
113635 l_acc_rev_natural_side_code   VARCHAR2(1);
113636 
113637 l_num_entries                 NUMBER;
113638 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113639 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113640 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113641 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113642 l_recog_line_1                NUMBER;
113643 l_recog_line_2                NUMBER;
113644 
113645 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113646 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113647 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113648 
113649 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113650 
113651 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113652 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113653 
113654 ---------------------------------------------------------------------------------------------------------------
113655 
113656 
113657 --
113658 -- bulk performance
113659 --
113660 l_balance_type_code           VARCHAR2(1);
113661 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113662 l_log_module                  VARCHAR2(240);
113663 
113664 --
113665 -- Upgrade strategy
113666 --
113667 l_actual_upg_option           VARCHAR2(1);
113668 l_enc_upg_option           VARCHAR2(1);
113669 
113670 --
113671 BEGIN
113672 --
113673 IF g_log_enabled THEN
113674       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
113675 END IF;
113676 --
113677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113678 
113679       trace
113680          (p_msg      => 'BEGIN of AcctLineType_187'
113681          ,p_level    => C_LEVEL_PROCEDURE
113682          ,p_module   => l_log_module);
113683 
113684 END IF;
113685 --
113686 l_component_type             := 'AMB_JLT';
113687 l_component_code             := 'AP_RETAINAGE_ACC';
113688 l_component_type_code        := 'S';
113689 l_component_appl_id          :=  200;
113690 l_amb_context_code           := 'DEFAULT';
113691 l_entity_code                := 'AP_INVOICES';
113692 l_event_class_code           := 'INVOICES';
113693 l_event_type_code            := 'INVOICES_ALL';
113694 l_line_definition_owner_code := 'S';
113695 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
113696 --
113697 l_balance_type_code          := 'A';
113698 l_segment                     := NULL;
113699 l_ccid                        := NULL;
113700 l_adr_transaction_coa_id      := NULL;
113701 l_adr_accounting_coa_id       := NULL;
113702 l_adr_flexfield_segment_code  := NULL;
113703 l_adr_flex_value_set_id       := NULL;
113704 l_adr_value_type_code         := NULL;
113705 l_adr_value_combination_id    := NULL;
113706 l_adr_value_segment_code      := NULL;
113707 
113708 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113709 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
113710 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113711 l_budgetary_control_flag     := 'N';
113712 
113713 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113714 l_bflow_applied_to_amt       := NULL; -- 5132302
113715 l_entered_amt_idx            := NULL;          -- 4262811
113716 l_accted_amt_idx             := NULL;          -- 4262811
113717 l_acc_rev_flag               := NULL;          -- 4262811
113718 l_accrual_line_num           := NULL;          -- 4262811
113719 l_tmp_amt                    := NULL;          -- 4262811
113720 --
113721  
113722 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113723     l_balance_type_code <> 'B' THEN
113724 IF NVL(p_source_164,'
113725 ') =  'STANDARD' AND 
113726 NVL(p_source_33,'
113727 ') =  'RETAINAGE'
113728  THEN 
113729 
113730    --
113731    XLA_AE_LINES_PKG.SetNewLine;
113732 
113733    p_balance_type_code          := l_balance_type_code;
113737      p_actual_flag :='A';
113734    -- set the flag so later we will know whether the gain loss line needs to be created
113735    
113736    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113738    END IF;
113739 
113740    --
113741    -- bulk performance
113742    --
113743    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113744                                       p_header_num   => 0); -- 4262811
113745    --
113746    -- set accounting line options
113747    --
113748    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113749            p_natural_side_code          => 'D'
113750          , p_gain_or_loss_flag          => 'N'
113751          , p_gl_transfer_mode_code      => 'S'
113752          , p_acct_entry_type_code       => 'A'
113753          , p_switch_side_flag           => 'Y'
113754          , p_merge_duplicate_code       => 'A'
113755          );
113756    --
113757    l_acc_rev_natural_side_code := 'C';  -- 4262811
113758    -- 
113759    --
113760    -- set accounting line type info
113761    --
113762    xla_ae_lines_pkg.SetAcctLineType
113763       (p_component_type             => l_component_type
113764       ,p_event_type_code            => l_event_type_code
113765       ,p_line_definition_owner_code => l_line_definition_owner_code
113766       ,p_line_definition_code       => l_line_definition_code
113767       ,p_accounting_line_code       => l_component_code
113768       ,p_accounting_line_type_code  => l_component_type_code
113769       ,p_accounting_line_appl_id    => l_component_appl_id
113770       ,p_amb_context_code           => l_amb_context_code
113771       ,p_entity_code                => l_entity_code
113772       ,p_event_class_code           => l_event_class_code);
113773    --
113774    -- set accounting class
113775    --
113776    xla_ae_lines_pkg.SetAcctClass(
113777            p_accounting_class_code  => 'RETAINAGE'
113778          , p_ae_header_id           => l_ae_header_id
113779          );
113780 
113781    --
113782    -- set rounding class
113783    --
113784    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113785                       'RETAINAGE';
113786 
113787    --
113788    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113789    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113790    --
113791    -- bulk performance
113792    --
113793    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113794 
113795    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113796       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113797 
113798    -- 4955764
113799    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113800       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113801 
113802    -- 4458381 Public Sector Enh
113803    
113804    --
113805    -- set accounting attributes for the line type
113806    --
113807    l_entered_amt_idx := 24;
113808    l_accted_amt_idx  := 29;
113809    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
113810    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113811    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
113812    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113813    l_rec_acct_attrs.array_num_value(2)  := 
113814 xla_ae_sources_pkg.GetSystemSourceNum(
113815    p_source_code           => 'XLA_EVENT_APPL_ID'
113816  , p_source_type_code      => 'Y'
113817  , p_source_application_id =>  602
113818 );
113819    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113820    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
113821    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113822    l_rec_acct_attrs.array_char_value(4)  := 
113823 xla_ae_sources_pkg.GetSystemSourceChar(
113824    p_source_code           => 'XLA_ENTITY_CODE'
113825  , p_source_type_code      => 'Y'
113826  , p_source_application_id =>  602
113827 );
113828    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113829    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
113830    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113831    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
113832    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
113833    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
113834    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
113835    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
113836    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113837    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
113838    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
113839    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
113840    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
113841    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
113842    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113843    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
113844    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
113845    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
113849    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
113846    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
113847    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
113848    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
113850    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
113851    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
113852    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
113853    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
113854    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
113855    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
113856    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
113857    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
113858    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
113859    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
113860    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
113861    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
113862    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
113863    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
113864    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
113865    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
113866    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
113867    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
113868    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
113869    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
113870    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
113871    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
113872    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
113873    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
113874    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
113875    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
113876    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
113877    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
113878    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
113879    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
113880    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
113881    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
113882    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
113883    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
113884    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
113885    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
113886    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
113887    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
113888    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
113889    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
113890    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
113891    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
113892    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
113893    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
113894    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
113895    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
113896    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
113897    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
113898    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
113899    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
113900    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
113901    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
113902    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
113903    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
113904    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
113905    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
113906    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
113907    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
113908 
113909    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113910    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113911 
113912    ---------------------------------------------------------------------------------------------------------------
113913    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113914    ---------------------------------------------------------------------------------------------------------------
113915    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113916 
113917    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113918    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113919 
113920    IF xla_accounting_cache_pkg.GetValueChar
113921          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113922          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113923    AND l_bflow_method_code = 'PRIOR_ENTRY'
113924 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113925    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113926          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113927        )
113928    THEN
113929          xla_ae_lines_pkg.BflowUpgEntry
113930            (p_business_method_code    => l_bflow_method_code
113934       NULL;
113931            ,p_business_class_code     => l_bflow_class_code
113932            ,p_balance_type            => l_balance_type_code);
113933    ELSE
113935 -- No business flow processing for business flow method of NONE.
113936    END IF;
113937 
113938    --
113939    -- call analytical criteria
113940    --
113941    
113942    --
113943    -- call description
113944    --
113945    
113946 xla_ae_lines_pkg.SetLineDescription(
113947    p_ae_header_id => l_ae_header_id
113948   ,p_description  => Description_1 (
113949      p_application_id         => p_application_id
113950    , p_ae_header_id           => l_ae_header_id 
113951 , p_source_1 => p_source_1
113952    )
113953 );
113954 
113955 
113956    --
113957    -- call ADRs
113958    -- Bug 4922099
113959    --
113960    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113961         (NVL(l_actual_upg_option, 'N') = 'O') OR
113962         (NVL(l_enc_upg_option, 'N') = 'O')
113963       )
113964    THEN
113965    NULL;
113966    --
113967    --
113968    
113969   l_ccid := AcctDerRule_39(
113970            p_application_id           => p_application_id
113971          , p_ae_header_id             => l_ae_header_id 
113972 , p_source_15 => p_source_15
113973 , p_source_15_meaning => p_source_15_meaning
113974 , p_source_30 => p_source_30
113975 , p_source_42 => p_source_42
113976          , x_transaction_coa_id       => l_adr_transaction_coa_id
113977          , x_accounting_coa_id        => l_adr_accounting_coa_id
113978          , x_value_type_code          => l_adr_value_type_code
113979          , p_side                     => 'NA'
113980    );
113981 
113982    xla_ae_lines_pkg.set_ccid(
113983     p_code_combination_id          => l_ccid
113984   , p_value_type_code              => l_adr_value_type_code
113985   , p_transaction_coa_id           => l_adr_transaction_coa_id
113986   , p_accounting_coa_id            => l_adr_accounting_coa_id
113987   , p_adr_code                     => 'AP_RETAINAGE'
113988   , p_adr_type_code                => 'S'
113989   , p_component_type               => l_component_type
113990   , p_component_code               => l_component_code
113991   , p_component_type_code          => l_component_type_code
113992   , p_component_appl_id            => l_component_appl_id
113993   , p_amb_context_code             => l_amb_context_code
113994   , p_side                         => 'NA'
113995   );
113996 
113997 
113998    l_segment := AcctDerRule_19(
113999            p_application_id           => p_application_id
114000          , p_ae_header_id             => l_ae_header_id 
114001 , p_source_40 => p_source_40
114002          , x_transaction_coa_id       => l_adr_transaction_coa_id
114003          , x_accounting_coa_id        => l_adr_accounting_coa_id
114004          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114005          , x_flex_value_set_id        => l_adr_flex_value_set_id
114006          , x_value_type_code          => l_adr_value_type_code
114007          , x_value_combination_id     => l_adr_value_combination_id
114008          , x_value_segment_code       => l_adr_value_segment_code
114009          , p_side                     => 'NA'
114010          , p_override_seg_flag        => 'Y'
114011    );
114012 
114013    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114014 
114015       xla_ae_lines_pkg.set_segment(
114016           p_to_segment_code         => 'GL_ACCOUNT'
114017         , p_segment_value           => l_segment
114018         , p_from_segment_code       => l_adr_value_segment_code
114019         , p_from_combination_id     => l_adr_value_combination_id
114020         , p_value_type_code         => l_adr_value_type_code
114021         , p_transaction_coa_id      => l_adr_transaction_coa_id
114022         , p_accounting_coa_id       => l_adr_accounting_coa_id
114023         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114024         , p_flex_value_set_id       => l_adr_flex_value_set_id
114025         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
114026         , p_adr_type_code           => 'S'
114027         , p_component_type          => l_component_type
114028         , p_component_code          => l_component_code
114029         , p_component_type_code     => l_component_type_code
114030         , p_component_appl_id       => l_component_appl_id
114031         , p_amb_context_code        => l_amb_context_code
114032         , p_entity_code             => 'AP_INVOICES'
114033         , p_event_class_code        => 'INVOICES'
114034         , p_side                    => 'NA'
114035         );
114036 
114037   END IF;
114038 
114039    l_segment := AcctDerRule_24(
114040            p_application_id           => p_application_id
114041          , p_ae_header_id             => l_ae_header_id 
114042 , p_source_15 => p_source_15
114043 , p_source_15_meaning => p_source_15_meaning
114044 , p_source_42 => p_source_42
114045          , x_transaction_coa_id       => l_adr_transaction_coa_id
114046          , x_accounting_coa_id        => l_adr_accounting_coa_id
114047          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114048          , x_flex_value_set_id        => l_adr_flex_value_set_id
114049          , x_value_type_code          => l_adr_value_type_code
114050          , x_value_combination_id     => l_adr_value_combination_id
114051          , x_value_segment_code       => l_adr_value_segment_code
114052          , p_side                     => 'NA'
114053          , p_override_seg_flag        => 'Y'
114054    );
114055 
114056    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114057 
114061         , p_from_segment_code       => l_adr_value_segment_code
114058       xla_ae_lines_pkg.set_segment(
114059           p_to_segment_code         => 'GL_BALANCING'
114060         , p_segment_value           => l_segment
114062         , p_from_combination_id     => l_adr_value_combination_id
114063         , p_value_type_code         => l_adr_value_type_code
114064         , p_transaction_coa_id      => l_adr_transaction_coa_id
114065         , p_accounting_coa_id       => l_adr_accounting_coa_id
114066         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114067         , p_flex_value_set_id       => l_adr_flex_value_set_id
114068         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
114069         , p_adr_type_code           => 'S'
114070         , p_component_type          => l_component_type
114071         , p_component_code          => l_component_code
114072         , p_component_type_code     => l_component_type_code
114073         , p_component_appl_id       => l_component_appl_id
114074         , p_amb_context_code        => l_amb_context_code
114075         , p_entity_code             => 'AP_INVOICES'
114076         , p_event_class_code        => 'INVOICES'
114077         , p_side                    => 'NA'
114078         );
114079 
114080   END IF;
114081 
114082    --
114083    --
114084    END IF;
114085    --
114086    -- Bug 4922099
114087    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114088           (NVL(l_enc_upg_option, 'N') = 'O')
114089         ) AND
114090         (l_bflow_method_code = 'PRIOR_ENTRY')
114091       )
114092    THEN
114093       IF
114094       --
114095       1 = 2
114096       --
114097       THEN
114098       xla_accounting_err_pkg.build_message
114099                                     (p_appli_s_name            => 'XLA'
114100                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114101                                     ,p_token_1                 => 'LINE_NUMBER'
114102                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114103                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114104                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114105                                                                              l_component_type
114106                                                                             ,l_component_code
114107                                                                             ,l_component_type_code
114108                                                                             ,l_component_appl_id
114109                                                                             ,l_amb_context_code
114110                                                                             ,l_entity_code
114111                                                                             ,l_event_class_code
114112                                                                            )
114113                                     ,p_token_3                 => 'OWNER'
114114                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
114115                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
114116                                                                           ,p_lookup_code    => l_component_type_code
114117                                                                          )
114118                                     ,p_token_4                 => 'PRODUCT_NAME'
114119                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114120                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114121                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114122                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114123                                     ,p_ae_header_id            =>  NULL
114124                                        );
114125 
114126         IF (C_LEVEL_ERROR>= g_log_level) THEN
114127                  trace
114128                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114129                       ,p_level    => C_LEVEL_ERROR
114130                       ,p_module   => l_log_module);
114131         END IF;
114132       END IF;
114133    END IF;
114134    --
114135    --
114136    ------------------------------------------------------------------------------------------------
114137    -- 4219869 Business Flow
114138    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114139    -- Prior Entry.  Currently, the following code is always generated.
114140    ------------------------------------------------------------------------------------------------
114141    XLA_AE_LINES_PKG.ValidateCurrentLine;
114142 
114143    ------------------------------------------------------------------------------------
114144    -- 4219869 Business Flow
114145    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114146    ------------------------------------------------------------------------------------
114147    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114148 
114149    ----------------------------------------------------------------------------------
114150    -- 4219869 Business Flow
114151    -- Update journal entry status -- Need to generate this within IF <condition>
114152    ----------------------------------------------------------------------------------
114156          );
114153    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114154          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114155          ,p_balance_type_code => l_balance_type_code
114157 
114158    -------------------------------------------------------------------------------------------
114159    -- 4262811 - Generate the Accrual Reversal lines
114160    -------------------------------------------------------------------------------------------
114161    BEGIN
114162       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114163                               (g_array_event(p_event_id).array_value_num('header_index'));
114164       IF l_acc_rev_flag IS NULL THEN
114165          l_acc_rev_flag := 'N';
114166       END IF;
114167    EXCEPTION
114168       WHEN OTHERS THEN
114169          l_acc_rev_flag := 'N';
114170    END;
114171    --
114172    IF (l_acc_rev_flag = 'Y') THEN
114173 
114174        -- 4645092  ------------------------------------------------------------------------------
114175        -- To allow MPA report to determine if it should generate report process
114176        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114177        ------------------------------------------------------------------------------------------
114178 
114179        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114180        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114181    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
114182    -- call ADRs
114183    -- Bug 4922099
114184    --
114185    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114186         (NVL(l_actual_upg_option, 'N') = 'O') OR
114187         (NVL(l_enc_upg_option, 'N') = 'O')
114188       )
114189    THEN
114190    NULL;
114191    --
114192    --
114193    
114194   l_ccid := AcctDerRule_39(
114195            p_application_id           => p_application_id
114196          , p_ae_header_id             => l_ae_header_id 
114197 , p_source_15 => p_source_15
114198 , p_source_15_meaning => p_source_15_meaning
114199 , p_source_30 => p_source_30
114200 , p_source_42 => p_source_42
114201          , x_transaction_coa_id       => l_adr_transaction_coa_id
114202          , x_accounting_coa_id        => l_adr_accounting_coa_id
114203          , x_value_type_code          => l_adr_value_type_code
114204          , p_side                     => 'NA'
114205    );
114206 
114207    xla_ae_lines_pkg.set_ccid(
114208     p_code_combination_id          => l_ccid
114209   , p_value_type_code              => l_adr_value_type_code
114210   , p_transaction_coa_id           => l_adr_transaction_coa_id
114211   , p_accounting_coa_id            => l_adr_accounting_coa_id
114212   , p_adr_code                     => 'AP_RETAINAGE'
114213   , p_adr_type_code                => 'S'
114214   , p_component_type               => l_component_type
114215   , p_component_code               => l_component_code
114216   , p_component_type_code          => l_component_type_code
114217   , p_component_appl_id            => l_component_appl_id
114218   , p_amb_context_code             => l_amb_context_code
114219   , p_side                         => 'NA'
114220   );
114221 
114222 
114223    l_segment := AcctDerRule_19(
114224            p_application_id           => p_application_id
114225          , p_ae_header_id             => l_ae_header_id 
114226 , p_source_40 => p_source_40
114227          , x_transaction_coa_id       => l_adr_transaction_coa_id
114228          , x_accounting_coa_id        => l_adr_accounting_coa_id
114229          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114230          , x_flex_value_set_id        => l_adr_flex_value_set_id
114231          , x_value_type_code          => l_adr_value_type_code
114232          , x_value_combination_id     => l_adr_value_combination_id
114233          , x_value_segment_code       => l_adr_value_segment_code
114234          , p_side                     => 'NA'
114235          , p_override_seg_flag        => 'Y'
114236    );
114237 
114238    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114239 
114240       xla_ae_lines_pkg.set_segment(
114241           p_to_segment_code         => 'GL_ACCOUNT'
114242         , p_segment_value           => l_segment
114243         , p_from_segment_code       => l_adr_value_segment_code
114244         , p_from_combination_id     => l_adr_value_combination_id
114245         , p_value_type_code         => l_adr_value_type_code
114246         , p_transaction_coa_id      => l_adr_transaction_coa_id
114247         , p_accounting_coa_id       => l_adr_accounting_coa_id
114248         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114249         , p_flex_value_set_id       => l_adr_flex_value_set_id
114250         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
114251         , p_adr_type_code           => 'S'
114252         , p_component_type          => l_component_type
114253         , p_component_code          => l_component_code
114254         , p_component_type_code     => l_component_type_code
114255         , p_component_appl_id       => l_component_appl_id
114256         , p_amb_context_code        => l_amb_context_code
114257         , p_entity_code             => 'AP_INVOICES'
114258         , p_event_class_code        => 'INVOICES'
114259         , p_side                    => 'NA'
114260         );
114261 
114262   END IF;
114263 
114264    l_segment := AcctDerRule_24(
114265            p_application_id           => p_application_id
114266          , p_ae_header_id             => l_ae_header_id 
114267 , p_source_15 => p_source_15
114268 , p_source_15_meaning => p_source_15_meaning
114269 , p_source_42 => p_source_42
114273          , x_flex_value_set_id        => l_adr_flex_value_set_id
114270          , x_transaction_coa_id       => l_adr_transaction_coa_id
114271          , x_accounting_coa_id        => l_adr_accounting_coa_id
114272          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114274          , x_value_type_code          => l_adr_value_type_code
114275          , x_value_combination_id     => l_adr_value_combination_id
114276          , x_value_segment_code       => l_adr_value_segment_code
114277          , p_side                     => 'NA'
114278          , p_override_seg_flag        => 'Y'
114279    );
114280 
114281    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114282 
114283       xla_ae_lines_pkg.set_segment(
114284           p_to_segment_code         => 'GL_BALANCING'
114285         , p_segment_value           => l_segment
114286         , p_from_segment_code       => l_adr_value_segment_code
114287         , p_from_combination_id     => l_adr_value_combination_id
114288         , p_value_type_code         => l_adr_value_type_code
114289         , p_transaction_coa_id      => l_adr_transaction_coa_id
114290         , p_accounting_coa_id       => l_adr_accounting_coa_id
114291         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114292         , p_flex_value_set_id       => l_adr_flex_value_set_id
114293         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
114294         , p_adr_type_code           => 'S'
114295         , p_component_type          => l_component_type
114296         , p_component_code          => l_component_code
114297         , p_component_type_code     => l_component_type_code
114298         , p_component_appl_id       => l_component_appl_id
114299         , p_amb_context_code        => l_amb_context_code
114300         , p_entity_code             => 'AP_INVOICES'
114301         , p_event_class_code        => 'INVOICES'
114302         , p_side                    => 'NA'
114303         );
114304 
114305   END IF;
114306 
114307    --
114308    --
114309    END IF;
114310 
114311        --
114312        -- Update the line information that should be overwritten
114313        --
114314        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114315                                          p_header_num   => 1);
114316        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114317 
114318        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114319 
114320        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114321           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114322        END IF;
114323 
114324       --
114325       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114326       --
114327       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114328           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114329       ELSE
114330           ---------------------------------------------------------------------------------------------------
114331           -- 4262811a Switch Sign
114332           ---------------------------------------------------------------------------------------------------
114333           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114334           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114335                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114336           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114337                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114338           -- 5132302
114339           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114340                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114341 
114342       END IF;
114343 
114344       -- 4955764
114345       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114346       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114347 
114348 
114349       XLA_AE_LINES_PKG.ValidateCurrentLine;
114350       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114351 
114352       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114353                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114354                ,p_balance_type_code => l_balance_type_code);
114355 
114356    END IF;
114357 
114358    -----------------------------------------------------------------------------------------
114359    -- 4262811 Multiperiod Accounting
114360    -----------------------------------------------------------------------------------------
114361      -- No MPA option is assigned.
114362 
114363 
114364 END IF;
114365 END IF;
114366 --
114367 
114368 --
114369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114370    trace
114371       (p_msg      => 'END of AcctLineType_187'
114372       ,p_level    => C_LEVEL_PROCEDURE
114373       ,p_module   => l_log_module);
114374 END IF;
114375 --
114376 EXCEPTION
114377   WHEN xla_exceptions_pkg.application_exception THEN
114378       RAISE;
114379   WHEN OTHERS THEN
114383 --
114380        xla_exceptions_pkg.raise_message
114381            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_187');
114382 END AcctLineType_187;
114384 
114385 ---------------------------------------
114386 --
114387 -- PRIVATE FUNCTION
114388 --         AcctLineType_188
114389 --
114390 ---------------------------------------
114391 PROCEDURE AcctLineType_188 (
114392   p_application_id        IN NUMBER
114393  ,p_event_id              IN NUMBER
114394  ,p_calculate_acctd_flag  IN VARCHAR2
114395  ,p_calculate_g_l_flag    IN VARCHAR2
114396  ,p_actual_flag           IN OUT VARCHAR2
114397  ,p_balance_type_code     OUT VARCHAR2
114398  ,p_gain_or_loss_ref      OUT VARCHAR2
114399  
114400 --Invoice Distribution Description
114401  , p_source_1            IN VARCHAR2
114402 --Automatic Offsets Value
114403  , p_source_15            IN VARCHAR2
114404  , p_source_15_meaning    IN VARCHAR2
114405 --Invoice Distribution Ledger Amount
114406  , p_source_21            IN NUMBER
114407 --Invoice Distribution Account
114408  , p_source_30            IN NUMBER
114409 --Invoice Distribution Type
114410  , p_source_33            IN VARCHAR2
114411  , p_source_33_meaning    IN VARCHAR2
114412 --Retainage Account
114413  , p_source_40            IN NUMBER
114414 --Retainage Related Item Distribution Account
114415  , p_source_42            IN NUMBER
114416 --Accounting Reversal Indicator
114417  , p_source_52            IN VARCHAR2
114418 --Distribution Link Type
114419  , p_source_54            IN VARCHAR2
114420 --Allocation to Main Distribution Identifier
114421  , p_source_56            IN NUMBER
114422 --Invoice Identifier
114423  , p_source_57            IN NUMBER
114424 --Invoice Distribution Identifier
114425  , p_source_63            IN NUMBER
114426 --Payables Encumbrance Upgrade Credit Account
114427  , p_source_64            IN NUMBER
114428 --Payables Encumbrance Upgrade Credit Amount
114429  , p_source_65            IN NUMBER
114430 --Invoice Currency Code
114431  , p_source_66            IN VARCHAR2
114432 --Payables Encumbrance Upgrade Credit Base Amount
114433  , p_source_67            IN NUMBER
114434 --Payables Encumbrance Upgrade Debit Account
114435  , p_source_68            IN NUMBER
114436 --Payables Encumbrance Upgrade Debit Amount
114437  , p_source_69            IN NUMBER
114438 --Payables Encumbrance Upgrade Debit Base Amount
114439  , p_source_70            IN NUMBER
114440 --Payables Encumbrance Upgrade Option
114441  , p_source_71            IN VARCHAR2
114442 --Invoice Distribution Amount
114443  , p_source_72            IN NUMBER
114444 --Deferred Accounting End Date
114445  , p_source_76            IN DATE
114446 --Deferred Accounting Option
114447  , p_source_77            IN VARCHAR2
114448 --Deferred Accounting Start Date
114449  , p_source_78            IN DATE
114450 --Override Accounted Amount Indicator
114451  , p_source_79            IN VARCHAR2
114452  , p_source_79_meaning    IN VARCHAR2
114453 --Invoice Supplier Identifier
114454  , p_source_80            IN NUMBER
114455 --Invoice Supplier Site Identifier
114456  , p_source_81            IN NUMBER
114457 --Third Party Type
114458  , p_source_82            IN VARCHAR2
114459 --Parent Reversal Identifier
114460  , p_source_83            IN NUMBER
114461 --Invoice Distribution Statistical Amount
114462  , p_source_84            IN NUMBER
114463 --Invoice Distribution Tax Line Identifier
114464  , p_source_85            IN NUMBER
114465 --Invoice Distribution Tax Distribution Identifier from Tax
114466  , p_source_86            IN NUMBER
114467 --Invoice Distribution Summary Tax Line Identifier
114468  , p_source_87            IN NUMBER
114469 --Payables Upgrade Credit Encumbrance Type Identifier
114470  , p_source_88            IN NUMBER
114471 --Payables Upgrade Debit Encumbrance Type Identifier
114472  , p_source_89            IN NUMBER
114473 --Business Flow Accounts Payable Application Identifier
114474  , p_source_90            IN NUMBER
114475 --Business Flow Invoice Distribution Type
114476  , p_source_91            IN VARCHAR2
114477 --Business Flow Invoice Entity Code
114478  , p_source_92            IN VARCHAR2
114479 --Business Flow Invoice Distribution Identifier
114480  , p_source_93            IN NUMBER
114481 --Business Flow Invoice Identifier
114482  , p_source_94            IN NUMBER
114483 --Invoice Exchange Date
114484  , p_source_136            IN DATE
114485 --Invoice Exchange Rate
114486  , p_source_137            IN NUMBER
114487 --Invoice Exchange Rate Type
114488  , p_source_138            IN VARCHAR2
114489 --Invoice Type
114490  , p_source_164            IN VARCHAR2
114491  , p_source_164_meaning    IN VARCHAR2
114492 )
114493 IS
114494 
114495 l_component_type              VARCHAR2(80);
114496 l_component_code              VARCHAR2(30);
114497 l_component_type_code         VARCHAR2(1);
114498 l_component_appl_id           INTEGER;
114499 l_amb_context_code            VARCHAR2(30);
114500 l_entity_code                 VARCHAR2(30);
114501 l_event_class_code            VARCHAR2(30);
114502 l_ae_header_id                NUMBER;
114503 l_event_type_code             VARCHAR2(30);
114504 l_line_definition_code        VARCHAR2(30);
114505 l_line_definition_owner_code  VARCHAR2(1);
114506 --
114507 -- adr variables
114508 l_segment                     VARCHAR2(30);
114509 l_ccid                        NUMBER;
114510 l_adr_transaction_coa_id      NUMBER;
114511 l_adr_accounting_coa_id       NUMBER;
114515 l_adr_value_combination_id    NUMBER;
114512 l_adr_flexfield_segment_code  VARCHAR2(30);
114513 l_adr_flex_value_set_id       NUMBER;
114514 l_adr_value_type_code         VARCHAR2(30);
114516 l_adr_value_segment_code      VARCHAR2(30);
114517 
114518 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114519 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114520 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114521 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114522 
114523 -- 4262811 Variables ------------------------------------------------------------------------------------------
114524 l_entered_amt_idx             NUMBER;
114525 l_accted_amt_idx              NUMBER;
114526 l_acc_rev_flag                VARCHAR2(1);
114527 l_accrual_line_num            NUMBER;
114528 l_tmp_amt                     NUMBER;
114529 l_acc_rev_natural_side_code   VARCHAR2(1);
114530 
114531 l_num_entries                 NUMBER;
114532 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114533 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114534 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114535 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114536 l_recog_line_1                NUMBER;
114537 l_recog_line_2                NUMBER;
114538 
114539 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114540 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114541 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114542 
114543 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114544 
114545 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114546 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114547 
114548 ---------------------------------------------------------------------------------------------------------------
114549 
114550 
114551 --
114552 -- bulk performance
114553 --
114554 l_balance_type_code           VARCHAR2(1);
114555 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114556 l_log_module                  VARCHAR2(240);
114557 
114558 --
114559 -- Upgrade strategy
114560 --
114561 l_actual_upg_option           VARCHAR2(1);
114562 l_enc_upg_option           VARCHAR2(1);
114563 
114564 --
114565 BEGIN
114566 --
114567 IF g_log_enabled THEN
114568       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
114569 END IF;
114570 --
114571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114572 
114573       trace
114574          (p_msg      => 'BEGIN of AcctLineType_188'
114575          ,p_level    => C_LEVEL_PROCEDURE
114576          ,p_module   => l_log_module);
114577 
114578 END IF;
114579 --
114580 l_component_type             := 'AMB_JLT';
114581 l_component_code             := 'AP_RETAINAGE_ACC_CM';
114582 l_component_type_code        := 'S';
114583 l_component_appl_id          :=  200;
114584 l_amb_context_code           := 'DEFAULT';
114585 l_entity_code                := 'AP_INVOICES';
114586 l_event_class_code           := 'CREDIT MEMOS';
114587 l_event_type_code            := 'CREDIT MEMOS_ALL';
114588 l_line_definition_owner_code := 'S';
114589 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
114590 --
114591 l_balance_type_code          := 'A';
114592 l_segment                     := NULL;
114593 l_ccid                        := NULL;
114594 l_adr_transaction_coa_id      := NULL;
114595 l_adr_accounting_coa_id       := NULL;
114596 l_adr_flexfield_segment_code  := NULL;
114597 l_adr_flex_value_set_id       := NULL;
114598 l_adr_value_type_code         := NULL;
114599 l_adr_value_combination_id    := NULL;
114600 l_adr_value_segment_code      := NULL;
114601 
114602 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114603 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
114604 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114605 l_budgetary_control_flag     := 'N';
114606 
114607 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114608 l_bflow_applied_to_amt       := NULL; -- 5132302
114609 l_entered_amt_idx            := NULL;          -- 4262811
114610 l_accted_amt_idx             := NULL;          -- 4262811
114611 l_acc_rev_flag               := NULL;          -- 4262811
114612 l_accrual_line_num           := NULL;          -- 4262811
114613 l_tmp_amt                    := NULL;          -- 4262811
114614 --
114615  
114616 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114617     l_balance_type_code <> 'B' THEN
114618 IF NVL(p_source_33,'
114619 ') =  'RETAINAGE' AND 
114620 NVL(p_source_164,'
114621 ') <>  'RETAINAGE RELEASE'
114622  THEN 
114623 
114624    --
114625    XLA_AE_LINES_PKG.SetNewLine;
114626 
114627    p_balance_type_code          := l_balance_type_code;
114628    -- set the flag so later we will know whether the gain loss line needs to be created
114629    
114630    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114631      p_actual_flag :='A';
114632    END IF;
114633 
114634    --
114635    -- bulk performance
114636    --
114637    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114638                                       p_header_num   => 0); -- 4262811
114639    --
114640    -- set accounting line options
114641    --
114645          , p_gl_transfer_mode_code      => 'S'
114642    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114643            p_natural_side_code          => 'D'
114644          , p_gain_or_loss_flag          => 'N'
114646          , p_acct_entry_type_code       => 'A'
114647          , p_switch_side_flag           => 'Y'
114648          , p_merge_duplicate_code       => 'A'
114649          );
114650    --
114651    l_acc_rev_natural_side_code := 'C';  -- 4262811
114652    -- 
114653    --
114654    -- set accounting line type info
114655    --
114656    xla_ae_lines_pkg.SetAcctLineType
114657       (p_component_type             => l_component_type
114658       ,p_event_type_code            => l_event_type_code
114659       ,p_line_definition_owner_code => l_line_definition_owner_code
114660       ,p_line_definition_code       => l_line_definition_code
114661       ,p_accounting_line_code       => l_component_code
114662       ,p_accounting_line_type_code  => l_component_type_code
114663       ,p_accounting_line_appl_id    => l_component_appl_id
114664       ,p_amb_context_code           => l_amb_context_code
114665       ,p_entity_code                => l_entity_code
114666       ,p_event_class_code           => l_event_class_code);
114667    --
114668    -- set accounting class
114669    --
114670    xla_ae_lines_pkg.SetAcctClass(
114671            p_accounting_class_code  => 'RETAINAGE'
114672          , p_ae_header_id           => l_ae_header_id
114673          );
114674 
114675    --
114676    -- set rounding class
114677    --
114678    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114679                       'RETAINAGE';
114680 
114681    --
114682    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114683    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114684    --
114685    -- bulk performance
114686    --
114687    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114688 
114689    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114690       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114691 
114692    -- 4955764
114693    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114694       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114695 
114696    -- 4458381 Public Sector Enh
114697    
114698    --
114699    -- set accounting attributes for the line type
114700    --
114701    l_entered_amt_idx := 23;
114702    l_accted_amt_idx  := 28;
114703    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
114704    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114705    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
114706    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114707    l_rec_acct_attrs.array_num_value(2)  := 
114708 xla_ae_sources_pkg.GetSystemSourceNum(
114709    p_source_code           => 'XLA_EVENT_APPL_ID'
114710  , p_source_type_code      => 'Y'
114711  , p_source_application_id =>  602
114712 );
114713    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114714    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
114715    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114716    l_rec_acct_attrs.array_char_value(4)  := 
114717 xla_ae_sources_pkg.GetSystemSourceChar(
114718    p_source_code           => 'XLA_ENTITY_CODE'
114719  , p_source_type_code      => 'Y'
114720  , p_source_application_id =>  602
114721 );
114722    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114723    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
114724    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114725    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
114726    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114727    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
114728    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114729    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
114730    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114731    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
114732    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114733    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
114734    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114735    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
114736    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114737    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
114738    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114739    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
114740    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
114741    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
114742    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
114743    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
114744    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
114745    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
114746    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
114747    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
114748    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
114752    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
114749    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
114750    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
114751    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
114753    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
114754    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
114755    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
114756    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
114757    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
114758    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
114759    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
114760    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
114761    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
114762    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
114763    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
114764    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
114765    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
114766    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
114767    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
114768    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
114769    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
114770    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
114771    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
114772    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
114773    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
114774    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
114775    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
114776    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
114777    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
114778    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
114779    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
114780    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
114781    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
114782    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
114783    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
114784    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
114785    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
114786    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
114787    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
114788    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
114789    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
114790    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
114791    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
114792    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
114793    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
114794    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
114795    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
114796    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
114797    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
114798    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
114799    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
114800 
114801    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114802    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114803 
114804    ---------------------------------------------------------------------------------------------------------------
114805    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114806    ---------------------------------------------------------------------------------------------------------------
114807    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114808 
114809    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114810    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114811 
114812    IF xla_accounting_cache_pkg.GetValueChar
114813          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114814          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114815    AND l_bflow_method_code = 'PRIOR_ENTRY'
114816 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114817    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114818          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114819        )
114820    THEN
114821          xla_ae_lines_pkg.BflowUpgEntry
114822            (p_business_method_code    => l_bflow_method_code
114823            ,p_business_class_code     => l_bflow_class_code
114824            ,p_balance_type            => l_balance_type_code);
114825    ELSE
114826       NULL;
114827 -- No business flow processing for business flow method of NONE.
114828    END IF;
114829 
114830    --
114831    -- call analytical criteria
114832    --
114833    
114834    --
114835    -- call description
114836    --
114837    
114838 xla_ae_lines_pkg.SetLineDescription(
114839    p_ae_header_id => l_ae_header_id
114840   ,p_description  => Description_1 (
114841      p_application_id         => p_application_id
114842    , p_ae_header_id           => l_ae_header_id 
114843 , p_source_1 => p_source_1
114844    )
114845 );
114846 
114847 
114848    --
114849    -- call ADRs
114853         (NVL(l_actual_upg_option, 'N') = 'O') OR
114850    -- Bug 4922099
114851    --
114852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114854         (NVL(l_enc_upg_option, 'N') = 'O')
114855       )
114856    THEN
114857    NULL;
114858    --
114859    --
114860    
114861   l_ccid := AcctDerRule_39(
114862            p_application_id           => p_application_id
114863          , p_ae_header_id             => l_ae_header_id 
114864 , p_source_15 => p_source_15
114865 , p_source_15_meaning => p_source_15_meaning
114866 , p_source_30 => p_source_30
114867 , p_source_42 => p_source_42
114868          , x_transaction_coa_id       => l_adr_transaction_coa_id
114869          , x_accounting_coa_id        => l_adr_accounting_coa_id
114870          , x_value_type_code          => l_adr_value_type_code
114871          , p_side                     => 'NA'
114872    );
114873 
114874    xla_ae_lines_pkg.set_ccid(
114875     p_code_combination_id          => l_ccid
114876   , p_value_type_code              => l_adr_value_type_code
114877   , p_transaction_coa_id           => l_adr_transaction_coa_id
114878   , p_accounting_coa_id            => l_adr_accounting_coa_id
114879   , p_adr_code                     => 'AP_RETAINAGE'
114880   , p_adr_type_code                => 'S'
114881   , p_component_type               => l_component_type
114882   , p_component_code               => l_component_code
114883   , p_component_type_code          => l_component_type_code
114884   , p_component_appl_id            => l_component_appl_id
114885   , p_amb_context_code             => l_amb_context_code
114886   , p_side                         => 'NA'
114887   );
114888 
114889 
114890    l_segment := AcctDerRule_19(
114891            p_application_id           => p_application_id
114892          , p_ae_header_id             => l_ae_header_id 
114893 , p_source_40 => p_source_40
114894          , x_transaction_coa_id       => l_adr_transaction_coa_id
114895          , x_accounting_coa_id        => l_adr_accounting_coa_id
114896          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114897          , x_flex_value_set_id        => l_adr_flex_value_set_id
114898          , x_value_type_code          => l_adr_value_type_code
114899          , x_value_combination_id     => l_adr_value_combination_id
114900          , x_value_segment_code       => l_adr_value_segment_code
114901          , p_side                     => 'NA'
114902          , p_override_seg_flag        => 'Y'
114903    );
114904 
114905    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114906 
114907       xla_ae_lines_pkg.set_segment(
114908           p_to_segment_code         => 'GL_ACCOUNT'
114909         , p_segment_value           => l_segment
114910         , p_from_segment_code       => l_adr_value_segment_code
114911         , p_from_combination_id     => l_adr_value_combination_id
114912         , p_value_type_code         => l_adr_value_type_code
114913         , p_transaction_coa_id      => l_adr_transaction_coa_id
114914         , p_accounting_coa_id       => l_adr_accounting_coa_id
114915         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114916         , p_flex_value_set_id       => l_adr_flex_value_set_id
114917         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
114918         , p_adr_type_code           => 'S'
114919         , p_component_type          => l_component_type
114920         , p_component_code          => l_component_code
114921         , p_component_type_code     => l_component_type_code
114922         , p_component_appl_id       => l_component_appl_id
114923         , p_amb_context_code        => l_amb_context_code
114924         , p_entity_code             => 'AP_INVOICES'
114925         , p_event_class_code        => 'CREDIT MEMOS'
114926         , p_side                    => 'NA'
114927         );
114928 
114929   END IF;
114930 
114931    l_segment := AcctDerRule_24(
114932            p_application_id           => p_application_id
114933          , p_ae_header_id             => l_ae_header_id 
114934 , p_source_15 => p_source_15
114935 , p_source_15_meaning => p_source_15_meaning
114936 , p_source_42 => p_source_42
114937          , x_transaction_coa_id       => l_adr_transaction_coa_id
114938          , x_accounting_coa_id        => l_adr_accounting_coa_id
114939          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114940          , x_flex_value_set_id        => l_adr_flex_value_set_id
114941          , x_value_type_code          => l_adr_value_type_code
114942          , x_value_combination_id     => l_adr_value_combination_id
114943          , x_value_segment_code       => l_adr_value_segment_code
114944          , p_side                     => 'NA'
114945          , p_override_seg_flag        => 'Y'
114946    );
114947 
114948    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114949 
114950       xla_ae_lines_pkg.set_segment(
114951           p_to_segment_code         => 'GL_BALANCING'
114952         , p_segment_value           => l_segment
114953         , p_from_segment_code       => l_adr_value_segment_code
114954         , p_from_combination_id     => l_adr_value_combination_id
114955         , p_value_type_code         => l_adr_value_type_code
114956         , p_transaction_coa_id      => l_adr_transaction_coa_id
114957         , p_accounting_coa_id       => l_adr_accounting_coa_id
114958         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114959         , p_flex_value_set_id       => l_adr_flex_value_set_id
114960         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
114964         , p_component_type_code     => l_component_type_code
114961         , p_adr_type_code           => 'S'
114962         , p_component_type          => l_component_type
114963         , p_component_code          => l_component_code
114965         , p_component_appl_id       => l_component_appl_id
114966         , p_amb_context_code        => l_amb_context_code
114967         , p_entity_code             => 'AP_INVOICES'
114968         , p_event_class_code        => 'CREDIT MEMOS'
114969         , p_side                    => 'NA'
114970         );
114971 
114972   END IF;
114973 
114974    --
114975    --
114976    END IF;
114977    --
114978    -- Bug 4922099
114979    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114980           (NVL(l_enc_upg_option, 'N') = 'O')
114981         ) AND
114982         (l_bflow_method_code = 'PRIOR_ENTRY')
114983       )
114984    THEN
114985       IF
114986       --
114987       1 = 2
114988       --
114989       THEN
114990       xla_accounting_err_pkg.build_message
114991                                     (p_appli_s_name            => 'XLA'
114992                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114993                                     ,p_token_1                 => 'LINE_NUMBER'
114994                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114995                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114996                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114997                                                                              l_component_type
114998                                                                             ,l_component_code
114999                                                                             ,l_component_type_code
115000                                                                             ,l_component_appl_id
115001                                                                             ,l_amb_context_code
115002                                                                             ,l_entity_code
115003                                                                             ,l_event_class_code
115004                                                                            )
115005                                     ,p_token_3                 => 'OWNER'
115006                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115007                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115008                                                                           ,p_lookup_code    => l_component_type_code
115009                                                                          )
115010                                     ,p_token_4                 => 'PRODUCT_NAME'
115011                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115012                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115013                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115014                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115015                                     ,p_ae_header_id            =>  NULL
115016                                        );
115017 
115018         IF (C_LEVEL_ERROR>= g_log_level) THEN
115019                  trace
115020                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115021                       ,p_level    => C_LEVEL_ERROR
115022                       ,p_module   => l_log_module);
115023         END IF;
115024       END IF;
115025    END IF;
115026    --
115027    --
115028    ------------------------------------------------------------------------------------------------
115029    -- 4219869 Business Flow
115030    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115031    -- Prior Entry.  Currently, the following code is always generated.
115032    ------------------------------------------------------------------------------------------------
115033    XLA_AE_LINES_PKG.ValidateCurrentLine;
115034 
115035    ------------------------------------------------------------------------------------
115036    -- 4219869 Business Flow
115037    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115038    ------------------------------------------------------------------------------------
115039    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115040 
115041    ----------------------------------------------------------------------------------
115042    -- 4219869 Business Flow
115043    -- Update journal entry status -- Need to generate this within IF <condition>
115044    ----------------------------------------------------------------------------------
115045    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115046          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115047          ,p_balance_type_code => l_balance_type_code
115048          );
115049 
115050    -------------------------------------------------------------------------------------------
115051    -- 4262811 - Generate the Accrual Reversal lines
115052    -------------------------------------------------------------------------------------------
115053    BEGIN
115054       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115058       END IF;
115055                               (g_array_event(p_event_id).array_value_num('header_index'));
115056       IF l_acc_rev_flag IS NULL THEN
115057          l_acc_rev_flag := 'N';
115059    EXCEPTION
115060       WHEN OTHERS THEN
115061          l_acc_rev_flag := 'N';
115062    END;
115063    --
115064    IF (l_acc_rev_flag = 'Y') THEN
115065 
115066        -- 4645092  ------------------------------------------------------------------------------
115067        -- To allow MPA report to determine if it should generate report process
115068        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115069        ------------------------------------------------------------------------------------------
115070 
115071        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115072        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115073    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115074    -- call ADRs
115075    -- Bug 4922099
115076    --
115077    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115078         (NVL(l_actual_upg_option, 'N') = 'O') OR
115079         (NVL(l_enc_upg_option, 'N') = 'O')
115080       )
115081    THEN
115082    NULL;
115083    --
115084    --
115085    
115086   l_ccid := AcctDerRule_39(
115087            p_application_id           => p_application_id
115088          , p_ae_header_id             => l_ae_header_id 
115089 , p_source_15 => p_source_15
115090 , p_source_15_meaning => p_source_15_meaning
115091 , p_source_30 => p_source_30
115092 , p_source_42 => p_source_42
115093          , x_transaction_coa_id       => l_adr_transaction_coa_id
115094          , x_accounting_coa_id        => l_adr_accounting_coa_id
115095          , x_value_type_code          => l_adr_value_type_code
115096          , p_side                     => 'NA'
115097    );
115098 
115099    xla_ae_lines_pkg.set_ccid(
115100     p_code_combination_id          => l_ccid
115101   , p_value_type_code              => l_adr_value_type_code
115102   , p_transaction_coa_id           => l_adr_transaction_coa_id
115103   , p_accounting_coa_id            => l_adr_accounting_coa_id
115104   , p_adr_code                     => 'AP_RETAINAGE'
115105   , p_adr_type_code                => 'S'
115106   , p_component_type               => l_component_type
115107   , p_component_code               => l_component_code
115108   , p_component_type_code          => l_component_type_code
115109   , p_component_appl_id            => l_component_appl_id
115110   , p_amb_context_code             => l_amb_context_code
115111   , p_side                         => 'NA'
115112   );
115113 
115114 
115115    l_segment := AcctDerRule_19(
115116            p_application_id           => p_application_id
115117          , p_ae_header_id             => l_ae_header_id 
115118 , p_source_40 => p_source_40
115119          , x_transaction_coa_id       => l_adr_transaction_coa_id
115120          , x_accounting_coa_id        => l_adr_accounting_coa_id
115121          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115122          , x_flex_value_set_id        => l_adr_flex_value_set_id
115123          , x_value_type_code          => l_adr_value_type_code
115124          , x_value_combination_id     => l_adr_value_combination_id
115125          , x_value_segment_code       => l_adr_value_segment_code
115126          , p_side                     => 'NA'
115127          , p_override_seg_flag        => 'Y'
115128    );
115129 
115130    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115131 
115132       xla_ae_lines_pkg.set_segment(
115133           p_to_segment_code         => 'GL_ACCOUNT'
115134         , p_segment_value           => l_segment
115135         , p_from_segment_code       => l_adr_value_segment_code
115136         , p_from_combination_id     => l_adr_value_combination_id
115137         , p_value_type_code         => l_adr_value_type_code
115138         , p_transaction_coa_id      => l_adr_transaction_coa_id
115139         , p_accounting_coa_id       => l_adr_accounting_coa_id
115140         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115141         , p_flex_value_set_id       => l_adr_flex_value_set_id
115142         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115143         , p_adr_type_code           => 'S'
115144         , p_component_type          => l_component_type
115145         , p_component_code          => l_component_code
115146         , p_component_type_code     => l_component_type_code
115147         , p_component_appl_id       => l_component_appl_id
115148         , p_amb_context_code        => l_amb_context_code
115149         , p_entity_code             => 'AP_INVOICES'
115150         , p_event_class_code        => 'CREDIT MEMOS'
115151         , p_side                    => 'NA'
115152         );
115153 
115154   END IF;
115155 
115156    l_segment := AcctDerRule_24(
115157            p_application_id           => p_application_id
115158          , p_ae_header_id             => l_ae_header_id 
115159 , p_source_15 => p_source_15
115160 , p_source_15_meaning => p_source_15_meaning
115161 , p_source_42 => p_source_42
115162          , x_transaction_coa_id       => l_adr_transaction_coa_id
115163          , x_accounting_coa_id        => l_adr_accounting_coa_id
115164          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115165          , x_flex_value_set_id        => l_adr_flex_value_set_id
115166          , x_value_type_code          => l_adr_value_type_code
115167          , x_value_combination_id     => l_adr_value_combination_id
115168          , x_value_segment_code       => l_adr_value_segment_code
115169          , p_side                     => 'NA'
115173    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115170          , p_override_seg_flag        => 'Y'
115171    );
115172 
115174 
115175       xla_ae_lines_pkg.set_segment(
115176           p_to_segment_code         => 'GL_BALANCING'
115177         , p_segment_value           => l_segment
115178         , p_from_segment_code       => l_adr_value_segment_code
115179         , p_from_combination_id     => l_adr_value_combination_id
115180         , p_value_type_code         => l_adr_value_type_code
115181         , p_transaction_coa_id      => l_adr_transaction_coa_id
115182         , p_accounting_coa_id       => l_adr_accounting_coa_id
115183         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115184         , p_flex_value_set_id       => l_adr_flex_value_set_id
115185         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115186         , p_adr_type_code           => 'S'
115187         , p_component_type          => l_component_type
115188         , p_component_code          => l_component_code
115189         , p_component_type_code     => l_component_type_code
115190         , p_component_appl_id       => l_component_appl_id
115191         , p_amb_context_code        => l_amb_context_code
115192         , p_entity_code             => 'AP_INVOICES'
115193         , p_event_class_code        => 'CREDIT MEMOS'
115194         , p_side                    => 'NA'
115195         );
115196 
115197   END IF;
115198 
115199    --
115200    --
115201    END IF;
115202 
115203        --
115204        -- Update the line information that should be overwritten
115205        --
115206        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115207                                          p_header_num   => 1);
115208        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115209 
115210        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115211 
115212        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115213           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115214        END IF;
115215 
115216       --
115217       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115218       --
115219       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115220           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115221       ELSE
115222           ---------------------------------------------------------------------------------------------------
115223           -- 4262811a Switch Sign
115224           ---------------------------------------------------------------------------------------------------
115225           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115226           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115227                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115228           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115229                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115230           -- 5132302
115231           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115232                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115233 
115234       END IF;
115235 
115236       -- 4955764
115237       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115238       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115239 
115240 
115241       XLA_AE_LINES_PKG.ValidateCurrentLine;
115242       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115243 
115244       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115245                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115246                ,p_balance_type_code => l_balance_type_code);
115247 
115248    END IF;
115249 
115250    -----------------------------------------------------------------------------------------
115251    -- 4262811 Multiperiod Accounting
115252    -----------------------------------------------------------------------------------------
115253      -- No MPA option is assigned.
115254 
115255 
115256 END IF;
115257 END IF;
115258 --
115259 
115260 --
115261 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115262    trace
115263       (p_msg      => 'END of AcctLineType_188'
115264       ,p_level    => C_LEVEL_PROCEDURE
115265       ,p_module   => l_log_module);
115266 END IF;
115267 --
115268 EXCEPTION
115269   WHEN xla_exceptions_pkg.application_exception THEN
115270       RAISE;
115271   WHEN OTHERS THEN
115272        xla_exceptions_pkg.raise_message
115273            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_188');
115274 END AcctLineType_188;
115275 --
115276 
115277 ---------------------------------------
115278 --
115279 -- PRIVATE FUNCTION
115280 --         AcctLineType_189
115281 --
115282 ---------------------------------------
115283 PROCEDURE AcctLineType_189 (
115284   p_application_id        IN NUMBER
115285  ,p_event_id              IN NUMBER
115286  ,p_calculate_acctd_flag  IN VARCHAR2
115287  ,p_calculate_g_l_flag    IN VARCHAR2
115291  
115288  ,p_actual_flag           IN OUT VARCHAR2
115289  ,p_balance_type_code     OUT VARCHAR2
115290  ,p_gain_or_loss_ref      OUT VARCHAR2
115292 --Invoice Distribution Description
115293  , p_source_1            IN VARCHAR2
115294 --Automatic Offsets Value
115295  , p_source_15            IN VARCHAR2
115296  , p_source_15_meaning    IN VARCHAR2
115297 --Invoice Distribution Ledger Amount
115298  , p_source_21            IN NUMBER
115299 --Invoice Distribution Account
115300  , p_source_30            IN NUMBER
115301 --Invoice Distribution Type
115302  , p_source_33            IN VARCHAR2
115303  , p_source_33_meaning    IN VARCHAR2
115304 --Retainage Account
115305  , p_source_40            IN NUMBER
115306 --Retainage Related Item Distribution Account
115307  , p_source_42            IN NUMBER
115308 --Accounting Reversal Indicator
115309  , p_source_52            IN VARCHAR2
115310 --Distribution Link Type
115311  , p_source_54            IN VARCHAR2
115312 --Allocation to Main Distribution Identifier
115313  , p_source_56            IN NUMBER
115314 --Invoice Identifier
115315  , p_source_57            IN NUMBER
115316 --Invoice Distribution Identifier
115317  , p_source_63            IN NUMBER
115318 --Payables Encumbrance Upgrade Credit Account
115319  , p_source_64            IN NUMBER
115320 --Payables Encumbrance Upgrade Credit Amount
115321  , p_source_65            IN NUMBER
115322 --Invoice Currency Code
115323  , p_source_66            IN VARCHAR2
115324 --Payables Encumbrance Upgrade Credit Base Amount
115325  , p_source_67            IN NUMBER
115326 --Payables Encumbrance Upgrade Debit Account
115327  , p_source_68            IN NUMBER
115328 --Payables Encumbrance Upgrade Debit Amount
115329  , p_source_69            IN NUMBER
115330 --Payables Encumbrance Upgrade Debit Base Amount
115331  , p_source_70            IN NUMBER
115332 --Payables Encumbrance Upgrade Option
115333  , p_source_71            IN VARCHAR2
115334 --Invoice Distribution Amount
115335  , p_source_72            IN NUMBER
115336 --Deferred Accounting End Date
115337  , p_source_76            IN DATE
115338 --Deferred Accounting Option
115339  , p_source_77            IN VARCHAR2
115340 --Deferred Accounting Start Date
115341  , p_source_78            IN DATE
115342 --Override Accounted Amount Indicator
115343  , p_source_79            IN VARCHAR2
115344  , p_source_79_meaning    IN VARCHAR2
115345 --Invoice Supplier Identifier
115346  , p_source_80            IN NUMBER
115347 --Invoice Supplier Site Identifier
115348  , p_source_81            IN NUMBER
115349 --Third Party Type
115350  , p_source_82            IN VARCHAR2
115351 --Parent Reversal Identifier
115352  , p_source_83            IN NUMBER
115353 --Invoice Distribution Tax Line Identifier
115354  , p_source_85            IN NUMBER
115355 --Invoice Distribution Tax Distribution Identifier from Tax
115356  , p_source_86            IN NUMBER
115357 --Invoice Distribution Summary Tax Line Identifier
115358  , p_source_87            IN NUMBER
115359 --Payables Upgrade Credit Encumbrance Type Identifier
115360  , p_source_88            IN NUMBER
115361 --Payables Upgrade Debit Encumbrance Type Identifier
115362  , p_source_89            IN NUMBER
115363 --Business Flow Accounts Payable Application Identifier
115364  , p_source_90            IN NUMBER
115365 --Business Flow Invoice Distribution Type
115366  , p_source_91            IN VARCHAR2
115367 --Business Flow Invoice Entity Code
115368  , p_source_92            IN VARCHAR2
115369 --Business Flow Invoice Distribution Identifier
115370  , p_source_93            IN NUMBER
115371 --Business Flow Invoice Identifier
115372  , p_source_94            IN NUMBER
115373 --Invoice Exchange Date
115374  , p_source_136            IN DATE
115375 --Invoice Exchange Rate
115376  , p_source_137            IN NUMBER
115377 --Invoice Exchange Rate Type
115378  , p_source_138            IN VARCHAR2
115379 )
115380 IS
115381 
115382 l_component_type              VARCHAR2(80);
115383 l_component_code              VARCHAR2(30);
115384 l_component_type_code         VARCHAR2(1);
115385 l_component_appl_id           INTEGER;
115386 l_amb_context_code            VARCHAR2(30);
115387 l_entity_code                 VARCHAR2(30);
115388 l_event_class_code            VARCHAR2(30);
115389 l_ae_header_id                NUMBER;
115390 l_event_type_code             VARCHAR2(30);
115391 l_line_definition_code        VARCHAR2(30);
115392 l_line_definition_owner_code  VARCHAR2(1);
115393 --
115394 -- adr variables
115395 l_segment                     VARCHAR2(30);
115396 l_ccid                        NUMBER;
115397 l_adr_transaction_coa_id      NUMBER;
115398 l_adr_accounting_coa_id       NUMBER;
115399 l_adr_flexfield_segment_code  VARCHAR2(30);
115400 l_adr_flex_value_set_id       NUMBER;
115401 l_adr_value_type_code         VARCHAR2(30);
115402 l_adr_value_combination_id    NUMBER;
115403 l_adr_value_segment_code      VARCHAR2(30);
115404 
115405 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
115406 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
115407 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
115408 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
115409 
115410 -- 4262811 Variables ------------------------------------------------------------------------------------------
115411 l_entered_amt_idx             NUMBER;
115412 l_accted_amt_idx              NUMBER;
115413 l_acc_rev_flag                VARCHAR2(1);
115414 l_accrual_line_num            NUMBER;
115415 l_tmp_amt                     NUMBER;
115416 l_acc_rev_natural_side_code   VARCHAR2(1);
115420 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
115417 
115418 l_num_entries                 NUMBER;
115419 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
115421 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
115422 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
115423 l_recog_line_1                NUMBER;
115424 l_recog_line_2                NUMBER;
115425 
115426 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
115427 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
115428 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
115429 
115430 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115431 
115432 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
115433 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
115434 
115435 ---------------------------------------------------------------------------------------------------------------
115436 
115437 
115438 --
115439 -- bulk performance
115440 --
115441 l_balance_type_code           VARCHAR2(1);
115442 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
115443 l_log_module                  VARCHAR2(240);
115444 
115445 --
115446 -- Upgrade strategy
115447 --
115448 l_actual_upg_option           VARCHAR2(1);
115449 l_enc_upg_option           VARCHAR2(1);
115450 
115451 --
115452 BEGIN
115453 --
115454 IF g_log_enabled THEN
115455       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
115456 END IF;
115457 --
115458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115459 
115460       trace
115461          (p_msg      => 'BEGIN of AcctLineType_189'
115462          ,p_level    => C_LEVEL_PROCEDURE
115463          ,p_module   => l_log_module);
115464 
115465 END IF;
115466 --
115467 l_component_type             := 'AMB_JLT';
115468 l_component_code             := 'AP_RETAINAGE_ACC_DM';
115469 l_component_type_code        := 'S';
115470 l_component_appl_id          :=  200;
115471 l_amb_context_code           := 'DEFAULT';
115472 l_entity_code                := 'AP_INVOICES';
115473 l_event_class_code           := 'DEBIT MEMOS';
115474 l_event_type_code            := 'DEBIT MEMOS_ALL';
115475 l_line_definition_owner_code := 'S';
115476 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
115477 --
115478 l_balance_type_code          := 'A';
115479 l_segment                     := NULL;
115480 l_ccid                        := NULL;
115481 l_adr_transaction_coa_id      := NULL;
115482 l_adr_accounting_coa_id       := NULL;
115483 l_adr_flexfield_segment_code  := NULL;
115484 l_adr_flex_value_set_id       := NULL;
115485 l_adr_value_type_code         := NULL;
115486 l_adr_value_combination_id    := NULL;
115487 l_adr_value_segment_code      := NULL;
115488 
115489 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
115490 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
115491 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115492 l_budgetary_control_flag     := 'N';
115493 
115494 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115495 l_bflow_applied_to_amt       := NULL; -- 5132302
115496 l_entered_amt_idx            := NULL;          -- 4262811
115497 l_accted_amt_idx             := NULL;          -- 4262811
115498 l_acc_rev_flag               := NULL;          -- 4262811
115499 l_accrual_line_num           := NULL;          -- 4262811
115500 l_tmp_amt                    := NULL;          -- 4262811
115501 --
115502  
115503 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115504     l_balance_type_code <> 'B' THEN
115505 IF NVL(p_source_33,'
115506 ') =  'RETAINAGE'
115507  THEN 
115508 
115509    --
115510    XLA_AE_LINES_PKG.SetNewLine;
115511 
115512    p_balance_type_code          := l_balance_type_code;
115513    -- set the flag so later we will know whether the gain loss line needs to be created
115514    
115515    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115516      p_actual_flag :='A';
115517    END IF;
115518 
115519    --
115520    -- bulk performance
115521    --
115522    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115523                                       p_header_num   => 0); -- 4262811
115524    --
115525    -- set accounting line options
115526    --
115527    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115528            p_natural_side_code          => 'D'
115529          , p_gain_or_loss_flag          => 'N'
115530          , p_gl_transfer_mode_code      => 'S'
115531          , p_acct_entry_type_code       => 'A'
115532          , p_switch_side_flag           => 'Y'
115533          , p_merge_duplicate_code       => 'A'
115534          );
115535    --
115536    l_acc_rev_natural_side_code := 'C';  -- 4262811
115537    -- 
115538    --
115539    -- set accounting line type info
115540    --
115541    xla_ae_lines_pkg.SetAcctLineType
115542       (p_component_type             => l_component_type
115543       ,p_event_type_code            => l_event_type_code
115544       ,p_line_definition_owner_code => l_line_definition_owner_code
115545       ,p_line_definition_code       => l_line_definition_code
115546       ,p_accounting_line_code       => l_component_code
115550       ,p_entity_code                => l_entity_code
115547       ,p_accounting_line_type_code  => l_component_type_code
115548       ,p_accounting_line_appl_id    => l_component_appl_id
115549       ,p_amb_context_code           => l_amb_context_code
115551       ,p_event_class_code           => l_event_class_code);
115552    --
115553    -- set accounting class
115554    --
115555    xla_ae_lines_pkg.SetAcctClass(
115556            p_accounting_class_code  => 'RETAINAGE'
115557          , p_ae_header_id           => l_ae_header_id
115558          );
115559 
115560    --
115561    -- set rounding class
115562    --
115563    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115564                       'RETAINAGE';
115565 
115566    --
115567    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115568    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115569    --
115570    -- bulk performance
115571    --
115572    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115573 
115574    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115575       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115576 
115577    -- 4955764
115578    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115579       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115580 
115581    -- 4458381 Public Sector Enh
115582    
115583    --
115584    -- set accounting attributes for the line type
115585    --
115586    l_entered_amt_idx := 23;
115587    l_accted_amt_idx  := 28;
115588    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
115589    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115590    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
115591    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115592    l_rec_acct_attrs.array_num_value(2)  := 
115593 xla_ae_sources_pkg.GetSystemSourceNum(
115594    p_source_code           => 'XLA_EVENT_APPL_ID'
115595  , p_source_type_code      => 'Y'
115596  , p_source_application_id =>  602
115597 );
115598    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115599    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
115600    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115601    l_rec_acct_attrs.array_char_value(4)  := 
115602 xla_ae_sources_pkg.GetSystemSourceChar(
115603    p_source_code           => 'XLA_ENTITY_CODE'
115604  , p_source_type_code      => 'Y'
115605  , p_source_application_id =>  602
115606 );
115607    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115608    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
115609    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115610    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
115611    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115612    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
115613    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115614    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
115615    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115616    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
115617    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115618    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
115619    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115620    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
115621    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115622    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
115623    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115624    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
115625    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
115626    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
115627    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
115628    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
115629    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
115630    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
115631    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
115632    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
115633    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
115634    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
115635    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
115636    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
115637    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
115638    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
115639    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
115640    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
115641    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
115642    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
115643    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
115644    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
115645    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
115646    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
115650    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
115647    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
115648    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
115649    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
115651    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
115652    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
115653    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
115654    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
115655    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
115656    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
115657    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
115658    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
115659    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
115660    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
115661    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
115662    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
115663    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
115664    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
115665    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
115666    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
115667    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
115668    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
115669    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
115670    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
115671    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
115672    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
115673    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
115674    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
115675    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
115676    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
115677    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
115678    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
115679    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
115680    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
115681    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
115682    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
115683 
115684    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115685    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115686 
115687    ---------------------------------------------------------------------------------------------------------------
115688    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115689    ---------------------------------------------------------------------------------------------------------------
115690    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115691 
115692    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115693    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115694 
115695    IF xla_accounting_cache_pkg.GetValueChar
115696          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115697          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115698    AND l_bflow_method_code = 'PRIOR_ENTRY'
115699 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115700    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115701          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115702        )
115703    THEN
115704          xla_ae_lines_pkg.BflowUpgEntry
115705            (p_business_method_code    => l_bflow_method_code
115706            ,p_business_class_code     => l_bflow_class_code
115707            ,p_balance_type            => l_balance_type_code);
115708    ELSE
115709       NULL;
115710 -- No business flow processing for business flow method of NONE.
115711    END IF;
115712 
115713    --
115714    -- call analytical criteria
115715    --
115716    
115717    --
115718    -- call description
115719    --
115720    
115721 xla_ae_lines_pkg.SetLineDescription(
115722    p_ae_header_id => l_ae_header_id
115723   ,p_description  => Description_1 (
115724      p_application_id         => p_application_id
115725    , p_ae_header_id           => l_ae_header_id 
115726 , p_source_1 => p_source_1
115727    )
115728 );
115729 
115730 
115731    --
115732    -- call ADRs
115733    -- Bug 4922099
115734    --
115735    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115736         (NVL(l_actual_upg_option, 'N') = 'O') OR
115737         (NVL(l_enc_upg_option, 'N') = 'O')
115738       )
115739    THEN
115740    NULL;
115741    --
115742    --
115743    
115744   l_ccid := AcctDerRule_39(
115745            p_application_id           => p_application_id
115746          , p_ae_header_id             => l_ae_header_id 
115747 , p_source_15 => p_source_15
115748 , p_source_15_meaning => p_source_15_meaning
115749 , p_source_30 => p_source_30
115750 , p_source_42 => p_source_42
115751          , x_transaction_coa_id       => l_adr_transaction_coa_id
115752          , x_accounting_coa_id        => l_adr_accounting_coa_id
115753          , x_value_type_code          => l_adr_value_type_code
115754          , p_side                     => 'NA'
115755    );
115756 
115757    xla_ae_lines_pkg.set_ccid(
115761   , p_accounting_coa_id            => l_adr_accounting_coa_id
115758     p_code_combination_id          => l_ccid
115759   , p_value_type_code              => l_adr_value_type_code
115760   , p_transaction_coa_id           => l_adr_transaction_coa_id
115762   , p_adr_code                     => 'AP_RETAINAGE'
115763   , p_adr_type_code                => 'S'
115764   , p_component_type               => l_component_type
115765   , p_component_code               => l_component_code
115766   , p_component_type_code          => l_component_type_code
115767   , p_component_appl_id            => l_component_appl_id
115768   , p_amb_context_code             => l_amb_context_code
115769   , p_side                         => 'NA'
115770   );
115771 
115772 
115773    l_segment := AcctDerRule_19(
115774            p_application_id           => p_application_id
115775          , p_ae_header_id             => l_ae_header_id 
115776 , p_source_40 => p_source_40
115777          , x_transaction_coa_id       => l_adr_transaction_coa_id
115778          , x_accounting_coa_id        => l_adr_accounting_coa_id
115779          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115780          , x_flex_value_set_id        => l_adr_flex_value_set_id
115781          , x_value_type_code          => l_adr_value_type_code
115782          , x_value_combination_id     => l_adr_value_combination_id
115783          , x_value_segment_code       => l_adr_value_segment_code
115784          , p_side                     => 'NA'
115785          , p_override_seg_flag        => 'Y'
115786    );
115787 
115788    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115789 
115790       xla_ae_lines_pkg.set_segment(
115791           p_to_segment_code         => 'GL_ACCOUNT'
115792         , p_segment_value           => l_segment
115793         , p_from_segment_code       => l_adr_value_segment_code
115794         , p_from_combination_id     => l_adr_value_combination_id
115795         , p_value_type_code         => l_adr_value_type_code
115796         , p_transaction_coa_id      => l_adr_transaction_coa_id
115797         , p_accounting_coa_id       => l_adr_accounting_coa_id
115798         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115799         , p_flex_value_set_id       => l_adr_flex_value_set_id
115800         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115801         , p_adr_type_code           => 'S'
115802         , p_component_type          => l_component_type
115803         , p_component_code          => l_component_code
115804         , p_component_type_code     => l_component_type_code
115805         , p_component_appl_id       => l_component_appl_id
115806         , p_amb_context_code        => l_amb_context_code
115807         , p_entity_code             => 'AP_INVOICES'
115808         , p_event_class_code        => 'DEBIT MEMOS'
115809         , p_side                    => 'NA'
115810         );
115811 
115812   END IF;
115813 
115814    l_segment := AcctDerRule_24(
115815            p_application_id           => p_application_id
115816          , p_ae_header_id             => l_ae_header_id 
115817 , p_source_15 => p_source_15
115818 , p_source_15_meaning => p_source_15_meaning
115819 , p_source_42 => p_source_42
115820          , x_transaction_coa_id       => l_adr_transaction_coa_id
115821          , x_accounting_coa_id        => l_adr_accounting_coa_id
115822          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115823          , x_flex_value_set_id        => l_adr_flex_value_set_id
115824          , x_value_type_code          => l_adr_value_type_code
115825          , x_value_combination_id     => l_adr_value_combination_id
115826          , x_value_segment_code       => l_adr_value_segment_code
115827          , p_side                     => 'NA'
115828          , p_override_seg_flag        => 'Y'
115829    );
115830 
115831    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115832 
115833       xla_ae_lines_pkg.set_segment(
115834           p_to_segment_code         => 'GL_BALANCING'
115835         , p_segment_value           => l_segment
115836         , p_from_segment_code       => l_adr_value_segment_code
115837         , p_from_combination_id     => l_adr_value_combination_id
115838         , p_value_type_code         => l_adr_value_type_code
115839         , p_transaction_coa_id      => l_adr_transaction_coa_id
115840         , p_accounting_coa_id       => l_adr_accounting_coa_id
115841         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115842         , p_flex_value_set_id       => l_adr_flex_value_set_id
115843         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115844         , p_adr_type_code           => 'S'
115845         , p_component_type          => l_component_type
115846         , p_component_code          => l_component_code
115847         , p_component_type_code     => l_component_type_code
115848         , p_component_appl_id       => l_component_appl_id
115849         , p_amb_context_code        => l_amb_context_code
115850         , p_entity_code             => 'AP_INVOICES'
115851         , p_event_class_code        => 'DEBIT MEMOS'
115852         , p_side                    => 'NA'
115853         );
115854 
115855   END IF;
115856 
115857    --
115858    --
115859    END IF;
115860    --
115861    -- Bug 4922099
115862    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115863           (NVL(l_enc_upg_option, 'N') = 'O')
115864         ) AND
115865         (l_bflow_method_code = 'PRIOR_ENTRY')
115866       )
115867    THEN
115868       IF
115869       --
115870       1 = 2
115871       --
115872       THEN
115876                                     ,p_token_1                 => 'LINE_NUMBER'
115873       xla_accounting_err_pkg.build_message
115874                                     (p_appli_s_name            => 'XLA'
115875                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115877                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115878                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115879                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115880                                                                              l_component_type
115881                                                                             ,l_component_code
115882                                                                             ,l_component_type_code
115883                                                                             ,l_component_appl_id
115884                                                                             ,l_amb_context_code
115885                                                                             ,l_entity_code
115886                                                                             ,l_event_class_code
115887                                                                            )
115888                                     ,p_token_3                 => 'OWNER'
115889                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115890                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115891                                                                           ,p_lookup_code    => l_component_type_code
115892                                                                          )
115893                                     ,p_token_4                 => 'PRODUCT_NAME'
115894                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115895                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115896                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115897                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115898                                     ,p_ae_header_id            =>  NULL
115899                                        );
115900 
115901         IF (C_LEVEL_ERROR>= g_log_level) THEN
115902                  trace
115903                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115904                       ,p_level    => C_LEVEL_ERROR
115905                       ,p_module   => l_log_module);
115906         END IF;
115907       END IF;
115908    END IF;
115909    --
115910    --
115911    ------------------------------------------------------------------------------------------------
115912    -- 4219869 Business Flow
115913    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115914    -- Prior Entry.  Currently, the following code is always generated.
115915    ------------------------------------------------------------------------------------------------
115916    XLA_AE_LINES_PKG.ValidateCurrentLine;
115917 
115918    ------------------------------------------------------------------------------------
115919    -- 4219869 Business Flow
115920    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115921    ------------------------------------------------------------------------------------
115922    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115923 
115924    ----------------------------------------------------------------------------------
115925    -- 4219869 Business Flow
115926    -- Update journal entry status -- Need to generate this within IF <condition>
115927    ----------------------------------------------------------------------------------
115928    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115929          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115930          ,p_balance_type_code => l_balance_type_code
115931          );
115932 
115933    -------------------------------------------------------------------------------------------
115934    -- 4262811 - Generate the Accrual Reversal lines
115935    -------------------------------------------------------------------------------------------
115936    BEGIN
115937       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115938                               (g_array_event(p_event_id).array_value_num('header_index'));
115939       IF l_acc_rev_flag IS NULL THEN
115940          l_acc_rev_flag := 'N';
115941       END IF;
115942    EXCEPTION
115943       WHEN OTHERS THEN
115944          l_acc_rev_flag := 'N';
115945    END;
115946    --
115947    IF (l_acc_rev_flag = 'Y') THEN
115948 
115949        -- 4645092  ------------------------------------------------------------------------------
115950        -- To allow MPA report to determine if it should generate report process
115951        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115952        ------------------------------------------------------------------------------------------
115953 
115954        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115955        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115956    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115957    -- call ADRs
115958    -- Bug 4922099
115959    --
115960    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115961         (NVL(l_actual_upg_option, 'N') = 'O') OR
115962         (NVL(l_enc_upg_option, 'N') = 'O')
115963       )
115964    THEN
115968    
115965    NULL;
115966    --
115967    --
115969   l_ccid := AcctDerRule_39(
115970            p_application_id           => p_application_id
115971          , p_ae_header_id             => l_ae_header_id 
115972 , p_source_15 => p_source_15
115973 , p_source_15_meaning => p_source_15_meaning
115974 , p_source_30 => p_source_30
115975 , p_source_42 => p_source_42
115976          , x_transaction_coa_id       => l_adr_transaction_coa_id
115977          , x_accounting_coa_id        => l_adr_accounting_coa_id
115978          , x_value_type_code          => l_adr_value_type_code
115979          , p_side                     => 'NA'
115980    );
115981 
115982    xla_ae_lines_pkg.set_ccid(
115983     p_code_combination_id          => l_ccid
115984   , p_value_type_code              => l_adr_value_type_code
115985   , p_transaction_coa_id           => l_adr_transaction_coa_id
115986   , p_accounting_coa_id            => l_adr_accounting_coa_id
115987   , p_adr_code                     => 'AP_RETAINAGE'
115988   , p_adr_type_code                => 'S'
115989   , p_component_type               => l_component_type
115990   , p_component_code               => l_component_code
115991   , p_component_type_code          => l_component_type_code
115992   , p_component_appl_id            => l_component_appl_id
115993   , p_amb_context_code             => l_amb_context_code
115994   , p_side                         => 'NA'
115995   );
115996 
115997 
115998    l_segment := AcctDerRule_19(
115999            p_application_id           => p_application_id
116000          , p_ae_header_id             => l_ae_header_id 
116001 , p_source_40 => p_source_40
116002          , x_transaction_coa_id       => l_adr_transaction_coa_id
116003          , x_accounting_coa_id        => l_adr_accounting_coa_id
116004          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116005          , x_flex_value_set_id        => l_adr_flex_value_set_id
116006          , x_value_type_code          => l_adr_value_type_code
116007          , x_value_combination_id     => l_adr_value_combination_id
116008          , x_value_segment_code       => l_adr_value_segment_code
116009          , p_side                     => 'NA'
116010          , p_override_seg_flag        => 'Y'
116011    );
116012 
116013    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116014 
116015       xla_ae_lines_pkg.set_segment(
116016           p_to_segment_code         => 'GL_ACCOUNT'
116017         , p_segment_value           => l_segment
116018         , p_from_segment_code       => l_adr_value_segment_code
116019         , p_from_combination_id     => l_adr_value_combination_id
116020         , p_value_type_code         => l_adr_value_type_code
116021         , p_transaction_coa_id      => l_adr_transaction_coa_id
116022         , p_accounting_coa_id       => l_adr_accounting_coa_id
116023         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116024         , p_flex_value_set_id       => l_adr_flex_value_set_id
116025         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
116026         , p_adr_type_code           => 'S'
116027         , p_component_type          => l_component_type
116028         , p_component_code          => l_component_code
116029         , p_component_type_code     => l_component_type_code
116030         , p_component_appl_id       => l_component_appl_id
116031         , p_amb_context_code        => l_amb_context_code
116032         , p_entity_code             => 'AP_INVOICES'
116033         , p_event_class_code        => 'DEBIT MEMOS'
116034         , p_side                    => 'NA'
116035         );
116036 
116037   END IF;
116038 
116039    l_segment := AcctDerRule_24(
116040            p_application_id           => p_application_id
116041          , p_ae_header_id             => l_ae_header_id 
116042 , p_source_15 => p_source_15
116043 , p_source_15_meaning => p_source_15_meaning
116044 , p_source_42 => p_source_42
116045          , x_transaction_coa_id       => l_adr_transaction_coa_id
116046          , x_accounting_coa_id        => l_adr_accounting_coa_id
116047          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116048          , x_flex_value_set_id        => l_adr_flex_value_set_id
116049          , x_value_type_code          => l_adr_value_type_code
116050          , x_value_combination_id     => l_adr_value_combination_id
116051          , x_value_segment_code       => l_adr_value_segment_code
116052          , p_side                     => 'NA'
116053          , p_override_seg_flag        => 'Y'
116054    );
116055 
116056    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116057 
116058       xla_ae_lines_pkg.set_segment(
116059           p_to_segment_code         => 'GL_BALANCING'
116060         , p_segment_value           => l_segment
116061         , p_from_segment_code       => l_adr_value_segment_code
116062         , p_from_combination_id     => l_adr_value_combination_id
116063         , p_value_type_code         => l_adr_value_type_code
116064         , p_transaction_coa_id      => l_adr_transaction_coa_id
116065         , p_accounting_coa_id       => l_adr_accounting_coa_id
116066         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116067         , p_flex_value_set_id       => l_adr_flex_value_set_id
116068         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
116069         , p_adr_type_code           => 'S'
116070         , p_component_type          => l_component_type
116071         , p_component_code          => l_component_code
116072         , p_component_type_code     => l_component_type_code
116076         , p_event_class_code        => 'DEBIT MEMOS'
116073         , p_component_appl_id       => l_component_appl_id
116074         , p_amb_context_code        => l_amb_context_code
116075         , p_entity_code             => 'AP_INVOICES'
116077         , p_side                    => 'NA'
116078         );
116079 
116080   END IF;
116081 
116082    --
116083    --
116084    END IF;
116085 
116086        --
116087        -- Update the line information that should be overwritten
116088        --
116089        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116090                                          p_header_num   => 1);
116091        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116092 
116093        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116094 
116095        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116096           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116097        END IF;
116098 
116099       --
116100       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116101       --
116102       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116103           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116104       ELSE
116105           ---------------------------------------------------------------------------------------------------
116106           -- 4262811a Switch Sign
116107           ---------------------------------------------------------------------------------------------------
116108           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116109           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116110                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116111           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116112                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116113           -- 5132302
116114           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116115                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116116 
116117       END IF;
116118 
116119       -- 4955764
116120       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116121       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116122 
116123 
116124       XLA_AE_LINES_PKG.ValidateCurrentLine;
116125       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116126 
116127       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116128                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116129                ,p_balance_type_code => l_balance_type_code);
116130 
116131    END IF;
116132 
116133    -----------------------------------------------------------------------------------------
116134    -- 4262811 Multiperiod Accounting
116135    -----------------------------------------------------------------------------------------
116136      -- No MPA option is assigned.
116137 
116138 
116139 END IF;
116140 END IF;
116141 --
116142 
116143 --
116144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116145    trace
116146       (p_msg      => 'END of AcctLineType_189'
116147       ,p_level    => C_LEVEL_PROCEDURE
116148       ,p_module   => l_log_module);
116149 END IF;
116150 --
116151 EXCEPTION
116152   WHEN xla_exceptions_pkg.application_exception THEN
116153       RAISE;
116154   WHEN OTHERS THEN
116155        xla_exceptions_pkg.raise_message
116156            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_189');
116157 END AcctLineType_189;
116158 --
116159 
116160 ---------------------------------------
116161 --
116162 -- PRIVATE FUNCTION
116163 --         AcctLineType_190
116164 --
116165 ---------------------------------------
116166 PROCEDURE AcctLineType_190 (
116167   p_application_id        IN NUMBER
116168  ,p_event_id              IN NUMBER
116169  ,p_calculate_acctd_flag  IN VARCHAR2
116170  ,p_calculate_g_l_flag    IN VARCHAR2
116171  ,p_actual_flag           IN OUT VARCHAR2
116172  ,p_balance_type_code     OUT VARCHAR2
116173  ,p_gain_or_loss_ref      OUT VARCHAR2
116174  
116175 --Invoice Distribution Description
116176  , p_source_1            IN VARCHAR2
116177 --Invoice Distribution Ledger Amount
116178  , p_source_21            IN NUMBER
116179 --Invoice Distribution Type
116180  , p_source_33            IN VARCHAR2
116181  , p_source_33_meaning    IN VARCHAR2
116182 --Accounting Reversal Indicator
116183  , p_source_52            IN VARCHAR2
116184 --Distribution Link Type
116185  , p_source_54            IN VARCHAR2
116186 --Allocation to Main Distribution Identifier
116187  , p_source_56            IN NUMBER
116188 --Invoice Identifier
116189  , p_source_57            IN NUMBER
116190 --Invoice Distribution Identifier
116191  , p_source_63            IN NUMBER
116192 --Payables Encumbrance Upgrade Credit Account
116193  , p_source_64            IN NUMBER
116194 --Payables Encumbrance Upgrade Credit Amount
116195  , p_source_65            IN NUMBER
116199  , p_source_67            IN NUMBER
116196 --Invoice Currency Code
116197  , p_source_66            IN VARCHAR2
116198 --Payables Encumbrance Upgrade Credit Base Amount
116200 --Payables Encumbrance Upgrade Debit Account
116201  , p_source_68            IN NUMBER
116202 --Payables Encumbrance Upgrade Debit Amount
116203  , p_source_69            IN NUMBER
116204 --Payables Encumbrance Upgrade Debit Base Amount
116205  , p_source_70            IN NUMBER
116206 --Payables Encumbrance Upgrade Option
116207  , p_source_71            IN VARCHAR2
116208 --Invoice Distribution Amount
116209  , p_source_72            IN NUMBER
116210 --Deferred Accounting End Date
116211  , p_source_76            IN DATE
116212 --Deferred Accounting Option
116213  , p_source_77            IN VARCHAR2
116214 --Deferred Accounting Start Date
116215  , p_source_78            IN DATE
116216 --Override Accounted Amount Indicator
116217  , p_source_79            IN VARCHAR2
116218  , p_source_79_meaning    IN VARCHAR2
116219 --Third Party Type
116220  , p_source_82            IN VARCHAR2
116221 --Parent Reversal Identifier
116222  , p_source_83            IN NUMBER
116223 --Invoice Distribution Statistical Amount
116224  , p_source_84            IN NUMBER
116225 --Invoice Distribution Tax Line Identifier
116226  , p_source_85            IN NUMBER
116227 --Invoice Distribution Tax Distribution Identifier from Tax
116228  , p_source_86            IN NUMBER
116229 --Invoice Distribution Summary Tax Line Identifier
116230  , p_source_87            IN NUMBER
116231 --Payables Upgrade Credit Encumbrance Type Identifier
116232  , p_source_88            IN NUMBER
116233 --Payables Upgrade Debit Encumbrance Type Identifier
116234  , p_source_89            IN NUMBER
116235 --Business Flow Accounts Payable Application Identifier
116236  , p_source_90            IN NUMBER
116237 --Business Flow Invoice Distribution Type
116238  , p_source_91            IN VARCHAR2
116239 --Business Flow Invoice Entity Code
116240  , p_source_92            IN VARCHAR2
116241 --Invoice Type
116242  , p_source_164            IN VARCHAR2
116243  , p_source_164_meaning    IN VARCHAR2
116244 --Business Flow Retained Invoice Distribution
116245  , p_source_166            IN NUMBER
116246 --Business Flow Retained Invoice
116247  , p_source_167            IN NUMBER
116248 )
116249 IS
116250 
116251 l_component_type              VARCHAR2(80);
116252 l_component_code              VARCHAR2(30);
116253 l_component_type_code         VARCHAR2(1);
116254 l_component_appl_id           INTEGER;
116255 l_amb_context_code            VARCHAR2(30);
116256 l_entity_code                 VARCHAR2(30);
116257 l_event_class_code            VARCHAR2(30);
116258 l_ae_header_id                NUMBER;
116259 l_event_type_code             VARCHAR2(30);
116260 l_line_definition_code        VARCHAR2(30);
116261 l_line_definition_owner_code  VARCHAR2(1);
116262 --
116263 -- adr variables
116264 l_segment                     VARCHAR2(30);
116265 l_ccid                        NUMBER;
116266 l_adr_transaction_coa_id      NUMBER;
116267 l_adr_accounting_coa_id       NUMBER;
116268 l_adr_flexfield_segment_code  VARCHAR2(30);
116269 l_adr_flex_value_set_id       NUMBER;
116270 l_adr_value_type_code         VARCHAR2(30);
116271 l_adr_value_combination_id    NUMBER;
116272 l_adr_value_segment_code      VARCHAR2(30);
116273 
116274 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116275 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116276 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116277 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116278 
116279 -- 4262811 Variables ------------------------------------------------------------------------------------------
116280 l_entered_amt_idx             NUMBER;
116281 l_accted_amt_idx              NUMBER;
116282 l_acc_rev_flag                VARCHAR2(1);
116283 l_accrual_line_num            NUMBER;
116284 l_tmp_amt                     NUMBER;
116285 l_acc_rev_natural_side_code   VARCHAR2(1);
116286 
116287 l_num_entries                 NUMBER;
116288 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116289 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116290 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116291 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116292 l_recog_line_1                NUMBER;
116293 l_recog_line_2                NUMBER;
116294 
116295 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116296 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116297 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116298 
116299 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116300 
116301 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116302 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116303 
116304 ---------------------------------------------------------------------------------------------------------------
116305 
116306 
116307 --
116308 -- bulk performance
116309 --
116310 l_balance_type_code           VARCHAR2(1);
116311 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116312 l_log_module                  VARCHAR2(240);
116313 
116314 --
116315 -- Upgrade strategy
116316 --
116317 l_actual_upg_option           VARCHAR2(1);
116318 l_enc_upg_option           VARCHAR2(1);
116319 
116320 --
116321 BEGIN
116325 END IF;
116322 --
116323 IF g_log_enabled THEN
116324       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
116326 --
116327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116328 
116329       trace
116330          (p_msg      => 'BEGIN of AcctLineType_190'
116331          ,p_level    => C_LEVEL_PROCEDURE
116332          ,p_module   => l_log_module);
116333 
116334 END IF;
116335 --
116336 l_component_type             := 'AMB_JLT';
116337 l_component_code             := 'AP_RETAINAGE_RELEASE_ACCR';
116338 l_component_type_code        := 'S';
116339 l_component_appl_id          :=  200;
116340 l_amb_context_code           := 'DEFAULT';
116341 l_entity_code                := 'AP_INVOICES';
116342 l_event_class_code           := 'INVOICES';
116343 l_event_type_code            := 'INVOICES_ALL';
116344 l_line_definition_owner_code := 'S';
116345 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
116346 --
116347 l_balance_type_code          := 'A';
116348 l_segment                     := NULL;
116349 l_ccid                        := NULL;
116350 l_adr_transaction_coa_id      := NULL;
116351 l_adr_accounting_coa_id       := NULL;
116352 l_adr_flexfield_segment_code  := NULL;
116353 l_adr_flex_value_set_id       := NULL;
116354 l_adr_value_type_code         := NULL;
116355 l_adr_value_combination_id    := NULL;
116356 l_adr_value_segment_code      := NULL;
116357 
116358 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
116359 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
116360 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116361 l_budgetary_control_flag     := 'N';
116362 
116363 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116364 l_bflow_applied_to_amt       := NULL; -- 5132302
116365 l_entered_amt_idx            := NULL;          -- 4262811
116366 l_accted_amt_idx             := NULL;          -- 4262811
116367 l_acc_rev_flag               := NULL;          -- 4262811
116368 l_accrual_line_num           := NULL;          -- 4262811
116369 l_tmp_amt                    := NULL;          -- 4262811
116370 --
116371  
116372 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116373     l_balance_type_code <> 'B' THEN
116374 IF NVL(p_source_164,'
116375 ') =  'RETAINAGE RELEASE' AND 
116376 NVL(p_source_33,'
116377 ') =  'RETAINAGE'
116378  THEN 
116379 
116380    --
116381    XLA_AE_LINES_PKG.SetNewLine;
116382 
116383    p_balance_type_code          := l_balance_type_code;
116384    -- set the flag so later we will know whether the gain loss line needs to be created
116385    
116386    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116387      p_actual_flag :='A';
116388    END IF;
116389 
116390    --
116391    -- bulk performance
116392    --
116393    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116394                                       p_header_num   => 0); -- 4262811
116395    --
116396    -- set accounting line options
116397    --
116398    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116399            p_natural_side_code          => 'D'
116400          , p_gain_or_loss_flag          => 'N'
116401          , p_gl_transfer_mode_code      => 'S'
116402          , p_acct_entry_type_code       => 'A'
116403          , p_switch_side_flag           => 'Y'
116404          , p_merge_duplicate_code       => 'A'
116405          );
116406    --
116407    l_acc_rev_natural_side_code := 'C';  -- 4262811
116408    -- 
116409    --
116410    -- set accounting line type info
116411    --
116412    xla_ae_lines_pkg.SetAcctLineType
116413       (p_component_type             => l_component_type
116414       ,p_event_type_code            => l_event_type_code
116415       ,p_line_definition_owner_code => l_line_definition_owner_code
116416       ,p_line_definition_code       => l_line_definition_code
116417       ,p_accounting_line_code       => l_component_code
116418       ,p_accounting_line_type_code  => l_component_type_code
116419       ,p_accounting_line_appl_id    => l_component_appl_id
116420       ,p_amb_context_code           => l_amb_context_code
116421       ,p_entity_code                => l_entity_code
116422       ,p_event_class_code           => l_event_class_code);
116423    --
116424    -- set accounting class
116425    --
116426    xla_ae_lines_pkg.SetAcctClass(
116427            p_accounting_class_code  => 'RETAINAGE'
116428          , p_ae_header_id           => l_ae_header_id
116429          );
116430 
116431    --
116432    -- set rounding class
116433    --
116434    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116435                       'RETAINAGE';
116436 
116437    --
116438    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116439    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116440    --
116441    -- bulk performance
116442    --
116443    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116444 
116445    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116446       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116447 
116448    -- 4955764
116449    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116450       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116451 
116452    -- 4458381 Public Sector Enh
116456    --
116453    
116454    --
116455    -- set accounting attributes for the line type
116457    l_entered_amt_idx := 24;
116458    l_accted_amt_idx  := 26;
116459    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
116460    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116461    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
116462    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116463    l_rec_acct_attrs.array_num_value(2)  := 
116464 xla_ae_sources_pkg.GetSystemSourceNum(
116465    p_source_code           => 'XLA_EVENT_APPL_ID'
116466  , p_source_type_code      => 'Y'
116467  , p_source_application_id =>  602
116468 );
116469    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116470    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
116471    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116472    l_rec_acct_attrs.array_char_value(4)  := 
116473 xla_ae_sources_pkg.GetSystemSourceChar(
116474    p_source_code           => 'XLA_ENTITY_CODE'
116475  , p_source_type_code      => 'Y'
116476  , p_source_application_id =>  602
116477 );
116478    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116479    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
116480    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116481    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
116482    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
116483    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
116484    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
116485    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
116486    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116487    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
116488    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
116489    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
116490    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
116491    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_166);
116492    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116493    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_167);
116494    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
116495    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
116496    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
116497    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
116498    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
116499    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
116500    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
116501    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
116502    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
116503    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
116504    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
116505    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
116506    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
116507    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
116508    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
116509    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
116510    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
116511    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
116512    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
116513    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
116514    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
116515    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
116516    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
116517    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
116518    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
116519    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
116520    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
116521    l_rec_acct_attrs.array_num_value(26)  := p_source_21;
116522    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
116523    l_rec_acct_attrs.array_date_value(27)  := p_source_76;
116524    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
116525    l_rec_acct_attrs.array_char_value(28)  := p_source_77;
116526    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
116527    l_rec_acct_attrs.array_date_value(29)  := p_source_78;
116528    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
116529    l_rec_acct_attrs.array_char_value(30)  := p_source_79;
116530    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
116531    l_rec_acct_attrs.array_char_value(31)  := p_source_82;
116532    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
116533    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_83);
116534    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
116535    l_rec_acct_attrs.array_char_value(33)  := p_source_54;
116536    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
116537    l_rec_acct_attrs.array_num_value(34)  := p_source_84;
116538    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
116539    l_rec_acct_attrs.array_num_value(35)  := p_source_85;
116540    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
116541    l_rec_acct_attrs.array_num_value(36)  := p_source_86;
116542    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
116543    l_rec_acct_attrs.array_num_value(37)  := p_source_87;
116547    l_rec_acct_attrs.array_num_value(39)  := p_source_89;
116544    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
116545    l_rec_acct_attrs.array_num_value(38)  := p_source_88;
116546    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
116548 
116549    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116550    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116551 
116552    ---------------------------------------------------------------------------------------------------------------
116553    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116554    ---------------------------------------------------------------------------------------------------------------
116555    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116556 
116557    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116558    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116559 
116560    IF xla_accounting_cache_pkg.GetValueChar
116561          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116562          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116563    AND l_bflow_method_code = 'PRIOR_ENTRY'
116564 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116565    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116566          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116567        )
116568    THEN
116569          xla_ae_lines_pkg.BflowUpgEntry
116570            (p_business_method_code    => l_bflow_method_code
116571            ,p_business_class_code     => l_bflow_class_code
116572            ,p_balance_type            => l_balance_type_code);
116573    ELSE
116574       NULL;
116575 XLA_AE_LINES_PKG.business_flow_validation(
116576                                 p_business_method_code     => l_bflow_method_code
116577                                ,p_business_class_code      => l_bflow_class_code
116578                                ,p_inherit_description_flag => l_inherit_desc_flag);
116579    END IF;
116580 
116581    --
116582    -- call analytical criteria
116583    --
116584    -- Inherited Analytical Criteria for business flow method of Prior Entry.
116585    --
116586    -- call description
116587    --
116588    
116589 xla_ae_lines_pkg.SetLineDescription(
116590    p_ae_header_id => l_ae_header_id
116591   ,p_description  => Description_1 (
116592      p_application_id         => p_application_id
116593    , p_ae_header_id           => l_ae_header_id 
116594 , p_source_1 => p_source_1
116595    )
116596 );
116597 
116598 
116599    --
116600    -- call ADRs
116601    -- Bug 4922099
116602    --
116603    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116604         (NVL(l_actual_upg_option, 'N') = 'O') OR
116605         (NVL(l_enc_upg_option, 'N') = 'O')
116606       )
116607    THEN
116608    NULL;
116609    --
116610    --
116611    
116612    --
116613    --
116614    END IF;
116615    --
116616    -- Bug 4922099
116617    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116618           (NVL(l_enc_upg_option, 'N') = 'O')
116619         ) AND
116620         (l_bflow_method_code = 'PRIOR_ENTRY')
116621       )
116622    THEN
116623       IF
116624       --
116625       1 = 1
116626       --
116627       THEN
116628       xla_accounting_err_pkg.build_message
116629                                     (p_appli_s_name            => 'XLA'
116630                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116631                                     ,p_token_1                 => 'LINE_NUMBER'
116632                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116633                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116634                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116635                                                                              l_component_type
116636                                                                             ,l_component_code
116637                                                                             ,l_component_type_code
116638                                                                             ,l_component_appl_id
116639                                                                             ,l_amb_context_code
116640                                                                             ,l_entity_code
116641                                                                             ,l_event_class_code
116642                                                                            )
116643                                     ,p_token_3                 => 'OWNER'
116644                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116645                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116646                                                                           ,p_lookup_code    => l_component_type_code
116647                                                                          )
116648                                     ,p_token_4                 => 'PRODUCT_NAME'
116649                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116650                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116654                                        );
116651                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116652                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116653                                     ,p_ae_header_id            =>  NULL
116655 
116656         IF (C_LEVEL_ERROR>= g_log_level) THEN
116657                  trace
116658                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116659                       ,p_level    => C_LEVEL_ERROR
116660                       ,p_module   => l_log_module);
116661         END IF;
116662       END IF;
116663    END IF;
116664    --
116665    --
116666    ------------------------------------------------------------------------------------------------
116667    -- 4219869 Business Flow
116668    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116669    -- Prior Entry.  Currently, the following code is always generated.
116670    ------------------------------------------------------------------------------------------------
116671    -- No ValidateCurrentLine for business flow method of Prior Entry
116672 
116673    ------------------------------------------------------------------------------------
116674    -- 4219869 Business Flow
116675    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116676    ------------------------------------------------------------------------------------
116677    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116678 
116679    ----------------------------------------------------------------------------------
116680    -- 4219869 Business Flow
116681    -- Update journal entry status -- Need to generate this within IF <condition>
116682    ----------------------------------------------------------------------------------
116683    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116684          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116685          ,p_balance_type_code => l_balance_type_code
116686          );
116687 
116688    -------------------------------------------------------------------------------------------
116689    -- 4262811 - Generate the Accrual Reversal lines
116690    -------------------------------------------------------------------------------------------
116691    BEGIN
116692       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116693                               (g_array_event(p_event_id).array_value_num('header_index'));
116694       IF l_acc_rev_flag IS NULL THEN
116695          l_acc_rev_flag := 'N';
116696       END IF;
116697    EXCEPTION
116698       WHEN OTHERS THEN
116699          l_acc_rev_flag := 'N';
116700    END;
116701    --
116702    IF (l_acc_rev_flag = 'Y') THEN
116703 
116704        -- 4645092  ------------------------------------------------------------------------------
116705        -- To allow MPA report to determine if it should generate report process
116706        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116707        ------------------------------------------------------------------------------------------
116708 
116709        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116710        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116711    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116712    -- call ADRs
116713    -- Bug 4922099
116714    --
116715    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116716         (NVL(l_actual_upg_option, 'N') = 'O') OR
116717         (NVL(l_enc_upg_option, 'N') = 'O')
116718       )
116719    THEN
116720    NULL;
116721    --
116722    --
116723    
116724    --
116725    --
116726    END IF;
116727 
116728        --
116729        -- Update the line information that should be overwritten
116730        --
116731        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116732                                          p_header_num   => 1);
116733        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116734 
116735        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116736 
116737        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116738           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116739        END IF;
116740 
116741       --
116742       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116743       --
116744       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116745           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116746       ELSE
116747           ---------------------------------------------------------------------------------------------------
116748           -- 4262811a Switch Sign
116749           ---------------------------------------------------------------------------------------------------
116750           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116751           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116752                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116753           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116757                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116754                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116755           -- 5132302
116756           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116758 
116759       END IF;
116760 
116761       -- 4955764
116762       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116763       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116764 
116765 
116766       XLA_AE_LINES_PKG.ValidateCurrentLine;
116767       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116768 
116769       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116770                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116771                ,p_balance_type_code => l_balance_type_code);
116772 
116773    END IF;
116774 
116775    -----------------------------------------------------------------------------------------
116776    -- 4262811 Multiperiod Accounting
116777    -----------------------------------------------------------------------------------------
116778      -- No MPA option is assigned.
116779 
116780 
116781 END IF;
116782 END IF;
116783 --
116784 
116785 --
116786 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116787    trace
116788       (p_msg      => 'END of AcctLineType_190'
116789       ,p_level    => C_LEVEL_PROCEDURE
116790       ,p_module   => l_log_module);
116791 END IF;
116792 --
116793 EXCEPTION
116794   WHEN xla_exceptions_pkg.application_exception THEN
116795       RAISE;
116796   WHEN OTHERS THEN
116797        xla_exceptions_pkg.raise_message
116798            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_190');
116799 END AcctLineType_190;
116800 --
116801 
116802 ---------------------------------------
116803 --
116804 -- PRIVATE FUNCTION
116805 --         AcctLineType_191
116806 --
116807 ---------------------------------------
116808 PROCEDURE AcctLineType_191 (
116809   p_application_id        IN NUMBER
116810  ,p_event_id              IN NUMBER
116811  ,p_calculate_acctd_flag  IN VARCHAR2
116812  ,p_calculate_g_l_flag    IN VARCHAR2
116813  ,p_actual_flag           IN OUT VARCHAR2
116814  ,p_balance_type_code     OUT VARCHAR2
116815  ,p_gain_or_loss_ref      OUT VARCHAR2
116816  
116817 --Invoice Distribution Description
116818  , p_source_1            IN VARCHAR2
116819 --Invoice Distribution Ledger Amount
116820  , p_source_21            IN NUMBER
116821 --Invoice Distribution Type
116822  , p_source_33            IN VARCHAR2
116823  , p_source_33_meaning    IN VARCHAR2
116824 --Self-Assessed Tax Account
116825  , p_source_49            IN NUMBER
116826 --Accounting Reversal Indicator
116827  , p_source_52            IN VARCHAR2
116828 --Distribution Link Type
116829  , p_source_54            IN VARCHAR2
116830 --Allocation to Main Distribution Identifier
116831  , p_source_56            IN NUMBER
116832 --Invoice Identifier
116833  , p_source_57            IN NUMBER
116834 --Invoice Distribution Identifier
116835  , p_source_63            IN NUMBER
116836 --Payables Encumbrance Upgrade Credit Account
116837  , p_source_64            IN NUMBER
116838 --Payables Encumbrance Upgrade Credit Amount
116839  , p_source_65            IN NUMBER
116840 --Invoice Currency Code
116841  , p_source_66            IN VARCHAR2
116842 --Payables Encumbrance Upgrade Credit Base Amount
116843  , p_source_67            IN NUMBER
116844 --Payables Encumbrance Upgrade Debit Account
116845  , p_source_68            IN NUMBER
116846 --Payables Encumbrance Upgrade Debit Amount
116847  , p_source_69            IN NUMBER
116848 --Payables Encumbrance Upgrade Debit Base Amount
116849  , p_source_70            IN NUMBER
116850 --Payables Encumbrance Upgrade Option
116851  , p_source_71            IN VARCHAR2
116852 --Invoice Distribution Amount
116853  , p_source_72            IN NUMBER
116854 --Deferred Accounting End Date
116855  , p_source_76            IN DATE
116856 --Deferred Accounting Option
116857  , p_source_77            IN VARCHAR2
116858 --Deferred Accounting Start Date
116859  , p_source_78            IN DATE
116860 --Override Accounted Amount Indicator
116861  , p_source_79            IN VARCHAR2
116862  , p_source_79_meaning    IN VARCHAR2
116863 --Invoice Supplier Identifier
116864  , p_source_80            IN NUMBER
116865 --Invoice Supplier Site Identifier
116866  , p_source_81            IN NUMBER
116867 --Third Party Type
116868  , p_source_82            IN VARCHAR2
116869 --Parent Reversal Identifier
116870  , p_source_83            IN NUMBER
116871 --Invoice Distribution Statistical Amount
116872  , p_source_84            IN NUMBER
116873 --Invoice Distribution Tax Line Identifier
116874  , p_source_85            IN NUMBER
116875 --Invoice Distribution Tax Distribution Identifier from Tax
116876  , p_source_86            IN NUMBER
116877 --Invoice Distribution Summary Tax Line Identifier
116878  , p_source_87            IN NUMBER
116879 --Payables Upgrade Credit Encumbrance Type Identifier
116880  , p_source_88            IN NUMBER
116881 --Payables Upgrade Debit Encumbrance Type Identifier
116882  , p_source_89            IN NUMBER
116883 --Business Flow Accounts Payable Application Identifier
116884  , p_source_90            IN NUMBER
116888  , p_source_92            IN VARCHAR2
116885 --Business Flow Invoice Distribution Type
116886  , p_source_91            IN VARCHAR2
116887 --Business Flow Invoice Entity Code
116889 --Business Flow Invoice Distribution Identifier
116890  , p_source_93            IN NUMBER
116891 --Business Flow Invoice Identifier
116892  , p_source_94            IN NUMBER
116893 --Accrue on Receipt Option
116894  , p_source_95            IN VARCHAR2
116895  , p_source_95_meaning    IN VARCHAR2
116896 --Self-Assessed Tax Flag
116897  , p_source_135            IN VARCHAR2
116898  , p_source_135_meaning    IN VARCHAR2
116899 --Invoice Exchange Date
116900  , p_source_136            IN DATE
116901 --Invoice Exchange Rate
116902  , p_source_137            IN NUMBER
116903 --Invoice Exchange Rate Type
116904  , p_source_138            IN VARCHAR2
116905 )
116906 IS
116907 
116908 l_component_type              VARCHAR2(80);
116909 l_component_code              VARCHAR2(30);
116910 l_component_type_code         VARCHAR2(1);
116911 l_component_appl_id           INTEGER;
116912 l_amb_context_code            VARCHAR2(30);
116913 l_entity_code                 VARCHAR2(30);
116914 l_event_class_code            VARCHAR2(30);
116915 l_ae_header_id                NUMBER;
116916 l_event_type_code             VARCHAR2(30);
116917 l_line_definition_code        VARCHAR2(30);
116918 l_line_definition_owner_code  VARCHAR2(1);
116919 --
116920 -- adr variables
116921 l_segment                     VARCHAR2(30);
116922 l_ccid                        NUMBER;
116923 l_adr_transaction_coa_id      NUMBER;
116924 l_adr_accounting_coa_id       NUMBER;
116925 l_adr_flexfield_segment_code  VARCHAR2(30);
116926 l_adr_flex_value_set_id       NUMBER;
116927 l_adr_value_type_code         VARCHAR2(30);
116928 l_adr_value_combination_id    NUMBER;
116929 l_adr_value_segment_code      VARCHAR2(30);
116930 
116931 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116932 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116933 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116934 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116935 
116936 -- 4262811 Variables ------------------------------------------------------------------------------------------
116937 l_entered_amt_idx             NUMBER;
116938 l_accted_amt_idx              NUMBER;
116939 l_acc_rev_flag                VARCHAR2(1);
116940 l_accrual_line_num            NUMBER;
116941 l_tmp_amt                     NUMBER;
116942 l_acc_rev_natural_side_code   VARCHAR2(1);
116943 
116944 l_num_entries                 NUMBER;
116945 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116946 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116947 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116948 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116949 l_recog_line_1                NUMBER;
116950 l_recog_line_2                NUMBER;
116951 
116952 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116953 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116954 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116955 
116956 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116957 
116958 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116959 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116960 
116961 ---------------------------------------------------------------------------------------------------------------
116962 
116963 
116964 --
116965 -- bulk performance
116966 --
116967 l_balance_type_code           VARCHAR2(1);
116968 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116969 l_log_module                  VARCHAR2(240);
116970 
116971 --
116972 -- Upgrade strategy
116973 --
116974 l_actual_upg_option           VARCHAR2(1);
116975 l_enc_upg_option           VARCHAR2(1);
116976 
116977 --
116978 BEGIN
116979 --
116980 IF g_log_enabled THEN
116981       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
116982 END IF;
116983 --
116984 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116985 
116986       trace
116987          (p_msg      => 'BEGIN of AcctLineType_191'
116988          ,p_level    => C_LEVEL_PROCEDURE
116989          ,p_module   => l_log_module);
116990 
116991 END IF;
116992 --
116993 l_component_type             := 'AMB_JLT';
116994 l_component_code             := 'AP_SELF_ASSESSED_NONREC_PREPAY';
116995 l_component_type_code        := 'S';
116996 l_component_appl_id          :=  200;
116997 l_amb_context_code           := 'DEFAULT';
116998 l_entity_code                := 'AP_INVOICES';
116999 l_event_class_code           := 'PREPAYMENTS';
117000 l_event_type_code            := 'PREPAYMENTS_ALL';
117001 l_line_definition_owner_code := 'S';
117002 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
117003 --
117004 l_balance_type_code          := 'A';
117005 l_segment                     := NULL;
117006 l_ccid                        := NULL;
117007 l_adr_transaction_coa_id      := NULL;
117008 l_adr_accounting_coa_id       := NULL;
117009 l_adr_flexfield_segment_code  := NULL;
117010 l_adr_flex_value_set_id       := NULL;
117011 l_adr_value_type_code         := NULL;
117012 l_adr_value_combination_id    := NULL;
117013 l_adr_value_segment_code      := NULL;
117014 
117015 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117019 
117016 l_bflow_class_code           := '';    -- 4219869 Business Flow
117017 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117018 l_budgetary_control_flag     := 'N';
117020 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117021 l_bflow_applied_to_amt       := NULL; -- 5132302
117022 l_entered_amt_idx            := NULL;          -- 4262811
117023 l_accted_amt_idx             := NULL;          -- 4262811
117024 l_acc_rev_flag               := NULL;          -- 4262811
117025 l_accrual_line_num           := NULL;          -- 4262811
117026 l_tmp_amt                    := NULL;          -- 4262811
117027 --
117028  
117029 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117030     l_balance_type_code <> 'B' THEN
117031 IF (NVL(p_source_33,'
117032 ') =  'NONREC_TAX' OR 
117033 NVL(p_source_33,'
117034 ') =  'TERV' OR 
117035 NVL(p_source_33,'
117036 ') =  'TIPV' OR 
117037 NVL(p_source_33,'
117038 ') =  'TRV') AND 
117039 NVL(p_source_95,'
117040 ') <>  'Y' AND 
117041 NVL(p_source_135,'
117042 ') =  'Y'
117043  THEN 
117044 
117045    --
117046    XLA_AE_LINES_PKG.SetNewLine;
117047 
117048    p_balance_type_code          := l_balance_type_code;
117049    -- set the flag so later we will know whether the gain loss line needs to be created
117050    
117051    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117052      p_actual_flag :='A';
117053    END IF;
117054 
117055    --
117056    -- bulk performance
117057    --
117058    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117059                                       p_header_num   => 0); -- 4262811
117060    --
117061    -- set accounting line options
117062    --
117063    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117064            p_natural_side_code          => 'D'
117065          , p_gain_or_loss_flag          => 'N'
117066          , p_gl_transfer_mode_code      => 'S'
117067          , p_acct_entry_type_code       => 'A'
117068          , p_switch_side_flag           => 'Y'
117069          , p_merge_duplicate_code       => 'A'
117070          );
117071    --
117072    l_acc_rev_natural_side_code := 'C';  -- 4262811
117073    -- 
117074    --
117075    -- set accounting line type info
117076    --
117077    xla_ae_lines_pkg.SetAcctLineType
117078       (p_component_type             => l_component_type
117079       ,p_event_type_code            => l_event_type_code
117080       ,p_line_definition_owner_code => l_line_definition_owner_code
117081       ,p_line_definition_code       => l_line_definition_code
117082       ,p_accounting_line_code       => l_component_code
117083       ,p_accounting_line_type_code  => l_component_type_code
117084       ,p_accounting_line_appl_id    => l_component_appl_id
117085       ,p_amb_context_code           => l_amb_context_code
117086       ,p_entity_code                => l_entity_code
117087       ,p_event_class_code           => l_event_class_code);
117088    --
117089    -- set accounting class
117090    --
117091    xla_ae_lines_pkg.SetAcctClass(
117092            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
117093          , p_ae_header_id           => l_ae_header_id
117094          );
117095 
117096    --
117097    -- set rounding class
117098    --
117099    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117100                       'SELF_ASSESSED_TAX';
117101 
117102    --
117103    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117104    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117105    --
117106    -- bulk performance
117107    --
117108    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117109 
117110    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117111       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117112 
117113    -- 4955764
117114    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117115       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117116 
117117    -- 4458381 Public Sector Enh
117118    
117119    --
117120    -- set accounting attributes for the line type
117121    --
117122    l_entered_amt_idx := 23;
117123    l_accted_amt_idx  := 28;
117124    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
117125    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117126    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
117127    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
117128    l_rec_acct_attrs.array_num_value(2)  := 
117129 xla_ae_sources_pkg.GetSystemSourceNum(
117130    p_source_code           => 'XLA_EVENT_APPL_ID'
117131  , p_source_type_code      => 'Y'
117132  , p_source_application_id =>  602
117133 );
117134    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
117135    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
117136    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
117137    l_rec_acct_attrs.array_char_value(4)  := 
117138 xla_ae_sources_pkg.GetSystemSourceChar(
117139    p_source_code           => 'XLA_ENTITY_CODE'
117140  , p_source_type_code      => 'Y'
117141  , p_source_application_id =>  602
117142 );
117146    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
117143    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
117144    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
117145    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
117147    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
117148    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
117149    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117150    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
117151    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
117152    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
117153    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
117154    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
117155    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117156    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
117157    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
117158    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
117159    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
117160    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
117161    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
117162    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
117163    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
117164    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
117165    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
117166    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
117167    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
117168    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
117169    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
117170    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
117171    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
117172    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
117173    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
117174    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
117175    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
117176    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
117177    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
117178    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
117179    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
117180    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
117181    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
117182    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
117183    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
117184    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
117185    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
117186    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
117187    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
117188    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
117189    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
117190    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
117191    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
117192    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
117193    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
117194    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
117195    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
117196    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
117197    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
117198    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
117199    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
117200    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
117201    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
117202    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
117203    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
117204    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
117205    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
117206    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
117207    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
117208    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
117209    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
117210    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
117211    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
117212    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
117213    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
117214    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
117215    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
117216    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
117217    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
117218    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
117219    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
117220    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
117221 
117222    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117223    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117224 
117225    ---------------------------------------------------------------------------------------------------------------
117226    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117230    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117227    ---------------------------------------------------------------------------------------------------------------
117228    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117229 
117231    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117232 
117233    IF xla_accounting_cache_pkg.GetValueChar
117234          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117235          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117236    AND l_bflow_method_code = 'PRIOR_ENTRY'
117237 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117238    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117239          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117240        )
117241    THEN
117242          xla_ae_lines_pkg.BflowUpgEntry
117243            (p_business_method_code    => l_bflow_method_code
117244            ,p_business_class_code     => l_bflow_class_code
117245            ,p_balance_type            => l_balance_type_code);
117246    ELSE
117247       NULL;
117248 -- No business flow processing for business flow method of NONE.
117249    END IF;
117250 
117251    --
117252    -- call analytical criteria
117253    --
117254    
117255    --
117256    -- call description
117257    --
117258    
117259 xla_ae_lines_pkg.SetLineDescription(
117260    p_ae_header_id => l_ae_header_id
117261   ,p_description  => Description_1 (
117262      p_application_id         => p_application_id
117263    , p_ae_header_id           => l_ae_header_id 
117264 , p_source_1 => p_source_1
117265    )
117266 );
117267 
117268 
117269    --
117270    -- call ADRs
117271    -- Bug 4922099
117272    --
117273    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117274         (NVL(l_actual_upg_option, 'N') = 'O') OR
117275         (NVL(l_enc_upg_option, 'N') = 'O')
117276       )
117277    THEN
117278    NULL;
117279    --
117280    --
117281    
117282   l_ccid := AcctDerRule_41(
117283            p_application_id           => p_application_id
117284          , p_ae_header_id             => l_ae_header_id 
117285 , p_source_49 => p_source_49
117286          , x_transaction_coa_id       => l_adr_transaction_coa_id
117287          , x_accounting_coa_id        => l_adr_accounting_coa_id
117288          , x_value_type_code          => l_adr_value_type_code
117289          , p_side                     => 'NA'
117290    );
117291 
117292    xla_ae_lines_pkg.set_ccid(
117293     p_code_combination_id          => l_ccid
117294   , p_value_type_code              => l_adr_value_type_code
117295   , p_transaction_coa_id           => l_adr_transaction_coa_id
117296   , p_accounting_coa_id            => l_adr_accounting_coa_id
117297   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
117298   , p_adr_type_code                => 'S'
117299   , p_component_type               => l_component_type
117300   , p_component_code               => l_component_code
117301   , p_component_type_code          => l_component_type_code
117302   , p_component_appl_id            => l_component_appl_id
117303   , p_amb_context_code             => l_amb_context_code
117304   , p_side                         => 'NA'
117305   );
117306 
117307 
117308    --
117309    --
117310    END IF;
117311    --
117312    -- Bug 4922099
117313    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117314           (NVL(l_enc_upg_option, 'N') = 'O')
117315         ) AND
117316         (l_bflow_method_code = 'PRIOR_ENTRY')
117317       )
117318    THEN
117319       IF
117320       --
117321       1 = 2
117322       --
117323       THEN
117324       xla_accounting_err_pkg.build_message
117325                                     (p_appli_s_name            => 'XLA'
117326                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117327                                     ,p_token_1                 => 'LINE_NUMBER'
117328                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117329                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117330                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117331                                                                              l_component_type
117332                                                                             ,l_component_code
117333                                                                             ,l_component_type_code
117334                                                                             ,l_component_appl_id
117335                                                                             ,l_amb_context_code
117336                                                                             ,l_entity_code
117337                                                                             ,l_event_class_code
117338                                                                            )
117339                                     ,p_token_3                 => 'OWNER'
117340                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117341                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117345                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117342                                                                           ,p_lookup_code    => l_component_type_code
117343                                                                          )
117344                                     ,p_token_4                 => 'PRODUCT_NAME'
117346                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117347                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117348                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117349                                     ,p_ae_header_id            =>  NULL
117350                                        );
117351 
117352         IF (C_LEVEL_ERROR>= g_log_level) THEN
117353                  trace
117354                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117355                       ,p_level    => C_LEVEL_ERROR
117356                       ,p_module   => l_log_module);
117357         END IF;
117358       END IF;
117359    END IF;
117360    --
117361    --
117362    ------------------------------------------------------------------------------------------------
117363    -- 4219869 Business Flow
117364    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117365    -- Prior Entry.  Currently, the following code is always generated.
117366    ------------------------------------------------------------------------------------------------
117367    XLA_AE_LINES_PKG.ValidateCurrentLine;
117368 
117369    ------------------------------------------------------------------------------------
117370    -- 4219869 Business Flow
117371    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117372    ------------------------------------------------------------------------------------
117373    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117374 
117375    ----------------------------------------------------------------------------------
117376    -- 4219869 Business Flow
117377    -- Update journal entry status -- Need to generate this within IF <condition>
117378    ----------------------------------------------------------------------------------
117379    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117380          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117381          ,p_balance_type_code => l_balance_type_code
117382          );
117383 
117384    -------------------------------------------------------------------------------------------
117385    -- 4262811 - Generate the Accrual Reversal lines
117386    -------------------------------------------------------------------------------------------
117387    BEGIN
117388       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117389                               (g_array_event(p_event_id).array_value_num('header_index'));
117390       IF l_acc_rev_flag IS NULL THEN
117391          l_acc_rev_flag := 'N';
117392       END IF;
117393    EXCEPTION
117394       WHEN OTHERS THEN
117395          l_acc_rev_flag := 'N';
117396    END;
117397    --
117398    IF (l_acc_rev_flag = 'Y') THEN
117399 
117400        -- 4645092  ------------------------------------------------------------------------------
117401        -- To allow MPA report to determine if it should generate report process
117402        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117403        ------------------------------------------------------------------------------------------
117404 
117405        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117406        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117407    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117408    -- call ADRs
117409    -- Bug 4922099
117410    --
117411    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117412         (NVL(l_actual_upg_option, 'N') = 'O') OR
117413         (NVL(l_enc_upg_option, 'N') = 'O')
117414       )
117415    THEN
117416    NULL;
117417    --
117418    --
117419    
117420   l_ccid := AcctDerRule_41(
117421            p_application_id           => p_application_id
117422          , p_ae_header_id             => l_ae_header_id 
117423 , p_source_49 => p_source_49
117424          , x_transaction_coa_id       => l_adr_transaction_coa_id
117425          , x_accounting_coa_id        => l_adr_accounting_coa_id
117426          , x_value_type_code          => l_adr_value_type_code
117427          , p_side                     => 'NA'
117428    );
117429 
117430    xla_ae_lines_pkg.set_ccid(
117431     p_code_combination_id          => l_ccid
117432   , p_value_type_code              => l_adr_value_type_code
117433   , p_transaction_coa_id           => l_adr_transaction_coa_id
117434   , p_accounting_coa_id            => l_adr_accounting_coa_id
117435   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
117436   , p_adr_type_code                => 'S'
117437   , p_component_type               => l_component_type
117438   , p_component_code               => l_component_code
117439   , p_component_type_code          => l_component_type_code
117440   , p_component_appl_id            => l_component_appl_id
117441   , p_amb_context_code             => l_amb_context_code
117442   , p_side                         => 'NA'
117443   );
117444 
117445 
117446    --
117447    --
117448    END IF;
117449 
117453        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117450        --
117451        -- Update the line information that should be overwritten
117452        --
117454                                          p_header_num   => 1);
117455        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117456 
117457        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117458 
117459        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117460           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117461        END IF;
117462 
117463       --
117464       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117465       --
117466       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117467           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117468       ELSE
117469           ---------------------------------------------------------------------------------------------------
117470           -- 4262811a Switch Sign
117471           ---------------------------------------------------------------------------------------------------
117472           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117473           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117474                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117475           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117476                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117477           -- 5132302
117478           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117479                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117480 
117481       END IF;
117482 
117483       -- 4955764
117484       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117485       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117486 
117487 
117488       XLA_AE_LINES_PKG.ValidateCurrentLine;
117489       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117490 
117491       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117492                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117493                ,p_balance_type_code => l_balance_type_code);
117494 
117495    END IF;
117496 
117497    -----------------------------------------------------------------------------------------
117498    -- 4262811 Multiperiod Accounting
117499    -----------------------------------------------------------------------------------------
117500      -- No MPA option is assigned.
117501 
117502 
117503 END IF;
117504 END IF;
117505 --
117506 
117507 --
117508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117509    trace
117510       (p_msg      => 'END of AcctLineType_191'
117511       ,p_level    => C_LEVEL_PROCEDURE
117512       ,p_module   => l_log_module);
117513 END IF;
117514 --
117515 EXCEPTION
117516   WHEN xla_exceptions_pkg.application_exception THEN
117517       RAISE;
117518   WHEN OTHERS THEN
117519        xla_exceptions_pkg.raise_message
117520            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_191');
117521 END AcctLineType_191;
117522 --
117523 
117524 ---------------------------------------
117525 --
117526 -- PRIVATE FUNCTION
117527 --         AcctLineType_192
117528 --
117529 ---------------------------------------
117530 PROCEDURE AcctLineType_192 (
117531   p_application_id        IN NUMBER
117532  ,p_event_id              IN NUMBER
117533  ,p_calculate_acctd_flag  IN VARCHAR2
117534  ,p_calculate_g_l_flag    IN VARCHAR2
117535  ,p_actual_flag           IN OUT VARCHAR2
117536  ,p_balance_type_code     OUT VARCHAR2
117537  ,p_gain_or_loss_ref      OUT VARCHAR2
117538  
117539 --Invoice Distribution Description
117540  , p_source_1            IN VARCHAR2
117541 --Invoice Distribution Ledger Amount
117542  , p_source_21            IN NUMBER
117543 --Invoice Distribution Type
117544  , p_source_33            IN VARCHAR2
117545  , p_source_33_meaning    IN VARCHAR2
117546 --Self-Assessed Tax Account
117547  , p_source_49            IN NUMBER
117548 --Accounting Reversal Indicator
117549  , p_source_52            IN VARCHAR2
117550 --Distribution Link Type
117551  , p_source_54            IN VARCHAR2
117552 --Allocation to Main Distribution Identifier
117553  , p_source_56            IN NUMBER
117554 --Invoice Identifier
117555  , p_source_57            IN NUMBER
117556 --Invoice Distribution Identifier
117557  , p_source_63            IN NUMBER
117558 --Payables Encumbrance Upgrade Credit Account
117559  , p_source_64            IN NUMBER
117560 --Payables Encumbrance Upgrade Credit Amount
117561  , p_source_65            IN NUMBER
117562 --Invoice Currency Code
117563  , p_source_66            IN VARCHAR2
117564 --Payables Encumbrance Upgrade Credit Base Amount
117565  , p_source_67            IN NUMBER
117566 --Payables Encumbrance Upgrade Debit Account
117567  , p_source_68            IN NUMBER
117568 --Payables Encumbrance Upgrade Debit Amount
117569  , p_source_69            IN NUMBER
117570 --Payables Encumbrance Upgrade Debit Base Amount
117571  , p_source_70            IN NUMBER
117575  , p_source_72            IN NUMBER
117572 --Payables Encumbrance Upgrade Option
117573  , p_source_71            IN VARCHAR2
117574 --Invoice Distribution Amount
117576 --Deferred Accounting End Date
117577  , p_source_76            IN DATE
117578 --Deferred Accounting Option
117579  , p_source_77            IN VARCHAR2
117580 --Deferred Accounting Start Date
117581  , p_source_78            IN DATE
117582 --Override Accounted Amount Indicator
117583  , p_source_79            IN VARCHAR2
117584  , p_source_79_meaning    IN VARCHAR2
117585 --Invoice Supplier Identifier
117586  , p_source_80            IN NUMBER
117587 --Invoice Supplier Site Identifier
117588  , p_source_81            IN NUMBER
117589 --Third Party Type
117590  , p_source_82            IN VARCHAR2
117591 --Parent Reversal Identifier
117592  , p_source_83            IN NUMBER
117593 --Invoice Distribution Statistical Amount
117594  , p_source_84            IN NUMBER
117595 --Invoice Distribution Tax Line Identifier
117596  , p_source_85            IN NUMBER
117597 --Invoice Distribution Tax Distribution Identifier from Tax
117598  , p_source_86            IN NUMBER
117599 --Invoice Distribution Summary Tax Line Identifier
117600  , p_source_87            IN NUMBER
117601 --Payables Upgrade Credit Encumbrance Type Identifier
117602  , p_source_88            IN NUMBER
117603 --Payables Upgrade Debit Encumbrance Type Identifier
117604  , p_source_89            IN NUMBER
117605 --Business Flow Accounts Payable Application Identifier
117606  , p_source_90            IN NUMBER
117607 --Business Flow Invoice Distribution Type
117608  , p_source_91            IN VARCHAR2
117609 --Business Flow Invoice Entity Code
117610  , p_source_92            IN VARCHAR2
117611 --Business Flow Invoice Distribution Identifier
117612  , p_source_93            IN NUMBER
117613 --Business Flow Invoice Identifier
117614  , p_source_94            IN NUMBER
117615 --Accrue on Receipt Option
117616  , p_source_95            IN VARCHAR2
117617  , p_source_95_meaning    IN VARCHAR2
117618 --Self-Assessed Tax Flag
117619  , p_source_135            IN VARCHAR2
117620  , p_source_135_meaning    IN VARCHAR2
117621 --Invoice Exchange Date
117622  , p_source_136            IN DATE
117623 --Invoice Exchange Rate
117624  , p_source_137            IN NUMBER
117625 --Invoice Exchange Rate Type
117626  , p_source_138            IN VARCHAR2
117627 )
117628 IS
117629 
117630 l_component_type              VARCHAR2(80);
117631 l_component_code              VARCHAR2(30);
117632 l_component_type_code         VARCHAR2(1);
117633 l_component_appl_id           INTEGER;
117634 l_amb_context_code            VARCHAR2(30);
117635 l_entity_code                 VARCHAR2(30);
117636 l_event_class_code            VARCHAR2(30);
117637 l_ae_header_id                NUMBER;
117638 l_event_type_code             VARCHAR2(30);
117639 l_line_definition_code        VARCHAR2(30);
117640 l_line_definition_owner_code  VARCHAR2(1);
117641 --
117642 -- adr variables
117643 l_segment                     VARCHAR2(30);
117644 l_ccid                        NUMBER;
117645 l_adr_transaction_coa_id      NUMBER;
117646 l_adr_accounting_coa_id       NUMBER;
117647 l_adr_flexfield_segment_code  VARCHAR2(30);
117648 l_adr_flex_value_set_id       NUMBER;
117649 l_adr_value_type_code         VARCHAR2(30);
117650 l_adr_value_combination_id    NUMBER;
117651 l_adr_value_segment_code      VARCHAR2(30);
117652 
117653 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117654 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117655 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117656 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117657 
117658 -- 4262811 Variables ------------------------------------------------------------------------------------------
117659 l_entered_amt_idx             NUMBER;
117660 l_accted_amt_idx              NUMBER;
117661 l_acc_rev_flag                VARCHAR2(1);
117662 l_accrual_line_num            NUMBER;
117663 l_tmp_amt                     NUMBER;
117664 l_acc_rev_natural_side_code   VARCHAR2(1);
117665 
117666 l_num_entries                 NUMBER;
117667 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117668 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117669 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117670 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117671 l_recog_line_1                NUMBER;
117672 l_recog_line_2                NUMBER;
117673 
117674 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117675 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117676 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117677 
117678 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117679 
117680 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117681 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117682 
117683 ---------------------------------------------------------------------------------------------------------------
117684 
117685 
117686 --
117687 -- bulk performance
117688 --
117689 l_balance_type_code           VARCHAR2(1);
117690 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117691 l_log_module                  VARCHAR2(240);
117692 
117693 --
117694 -- Upgrade strategy
117695 --
117696 l_actual_upg_option           VARCHAR2(1);
117697 l_enc_upg_option           VARCHAR2(1);
117698 
117699 --
117703       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
117700 BEGIN
117701 --
117702 IF g_log_enabled THEN
117704 END IF;
117705 --
117706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117707 
117708       trace
117709          (p_msg      => 'BEGIN of AcctLineType_192'
117710          ,p_level    => C_LEVEL_PROCEDURE
117711          ,p_module   => l_log_module);
117712 
117713 END IF;
117714 --
117715 l_component_type             := 'AMB_JLT';
117716 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_CM';
117717 l_component_type_code        := 'S';
117718 l_component_appl_id          :=  200;
117719 l_amb_context_code           := 'DEFAULT';
117720 l_entity_code                := 'AP_INVOICES';
117721 l_event_class_code           := 'CREDIT MEMOS';
117722 l_event_type_code            := 'CREDIT MEMOS_ALL';
117723 l_line_definition_owner_code := 'S';
117724 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
117725 --
117726 l_balance_type_code          := 'A';
117727 l_segment                     := NULL;
117728 l_ccid                        := NULL;
117729 l_adr_transaction_coa_id      := NULL;
117730 l_adr_accounting_coa_id       := NULL;
117731 l_adr_flexfield_segment_code  := NULL;
117732 l_adr_flex_value_set_id       := NULL;
117733 l_adr_value_type_code         := NULL;
117734 l_adr_value_combination_id    := NULL;
117735 l_adr_value_segment_code      := NULL;
117736 
117737 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117738 l_bflow_class_code           := '';    -- 4219869 Business Flow
117739 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117740 l_budgetary_control_flag     := 'N';
117741 
117742 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117743 l_bflow_applied_to_amt       := NULL; -- 5132302
117744 l_entered_amt_idx            := NULL;          -- 4262811
117745 l_accted_amt_idx             := NULL;          -- 4262811
117746 l_acc_rev_flag               := NULL;          -- 4262811
117747 l_accrual_line_num           := NULL;          -- 4262811
117748 l_tmp_amt                    := NULL;          -- 4262811
117749 --
117750  
117751 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117752     l_balance_type_code <> 'B' THEN
117753 IF (NVL(p_source_33,'
117754 ') =  'NONREC_TAX' OR 
117755 NVL(p_source_33,'
117756 ') =  'TERV' OR 
117757 NVL(p_source_33,'
117758 ') =  'TIPV' OR 
117759 NVL(p_source_33,'
117760 ') =  'TRV') AND 
117761 NVL(p_source_95,'
117762 ') <>  'Y' AND 
117763 NVL(p_source_135,'
117764 ') =  'Y'
117765  THEN 
117766 
117767    --
117768    XLA_AE_LINES_PKG.SetNewLine;
117769 
117770    p_balance_type_code          := l_balance_type_code;
117771    -- set the flag so later we will know whether the gain loss line needs to be created
117772    
117773    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117774      p_actual_flag :='A';
117775    END IF;
117776 
117777    --
117778    -- bulk performance
117779    --
117780    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117781                                       p_header_num   => 0); -- 4262811
117782    --
117783    -- set accounting line options
117784    --
117785    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117786            p_natural_side_code          => 'D'
117787          , p_gain_or_loss_flag          => 'N'
117788          , p_gl_transfer_mode_code      => 'S'
117789          , p_acct_entry_type_code       => 'A'
117790          , p_switch_side_flag           => 'Y'
117791          , p_merge_duplicate_code       => 'A'
117792          );
117793    --
117794    l_acc_rev_natural_side_code := 'C';  -- 4262811
117795    -- 
117796    --
117797    -- set accounting line type info
117798    --
117799    xla_ae_lines_pkg.SetAcctLineType
117800       (p_component_type             => l_component_type
117801       ,p_event_type_code            => l_event_type_code
117802       ,p_line_definition_owner_code => l_line_definition_owner_code
117803       ,p_line_definition_code       => l_line_definition_code
117804       ,p_accounting_line_code       => l_component_code
117805       ,p_accounting_line_type_code  => l_component_type_code
117806       ,p_accounting_line_appl_id    => l_component_appl_id
117807       ,p_amb_context_code           => l_amb_context_code
117808       ,p_entity_code                => l_entity_code
117809       ,p_event_class_code           => l_event_class_code);
117810    --
117811    -- set accounting class
117812    --
117813    xla_ae_lines_pkg.SetAcctClass(
117814            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
117815          , p_ae_header_id           => l_ae_header_id
117816          );
117817 
117818    --
117819    -- set rounding class
117820    --
117821    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117822                       'SELF_ASSESSED_TAX';
117823 
117824    --
117825    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117826    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117827    --
117828    -- bulk performance
117829    --
117830    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117831 
117832    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117833       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117834 
117838 
117835    -- 4955764
117836    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117837       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117839    -- 4458381 Public Sector Enh
117840    
117841    --
117842    -- set accounting attributes for the line type
117843    --
117844    l_entered_amt_idx := 23;
117845    l_accted_amt_idx  := 28;
117846    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
117847    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117848    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
117849    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
117850    l_rec_acct_attrs.array_num_value(2)  := 
117851 xla_ae_sources_pkg.GetSystemSourceNum(
117852    p_source_code           => 'XLA_EVENT_APPL_ID'
117853  , p_source_type_code      => 'Y'
117854  , p_source_application_id =>  602
117855 );
117856    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
117857    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
117858    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
117859    l_rec_acct_attrs.array_char_value(4)  := 
117860 xla_ae_sources_pkg.GetSystemSourceChar(
117861    p_source_code           => 'XLA_ENTITY_CODE'
117862  , p_source_type_code      => 'Y'
117863  , p_source_application_id =>  602
117864 );
117865    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
117866    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
117867    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
117868    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
117869    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
117870    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
117871    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117872    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
117873    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
117874    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
117875    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
117876    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
117877    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117878    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
117879    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
117880    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
117881    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
117882    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
117883    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
117884    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
117885    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
117886    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
117887    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
117888    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
117889    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
117890    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
117891    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
117892    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
117893    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
117894    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
117895    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
117896    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
117897    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
117898    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
117899    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
117900    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
117901    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
117902    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
117903    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
117904    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
117905    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
117906    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
117907    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
117908    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
117909    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
117910    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
117911    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
117912    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
117913    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
117914    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
117915    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
117916    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
117917    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
117918    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
117919    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
117920    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
117921    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
117922    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
117923    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
117924    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
117925    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
117926    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
117930    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
117927    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
117928    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
117929    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
117931    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
117932    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
117933    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
117934    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
117935    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
117936    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
117937    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
117938    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
117939    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
117940    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
117941    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
117942    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
117943 
117944    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117945    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117946 
117947    ---------------------------------------------------------------------------------------------------------------
117948    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117949    ---------------------------------------------------------------------------------------------------------------
117950    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117951 
117952    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117953    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117954 
117955    IF xla_accounting_cache_pkg.GetValueChar
117956          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117957          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117958    AND l_bflow_method_code = 'PRIOR_ENTRY'
117959 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117960    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117961          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117962        )
117963    THEN
117964          xla_ae_lines_pkg.BflowUpgEntry
117965            (p_business_method_code    => l_bflow_method_code
117966            ,p_business_class_code     => l_bflow_class_code
117967            ,p_balance_type            => l_balance_type_code);
117968    ELSE
117969       NULL;
117970 -- No business flow processing for business flow method of NONE.
117971    END IF;
117972 
117973    --
117974    -- call analytical criteria
117975    --
117976    
117977    --
117978    -- call description
117979    --
117980    
117981 xla_ae_lines_pkg.SetLineDescription(
117982    p_ae_header_id => l_ae_header_id
117983   ,p_description  => Description_1 (
117984      p_application_id         => p_application_id
117985    , p_ae_header_id           => l_ae_header_id 
117986 , p_source_1 => p_source_1
117987    )
117988 );
117989 
117990 
117991    --
117992    -- call ADRs
117993    -- Bug 4922099
117994    --
117995    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117996         (NVL(l_actual_upg_option, 'N') = 'O') OR
117997         (NVL(l_enc_upg_option, 'N') = 'O')
117998       )
117999    THEN
118000    NULL;
118001    --
118002    --
118003    
118004   l_ccid := AcctDerRule_41(
118005            p_application_id           => p_application_id
118006          , p_ae_header_id             => l_ae_header_id 
118007 , p_source_49 => p_source_49
118008          , x_transaction_coa_id       => l_adr_transaction_coa_id
118009          , x_accounting_coa_id        => l_adr_accounting_coa_id
118010          , x_value_type_code          => l_adr_value_type_code
118011          , p_side                     => 'NA'
118012    );
118013 
118014    xla_ae_lines_pkg.set_ccid(
118015     p_code_combination_id          => l_ccid
118016   , p_value_type_code              => l_adr_value_type_code
118017   , p_transaction_coa_id           => l_adr_transaction_coa_id
118018   , p_accounting_coa_id            => l_adr_accounting_coa_id
118019   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118020   , p_adr_type_code                => 'S'
118021   , p_component_type               => l_component_type
118022   , p_component_code               => l_component_code
118023   , p_component_type_code          => l_component_type_code
118024   , p_component_appl_id            => l_component_appl_id
118025   , p_amb_context_code             => l_amb_context_code
118026   , p_side                         => 'NA'
118027   );
118028 
118029 
118030    --
118031    --
118032    END IF;
118033    --
118034    -- Bug 4922099
118035    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118036           (NVL(l_enc_upg_option, 'N') = 'O')
118037         ) AND
118038         (l_bflow_method_code = 'PRIOR_ENTRY')
118039       )
118040    THEN
118041       IF
118042       --
118043       1 = 2
118044       --
118045       THEN
118046       xla_accounting_err_pkg.build_message
118047                                     (p_appli_s_name            => 'XLA'
118051                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118048                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118049                                     ,p_token_1                 => 'LINE_NUMBER'
118050                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118052                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118053                                                                              l_component_type
118054                                                                             ,l_component_code
118055                                                                             ,l_component_type_code
118056                                                                             ,l_component_appl_id
118057                                                                             ,l_amb_context_code
118058                                                                             ,l_entity_code
118059                                                                             ,l_event_class_code
118060                                                                            )
118061                                     ,p_token_3                 => 'OWNER'
118062                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118063                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118064                                                                           ,p_lookup_code    => l_component_type_code
118065                                                                          )
118066                                     ,p_token_4                 => 'PRODUCT_NAME'
118067                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118068                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118069                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118070                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118071                                     ,p_ae_header_id            =>  NULL
118072                                        );
118073 
118074         IF (C_LEVEL_ERROR>= g_log_level) THEN
118075                  trace
118076                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118077                       ,p_level    => C_LEVEL_ERROR
118078                       ,p_module   => l_log_module);
118079         END IF;
118080       END IF;
118081    END IF;
118082    --
118083    --
118084    ------------------------------------------------------------------------------------------------
118085    -- 4219869 Business Flow
118086    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118087    -- Prior Entry.  Currently, the following code is always generated.
118088    ------------------------------------------------------------------------------------------------
118089    XLA_AE_LINES_PKG.ValidateCurrentLine;
118090 
118091    ------------------------------------------------------------------------------------
118092    -- 4219869 Business Flow
118093    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118094    ------------------------------------------------------------------------------------
118095    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118096 
118097    ----------------------------------------------------------------------------------
118098    -- 4219869 Business Flow
118099    -- Update journal entry status -- Need to generate this within IF <condition>
118100    ----------------------------------------------------------------------------------
118101    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118102          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118103          ,p_balance_type_code => l_balance_type_code
118104          );
118105 
118106    -------------------------------------------------------------------------------------------
118107    -- 4262811 - Generate the Accrual Reversal lines
118108    -------------------------------------------------------------------------------------------
118109    BEGIN
118110       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118111                               (g_array_event(p_event_id).array_value_num('header_index'));
118112       IF l_acc_rev_flag IS NULL THEN
118113          l_acc_rev_flag := 'N';
118114       END IF;
118115    EXCEPTION
118116       WHEN OTHERS THEN
118117          l_acc_rev_flag := 'N';
118118    END;
118119    --
118120    IF (l_acc_rev_flag = 'Y') THEN
118121 
118122        -- 4645092  ------------------------------------------------------------------------------
118123        -- To allow MPA report to determine if it should generate report process
118124        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118125        ------------------------------------------------------------------------------------------
118126 
118127        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118128        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118129    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118130    -- call ADRs
118131    -- Bug 4922099
118132    --
118133    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118134         (NVL(l_actual_upg_option, 'N') = 'O') OR
118135         (NVL(l_enc_upg_option, 'N') = 'O')
118136       )
118137    THEN
118138    NULL;
118142   l_ccid := AcctDerRule_41(
118139    --
118140    --
118141    
118143            p_application_id           => p_application_id
118144          , p_ae_header_id             => l_ae_header_id 
118145 , p_source_49 => p_source_49
118146          , x_transaction_coa_id       => l_adr_transaction_coa_id
118147          , x_accounting_coa_id        => l_adr_accounting_coa_id
118148          , x_value_type_code          => l_adr_value_type_code
118149          , p_side                     => 'NA'
118150    );
118151 
118152    xla_ae_lines_pkg.set_ccid(
118153     p_code_combination_id          => l_ccid
118154   , p_value_type_code              => l_adr_value_type_code
118155   , p_transaction_coa_id           => l_adr_transaction_coa_id
118156   , p_accounting_coa_id            => l_adr_accounting_coa_id
118157   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118158   , p_adr_type_code                => 'S'
118159   , p_component_type               => l_component_type
118160   , p_component_code               => l_component_code
118161   , p_component_type_code          => l_component_type_code
118162   , p_component_appl_id            => l_component_appl_id
118163   , p_amb_context_code             => l_amb_context_code
118164   , p_side                         => 'NA'
118165   );
118166 
118167 
118168    --
118169    --
118170    END IF;
118171 
118172        --
118173        -- Update the line information that should be overwritten
118174        --
118175        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118176                                          p_header_num   => 1);
118177        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118178 
118179        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118180 
118181        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118182           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118183        END IF;
118184 
118185       --
118186       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118187       --
118188       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118189           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118190       ELSE
118191           ---------------------------------------------------------------------------------------------------
118192           -- 4262811a Switch Sign
118193           ---------------------------------------------------------------------------------------------------
118194           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118195           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118196                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118197           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118198                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118199           -- 5132302
118200           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118201                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118202 
118203       END IF;
118204 
118205       -- 4955764
118206       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118208 
118209 
118210       XLA_AE_LINES_PKG.ValidateCurrentLine;
118211       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118212 
118213       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118214                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118215                ,p_balance_type_code => l_balance_type_code);
118216 
118217    END IF;
118218 
118219    -----------------------------------------------------------------------------------------
118220    -- 4262811 Multiperiod Accounting
118221    -----------------------------------------------------------------------------------------
118222      -- No MPA option is assigned.
118223 
118224 
118225 END IF;
118226 END IF;
118227 --
118228 
118229 --
118230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118231    trace
118232       (p_msg      => 'END of AcctLineType_192'
118233       ,p_level    => C_LEVEL_PROCEDURE
118234       ,p_module   => l_log_module);
118235 END IF;
118236 --
118237 EXCEPTION
118238   WHEN xla_exceptions_pkg.application_exception THEN
118239       RAISE;
118240   WHEN OTHERS THEN
118241        xla_exceptions_pkg.raise_message
118242            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_192');
118243 END AcctLineType_192;
118244 --
118245 
118246 ---------------------------------------
118247 --
118248 -- PRIVATE FUNCTION
118249 --         AcctLineType_193
118250 --
118251 ---------------------------------------
118252 PROCEDURE AcctLineType_193 (
118253   p_application_id        IN NUMBER
118254  ,p_event_id              IN NUMBER
118255  ,p_calculate_acctd_flag  IN VARCHAR2
118256  ,p_calculate_g_l_flag    IN VARCHAR2
118257  ,p_actual_flag           IN OUT VARCHAR2
118258  ,p_balance_type_code     OUT VARCHAR2
118259  ,p_gain_or_loss_ref      OUT VARCHAR2
118260  
118261 --Invoice Distribution Description
118262  , p_source_1            IN VARCHAR2
118266  , p_source_33            IN VARCHAR2
118263 --Invoice Distribution Ledger Amount
118264  , p_source_21            IN NUMBER
118265 --Invoice Distribution Type
118267  , p_source_33_meaning    IN VARCHAR2
118268 --Self-Assessed Tax Account
118269  , p_source_49            IN NUMBER
118270 --Accounting Reversal Indicator
118271  , p_source_52            IN VARCHAR2
118272 --Distribution Link Type
118273  , p_source_54            IN VARCHAR2
118274 --Allocation to Main Distribution Identifier
118275  , p_source_56            IN NUMBER
118276 --Invoice Identifier
118277  , p_source_57            IN NUMBER
118278 --Invoice Distribution Identifier
118279  , p_source_63            IN NUMBER
118280 --Payables Encumbrance Upgrade Credit Account
118281  , p_source_64            IN NUMBER
118282 --Payables Encumbrance Upgrade Credit Amount
118283  , p_source_65            IN NUMBER
118284 --Invoice Currency Code
118285  , p_source_66            IN VARCHAR2
118286 --Payables Encumbrance Upgrade Credit Base Amount
118287  , p_source_67            IN NUMBER
118288 --Payables Encumbrance Upgrade Debit Account
118289  , p_source_68            IN NUMBER
118290 --Payables Encumbrance Upgrade Debit Amount
118291  , p_source_69            IN NUMBER
118292 --Payables Encumbrance Upgrade Debit Base Amount
118293  , p_source_70            IN NUMBER
118294 --Payables Encumbrance Upgrade Option
118295  , p_source_71            IN VARCHAR2
118296 --Invoice Distribution Amount
118297  , p_source_72            IN NUMBER
118298 --Deferred Accounting End Date
118299  , p_source_76            IN DATE
118300 --Deferred Accounting Option
118301  , p_source_77            IN VARCHAR2
118302 --Deferred Accounting Start Date
118303  , p_source_78            IN DATE
118304 --Override Accounted Amount Indicator
118305  , p_source_79            IN VARCHAR2
118306  , p_source_79_meaning    IN VARCHAR2
118307 --Invoice Supplier Identifier
118308  , p_source_80            IN NUMBER
118309 --Invoice Supplier Site Identifier
118310  , p_source_81            IN NUMBER
118311 --Third Party Type
118312  , p_source_82            IN VARCHAR2
118313 --Parent Reversal Identifier
118314  , p_source_83            IN NUMBER
118315 --Invoice Distribution Tax Line Identifier
118316  , p_source_85            IN NUMBER
118317 --Invoice Distribution Tax Distribution Identifier from Tax
118318  , p_source_86            IN NUMBER
118319 --Invoice Distribution Summary Tax Line Identifier
118320  , p_source_87            IN NUMBER
118321 --Payables Upgrade Credit Encumbrance Type Identifier
118322  , p_source_88            IN NUMBER
118323 --Payables Upgrade Debit Encumbrance Type Identifier
118324  , p_source_89            IN NUMBER
118325 --Business Flow Accounts Payable Application Identifier
118326  , p_source_90            IN NUMBER
118327 --Business Flow Invoice Distribution Type
118328  , p_source_91            IN VARCHAR2
118329 --Business Flow Invoice Entity Code
118330  , p_source_92            IN VARCHAR2
118331 --Business Flow Invoice Distribution Identifier
118332  , p_source_93            IN NUMBER
118333 --Business Flow Invoice Identifier
118334  , p_source_94            IN NUMBER
118335 --Accrue on Receipt Option
118336  , p_source_95            IN VARCHAR2
118337  , p_source_95_meaning    IN VARCHAR2
118338 --Self-Assessed Tax Flag
118339  , p_source_135            IN VARCHAR2
118340  , p_source_135_meaning    IN VARCHAR2
118341 --Invoice Exchange Date
118342  , p_source_136            IN DATE
118343 --Invoice Exchange Rate
118344  , p_source_137            IN NUMBER
118345 --Invoice Exchange Rate Type
118346  , p_source_138            IN VARCHAR2
118347 )
118348 IS
118349 
118350 l_component_type              VARCHAR2(80);
118351 l_component_code              VARCHAR2(30);
118352 l_component_type_code         VARCHAR2(1);
118353 l_component_appl_id           INTEGER;
118354 l_amb_context_code            VARCHAR2(30);
118355 l_entity_code                 VARCHAR2(30);
118356 l_event_class_code            VARCHAR2(30);
118357 l_ae_header_id                NUMBER;
118358 l_event_type_code             VARCHAR2(30);
118359 l_line_definition_code        VARCHAR2(30);
118360 l_line_definition_owner_code  VARCHAR2(1);
118361 --
118362 -- adr variables
118363 l_segment                     VARCHAR2(30);
118364 l_ccid                        NUMBER;
118365 l_adr_transaction_coa_id      NUMBER;
118366 l_adr_accounting_coa_id       NUMBER;
118367 l_adr_flexfield_segment_code  VARCHAR2(30);
118368 l_adr_flex_value_set_id       NUMBER;
118369 l_adr_value_type_code         VARCHAR2(30);
118370 l_adr_value_combination_id    NUMBER;
118371 l_adr_value_segment_code      VARCHAR2(30);
118372 
118373 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118374 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118375 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118376 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118377 
118378 -- 4262811 Variables ------------------------------------------------------------------------------------------
118379 l_entered_amt_idx             NUMBER;
118380 l_accted_amt_idx              NUMBER;
118381 l_acc_rev_flag                VARCHAR2(1);
118382 l_accrual_line_num            NUMBER;
118383 l_tmp_amt                     NUMBER;
118384 l_acc_rev_natural_side_code   VARCHAR2(1);
118385 
118386 l_num_entries                 NUMBER;
118387 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118391 l_recog_line_1                NUMBER;
118388 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118389 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118390 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118392 l_recog_line_2                NUMBER;
118393 
118394 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118395 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118396 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118397 
118398 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118399 
118400 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118401 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118402 
118403 ---------------------------------------------------------------------------------------------------------------
118404 
118405 
118406 --
118407 -- bulk performance
118408 --
118409 l_balance_type_code           VARCHAR2(1);
118410 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118411 l_log_module                  VARCHAR2(240);
118412 
118413 --
118414 -- Upgrade strategy
118415 --
118416 l_actual_upg_option           VARCHAR2(1);
118417 l_enc_upg_option           VARCHAR2(1);
118418 
118419 --
118420 BEGIN
118421 --
118422 IF g_log_enabled THEN
118423       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
118424 END IF;
118425 --
118426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118427 
118428       trace
118429          (p_msg      => 'BEGIN of AcctLineType_193'
118430          ,p_level    => C_LEVEL_PROCEDURE
118431          ,p_module   => l_log_module);
118432 
118433 END IF;
118434 --
118435 l_component_type             := 'AMB_JLT';
118436 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_DM';
118437 l_component_type_code        := 'S';
118438 l_component_appl_id          :=  200;
118439 l_amb_context_code           := 'DEFAULT';
118440 l_entity_code                := 'AP_INVOICES';
118441 l_event_class_code           := 'DEBIT MEMOS';
118442 l_event_type_code            := 'DEBIT MEMOS_ALL';
118443 l_line_definition_owner_code := 'S';
118444 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
118445 --
118446 l_balance_type_code          := 'A';
118447 l_segment                     := NULL;
118448 l_ccid                        := NULL;
118449 l_adr_transaction_coa_id      := NULL;
118450 l_adr_accounting_coa_id       := NULL;
118451 l_adr_flexfield_segment_code  := NULL;
118452 l_adr_flex_value_set_id       := NULL;
118453 l_adr_value_type_code         := NULL;
118454 l_adr_value_combination_id    := NULL;
118455 l_adr_value_segment_code      := NULL;
118456 
118457 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
118458 l_bflow_class_code           := '';    -- 4219869 Business Flow
118459 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
118460 l_budgetary_control_flag     := 'N';
118461 
118462 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
118463 l_bflow_applied_to_amt       := NULL; -- 5132302
118464 l_entered_amt_idx            := NULL;          -- 4262811
118465 l_accted_amt_idx             := NULL;          -- 4262811
118466 l_acc_rev_flag               := NULL;          -- 4262811
118467 l_accrual_line_num           := NULL;          -- 4262811
118468 l_tmp_amt                    := NULL;          -- 4262811
118469 --
118470  
118471 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
118472     l_balance_type_code <> 'B' THEN
118473 IF (NVL(p_source_33,'
118474 ') =  'NONREC_TAX' OR 
118475 NVL(p_source_33,'
118476 ') =  'TERV' OR 
118477 NVL(p_source_33,'
118478 ') =  'TIPV' OR 
118479 NVL(p_source_33,'
118480 ') =  'TRV') AND 
118481 NVL(p_source_95,'
118482 ') <>  'Y' AND 
118483 NVL(p_source_135,'
118484 ') =  'Y'
118485  THEN 
118486 
118487    --
118488    XLA_AE_LINES_PKG.SetNewLine;
118489 
118490    p_balance_type_code          := l_balance_type_code;
118491    -- set the flag so later we will know whether the gain loss line needs to be created
118492    
118493    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
118494      p_actual_flag :='A';
118495    END IF;
118496 
118497    --
118498    -- bulk performance
118499    --
118500    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
118501                                       p_header_num   => 0); -- 4262811
118502    --
118503    -- set accounting line options
118504    --
118505    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
118506            p_natural_side_code          => 'D'
118507          , p_gain_or_loss_flag          => 'N'
118508          , p_gl_transfer_mode_code      => 'S'
118509          , p_acct_entry_type_code       => 'A'
118510          , p_switch_side_flag           => 'Y'
118511          , p_merge_duplicate_code       => 'A'
118512          );
118513    --
118514    l_acc_rev_natural_side_code := 'C';  -- 4262811
118515    -- 
118516    --
118517    -- set accounting line type info
118518    --
118519    xla_ae_lines_pkg.SetAcctLineType
118520       (p_component_type             => l_component_type
118521       ,p_event_type_code            => l_event_type_code
118522       ,p_line_definition_owner_code => l_line_definition_owner_code
118526       ,p_accounting_line_appl_id    => l_component_appl_id
118523       ,p_line_definition_code       => l_line_definition_code
118524       ,p_accounting_line_code       => l_component_code
118525       ,p_accounting_line_type_code  => l_component_type_code
118527       ,p_amb_context_code           => l_amb_context_code
118528       ,p_entity_code                => l_entity_code
118529       ,p_event_class_code           => l_event_class_code);
118530    --
118531    -- set accounting class
118532    --
118533    xla_ae_lines_pkg.SetAcctClass(
118534            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
118535          , p_ae_header_id           => l_ae_header_id
118536          );
118537 
118538    --
118539    -- set rounding class
118540    --
118541    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
118542                       'SELF_ASSESSED_TAX';
118543 
118544    --
118545    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118546    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118547    --
118548    -- bulk performance
118549    --
118550    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118551 
118552    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118553       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118554 
118555    -- 4955764
118556    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118557       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118558 
118559    -- 4458381 Public Sector Enh
118560    
118561    --
118562    -- set accounting attributes for the line type
118563    --
118564    l_entered_amt_idx := 23;
118565    l_accted_amt_idx  := 28;
118566    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
118567    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118568    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
118569    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
118570    l_rec_acct_attrs.array_num_value(2)  := 
118571 xla_ae_sources_pkg.GetSystemSourceNum(
118572    p_source_code           => 'XLA_EVENT_APPL_ID'
118573  , p_source_type_code      => 'Y'
118574  , p_source_application_id =>  602
118575 );
118576    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
118577    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
118578    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
118579    l_rec_acct_attrs.array_char_value(4)  := 
118580 xla_ae_sources_pkg.GetSystemSourceChar(
118581    p_source_code           => 'XLA_ENTITY_CODE'
118582  , p_source_type_code      => 'Y'
118583  , p_source_application_id =>  602
118584 );
118585    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
118586    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
118587    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
118588    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
118589    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
118590    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
118591    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
118592    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
118593    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
118594    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
118595    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
118596    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
118597    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
118598    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
118599    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
118600    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
118601    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
118602    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
118603    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
118604    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
118605    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
118606    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
118607    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
118608    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
118609    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
118610    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
118611    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
118612    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
118613    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
118614    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
118615    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
118616    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
118617    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
118618    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
118619    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
118620    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
118621    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
118622    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
118626    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
118623    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
118624    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
118625    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
118627    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
118628    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
118629    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
118630    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
118631    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
118632    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
118633    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
118634    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
118635    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
118636    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
118637    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
118638    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
118639    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
118640    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
118641    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
118642    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
118643    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
118644    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
118645    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
118646    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
118647    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
118648    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
118649    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
118650    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
118651    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
118652    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
118653    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
118654    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
118655    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
118656    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
118657    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
118658    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
118659    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
118660    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
118661 
118662    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
118663    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
118664 
118665    ---------------------------------------------------------------------------------------------------------------
118666    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
118667    ---------------------------------------------------------------------------------------------------------------
118668    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
118669 
118670    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118671    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118672 
118673    IF xla_accounting_cache_pkg.GetValueChar
118674          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118675          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118676    AND l_bflow_method_code = 'PRIOR_ENTRY'
118677 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118678    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118679          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118680        )
118681    THEN
118682          xla_ae_lines_pkg.BflowUpgEntry
118683            (p_business_method_code    => l_bflow_method_code
118684            ,p_business_class_code     => l_bflow_class_code
118685            ,p_balance_type            => l_balance_type_code);
118686    ELSE
118687       NULL;
118688 -- No business flow processing for business flow method of NONE.
118689    END IF;
118690 
118691    --
118692    -- call analytical criteria
118693    --
118694    
118695    --
118696    -- call description
118697    --
118698    
118699 xla_ae_lines_pkg.SetLineDescription(
118700    p_ae_header_id => l_ae_header_id
118701   ,p_description  => Description_1 (
118702      p_application_id         => p_application_id
118703    , p_ae_header_id           => l_ae_header_id 
118704 , p_source_1 => p_source_1
118705    )
118706 );
118707 
118708 
118709    --
118710    -- call ADRs
118711    -- Bug 4922099
118712    --
118713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118714         (NVL(l_actual_upg_option, 'N') = 'O') OR
118715         (NVL(l_enc_upg_option, 'N') = 'O')
118716       )
118717    THEN
118718    NULL;
118719    --
118720    --
118721    
118722   l_ccid := AcctDerRule_41(
118723            p_application_id           => p_application_id
118724          , p_ae_header_id             => l_ae_header_id 
118725 , p_source_49 => p_source_49
118726          , x_transaction_coa_id       => l_adr_transaction_coa_id
118727          , x_accounting_coa_id        => l_adr_accounting_coa_id
118728          , x_value_type_code          => l_adr_value_type_code
118729          , p_side                     => 'NA'
118730    );
118734   , p_value_type_code              => l_adr_value_type_code
118731 
118732    xla_ae_lines_pkg.set_ccid(
118733     p_code_combination_id          => l_ccid
118735   , p_transaction_coa_id           => l_adr_transaction_coa_id
118736   , p_accounting_coa_id            => l_adr_accounting_coa_id
118737   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118738   , p_adr_type_code                => 'S'
118739   , p_component_type               => l_component_type
118740   , p_component_code               => l_component_code
118741   , p_component_type_code          => l_component_type_code
118742   , p_component_appl_id            => l_component_appl_id
118743   , p_amb_context_code             => l_amb_context_code
118744   , p_side                         => 'NA'
118745   );
118746 
118747 
118748    --
118749    --
118750    END IF;
118751    --
118752    -- Bug 4922099
118753    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118754           (NVL(l_enc_upg_option, 'N') = 'O')
118755         ) AND
118756         (l_bflow_method_code = 'PRIOR_ENTRY')
118757       )
118758    THEN
118759       IF
118760       --
118761       1 = 2
118762       --
118763       THEN
118764       xla_accounting_err_pkg.build_message
118765                                     (p_appli_s_name            => 'XLA'
118766                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118767                                     ,p_token_1                 => 'LINE_NUMBER'
118768                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118769                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118770                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118771                                                                              l_component_type
118772                                                                             ,l_component_code
118773                                                                             ,l_component_type_code
118774                                                                             ,l_component_appl_id
118775                                                                             ,l_amb_context_code
118776                                                                             ,l_entity_code
118777                                                                             ,l_event_class_code
118778                                                                            )
118779                                     ,p_token_3                 => 'OWNER'
118780                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118781                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118782                                                                           ,p_lookup_code    => l_component_type_code
118783                                                                          )
118784                                     ,p_token_4                 => 'PRODUCT_NAME'
118785                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118786                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118787                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118788                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118789                                     ,p_ae_header_id            =>  NULL
118790                                        );
118791 
118792         IF (C_LEVEL_ERROR>= g_log_level) THEN
118793                  trace
118794                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118795                       ,p_level    => C_LEVEL_ERROR
118796                       ,p_module   => l_log_module);
118797         END IF;
118798       END IF;
118799    END IF;
118800    --
118801    --
118802    ------------------------------------------------------------------------------------------------
118803    -- 4219869 Business Flow
118804    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118805    -- Prior Entry.  Currently, the following code is always generated.
118806    ------------------------------------------------------------------------------------------------
118807    XLA_AE_LINES_PKG.ValidateCurrentLine;
118808 
118809    ------------------------------------------------------------------------------------
118810    -- 4219869 Business Flow
118811    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118812    ------------------------------------------------------------------------------------
118813    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118814 
118815    ----------------------------------------------------------------------------------
118816    -- 4219869 Business Flow
118817    -- Update journal entry status -- Need to generate this within IF <condition>
118818    ----------------------------------------------------------------------------------
118819    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118820          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118821          ,p_balance_type_code => l_balance_type_code
118822          );
118823 
118824    -------------------------------------------------------------------------------------------
118825    -- 4262811 - Generate the Accrual Reversal lines
118826    -------------------------------------------------------------------------------------------
118827    BEGIN
118831          l_acc_rev_flag := 'N';
118828       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118829                               (g_array_event(p_event_id).array_value_num('header_index'));
118830       IF l_acc_rev_flag IS NULL THEN
118832       END IF;
118833    EXCEPTION
118834       WHEN OTHERS THEN
118835          l_acc_rev_flag := 'N';
118836    END;
118837    --
118838    IF (l_acc_rev_flag = 'Y') THEN
118839 
118840        -- 4645092  ------------------------------------------------------------------------------
118841        -- To allow MPA report to determine if it should generate report process
118842        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118843        ------------------------------------------------------------------------------------------
118844 
118845        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118846        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118847    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118848    -- call ADRs
118849    -- Bug 4922099
118850    --
118851    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118852         (NVL(l_actual_upg_option, 'N') = 'O') OR
118853         (NVL(l_enc_upg_option, 'N') = 'O')
118854       )
118855    THEN
118856    NULL;
118857    --
118858    --
118859    
118860   l_ccid := AcctDerRule_41(
118861            p_application_id           => p_application_id
118862          , p_ae_header_id             => l_ae_header_id 
118863 , p_source_49 => p_source_49
118864          , x_transaction_coa_id       => l_adr_transaction_coa_id
118865          , x_accounting_coa_id        => l_adr_accounting_coa_id
118866          , x_value_type_code          => l_adr_value_type_code
118867          , p_side                     => 'NA'
118868    );
118869 
118870    xla_ae_lines_pkg.set_ccid(
118871     p_code_combination_id          => l_ccid
118872   , p_value_type_code              => l_adr_value_type_code
118873   , p_transaction_coa_id           => l_adr_transaction_coa_id
118874   , p_accounting_coa_id            => l_adr_accounting_coa_id
118875   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118876   , p_adr_type_code                => 'S'
118877   , p_component_type               => l_component_type
118878   , p_component_code               => l_component_code
118879   , p_component_type_code          => l_component_type_code
118880   , p_component_appl_id            => l_component_appl_id
118881   , p_amb_context_code             => l_amb_context_code
118882   , p_side                         => 'NA'
118883   );
118884 
118885 
118886    --
118887    --
118888    END IF;
118889 
118890        --
118891        -- Update the line information that should be overwritten
118892        --
118893        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118894                                          p_header_num   => 1);
118895        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118896 
118897        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118898 
118899        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118900           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118901        END IF;
118902 
118903       --
118904       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118905       --
118906       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118907           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118908       ELSE
118909           ---------------------------------------------------------------------------------------------------
118910           -- 4262811a Switch Sign
118911           ---------------------------------------------------------------------------------------------------
118912           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118913           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118914                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118915           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118916                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118917           -- 5132302
118918           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118919                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118920 
118921       END IF;
118922 
118923       -- 4955764
118924       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118925       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118926 
118927 
118928       XLA_AE_LINES_PKG.ValidateCurrentLine;
118929       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118930 
118931       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118932                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118933                ,p_balance_type_code => l_balance_type_code);
118934 
118935    END IF;
118936 
118937    -----------------------------------------------------------------------------------------
118938    -- 4262811 Multiperiod Accounting
118942 
118939    -----------------------------------------------------------------------------------------
118940      -- No MPA option is assigned.
118941 
118943 END IF;
118944 END IF;
118945 --
118946 
118947 --
118948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118949    trace
118950       (p_msg      => 'END of AcctLineType_193'
118951       ,p_level    => C_LEVEL_PROCEDURE
118952       ,p_module   => l_log_module);
118953 END IF;
118954 --
118955 EXCEPTION
118956   WHEN xla_exceptions_pkg.application_exception THEN
118957       RAISE;
118958   WHEN OTHERS THEN
118959        xla_exceptions_pkg.raise_message
118960            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_193');
118961 END AcctLineType_193;
118962 --
118963 
118964 ---------------------------------------
118965 --
118966 -- PRIVATE FUNCTION
118967 --         AcctLineType_194
118968 --
118969 ---------------------------------------
118970 PROCEDURE AcctLineType_194 (
118971   p_application_id        IN NUMBER
118972  ,p_event_id              IN NUMBER
118973  ,p_calculate_acctd_flag  IN VARCHAR2
118974  ,p_calculate_g_l_flag    IN VARCHAR2
118975  ,p_actual_flag           IN OUT VARCHAR2
118976  ,p_balance_type_code     OUT VARCHAR2
118977  ,p_gain_or_loss_ref      OUT VARCHAR2
118978  
118979 --Invoice Distribution Description
118980  , p_source_1            IN VARCHAR2
118981 --Invoice Distribution Ledger Amount
118982  , p_source_21            IN NUMBER
118983 --Invoice Distribution Type
118984  , p_source_33            IN VARCHAR2
118985  , p_source_33_meaning    IN VARCHAR2
118986 --Self-Assessed Tax Account
118987  , p_source_49            IN NUMBER
118988 --Accounting Reversal Indicator
118989  , p_source_52            IN VARCHAR2
118990 --Distribution Link Type
118991  , p_source_54            IN VARCHAR2
118992 --Allocation to Main Distribution Identifier
118993  , p_source_56            IN NUMBER
118994 --Invoice Identifier
118995  , p_source_57            IN NUMBER
118996 --Invoice Distribution Identifier
118997  , p_source_63            IN NUMBER
118998 --Payables Encumbrance Upgrade Credit Account
118999  , p_source_64            IN NUMBER
119000 --Payables Encumbrance Upgrade Credit Amount
119001  , p_source_65            IN NUMBER
119002 --Invoice Currency Code
119003  , p_source_66            IN VARCHAR2
119004 --Payables Encumbrance Upgrade Credit Base Amount
119005  , p_source_67            IN NUMBER
119006 --Payables Encumbrance Upgrade Debit Account
119007  , p_source_68            IN NUMBER
119008 --Payables Encumbrance Upgrade Debit Amount
119009  , p_source_69            IN NUMBER
119010 --Payables Encumbrance Upgrade Debit Base Amount
119011  , p_source_70            IN NUMBER
119012 --Payables Encumbrance Upgrade Option
119013  , p_source_71            IN VARCHAR2
119014 --Invoice Distribution Amount
119015  , p_source_72            IN NUMBER
119016 --Deferred Accounting End Date
119017  , p_source_76            IN DATE
119018 --Deferred Accounting Option
119019  , p_source_77            IN VARCHAR2
119020 --Deferred Accounting Start Date
119021  , p_source_78            IN DATE
119022 --Override Accounted Amount Indicator
119023  , p_source_79            IN VARCHAR2
119024  , p_source_79_meaning    IN VARCHAR2
119025 --Invoice Supplier Identifier
119026  , p_source_80            IN NUMBER
119027 --Invoice Supplier Site Identifier
119028  , p_source_81            IN NUMBER
119029 --Third Party Type
119030  , p_source_82            IN VARCHAR2
119031 --Parent Reversal Identifier
119032  , p_source_83            IN NUMBER
119033 --Invoice Distribution Statistical Amount
119034  , p_source_84            IN NUMBER
119035 --Invoice Distribution Tax Line Identifier
119036  , p_source_85            IN NUMBER
119037 --Invoice Distribution Tax Distribution Identifier from Tax
119038  , p_source_86            IN NUMBER
119039 --Invoice Distribution Summary Tax Line Identifier
119040  , p_source_87            IN NUMBER
119041 --Payables Upgrade Credit Encumbrance Type Identifier
119042  , p_source_88            IN NUMBER
119043 --Payables Upgrade Debit Encumbrance Type Identifier
119044  , p_source_89            IN NUMBER
119045 --Business Flow Accounts Payable Application Identifier
119046  , p_source_90            IN NUMBER
119047 --Business Flow Invoice Distribution Type
119048  , p_source_91            IN VARCHAR2
119049 --Business Flow Invoice Entity Code
119050  , p_source_92            IN VARCHAR2
119051 --Business Flow Invoice Distribution Identifier
119052  , p_source_93            IN NUMBER
119053 --Business Flow Invoice Identifier
119054  , p_source_94            IN NUMBER
119055 --Accrue on Receipt Option
119056  , p_source_95            IN VARCHAR2
119057  , p_source_95_meaning    IN VARCHAR2
119058 --Self-Assessed Tax Flag
119059  , p_source_135            IN VARCHAR2
119060  , p_source_135_meaning    IN VARCHAR2
119061 --Invoice Exchange Date
119062  , p_source_136            IN DATE
119063 --Invoice Exchange Rate
119064  , p_source_137            IN NUMBER
119065 --Invoice Exchange Rate Type
119066  , p_source_138            IN VARCHAR2
119067 )
119068 IS
119069 
119070 l_component_type              VARCHAR2(80);
119071 l_component_code              VARCHAR2(30);
119072 l_component_type_code         VARCHAR2(1);
119073 l_component_appl_id           INTEGER;
119074 l_amb_context_code            VARCHAR2(30);
119075 l_entity_code                 VARCHAR2(30);
119076 l_event_class_code            VARCHAR2(30);
119080 l_line_definition_owner_code  VARCHAR2(1);
119077 l_ae_header_id                NUMBER;
119078 l_event_type_code             VARCHAR2(30);
119079 l_line_definition_code        VARCHAR2(30);
119081 --
119082 -- adr variables
119083 l_segment                     VARCHAR2(30);
119084 l_ccid                        NUMBER;
119085 l_adr_transaction_coa_id      NUMBER;
119086 l_adr_accounting_coa_id       NUMBER;
119087 l_adr_flexfield_segment_code  VARCHAR2(30);
119088 l_adr_flex_value_set_id       NUMBER;
119089 l_adr_value_type_code         VARCHAR2(30);
119090 l_adr_value_combination_id    NUMBER;
119091 l_adr_value_segment_code      VARCHAR2(30);
119092 
119093 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119094 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119095 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119096 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119097 
119098 -- 4262811 Variables ------------------------------------------------------------------------------------------
119099 l_entered_amt_idx             NUMBER;
119100 l_accted_amt_idx              NUMBER;
119101 l_acc_rev_flag                VARCHAR2(1);
119102 l_accrual_line_num            NUMBER;
119103 l_tmp_amt                     NUMBER;
119104 l_acc_rev_natural_side_code   VARCHAR2(1);
119105 
119106 l_num_entries                 NUMBER;
119107 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
119108 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
119109 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
119110 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
119111 l_recog_line_1                NUMBER;
119112 l_recog_line_2                NUMBER;
119113 
119114 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
119115 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
119116 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
119117 
119118 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
119119 
119120 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
119121 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
119122 
119123 ---------------------------------------------------------------------------------------------------------------
119124 
119125 
119126 --
119127 -- bulk performance
119128 --
119129 l_balance_type_code           VARCHAR2(1);
119130 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
119131 l_log_module                  VARCHAR2(240);
119132 
119133 --
119134 -- Upgrade strategy
119135 --
119136 l_actual_upg_option           VARCHAR2(1);
119137 l_enc_upg_option           VARCHAR2(1);
119138 
119139 --
119140 BEGIN
119141 --
119142 IF g_log_enabled THEN
119143       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
119144 END IF;
119145 --
119146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119147 
119148       trace
119149          (p_msg      => 'BEGIN of AcctLineType_194'
119150          ,p_level    => C_LEVEL_PROCEDURE
119151          ,p_module   => l_log_module);
119152 
119153 END IF;
119154 --
119155 l_component_type             := 'AMB_JLT';
119156 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_INV';
119157 l_component_type_code        := 'S';
119158 l_component_appl_id          :=  200;
119159 l_amb_context_code           := 'DEFAULT';
119160 l_entity_code                := 'AP_INVOICES';
119161 l_event_class_code           := 'INVOICES';
119162 l_event_type_code            := 'INVOICES_ALL';
119163 l_line_definition_owner_code := 'S';
119164 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
119165 --
119166 l_balance_type_code          := 'A';
119167 l_segment                     := NULL;
119168 l_ccid                        := NULL;
119169 l_adr_transaction_coa_id      := NULL;
119170 l_adr_accounting_coa_id       := NULL;
119171 l_adr_flexfield_segment_code  := NULL;
119172 l_adr_flex_value_set_id       := NULL;
119173 l_adr_value_type_code         := NULL;
119174 l_adr_value_combination_id    := NULL;
119175 l_adr_value_segment_code      := NULL;
119176 
119177 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119178 l_bflow_class_code           := '';    -- 4219869 Business Flow
119179 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119180 l_budgetary_control_flag     := 'N';
119181 
119182 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119183 l_bflow_applied_to_amt       := NULL; -- 5132302
119184 l_entered_amt_idx            := NULL;          -- 4262811
119185 l_accted_amt_idx             := NULL;          -- 4262811
119186 l_acc_rev_flag               := NULL;          -- 4262811
119187 l_accrual_line_num           := NULL;          -- 4262811
119188 l_tmp_amt                    := NULL;          -- 4262811
119189 --
119190  
119191 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119192     l_balance_type_code <> 'B' THEN
119193 IF (NVL(p_source_33,'
119194 ') =  'NONREC_TAX' OR 
119195 NVL(p_source_33,'
119196 ') =  'TERV' OR 
119197 NVL(p_source_33,'
119198 ') =  'TIPV' OR 
119199 NVL(p_source_33,'
119200 ') =  'TRV') AND 
119201 NVL(p_source_95,'
119202 ') <>  'Y' AND 
119203 NVL(p_source_135,'
119204 ') =  'Y'
119205  THEN 
119209 
119206 
119207    --
119208    XLA_AE_LINES_PKG.SetNewLine;
119210    p_balance_type_code          := l_balance_type_code;
119211    -- set the flag so later we will know whether the gain loss line needs to be created
119212    
119213    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119214      p_actual_flag :='A';
119215    END IF;
119216 
119217    --
119218    -- bulk performance
119219    --
119220    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119221                                       p_header_num   => 0); -- 4262811
119222    --
119223    -- set accounting line options
119224    --
119225    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119226            p_natural_side_code          => 'D'
119227          , p_gain_or_loss_flag          => 'N'
119228          , p_gl_transfer_mode_code      => 'S'
119229          , p_acct_entry_type_code       => 'A'
119230          , p_switch_side_flag           => 'Y'
119231          , p_merge_duplicate_code       => 'A'
119232          );
119233    --
119234    l_acc_rev_natural_side_code := 'C';  -- 4262811
119235    -- 
119236    --
119237    -- set accounting line type info
119238    --
119239    xla_ae_lines_pkg.SetAcctLineType
119240       (p_component_type             => l_component_type
119241       ,p_event_type_code            => l_event_type_code
119242       ,p_line_definition_owner_code => l_line_definition_owner_code
119243       ,p_line_definition_code       => l_line_definition_code
119244       ,p_accounting_line_code       => l_component_code
119245       ,p_accounting_line_type_code  => l_component_type_code
119246       ,p_accounting_line_appl_id    => l_component_appl_id
119247       ,p_amb_context_code           => l_amb_context_code
119248       ,p_entity_code                => l_entity_code
119249       ,p_event_class_code           => l_event_class_code);
119250    --
119251    -- set accounting class
119252    --
119253    xla_ae_lines_pkg.SetAcctClass(
119254            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
119255          , p_ae_header_id           => l_ae_header_id
119256          );
119257 
119258    --
119259    -- set rounding class
119260    --
119261    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119262                       'SELF_ASSESSED_TAX';
119263 
119264    --
119265    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119266    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119267    --
119268    -- bulk performance
119269    --
119270    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119271 
119272    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119273       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119274 
119275    -- 4955764
119276    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119277       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119278 
119279    -- 4458381 Public Sector Enh
119280    
119281    --
119282    -- set accounting attributes for the line type
119283    --
119284    l_entered_amt_idx := 24;
119285    l_accted_amt_idx  := 29;
119286    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
119287    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
119288    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
119289    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119290    l_rec_acct_attrs.array_num_value(2)  := 
119291 xla_ae_sources_pkg.GetSystemSourceNum(
119292    p_source_code           => 'XLA_EVENT_APPL_ID'
119293  , p_source_type_code      => 'Y'
119294  , p_source_application_id =>  602
119295 );
119296    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119297    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
119298    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119299    l_rec_acct_attrs.array_char_value(4)  := 
119300 xla_ae_sources_pkg.GetSystemSourceChar(
119301    p_source_code           => 'XLA_ENTITY_CODE'
119302  , p_source_type_code      => 'Y'
119303  , p_source_application_id =>  602
119304 );
119305    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119306    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
119307    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119308    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
119309    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
119310    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
119311    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
119312    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
119313    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119314    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
119315    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
119316    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
119317    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
119318    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
119319    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119320    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
119321    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
119325    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
119322    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
119323    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
119324    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
119326    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
119327    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
119328    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
119329    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
119330    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
119331    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
119332    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
119333    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
119334    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
119335    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
119336    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
119337    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
119338    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
119339    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
119340    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
119341    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
119342    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
119343    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
119344    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
119345    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
119346    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
119347    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
119348    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
119349    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
119350    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
119351    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
119352    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
119353    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
119354    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
119355    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
119356    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
119357    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
119358    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
119359    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
119360    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
119361    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
119362    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
119363    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
119364    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
119365    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
119366    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
119367    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
119368    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
119369    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
119370    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
119371    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
119372    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
119373    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
119374    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
119375    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
119376    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
119377    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
119378    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
119379    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
119380    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
119381    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
119382    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
119383    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
119384    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
119385 
119386    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119387    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119388 
119389    ---------------------------------------------------------------------------------------------------------------
119390    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119391    ---------------------------------------------------------------------------------------------------------------
119392    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119393 
119394    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119395    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119396 
119397    IF xla_accounting_cache_pkg.GetValueChar
119398          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119399          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119400    AND l_bflow_method_code = 'PRIOR_ENTRY'
119401 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119402    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119403          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119404        )
119405    THEN
119406          xla_ae_lines_pkg.BflowUpgEntry
119407            (p_business_method_code    => l_bflow_method_code
119411       NULL;
119408            ,p_business_class_code     => l_bflow_class_code
119409            ,p_balance_type            => l_balance_type_code);
119410    ELSE
119412 -- No business flow processing for business flow method of NONE.
119413    END IF;
119414 
119415    --
119416    -- call analytical criteria
119417    --
119418    
119419    --
119420    -- call description
119421    --
119422    
119423 xla_ae_lines_pkg.SetLineDescription(
119424    p_ae_header_id => l_ae_header_id
119425   ,p_description  => Description_1 (
119426      p_application_id         => p_application_id
119427    , p_ae_header_id           => l_ae_header_id 
119428 , p_source_1 => p_source_1
119429    )
119430 );
119431 
119432 
119433    --
119434    -- call ADRs
119435    -- Bug 4922099
119436    --
119437    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119438         (NVL(l_actual_upg_option, 'N') = 'O') OR
119439         (NVL(l_enc_upg_option, 'N') = 'O')
119440       )
119441    THEN
119442    NULL;
119443    --
119444    --
119445    
119446   l_ccid := AcctDerRule_41(
119447            p_application_id           => p_application_id
119448          , p_ae_header_id             => l_ae_header_id 
119449 , p_source_49 => p_source_49
119450          , x_transaction_coa_id       => l_adr_transaction_coa_id
119451          , x_accounting_coa_id        => l_adr_accounting_coa_id
119452          , x_value_type_code          => l_adr_value_type_code
119453          , p_side                     => 'NA'
119454    );
119455 
119456    xla_ae_lines_pkg.set_ccid(
119457     p_code_combination_id          => l_ccid
119458   , p_value_type_code              => l_adr_value_type_code
119459   , p_transaction_coa_id           => l_adr_transaction_coa_id
119460   , p_accounting_coa_id            => l_adr_accounting_coa_id
119461   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119462   , p_adr_type_code                => 'S'
119463   , p_component_type               => l_component_type
119464   , p_component_code               => l_component_code
119465   , p_component_type_code          => l_component_type_code
119466   , p_component_appl_id            => l_component_appl_id
119467   , p_amb_context_code             => l_amb_context_code
119468   , p_side                         => 'NA'
119469   );
119470 
119471 
119472    --
119473    --
119474    END IF;
119475    --
119476    -- Bug 4922099
119477    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
119478           (NVL(l_enc_upg_option, 'N') = 'O')
119479         ) AND
119480         (l_bflow_method_code = 'PRIOR_ENTRY')
119481       )
119482    THEN
119483       IF
119484       --
119485       1 = 2
119486       --
119487       THEN
119488       xla_accounting_err_pkg.build_message
119489                                     (p_appli_s_name            => 'XLA'
119490                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119491                                     ,p_token_1                 => 'LINE_NUMBER'
119492                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
119493                                     ,p_token_2                 => 'LINE_TYPE_NAME'
119494                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
119495                                                                              l_component_type
119496                                                                             ,l_component_code
119497                                                                             ,l_component_type_code
119498                                                                             ,l_component_appl_id
119499                                                                             ,l_amb_context_code
119500                                                                             ,l_entity_code
119501                                                                             ,l_event_class_code
119502                                                                            )
119503                                     ,p_token_3                 => 'OWNER'
119504                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
119505                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
119506                                                                           ,p_lookup_code    => l_component_type_code
119507                                                                          )
119508                                     ,p_token_4                 => 'PRODUCT_NAME'
119509                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
119510                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
119511                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
119512                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
119513                                     ,p_ae_header_id            =>  NULL
119514                                        );
119515 
119516         IF (C_LEVEL_ERROR>= g_log_level) THEN
119517                  trace
119518                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119519                       ,p_level    => C_LEVEL_ERROR
119520                       ,p_module   => l_log_module);
119521         END IF;
119522       END IF;
119523    END IF;
119524    --
119525    --
119529    -- Prior Entry.  Currently, the following code is always generated.
119526    ------------------------------------------------------------------------------------------------
119527    -- 4219869 Business Flow
119528    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
119530    ------------------------------------------------------------------------------------------------
119531    XLA_AE_LINES_PKG.ValidateCurrentLine;
119532 
119533    ------------------------------------------------------------------------------------
119534    -- 4219869 Business Flow
119535    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
119536    ------------------------------------------------------------------------------------
119537    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119538 
119539    ----------------------------------------------------------------------------------
119540    -- 4219869 Business Flow
119541    -- Update journal entry status -- Need to generate this within IF <condition>
119542    ----------------------------------------------------------------------------------
119543    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119544          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
119545          ,p_balance_type_code => l_balance_type_code
119546          );
119547 
119548    -------------------------------------------------------------------------------------------
119549    -- 4262811 - Generate the Accrual Reversal lines
119550    -------------------------------------------------------------------------------------------
119551    BEGIN
119552       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119553                               (g_array_event(p_event_id).array_value_num('header_index'));
119554       IF l_acc_rev_flag IS NULL THEN
119555          l_acc_rev_flag := 'N';
119556       END IF;
119557    EXCEPTION
119558       WHEN OTHERS THEN
119559          l_acc_rev_flag := 'N';
119560    END;
119561    --
119562    IF (l_acc_rev_flag = 'Y') THEN
119563 
119564        -- 4645092  ------------------------------------------------------------------------------
119565        -- To allow MPA report to determine if it should generate report process
119566        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
119567        ------------------------------------------------------------------------------------------
119568 
119569        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
119570        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
119571    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
119572    -- call ADRs
119573    -- Bug 4922099
119574    --
119575    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119576         (NVL(l_actual_upg_option, 'N') = 'O') OR
119577         (NVL(l_enc_upg_option, 'N') = 'O')
119578       )
119579    THEN
119580    NULL;
119581    --
119582    --
119583    
119584   l_ccid := AcctDerRule_41(
119585            p_application_id           => p_application_id
119586          , p_ae_header_id             => l_ae_header_id 
119587 , p_source_49 => p_source_49
119588          , x_transaction_coa_id       => l_adr_transaction_coa_id
119589          , x_accounting_coa_id        => l_adr_accounting_coa_id
119590          , x_value_type_code          => l_adr_value_type_code
119591          , p_side                     => 'NA'
119592    );
119593 
119594    xla_ae_lines_pkg.set_ccid(
119595     p_code_combination_id          => l_ccid
119596   , p_value_type_code              => l_adr_value_type_code
119597   , p_transaction_coa_id           => l_adr_transaction_coa_id
119598   , p_accounting_coa_id            => l_adr_accounting_coa_id
119599   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119600   , p_adr_type_code                => 'S'
119601   , p_component_type               => l_component_type
119602   , p_component_code               => l_component_code
119603   , p_component_type_code          => l_component_type_code
119604   , p_component_appl_id            => l_component_appl_id
119605   , p_amb_context_code             => l_amb_context_code
119606   , p_side                         => 'NA'
119607   );
119608 
119609 
119610    --
119611    --
119612    END IF;
119613 
119614        --
119615        -- Update the line information that should be overwritten
119616        --
119617        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
119618                                          p_header_num   => 1);
119619        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
119620 
119621        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
119622 
119623        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
119624           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
119625        END IF;
119626 
119627       --
119628       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
119629       --
119630       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
119631           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
119632       ELSE
119633           ---------------------------------------------------------------------------------------------------
119634           -- 4262811a Switch Sign
119638                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119635           ---------------------------------------------------------------------------------------------------
119636           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
119637           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119639           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119640                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119641           -- 5132302
119642           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
119643                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119644 
119645       END IF;
119646 
119647       -- 4955764
119648       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119649       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
119650 
119651 
119652       XLA_AE_LINES_PKG.ValidateCurrentLine;
119653       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119654 
119655       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119656                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
119657                ,p_balance_type_code => l_balance_type_code);
119658 
119659    END IF;
119660 
119661    -----------------------------------------------------------------------------------------
119662    -- 4262811 Multiperiod Accounting
119663    -----------------------------------------------------------------------------------------
119664      -- No MPA option is assigned.
119665 
119666 
119667 END IF;
119668 END IF;
119669 --
119670 
119671 --
119672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119673    trace
119674       (p_msg      => 'END of AcctLineType_194'
119675       ,p_level    => C_LEVEL_PROCEDURE
119676       ,p_module   => l_log_module);
119677 END IF;
119678 --
119679 EXCEPTION
119680   WHEN xla_exceptions_pkg.application_exception THEN
119681       RAISE;
119682   WHEN OTHERS THEN
119683        xla_exceptions_pkg.raise_message
119684            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_194');
119685 END AcctLineType_194;
119686 --
119687 
119688 ---------------------------------------
119689 --
119690 -- PRIVATE FUNCTION
119691 --         AcctLineType_195
119692 --
119693 ---------------------------------------
119694 PROCEDURE AcctLineType_195 (
119695   p_application_id        IN NUMBER
119696  ,p_event_id              IN NUMBER
119697  ,p_calculate_acctd_flag  IN VARCHAR2
119698  ,p_calculate_g_l_flag    IN VARCHAR2
119699  ,p_actual_flag           IN OUT VARCHAR2
119700  ,p_balance_type_code     OUT VARCHAR2
119701  ,p_gain_or_loss_ref      OUT VARCHAR2
119702  
119703 --Invoice Distribution Description
119704  , p_source_1            IN VARCHAR2
119705 --Invoice Distribution Ledger Amount
119706  , p_source_21            IN NUMBER
119707 --Invoice Distribution Type
119708  , p_source_33            IN VARCHAR2
119709  , p_source_33_meaning    IN VARCHAR2
119710 --Self-Assessed Tax Account
119711  , p_source_49            IN NUMBER
119712 --Accounting Reversal Indicator
119713  , p_source_52            IN VARCHAR2
119714 --Distribution Link Type
119715  , p_source_54            IN VARCHAR2
119716 --Allocation to Main Distribution Identifier
119717  , p_source_56            IN NUMBER
119718 --Invoice Identifier
119719  , p_source_57            IN NUMBER
119720 --Invoice Distribution Identifier
119721  , p_source_63            IN NUMBER
119722 --Payables Encumbrance Upgrade Credit Account
119723  , p_source_64            IN NUMBER
119724 --Payables Encumbrance Upgrade Credit Amount
119725  , p_source_65            IN NUMBER
119726 --Invoice Currency Code
119727  , p_source_66            IN VARCHAR2
119728 --Payables Encumbrance Upgrade Credit Base Amount
119729  , p_source_67            IN NUMBER
119730 --Payables Encumbrance Upgrade Debit Account
119731  , p_source_68            IN NUMBER
119732 --Payables Encumbrance Upgrade Debit Amount
119733  , p_source_69            IN NUMBER
119734 --Payables Encumbrance Upgrade Debit Base Amount
119735  , p_source_70            IN NUMBER
119736 --Payables Encumbrance Upgrade Option
119737  , p_source_71            IN VARCHAR2
119738 --Invoice Distribution Amount
119739  , p_source_72            IN NUMBER
119740 --Deferred Accounting End Date
119741  , p_source_76            IN DATE
119742 --Deferred Accounting Option
119743  , p_source_77            IN VARCHAR2
119744 --Deferred Accounting Start Date
119745  , p_source_78            IN DATE
119746 --Override Accounted Amount Indicator
119747  , p_source_79            IN VARCHAR2
119748  , p_source_79_meaning    IN VARCHAR2
119749 --Invoice Supplier Identifier
119750  , p_source_80            IN NUMBER
119751 --Invoice Supplier Site Identifier
119752  , p_source_81            IN NUMBER
119753 --Third Party Type
119754  , p_source_82            IN VARCHAR2
119755 --Parent Reversal Identifier
119756  , p_source_83            IN NUMBER
119757 --Invoice Distribution Statistical Amount
119758  , p_source_84            IN NUMBER
119759 --Invoice Distribution Tax Line Identifier
119760  , p_source_85            IN NUMBER
119764  , p_source_87            IN NUMBER
119761 --Invoice Distribution Tax Distribution Identifier from Tax
119762  , p_source_86            IN NUMBER
119763 --Invoice Distribution Summary Tax Line Identifier
119765 --Payables Upgrade Credit Encumbrance Type Identifier
119766  , p_source_88            IN NUMBER
119767 --Payables Upgrade Debit Encumbrance Type Identifier
119768  , p_source_89            IN NUMBER
119769 --Business Flow Accounts Payable Application Identifier
119770  , p_source_90            IN NUMBER
119771 --Business Flow Invoice Distribution Type
119772  , p_source_91            IN VARCHAR2
119773 --Business Flow Invoice Entity Code
119774  , p_source_92            IN VARCHAR2
119775 --Business Flow Invoice Distribution Identifier
119776  , p_source_93            IN NUMBER
119777 --Business Flow Invoice Identifier
119778  , p_source_94            IN NUMBER
119779 --Self-Assessed Tax Flag
119780  , p_source_135            IN VARCHAR2
119781  , p_source_135_meaning    IN VARCHAR2
119782 --Invoice Exchange Date
119783  , p_source_136            IN DATE
119784 --Invoice Exchange Rate
119785  , p_source_137            IN NUMBER
119786 --Invoice Exchange Rate Type
119787  , p_source_138            IN VARCHAR2
119788 )
119789 IS
119790 
119791 l_component_type              VARCHAR2(80);
119792 l_component_code              VARCHAR2(30);
119793 l_component_type_code         VARCHAR2(1);
119794 l_component_appl_id           INTEGER;
119795 l_amb_context_code            VARCHAR2(30);
119796 l_entity_code                 VARCHAR2(30);
119797 l_event_class_code            VARCHAR2(30);
119798 l_ae_header_id                NUMBER;
119799 l_event_type_code             VARCHAR2(30);
119800 l_line_definition_code        VARCHAR2(30);
119801 l_line_definition_owner_code  VARCHAR2(1);
119802 --
119803 -- adr variables
119804 l_segment                     VARCHAR2(30);
119805 l_ccid                        NUMBER;
119806 l_adr_transaction_coa_id      NUMBER;
119807 l_adr_accounting_coa_id       NUMBER;
119808 l_adr_flexfield_segment_code  VARCHAR2(30);
119809 l_adr_flex_value_set_id       NUMBER;
119810 l_adr_value_type_code         VARCHAR2(30);
119811 l_adr_value_combination_id    NUMBER;
119812 l_adr_value_segment_code      VARCHAR2(30);
119813 
119814 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119815 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119816 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119817 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119818 
119819 -- 4262811 Variables ------------------------------------------------------------------------------------------
119820 l_entered_amt_idx             NUMBER;
119821 l_accted_amt_idx              NUMBER;
119822 l_acc_rev_flag                VARCHAR2(1);
119823 l_accrual_line_num            NUMBER;
119824 l_tmp_amt                     NUMBER;
119825 l_acc_rev_natural_side_code   VARCHAR2(1);
119826 
119827 l_num_entries                 NUMBER;
119828 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
119829 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
119830 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
119831 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
119832 l_recog_line_1                NUMBER;
119833 l_recog_line_2                NUMBER;
119834 
119835 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
119836 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
119837 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
119838 
119839 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
119840 
119841 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
119842 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
119843 
119844 ---------------------------------------------------------------------------------------------------------------
119845 
119846 
119847 --
119848 -- bulk performance
119849 --
119850 l_balance_type_code           VARCHAR2(1);
119851 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
119852 l_log_module                  VARCHAR2(240);
119853 
119854 --
119855 -- Upgrade strategy
119856 --
119857 l_actual_upg_option           VARCHAR2(1);
119858 l_enc_upg_option           VARCHAR2(1);
119859 
119860 --
119861 BEGIN
119862 --
119863 IF g_log_enabled THEN
119864       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
119865 END IF;
119866 --
119867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119868 
119869       trace
119870          (p_msg      => 'BEGIN of AcctLineType_195'
119871          ,p_level    => C_LEVEL_PROCEDURE
119872          ,p_module   => l_log_module);
119873 
119874 END IF;
119875 --
119876 l_component_type             := 'AMB_JLT';
119877 l_component_code             := 'AP_SELF_ASSESSED_RECTAX_PREPAY';
119878 l_component_type_code        := 'S';
119879 l_component_appl_id          :=  200;
119880 l_amb_context_code           := 'DEFAULT';
119881 l_entity_code                := 'AP_INVOICES';
119882 l_event_class_code           := 'PREPAYMENTS';
119883 l_event_type_code            := 'PREPAYMENTS_ALL';
119884 l_line_definition_owner_code := 'S';
119885 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
119886 --
119887 l_balance_type_code          := 'A';
119888 l_segment                     := NULL;
119892 l_adr_flexfield_segment_code  := NULL;
119889 l_ccid                        := NULL;
119890 l_adr_transaction_coa_id      := NULL;
119891 l_adr_accounting_coa_id       := NULL;
119893 l_adr_flex_value_set_id       := NULL;
119894 l_adr_value_type_code         := NULL;
119895 l_adr_value_combination_id    := NULL;
119896 l_adr_value_segment_code      := NULL;
119897 
119898 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119899 l_bflow_class_code           := '';    -- 4219869 Business Flow
119900 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119901 l_budgetary_control_flag     := 'N';
119902 
119903 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119904 l_bflow_applied_to_amt       := NULL; -- 5132302
119905 l_entered_amt_idx            := NULL;          -- 4262811
119906 l_accted_amt_idx             := NULL;          -- 4262811
119907 l_acc_rev_flag               := NULL;          -- 4262811
119908 l_accrual_line_num           := NULL;          -- 4262811
119909 l_tmp_amt                    := NULL;          -- 4262811
119910 --
119911  
119912 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119913     l_balance_type_code <> 'B' THEN
119914 IF NVL(p_source_33,'
119915 ') =  'REC_TAX' AND 
119916 NVL(p_source_135,'
119917 ') =  'Y'
119918  THEN 
119919 
119920    --
119921    XLA_AE_LINES_PKG.SetNewLine;
119922 
119923    p_balance_type_code          := l_balance_type_code;
119924    -- set the flag so later we will know whether the gain loss line needs to be created
119925    
119926    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119927      p_actual_flag :='A';
119928    END IF;
119929 
119930    --
119931    -- bulk performance
119932    --
119933    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119934                                       p_header_num   => 0); -- 4262811
119935    --
119936    -- set accounting line options
119937    --
119938    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119939            p_natural_side_code          => 'D'
119940          , p_gain_or_loss_flag          => 'N'
119941          , p_gl_transfer_mode_code      => 'S'
119942          , p_acct_entry_type_code       => 'A'
119943          , p_switch_side_flag           => 'Y'
119944          , p_merge_duplicate_code       => 'A'
119945          );
119946    --
119947    l_acc_rev_natural_side_code := 'C';  -- 4262811
119948    -- 
119949    --
119950    -- set accounting line type info
119951    --
119952    xla_ae_lines_pkg.SetAcctLineType
119953       (p_component_type             => l_component_type
119954       ,p_event_type_code            => l_event_type_code
119955       ,p_line_definition_owner_code => l_line_definition_owner_code
119956       ,p_line_definition_code       => l_line_definition_code
119957       ,p_accounting_line_code       => l_component_code
119958       ,p_accounting_line_type_code  => l_component_type_code
119959       ,p_accounting_line_appl_id    => l_component_appl_id
119960       ,p_amb_context_code           => l_amb_context_code
119961       ,p_entity_code                => l_entity_code
119962       ,p_event_class_code           => l_event_class_code);
119963    --
119964    -- set accounting class
119965    --
119966    xla_ae_lines_pkg.SetAcctClass(
119967            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
119968          , p_ae_header_id           => l_ae_header_id
119969          );
119970 
119971    --
119972    -- set rounding class
119973    --
119974    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119975                       'SELF_ASSESSED_TAX';
119976 
119977    --
119978    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119979    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119980    --
119981    -- bulk performance
119982    --
119983    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119984 
119985    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119986       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119987 
119988    -- 4955764
119989    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119990       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119991 
119992    -- 4458381 Public Sector Enh
119993    
119994    --
119995    -- set accounting attributes for the line type
119996    --
119997    l_entered_amt_idx := 23;
119998    l_accted_amt_idx  := 28;
119999    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
120000    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120001    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
120002    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120003    l_rec_acct_attrs.array_num_value(2)  := 
120004 xla_ae_sources_pkg.GetSystemSourceNum(
120005    p_source_code           => 'XLA_EVENT_APPL_ID'
120006  , p_source_type_code      => 'Y'
120007  , p_source_application_id =>  602
120008 );
120009    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120010    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
120011    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120012    l_rec_acct_attrs.array_char_value(4)  := 
120013 xla_ae_sources_pkg.GetSystemSourceChar(
120014    p_source_code           => 'XLA_ENTITY_CODE'
120018    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120015  , p_source_type_code      => 'Y'
120016  , p_source_application_id =>  602
120017 );
120019    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
120020    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120021    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
120022    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
120023    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
120024    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120025    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
120026    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
120027    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
120028    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
120029    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
120030    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120031    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
120032    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
120033    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
120034    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
120035    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
120036    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
120037    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
120038    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
120039    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
120040    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
120041    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
120042    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
120043    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
120044    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
120045    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
120046    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
120047    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
120048    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
120049    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
120050    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
120051    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
120052    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
120053    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
120054    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
120055    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
120056    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
120057    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
120058    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
120059    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
120060    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
120061    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
120062    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
120063    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
120064    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
120065    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
120066    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
120067    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
120068    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
120069    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
120070    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
120071    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
120072    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
120073    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
120074    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
120075    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
120076    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
120077    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
120078    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
120079    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
120080    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
120081    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
120082    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
120083    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
120084    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
120085    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
120086    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
120087    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
120088    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
120089    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
120090    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
120091    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
120092    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
120093    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
120094    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
120095    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
120096 
120097    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120098    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120099 
120100    ---------------------------------------------------------------------------------------------------------------
120104 
120101    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120102    ---------------------------------------------------------------------------------------------------------------
120103    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120105    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120106    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120107 
120108    IF xla_accounting_cache_pkg.GetValueChar
120109          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120110          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120111    AND l_bflow_method_code = 'PRIOR_ENTRY'
120112 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120113    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
120114          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
120115        )
120116    THEN
120117          xla_ae_lines_pkg.BflowUpgEntry
120118            (p_business_method_code    => l_bflow_method_code
120119            ,p_business_class_code     => l_bflow_class_code
120120            ,p_balance_type            => l_balance_type_code);
120121    ELSE
120122       NULL;
120123 -- No business flow processing for business flow method of NONE.
120124    END IF;
120125 
120126    --
120127    -- call analytical criteria
120128    --
120129    
120130    --
120131    -- call description
120132    --
120133    
120134 xla_ae_lines_pkg.SetLineDescription(
120135    p_ae_header_id => l_ae_header_id
120136   ,p_description  => Description_1 (
120137      p_application_id         => p_application_id
120138    , p_ae_header_id           => l_ae_header_id 
120139 , p_source_1 => p_source_1
120140    )
120141 );
120142 
120143 
120144    --
120145    -- call ADRs
120146    -- Bug 4922099
120147    --
120148    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120149         (NVL(l_actual_upg_option, 'N') = 'O') OR
120150         (NVL(l_enc_upg_option, 'N') = 'O')
120151       )
120152    THEN
120153    NULL;
120154    --
120155    --
120156    
120157   l_ccid := AcctDerRule_41(
120158            p_application_id           => p_application_id
120159          , p_ae_header_id             => l_ae_header_id 
120160 , p_source_49 => p_source_49
120161          , x_transaction_coa_id       => l_adr_transaction_coa_id
120162          , x_accounting_coa_id        => l_adr_accounting_coa_id
120163          , x_value_type_code          => l_adr_value_type_code
120164          , p_side                     => 'NA'
120165    );
120166 
120167    xla_ae_lines_pkg.set_ccid(
120168     p_code_combination_id          => l_ccid
120169   , p_value_type_code              => l_adr_value_type_code
120170   , p_transaction_coa_id           => l_adr_transaction_coa_id
120171   , p_accounting_coa_id            => l_adr_accounting_coa_id
120172   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120173   , p_adr_type_code                => 'S'
120174   , p_component_type               => l_component_type
120175   , p_component_code               => l_component_code
120176   , p_component_type_code          => l_component_type_code
120177   , p_component_appl_id            => l_component_appl_id
120178   , p_amb_context_code             => l_amb_context_code
120179   , p_side                         => 'NA'
120180   );
120181 
120182 
120183    --
120184    --
120185    END IF;
120186    --
120187    -- Bug 4922099
120188    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120189           (NVL(l_enc_upg_option, 'N') = 'O')
120190         ) AND
120191         (l_bflow_method_code = 'PRIOR_ENTRY')
120192       )
120193    THEN
120194       IF
120195       --
120196       1 = 2
120197       --
120198       THEN
120199       xla_accounting_err_pkg.build_message
120200                                     (p_appli_s_name            => 'XLA'
120201                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120202                                     ,p_token_1                 => 'LINE_NUMBER'
120203                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120204                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120205                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120206                                                                              l_component_type
120207                                                                             ,l_component_code
120208                                                                             ,l_component_type_code
120209                                                                             ,l_component_appl_id
120210                                                                             ,l_amb_context_code
120211                                                                             ,l_entity_code
120212                                                                             ,l_event_class_code
120213                                                                            )
120214                                     ,p_token_3                 => 'OWNER'
120215                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120216                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120217                                                                           ,p_lookup_code    => l_component_type_code
120221                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120218                                                                          )
120219                                     ,p_token_4                 => 'PRODUCT_NAME'
120220                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120222                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120223                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120224                                     ,p_ae_header_id            =>  NULL
120225                                        );
120226 
120227         IF (C_LEVEL_ERROR>= g_log_level) THEN
120228                  trace
120229                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120230                       ,p_level    => C_LEVEL_ERROR
120231                       ,p_module   => l_log_module);
120232         END IF;
120233       END IF;
120234    END IF;
120235    --
120236    --
120237    ------------------------------------------------------------------------------------------------
120238    -- 4219869 Business Flow
120239    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120240    -- Prior Entry.  Currently, the following code is always generated.
120241    ------------------------------------------------------------------------------------------------
120242    XLA_AE_LINES_PKG.ValidateCurrentLine;
120243 
120244    ------------------------------------------------------------------------------------
120245    -- 4219869 Business Flow
120246    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120247    ------------------------------------------------------------------------------------
120248    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120249 
120250    ----------------------------------------------------------------------------------
120251    -- 4219869 Business Flow
120252    -- Update journal entry status -- Need to generate this within IF <condition>
120253    ----------------------------------------------------------------------------------
120254    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120255          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120256          ,p_balance_type_code => l_balance_type_code
120257          );
120258 
120259    -------------------------------------------------------------------------------------------
120260    -- 4262811 - Generate the Accrual Reversal lines
120261    -------------------------------------------------------------------------------------------
120262    BEGIN
120263       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120264                               (g_array_event(p_event_id).array_value_num('header_index'));
120265       IF l_acc_rev_flag IS NULL THEN
120266          l_acc_rev_flag := 'N';
120267       END IF;
120268    EXCEPTION
120269       WHEN OTHERS THEN
120270          l_acc_rev_flag := 'N';
120271    END;
120272    --
120273    IF (l_acc_rev_flag = 'Y') THEN
120274 
120275        -- 4645092  ------------------------------------------------------------------------------
120276        -- To allow MPA report to determine if it should generate report process
120277        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120278        ------------------------------------------------------------------------------------------
120279 
120280        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120281        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120282    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120283    -- call ADRs
120284    -- Bug 4922099
120285    --
120286    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120287         (NVL(l_actual_upg_option, 'N') = 'O') OR
120288         (NVL(l_enc_upg_option, 'N') = 'O')
120289       )
120290    THEN
120291    NULL;
120292    --
120293    --
120294    
120295   l_ccid := AcctDerRule_41(
120296            p_application_id           => p_application_id
120297          , p_ae_header_id             => l_ae_header_id 
120298 , p_source_49 => p_source_49
120299          , x_transaction_coa_id       => l_adr_transaction_coa_id
120300          , x_accounting_coa_id        => l_adr_accounting_coa_id
120301          , x_value_type_code          => l_adr_value_type_code
120302          , p_side                     => 'NA'
120303    );
120304 
120305    xla_ae_lines_pkg.set_ccid(
120306     p_code_combination_id          => l_ccid
120307   , p_value_type_code              => l_adr_value_type_code
120308   , p_transaction_coa_id           => l_adr_transaction_coa_id
120309   , p_accounting_coa_id            => l_adr_accounting_coa_id
120310   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120311   , p_adr_type_code                => 'S'
120312   , p_component_type               => l_component_type
120313   , p_component_code               => l_component_code
120314   , p_component_type_code          => l_component_type_code
120315   , p_component_appl_id            => l_component_appl_id
120316   , p_amb_context_code             => l_amb_context_code
120317   , p_side                         => 'NA'
120318   );
120319 
120320 
120321    --
120322    --
120323    END IF;
120324 
120325        --
120326        -- Update the line information that should be overwritten
120327        --
120331 
120328        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120329                                          p_header_num   => 1);
120330        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120332        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120333 
120334        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120335           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120336        END IF;
120337 
120338       --
120339       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120340       --
120341       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120342           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120343       ELSE
120344           ---------------------------------------------------------------------------------------------------
120345           -- 4262811a Switch Sign
120346           ---------------------------------------------------------------------------------------------------
120347           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120348           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120349                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120350           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120351                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120352           -- 5132302
120353           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120354                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120355 
120356       END IF;
120357 
120358       -- 4955764
120359       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120360       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120361 
120362 
120363       XLA_AE_LINES_PKG.ValidateCurrentLine;
120364       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120365 
120366       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120367                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120368                ,p_balance_type_code => l_balance_type_code);
120369 
120370    END IF;
120371 
120372    -----------------------------------------------------------------------------------------
120373    -- 4262811 Multiperiod Accounting
120374    -----------------------------------------------------------------------------------------
120375      -- No MPA option is assigned.
120376 
120377 
120378 END IF;
120379 END IF;
120380 --
120381 
120382 --
120383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120384    trace
120385       (p_msg      => 'END of AcctLineType_195'
120386       ,p_level    => C_LEVEL_PROCEDURE
120387       ,p_module   => l_log_module);
120388 END IF;
120389 --
120390 EXCEPTION
120391   WHEN xla_exceptions_pkg.application_exception THEN
120392       RAISE;
120393   WHEN OTHERS THEN
120394        xla_exceptions_pkg.raise_message
120395            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_195');
120396 END AcctLineType_195;
120397 --
120398 
120399 ---------------------------------------
120400 --
120401 -- PRIVATE FUNCTION
120402 --         AcctLineType_196
120403 --
120404 ---------------------------------------
120405 PROCEDURE AcctLineType_196 (
120406   p_application_id        IN NUMBER
120407  ,p_event_id              IN NUMBER
120408  ,p_calculate_acctd_flag  IN VARCHAR2
120409  ,p_calculate_g_l_flag    IN VARCHAR2
120410  ,p_actual_flag           IN OUT VARCHAR2
120411  ,p_balance_type_code     OUT VARCHAR2
120412  ,p_gain_or_loss_ref      OUT VARCHAR2
120413  
120414 --Invoice Distribution Description
120415  , p_source_1            IN VARCHAR2
120416 --Invoice Distribution Ledger Amount
120417  , p_source_21            IN NUMBER
120418 --Invoice Distribution Type
120419  , p_source_33            IN VARCHAR2
120420  , p_source_33_meaning    IN VARCHAR2
120421 --Self-Assessed Tax Account
120422  , p_source_49            IN NUMBER
120423 --Accounting Reversal Indicator
120424  , p_source_52            IN VARCHAR2
120425 --Distribution Link Type
120426  , p_source_54            IN VARCHAR2
120427 --Allocation to Main Distribution Identifier
120428  , p_source_56            IN NUMBER
120429 --Invoice Identifier
120430  , p_source_57            IN NUMBER
120431 --Invoice Distribution Identifier
120432  , p_source_63            IN NUMBER
120433 --Payables Encumbrance Upgrade Credit Account
120434  , p_source_64            IN NUMBER
120435 --Payables Encumbrance Upgrade Credit Amount
120436  , p_source_65            IN NUMBER
120437 --Invoice Currency Code
120438  , p_source_66            IN VARCHAR2
120439 --Payables Encumbrance Upgrade Credit Base Amount
120440  , p_source_67            IN NUMBER
120441 --Payables Encumbrance Upgrade Debit Account
120442  , p_source_68            IN NUMBER
120443 --Payables Encumbrance Upgrade Debit Amount
120444  , p_source_69            IN NUMBER
120445 --Payables Encumbrance Upgrade Debit Base Amount
120449 --Invoice Distribution Amount
120446  , p_source_70            IN NUMBER
120447 --Payables Encumbrance Upgrade Option
120448  , p_source_71            IN VARCHAR2
120450  , p_source_72            IN NUMBER
120451 --Deferred Accounting End Date
120452  , p_source_76            IN DATE
120453 --Deferred Accounting Option
120454  , p_source_77            IN VARCHAR2
120455 --Deferred Accounting Start Date
120456  , p_source_78            IN DATE
120457 --Override Accounted Amount Indicator
120458  , p_source_79            IN VARCHAR2
120459  , p_source_79_meaning    IN VARCHAR2
120460 --Invoice Supplier Identifier
120461  , p_source_80            IN NUMBER
120462 --Invoice Supplier Site Identifier
120463  , p_source_81            IN NUMBER
120464 --Third Party Type
120465  , p_source_82            IN VARCHAR2
120466 --Parent Reversal Identifier
120467  , p_source_83            IN NUMBER
120468 --Invoice Distribution Statistical Amount
120469  , p_source_84            IN NUMBER
120470 --Invoice Distribution Tax Line Identifier
120471  , p_source_85            IN NUMBER
120472 --Invoice Distribution Tax Distribution Identifier from Tax
120473  , p_source_86            IN NUMBER
120474 --Invoice Distribution Summary Tax Line Identifier
120475  , p_source_87            IN NUMBER
120476 --Payables Upgrade Credit Encumbrance Type Identifier
120477  , p_source_88            IN NUMBER
120478 --Payables Upgrade Debit Encumbrance Type Identifier
120479  , p_source_89            IN NUMBER
120480 --Business Flow Accounts Payable Application Identifier
120481  , p_source_90            IN NUMBER
120482 --Business Flow Invoice Distribution Type
120483  , p_source_91            IN VARCHAR2
120484 --Business Flow Invoice Entity Code
120485  , p_source_92            IN VARCHAR2
120486 --Business Flow Invoice Distribution Identifier
120487  , p_source_93            IN NUMBER
120488 --Business Flow Invoice Identifier
120489  , p_source_94            IN NUMBER
120490 --Self-Assessed Tax Flag
120491  , p_source_135            IN VARCHAR2
120492  , p_source_135_meaning    IN VARCHAR2
120493 --Invoice Exchange Date
120494  , p_source_136            IN DATE
120495 --Invoice Exchange Rate
120496  , p_source_137            IN NUMBER
120497 --Invoice Exchange Rate Type
120498  , p_source_138            IN VARCHAR2
120499 )
120500 IS
120501 
120502 l_component_type              VARCHAR2(80);
120503 l_component_code              VARCHAR2(30);
120504 l_component_type_code         VARCHAR2(1);
120505 l_component_appl_id           INTEGER;
120506 l_amb_context_code            VARCHAR2(30);
120507 l_entity_code                 VARCHAR2(30);
120508 l_event_class_code            VARCHAR2(30);
120509 l_ae_header_id                NUMBER;
120510 l_event_type_code             VARCHAR2(30);
120511 l_line_definition_code        VARCHAR2(30);
120512 l_line_definition_owner_code  VARCHAR2(1);
120513 --
120514 -- adr variables
120515 l_segment                     VARCHAR2(30);
120516 l_ccid                        NUMBER;
120517 l_adr_transaction_coa_id      NUMBER;
120518 l_adr_accounting_coa_id       NUMBER;
120519 l_adr_flexfield_segment_code  VARCHAR2(30);
120520 l_adr_flex_value_set_id       NUMBER;
120521 l_adr_value_type_code         VARCHAR2(30);
120522 l_adr_value_combination_id    NUMBER;
120523 l_adr_value_segment_code      VARCHAR2(30);
120524 
120525 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
120526 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
120527 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
120528 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
120529 
120530 -- 4262811 Variables ------------------------------------------------------------------------------------------
120531 l_entered_amt_idx             NUMBER;
120532 l_accted_amt_idx              NUMBER;
120533 l_acc_rev_flag                VARCHAR2(1);
120534 l_accrual_line_num            NUMBER;
120535 l_tmp_amt                     NUMBER;
120536 l_acc_rev_natural_side_code   VARCHAR2(1);
120537 
120538 l_num_entries                 NUMBER;
120539 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120540 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120541 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120542 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120543 l_recog_line_1                NUMBER;
120544 l_recog_line_2                NUMBER;
120545 
120546 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120547 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120548 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120549 
120550 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120551 
120552 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120553 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120554 
120555 ---------------------------------------------------------------------------------------------------------------
120556 
120557 
120558 --
120559 -- bulk performance
120560 --
120561 l_balance_type_code           VARCHAR2(1);
120562 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120563 l_log_module                  VARCHAR2(240);
120564 
120565 --
120566 -- Upgrade strategy
120567 --
120568 l_actual_upg_option           VARCHAR2(1);
120569 l_enc_upg_option           VARCHAR2(1);
120570 
120571 --
120572 BEGIN
120573 --
120574 IF g_log_enabled THEN
120578 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120575       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
120576 END IF;
120577 --
120579 
120580       trace
120581          (p_msg      => 'BEGIN of AcctLineType_196'
120582          ,p_level    => C_LEVEL_PROCEDURE
120583          ,p_module   => l_log_module);
120584 
120585 END IF;
120586 --
120587 l_component_type             := 'AMB_JLT';
120588 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_CM';
120589 l_component_type_code        := 'S';
120590 l_component_appl_id          :=  200;
120591 l_amb_context_code           := 'DEFAULT';
120592 l_entity_code                := 'AP_INVOICES';
120593 l_event_class_code           := 'CREDIT MEMOS';
120594 l_event_type_code            := 'CREDIT MEMOS_ALL';
120595 l_line_definition_owner_code := 'S';
120596 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
120597 --
120598 l_balance_type_code          := 'A';
120599 l_segment                     := NULL;
120600 l_ccid                        := NULL;
120601 l_adr_transaction_coa_id      := NULL;
120602 l_adr_accounting_coa_id       := NULL;
120603 l_adr_flexfield_segment_code  := NULL;
120604 l_adr_flex_value_set_id       := NULL;
120605 l_adr_value_type_code         := NULL;
120606 l_adr_value_combination_id    := NULL;
120607 l_adr_value_segment_code      := NULL;
120608 
120609 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
120610 l_bflow_class_code           := '';    -- 4219869 Business Flow
120611 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120612 l_budgetary_control_flag     := 'N';
120613 
120614 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120615 l_bflow_applied_to_amt       := NULL; -- 5132302
120616 l_entered_amt_idx            := NULL;          -- 4262811
120617 l_accted_amt_idx             := NULL;          -- 4262811
120618 l_acc_rev_flag               := NULL;          -- 4262811
120619 l_accrual_line_num           := NULL;          -- 4262811
120620 l_tmp_amt                    := NULL;          -- 4262811
120621 --
120622  
120623 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120624     l_balance_type_code <> 'B' THEN
120625 IF NVL(p_source_33,'
120626 ') =  'REC_TAX' AND 
120627 NVL(p_source_135,'
120628 ') =  'Y'
120629  THEN 
120630 
120631    --
120632    XLA_AE_LINES_PKG.SetNewLine;
120633 
120634    p_balance_type_code          := l_balance_type_code;
120635    -- set the flag so later we will know whether the gain loss line needs to be created
120636    
120637    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
120638      p_actual_flag :='A';
120639    END IF;
120640 
120641    --
120642    -- bulk performance
120643    --
120644    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
120645                                       p_header_num   => 0); -- 4262811
120646    --
120647    -- set accounting line options
120648    --
120649    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
120650            p_natural_side_code          => 'D'
120651          , p_gain_or_loss_flag          => 'N'
120652          , p_gl_transfer_mode_code      => 'S'
120653          , p_acct_entry_type_code       => 'A'
120654          , p_switch_side_flag           => 'Y'
120655          , p_merge_duplicate_code       => 'A'
120656          );
120657    --
120658    l_acc_rev_natural_side_code := 'C';  -- 4262811
120659    -- 
120660    --
120661    -- set accounting line type info
120662    --
120663    xla_ae_lines_pkg.SetAcctLineType
120664       (p_component_type             => l_component_type
120665       ,p_event_type_code            => l_event_type_code
120666       ,p_line_definition_owner_code => l_line_definition_owner_code
120667       ,p_line_definition_code       => l_line_definition_code
120668       ,p_accounting_line_code       => l_component_code
120669       ,p_accounting_line_type_code  => l_component_type_code
120670       ,p_accounting_line_appl_id    => l_component_appl_id
120671       ,p_amb_context_code           => l_amb_context_code
120672       ,p_entity_code                => l_entity_code
120673       ,p_event_class_code           => l_event_class_code);
120674    --
120675    -- set accounting class
120676    --
120677    xla_ae_lines_pkg.SetAcctClass(
120678            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
120679          , p_ae_header_id           => l_ae_header_id
120680          );
120681 
120682    --
120683    -- set rounding class
120684    --
120685    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
120686                       'SELF_ASSESSED_TAX';
120687 
120688    --
120689    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
120690    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
120691    --
120692    -- bulk performance
120693    --
120694    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
120695 
120696    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
120697       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
120698 
120699    -- 4955764
120700    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120701       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
120702 
120703    -- 4458381 Public Sector Enh
120707    --
120704    
120705    --
120706    -- set accounting attributes for the line type
120708    l_entered_amt_idx := 23;
120709    l_accted_amt_idx  := 28;
120710    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
120711    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120712    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
120713    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120714    l_rec_acct_attrs.array_num_value(2)  := 
120715 xla_ae_sources_pkg.GetSystemSourceNum(
120716    p_source_code           => 'XLA_EVENT_APPL_ID'
120717  , p_source_type_code      => 'Y'
120718  , p_source_application_id =>  602
120719 );
120720    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120721    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
120722    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120723    l_rec_acct_attrs.array_char_value(4)  := 
120724 xla_ae_sources_pkg.GetSystemSourceChar(
120725    p_source_code           => 'XLA_ENTITY_CODE'
120726  , p_source_type_code      => 'Y'
120727  , p_source_application_id =>  602
120728 );
120729    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120730    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
120731    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120732    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
120733    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
120734    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
120735    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120736    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
120737    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
120738    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
120739    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
120740    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
120741    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120742    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
120743    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
120744    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
120745    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
120746    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
120747    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
120748    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
120749    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
120750    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
120751    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
120752    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
120753    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
120754    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
120755    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
120756    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
120757    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
120758    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
120759    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
120760    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
120761    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
120762    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
120763    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
120764    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
120765    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
120766    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
120767    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
120768    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
120769    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
120770    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
120771    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
120772    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
120773    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
120774    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
120775    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
120776    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
120777    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
120778    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
120779    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
120780    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
120781    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
120782    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
120783    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
120784    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
120785    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
120786    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
120787    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
120788    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
120789    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
120790    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
120791    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
120792    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
120793    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
120794    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
120798    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
120795    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
120796    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
120797    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
120799    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
120800    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
120801    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
120802    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
120803    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
120804    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
120805    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
120806    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
120807 
120808    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120809    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120810 
120811    ---------------------------------------------------------------------------------------------------------------
120812    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120813    ---------------------------------------------------------------------------------------------------------------
120814    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120815 
120816    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120817    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120818 
120819    IF xla_accounting_cache_pkg.GetValueChar
120820          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120821          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120822    AND l_bflow_method_code = 'PRIOR_ENTRY'
120823 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120824    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
120825          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
120826        )
120827    THEN
120828          xla_ae_lines_pkg.BflowUpgEntry
120829            (p_business_method_code    => l_bflow_method_code
120830            ,p_business_class_code     => l_bflow_class_code
120831            ,p_balance_type            => l_balance_type_code);
120832    ELSE
120833       NULL;
120834 -- No business flow processing for business flow method of NONE.
120835    END IF;
120836 
120837    --
120838    -- call analytical criteria
120839    --
120840    
120841    --
120842    -- call description
120843    --
120844    
120845 xla_ae_lines_pkg.SetLineDescription(
120846    p_ae_header_id => l_ae_header_id
120847   ,p_description  => Description_1 (
120848      p_application_id         => p_application_id
120849    , p_ae_header_id           => l_ae_header_id 
120850 , p_source_1 => p_source_1
120851    )
120852 );
120853 
120854 
120855    --
120856    -- call ADRs
120857    -- Bug 4922099
120858    --
120859    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120860         (NVL(l_actual_upg_option, 'N') = 'O') OR
120861         (NVL(l_enc_upg_option, 'N') = 'O')
120862       )
120863    THEN
120864    NULL;
120865    --
120866    --
120867    
120868   l_ccid := AcctDerRule_41(
120869            p_application_id           => p_application_id
120870          , p_ae_header_id             => l_ae_header_id 
120871 , p_source_49 => p_source_49
120872          , x_transaction_coa_id       => l_adr_transaction_coa_id
120873          , x_accounting_coa_id        => l_adr_accounting_coa_id
120874          , x_value_type_code          => l_adr_value_type_code
120875          , p_side                     => 'NA'
120876    );
120877 
120878    xla_ae_lines_pkg.set_ccid(
120879     p_code_combination_id          => l_ccid
120880   , p_value_type_code              => l_adr_value_type_code
120881   , p_transaction_coa_id           => l_adr_transaction_coa_id
120882   , p_accounting_coa_id            => l_adr_accounting_coa_id
120883   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120884   , p_adr_type_code                => 'S'
120885   , p_component_type               => l_component_type
120886   , p_component_code               => l_component_code
120887   , p_component_type_code          => l_component_type_code
120888   , p_component_appl_id            => l_component_appl_id
120889   , p_amb_context_code             => l_amb_context_code
120890   , p_side                         => 'NA'
120891   );
120892 
120893 
120894    --
120895    --
120896    END IF;
120897    --
120898    -- Bug 4922099
120899    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120900           (NVL(l_enc_upg_option, 'N') = 'O')
120901         ) AND
120902         (l_bflow_method_code = 'PRIOR_ENTRY')
120903       )
120904    THEN
120905       IF
120906       --
120907       1 = 2
120908       --
120909       THEN
120910       xla_accounting_err_pkg.build_message
120911                                     (p_appli_s_name            => 'XLA'
120912                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120913                                     ,p_token_1                 => 'LINE_NUMBER'
120914                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120918                                                                             ,l_component_code
120915                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120916                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120917                                                                              l_component_type
120919                                                                             ,l_component_type_code
120920                                                                             ,l_component_appl_id
120921                                                                             ,l_amb_context_code
120922                                                                             ,l_entity_code
120923                                                                             ,l_event_class_code
120924                                                                            )
120925                                     ,p_token_3                 => 'OWNER'
120926                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120927                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120928                                                                           ,p_lookup_code    => l_component_type_code
120929                                                                          )
120930                                     ,p_token_4                 => 'PRODUCT_NAME'
120931                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120932                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120933                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120934                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120935                                     ,p_ae_header_id            =>  NULL
120936                                        );
120937 
120938         IF (C_LEVEL_ERROR>= g_log_level) THEN
120939                  trace
120940                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120941                       ,p_level    => C_LEVEL_ERROR
120942                       ,p_module   => l_log_module);
120943         END IF;
120944       END IF;
120945    END IF;
120946    --
120947    --
120948    ------------------------------------------------------------------------------------------------
120949    -- 4219869 Business Flow
120950    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120951    -- Prior Entry.  Currently, the following code is always generated.
120952    ------------------------------------------------------------------------------------------------
120953    XLA_AE_LINES_PKG.ValidateCurrentLine;
120954 
120955    ------------------------------------------------------------------------------------
120956    -- 4219869 Business Flow
120957    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120958    ------------------------------------------------------------------------------------
120959    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120960 
120961    ----------------------------------------------------------------------------------
120962    -- 4219869 Business Flow
120963    -- Update journal entry status -- Need to generate this within IF <condition>
120964    ----------------------------------------------------------------------------------
120965    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120966          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120967          ,p_balance_type_code => l_balance_type_code
120968          );
120969 
120970    -------------------------------------------------------------------------------------------
120971    -- 4262811 - Generate the Accrual Reversal lines
120972    -------------------------------------------------------------------------------------------
120973    BEGIN
120974       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120975                               (g_array_event(p_event_id).array_value_num('header_index'));
120976       IF l_acc_rev_flag IS NULL THEN
120977          l_acc_rev_flag := 'N';
120978       END IF;
120979    EXCEPTION
120980       WHEN OTHERS THEN
120981          l_acc_rev_flag := 'N';
120982    END;
120983    --
120984    IF (l_acc_rev_flag = 'Y') THEN
120985 
120986        -- 4645092  ------------------------------------------------------------------------------
120987        -- To allow MPA report to determine if it should generate report process
120988        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120989        ------------------------------------------------------------------------------------------
120990 
120991        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120992        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120993    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120994    -- call ADRs
120995    -- Bug 4922099
120996    --
120997    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120998         (NVL(l_actual_upg_option, 'N') = 'O') OR
120999         (NVL(l_enc_upg_option, 'N') = 'O')
121000       )
121001    THEN
121002    NULL;
121003    --
121004    --
121005    
121006   l_ccid := AcctDerRule_41(
121007            p_application_id           => p_application_id
121008          , p_ae_header_id             => l_ae_header_id 
121009 , p_source_49 => p_source_49
121013          , p_side                     => 'NA'
121010          , x_transaction_coa_id       => l_adr_transaction_coa_id
121011          , x_accounting_coa_id        => l_adr_accounting_coa_id
121012          , x_value_type_code          => l_adr_value_type_code
121014    );
121015 
121016    xla_ae_lines_pkg.set_ccid(
121017     p_code_combination_id          => l_ccid
121018   , p_value_type_code              => l_adr_value_type_code
121019   , p_transaction_coa_id           => l_adr_transaction_coa_id
121020   , p_accounting_coa_id            => l_adr_accounting_coa_id
121021   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121022   , p_adr_type_code                => 'S'
121023   , p_component_type               => l_component_type
121024   , p_component_code               => l_component_code
121025   , p_component_type_code          => l_component_type_code
121026   , p_component_appl_id            => l_component_appl_id
121027   , p_amb_context_code             => l_amb_context_code
121028   , p_side                         => 'NA'
121029   );
121030 
121031 
121032    --
121033    --
121034    END IF;
121035 
121036        --
121037        -- Update the line information that should be overwritten
121038        --
121039        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121040                                          p_header_num   => 1);
121041        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121042 
121043        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121044 
121045        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121046           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121047        END IF;
121048 
121049       --
121050       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121051       --
121052       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121053           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121054       ELSE
121055           ---------------------------------------------------------------------------------------------------
121056           -- 4262811a Switch Sign
121057           ---------------------------------------------------------------------------------------------------
121058           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121059           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121060                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121061           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121062                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121063           -- 5132302
121064           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121065                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121066 
121067       END IF;
121068 
121069       -- 4955764
121070       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121071       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121072 
121073 
121074       XLA_AE_LINES_PKG.ValidateCurrentLine;
121075       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121076 
121077       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121078                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121079                ,p_balance_type_code => l_balance_type_code);
121080 
121081    END IF;
121082 
121083    -----------------------------------------------------------------------------------------
121084    -- 4262811 Multiperiod Accounting
121085    -----------------------------------------------------------------------------------------
121086      -- No MPA option is assigned.
121087 
121088 
121089 END IF;
121090 END IF;
121091 --
121092 
121093 --
121094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121095    trace
121096       (p_msg      => 'END of AcctLineType_196'
121097       ,p_level    => C_LEVEL_PROCEDURE
121098       ,p_module   => l_log_module);
121099 END IF;
121100 --
121101 EXCEPTION
121102   WHEN xla_exceptions_pkg.application_exception THEN
121103       RAISE;
121104   WHEN OTHERS THEN
121105        xla_exceptions_pkg.raise_message
121106            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_196');
121107 END AcctLineType_196;
121108 --
121109 
121110 ---------------------------------------
121111 --
121112 -- PRIVATE FUNCTION
121113 --         AcctLineType_197
121114 --
121115 ---------------------------------------
121116 PROCEDURE AcctLineType_197 (
121117   p_application_id        IN NUMBER
121118  ,p_event_id              IN NUMBER
121119  ,p_calculate_acctd_flag  IN VARCHAR2
121120  ,p_calculate_g_l_flag    IN VARCHAR2
121121  ,p_actual_flag           IN OUT VARCHAR2
121122  ,p_balance_type_code     OUT VARCHAR2
121123  ,p_gain_or_loss_ref      OUT VARCHAR2
121124  
121125 --Invoice Distribution Description
121126  , p_source_1            IN VARCHAR2
121127 --Invoice Distribution Ledger Amount
121128  , p_source_21            IN NUMBER
121129 --Invoice Distribution Type
121130  , p_source_33            IN VARCHAR2
121131  , p_source_33_meaning    IN VARCHAR2
121132 --Self-Assessed Tax Account
121136 --Distribution Link Type
121133  , p_source_49            IN NUMBER
121134 --Accounting Reversal Indicator
121135  , p_source_52            IN VARCHAR2
121137  , p_source_54            IN VARCHAR2
121138 --Allocation to Main Distribution Identifier
121139  , p_source_56            IN NUMBER
121140 --Invoice Identifier
121141  , p_source_57            IN NUMBER
121142 --Invoice Distribution Identifier
121143  , p_source_63            IN NUMBER
121144 --Payables Encumbrance Upgrade Credit Account
121145  , p_source_64            IN NUMBER
121146 --Payables Encumbrance Upgrade Credit Amount
121147  , p_source_65            IN NUMBER
121148 --Invoice Currency Code
121149  , p_source_66            IN VARCHAR2
121150 --Payables Encumbrance Upgrade Credit Base Amount
121151  , p_source_67            IN NUMBER
121152 --Payables Encumbrance Upgrade Debit Account
121153  , p_source_68            IN NUMBER
121154 --Payables Encumbrance Upgrade Debit Amount
121155  , p_source_69            IN NUMBER
121156 --Payables Encumbrance Upgrade Debit Base Amount
121157  , p_source_70            IN NUMBER
121158 --Payables Encumbrance Upgrade Option
121159  , p_source_71            IN VARCHAR2
121160 --Invoice Distribution Amount
121161  , p_source_72            IN NUMBER
121162 --Deferred Accounting End Date
121163  , p_source_76            IN DATE
121164 --Deferred Accounting Option
121165  , p_source_77            IN VARCHAR2
121166 --Deferred Accounting Start Date
121167  , p_source_78            IN DATE
121168 --Override Accounted Amount Indicator
121169  , p_source_79            IN VARCHAR2
121170  , p_source_79_meaning    IN VARCHAR2
121171 --Invoice Supplier Identifier
121172  , p_source_80            IN NUMBER
121173 --Invoice Supplier Site Identifier
121174  , p_source_81            IN NUMBER
121175 --Third Party Type
121176  , p_source_82            IN VARCHAR2
121177 --Parent Reversal Identifier
121178  , p_source_83            IN NUMBER
121179 --Invoice Distribution Tax Line Identifier
121180  , p_source_85            IN NUMBER
121181 --Invoice Distribution Tax Distribution Identifier from Tax
121182  , p_source_86            IN NUMBER
121183 --Invoice Distribution Summary Tax Line Identifier
121184  , p_source_87            IN NUMBER
121185 --Payables Upgrade Credit Encumbrance Type Identifier
121186  , p_source_88            IN NUMBER
121187 --Payables Upgrade Debit Encumbrance Type Identifier
121188  , p_source_89            IN NUMBER
121189 --Business Flow Accounts Payable Application Identifier
121190  , p_source_90            IN NUMBER
121191 --Business Flow Invoice Distribution Type
121192  , p_source_91            IN VARCHAR2
121193 --Business Flow Invoice Entity Code
121194  , p_source_92            IN VARCHAR2
121195 --Business Flow Invoice Distribution Identifier
121196  , p_source_93            IN NUMBER
121197 --Business Flow Invoice Identifier
121198  , p_source_94            IN NUMBER
121199 --Self-Assessed Tax Flag
121200  , p_source_135            IN VARCHAR2
121201  , p_source_135_meaning    IN VARCHAR2
121202 --Invoice Exchange Date
121203  , p_source_136            IN DATE
121204 --Invoice Exchange Rate
121205  , p_source_137            IN NUMBER
121206 --Invoice Exchange Rate Type
121207  , p_source_138            IN VARCHAR2
121208 )
121209 IS
121210 
121211 l_component_type              VARCHAR2(80);
121212 l_component_code              VARCHAR2(30);
121213 l_component_type_code         VARCHAR2(1);
121214 l_component_appl_id           INTEGER;
121215 l_amb_context_code            VARCHAR2(30);
121216 l_entity_code                 VARCHAR2(30);
121217 l_event_class_code            VARCHAR2(30);
121218 l_ae_header_id                NUMBER;
121219 l_event_type_code             VARCHAR2(30);
121220 l_line_definition_code        VARCHAR2(30);
121221 l_line_definition_owner_code  VARCHAR2(1);
121222 --
121223 -- adr variables
121224 l_segment                     VARCHAR2(30);
121225 l_ccid                        NUMBER;
121226 l_adr_transaction_coa_id      NUMBER;
121227 l_adr_accounting_coa_id       NUMBER;
121228 l_adr_flexfield_segment_code  VARCHAR2(30);
121229 l_adr_flex_value_set_id       NUMBER;
121230 l_adr_value_type_code         VARCHAR2(30);
121231 l_adr_value_combination_id    NUMBER;
121232 l_adr_value_segment_code      VARCHAR2(30);
121233 
121234 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121235 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121236 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121237 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121238 
121239 -- 4262811 Variables ------------------------------------------------------------------------------------------
121240 l_entered_amt_idx             NUMBER;
121241 l_accted_amt_idx              NUMBER;
121242 l_acc_rev_flag                VARCHAR2(1);
121243 l_accrual_line_num            NUMBER;
121244 l_tmp_amt                     NUMBER;
121245 l_acc_rev_natural_side_code   VARCHAR2(1);
121246 
121247 l_num_entries                 NUMBER;
121248 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121249 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121250 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121251 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121252 l_recog_line_1                NUMBER;
121253 l_recog_line_2                NUMBER;
121254 
121255 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121259 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121256 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121257 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121258 
121260 
121261 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121262 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121263 
121264 ---------------------------------------------------------------------------------------------------------------
121265 
121266 
121267 --
121268 -- bulk performance
121269 --
121270 l_balance_type_code           VARCHAR2(1);
121271 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121272 l_log_module                  VARCHAR2(240);
121273 
121274 --
121275 -- Upgrade strategy
121276 --
121277 l_actual_upg_option           VARCHAR2(1);
121278 l_enc_upg_option           VARCHAR2(1);
121279 
121280 --
121281 BEGIN
121282 --
121283 IF g_log_enabled THEN
121284       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
121285 END IF;
121286 --
121287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121288 
121289       trace
121290          (p_msg      => 'BEGIN of AcctLineType_197'
121291          ,p_level    => C_LEVEL_PROCEDURE
121292          ,p_module   => l_log_module);
121293 
121294 END IF;
121295 --
121296 l_component_type             := 'AMB_JLT';
121297 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_DM';
121298 l_component_type_code        := 'S';
121299 l_component_appl_id          :=  200;
121300 l_amb_context_code           := 'DEFAULT';
121301 l_entity_code                := 'AP_INVOICES';
121302 l_event_class_code           := 'DEBIT MEMOS';
121303 l_event_type_code            := 'DEBIT MEMOS_ALL';
121304 l_line_definition_owner_code := 'S';
121305 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
121306 --
121307 l_balance_type_code          := 'A';
121308 l_segment                     := NULL;
121309 l_ccid                        := NULL;
121310 l_adr_transaction_coa_id      := NULL;
121311 l_adr_accounting_coa_id       := NULL;
121312 l_adr_flexfield_segment_code  := NULL;
121313 l_adr_flex_value_set_id       := NULL;
121314 l_adr_value_type_code         := NULL;
121315 l_adr_value_combination_id    := NULL;
121316 l_adr_value_segment_code      := NULL;
121317 
121318 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
121319 l_bflow_class_code           := '';    -- 4219869 Business Flow
121320 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
121321 l_budgetary_control_flag     := 'N';
121322 
121323 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
121324 l_bflow_applied_to_amt       := NULL; -- 5132302
121325 l_entered_amt_idx            := NULL;          -- 4262811
121326 l_accted_amt_idx             := NULL;          -- 4262811
121327 l_acc_rev_flag               := NULL;          -- 4262811
121328 l_accrual_line_num           := NULL;          -- 4262811
121329 l_tmp_amt                    := NULL;          -- 4262811
121330 --
121331  
121332 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
121333     l_balance_type_code <> 'B' THEN
121334 IF NVL(p_source_33,'
121335 ') =  'REC_TAX' AND 
121336 NVL(p_source_135,'
121337 ') =  'Y'
121338  THEN 
121339 
121340    --
121341    XLA_AE_LINES_PKG.SetNewLine;
121342 
121343    p_balance_type_code          := l_balance_type_code;
121344    -- set the flag so later we will know whether the gain loss line needs to be created
121345    
121346    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121347      p_actual_flag :='A';
121348    END IF;
121349 
121350    --
121351    -- bulk performance
121352    --
121353    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121354                                       p_header_num   => 0); -- 4262811
121355    --
121356    -- set accounting line options
121357    --
121358    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121359            p_natural_side_code          => 'D'
121360          , p_gain_or_loss_flag          => 'N'
121361          , p_gl_transfer_mode_code      => 'S'
121362          , p_acct_entry_type_code       => 'A'
121363          , p_switch_side_flag           => 'Y'
121364          , p_merge_duplicate_code       => 'A'
121365          );
121366    --
121367    l_acc_rev_natural_side_code := 'C';  -- 4262811
121368    -- 
121369    --
121370    -- set accounting line type info
121371    --
121372    xla_ae_lines_pkg.SetAcctLineType
121373       (p_component_type             => l_component_type
121374       ,p_event_type_code            => l_event_type_code
121375       ,p_line_definition_owner_code => l_line_definition_owner_code
121376       ,p_line_definition_code       => l_line_definition_code
121377       ,p_accounting_line_code       => l_component_code
121378       ,p_accounting_line_type_code  => l_component_type_code
121379       ,p_accounting_line_appl_id    => l_component_appl_id
121380       ,p_amb_context_code           => l_amb_context_code
121381       ,p_entity_code                => l_entity_code
121382       ,p_event_class_code           => l_event_class_code);
121383    --
121384    -- set accounting class
121385    --
121386    xla_ae_lines_pkg.SetAcctClass(
121387            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
121388          , p_ae_header_id           => l_ae_header_id
121389          );
121390 
121394    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121391    --
121392    -- set rounding class
121393    --
121395                       'SELF_ASSESSED_TAX';
121396 
121397    --
121398    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121399    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121400    --
121401    -- bulk performance
121402    --
121403    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121404 
121405    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121406       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121407 
121408    -- 4955764
121409    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121410       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121411 
121412    -- 4458381 Public Sector Enh
121413    
121414    --
121415    -- set accounting attributes for the line type
121416    --
121417    l_entered_amt_idx := 23;
121418    l_accted_amt_idx  := 28;
121419    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
121420    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
121421    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
121422    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
121423    l_rec_acct_attrs.array_num_value(2)  := 
121424 xla_ae_sources_pkg.GetSystemSourceNum(
121425    p_source_code           => 'XLA_EVENT_APPL_ID'
121426  , p_source_type_code      => 'Y'
121427  , p_source_application_id =>  602
121428 );
121429    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
121430    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
121431    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
121432    l_rec_acct_attrs.array_char_value(4)  := 
121433 xla_ae_sources_pkg.GetSystemSourceChar(
121434    p_source_code           => 'XLA_ENTITY_CODE'
121435  , p_source_type_code      => 'Y'
121436  , p_source_application_id =>  602
121437 );
121438    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
121439    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
121440    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
121441    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
121442    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
121443    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
121444    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
121445    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
121446    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
121447    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
121448    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
121449    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
121450    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
121451    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
121452    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
121453    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
121454    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
121455    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
121456    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
121457    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
121458    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
121459    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
121460    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
121461    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
121462    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
121463    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
121464    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
121465    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
121466    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
121467    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
121468    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
121469    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
121470    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
121471    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
121472    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
121473    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
121474    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
121475    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
121476    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
121477    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
121478    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
121479    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
121480    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
121481    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
121482    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
121483    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
121484    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
121485    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
121486    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
121490    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
121487    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
121488    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
121489    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
121491    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
121492    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
121493    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
121494    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
121495    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
121496    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
121497    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
121498    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
121499    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
121500    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
121501    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
121502    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
121503    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
121504    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
121505    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
121506    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
121507    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
121508    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
121509    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
121510    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
121511    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
121512    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
121513    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
121514 
121515    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
121516    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
121517 
121518    ---------------------------------------------------------------------------------------------------------------
121519    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
121520    ---------------------------------------------------------------------------------------------------------------
121521    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
121522 
121523    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121524    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121525 
121526    IF xla_accounting_cache_pkg.GetValueChar
121527          (p_source_code         => 'LEDGER_CATEGORY_CODE'
121528          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
121529    AND l_bflow_method_code = 'PRIOR_ENTRY'
121530 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
121531    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121532          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121533        )
121534    THEN
121535          xla_ae_lines_pkg.BflowUpgEntry
121536            (p_business_method_code    => l_bflow_method_code
121537            ,p_business_class_code     => l_bflow_class_code
121538            ,p_balance_type            => l_balance_type_code);
121539    ELSE
121540       NULL;
121541 -- No business flow processing for business flow method of NONE.
121542    END IF;
121543 
121544    --
121545    -- call analytical criteria
121546    --
121547    
121548    --
121549    -- call description
121550    --
121551    
121552 xla_ae_lines_pkg.SetLineDescription(
121553    p_ae_header_id => l_ae_header_id
121554   ,p_description  => Description_1 (
121555      p_application_id         => p_application_id
121556    , p_ae_header_id           => l_ae_header_id 
121557 , p_source_1 => p_source_1
121558    )
121559 );
121560 
121561 
121562    --
121563    -- call ADRs
121564    -- Bug 4922099
121565    --
121566    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121567         (NVL(l_actual_upg_option, 'N') = 'O') OR
121568         (NVL(l_enc_upg_option, 'N') = 'O')
121569       )
121570    THEN
121571    NULL;
121572    --
121573    --
121574    
121575   l_ccid := AcctDerRule_41(
121576            p_application_id           => p_application_id
121577          , p_ae_header_id             => l_ae_header_id 
121578 , p_source_49 => p_source_49
121579          , x_transaction_coa_id       => l_adr_transaction_coa_id
121580          , x_accounting_coa_id        => l_adr_accounting_coa_id
121581          , x_value_type_code          => l_adr_value_type_code
121582          , p_side                     => 'NA'
121583    );
121584 
121585    xla_ae_lines_pkg.set_ccid(
121586     p_code_combination_id          => l_ccid
121587   , p_value_type_code              => l_adr_value_type_code
121588   , p_transaction_coa_id           => l_adr_transaction_coa_id
121589   , p_accounting_coa_id            => l_adr_accounting_coa_id
121590   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121591   , p_adr_type_code                => 'S'
121592   , p_component_type               => l_component_type
121593   , p_component_code               => l_component_code
121594   , p_component_type_code          => l_component_type_code
121595   , p_component_appl_id            => l_component_appl_id
121599 
121596   , p_amb_context_code             => l_amb_context_code
121597   , p_side                         => 'NA'
121598   );
121600 
121601    --
121602    --
121603    END IF;
121604    --
121605    -- Bug 4922099
121606    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121607           (NVL(l_enc_upg_option, 'N') = 'O')
121608         ) AND
121609         (l_bflow_method_code = 'PRIOR_ENTRY')
121610       )
121611    THEN
121612       IF
121613       --
121614       1 = 2
121615       --
121616       THEN
121617       xla_accounting_err_pkg.build_message
121618                                     (p_appli_s_name            => 'XLA'
121619                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121620                                     ,p_token_1                 => 'LINE_NUMBER'
121621                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121622                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121623                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121624                                                                              l_component_type
121625                                                                             ,l_component_code
121626                                                                             ,l_component_type_code
121627                                                                             ,l_component_appl_id
121628                                                                             ,l_amb_context_code
121629                                                                             ,l_entity_code
121630                                                                             ,l_event_class_code
121631                                                                            )
121632                                     ,p_token_3                 => 'OWNER'
121633                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121634                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121635                                                                           ,p_lookup_code    => l_component_type_code
121636                                                                          )
121637                                     ,p_token_4                 => 'PRODUCT_NAME'
121638                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121639                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121640                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121641                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121642                                     ,p_ae_header_id            =>  NULL
121643                                        );
121644 
121645         IF (C_LEVEL_ERROR>= g_log_level) THEN
121646                  trace
121647                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121648                       ,p_level    => C_LEVEL_ERROR
121649                       ,p_module   => l_log_module);
121650         END IF;
121651       END IF;
121652    END IF;
121653    --
121654    --
121655    ------------------------------------------------------------------------------------------------
121656    -- 4219869 Business Flow
121657    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121658    -- Prior Entry.  Currently, the following code is always generated.
121659    ------------------------------------------------------------------------------------------------
121660    XLA_AE_LINES_PKG.ValidateCurrentLine;
121661 
121662    ------------------------------------------------------------------------------------
121663    -- 4219869 Business Flow
121664    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121665    ------------------------------------------------------------------------------------
121666    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121667 
121668    ----------------------------------------------------------------------------------
121669    -- 4219869 Business Flow
121670    -- Update journal entry status -- Need to generate this within IF <condition>
121671    ----------------------------------------------------------------------------------
121672    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121673          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
121674          ,p_balance_type_code => l_balance_type_code
121675          );
121676 
121677    -------------------------------------------------------------------------------------------
121678    -- 4262811 - Generate the Accrual Reversal lines
121679    -------------------------------------------------------------------------------------------
121680    BEGIN
121681       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
121682                               (g_array_event(p_event_id).array_value_num('header_index'));
121683       IF l_acc_rev_flag IS NULL THEN
121684          l_acc_rev_flag := 'N';
121685       END IF;
121686    EXCEPTION
121687       WHEN OTHERS THEN
121688          l_acc_rev_flag := 'N';
121689    END;
121690    --
121691    IF (l_acc_rev_flag = 'Y') THEN
121692 
121693        -- 4645092  ------------------------------------------------------------------------------
121694        -- To allow MPA report to determine if it should generate report process
121695        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
121699        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
121696        ------------------------------------------------------------------------------------------
121697 
121698        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
121700    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
121701    -- call ADRs
121702    -- Bug 4922099
121703    --
121704    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121705         (NVL(l_actual_upg_option, 'N') = 'O') OR
121706         (NVL(l_enc_upg_option, 'N') = 'O')
121707       )
121708    THEN
121709    NULL;
121710    --
121711    --
121712    
121713   l_ccid := AcctDerRule_41(
121714            p_application_id           => p_application_id
121715          , p_ae_header_id             => l_ae_header_id 
121716 , p_source_49 => p_source_49
121717          , x_transaction_coa_id       => l_adr_transaction_coa_id
121718          , x_accounting_coa_id        => l_adr_accounting_coa_id
121719          , x_value_type_code          => l_adr_value_type_code
121720          , p_side                     => 'NA'
121721    );
121722 
121723    xla_ae_lines_pkg.set_ccid(
121724     p_code_combination_id          => l_ccid
121725   , p_value_type_code              => l_adr_value_type_code
121726   , p_transaction_coa_id           => l_adr_transaction_coa_id
121727   , p_accounting_coa_id            => l_adr_accounting_coa_id
121728   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121729   , p_adr_type_code                => 'S'
121730   , p_component_type               => l_component_type
121731   , p_component_code               => l_component_code
121732   , p_component_type_code          => l_component_type_code
121733   , p_component_appl_id            => l_component_appl_id
121734   , p_amb_context_code             => l_amb_context_code
121735   , p_side                         => 'NA'
121736   );
121737 
121738 
121739    --
121740    --
121741    END IF;
121742 
121743        --
121744        -- Update the line information that should be overwritten
121745        --
121746        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121747                                          p_header_num   => 1);
121748        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121749 
121750        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121751 
121752        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121753           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121754        END IF;
121755 
121756       --
121757       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121758       --
121759       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121760           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121761       ELSE
121762           ---------------------------------------------------------------------------------------------------
121763           -- 4262811a Switch Sign
121764           ---------------------------------------------------------------------------------------------------
121765           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121766           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121767                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121768           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121769                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121770           -- 5132302
121771           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121772                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121773 
121774       END IF;
121775 
121776       -- 4955764
121777       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121778       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121779 
121780 
121781       XLA_AE_LINES_PKG.ValidateCurrentLine;
121782       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121783 
121784       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121785                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121786                ,p_balance_type_code => l_balance_type_code);
121787 
121788    END IF;
121789 
121790    -----------------------------------------------------------------------------------------
121791    -- 4262811 Multiperiod Accounting
121792    -----------------------------------------------------------------------------------------
121793      -- No MPA option is assigned.
121794 
121795 
121796 END IF;
121797 END IF;
121798 --
121799 
121800 --
121801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121802    trace
121803       (p_msg      => 'END of AcctLineType_197'
121804       ,p_level    => C_LEVEL_PROCEDURE
121805       ,p_module   => l_log_module);
121806 END IF;
121807 --
121808 EXCEPTION
121809   WHEN xla_exceptions_pkg.application_exception THEN
121810       RAISE;
121811   WHEN OTHERS THEN
121812        xla_exceptions_pkg.raise_message
121816 
121813            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_197');
121814 END AcctLineType_197;
121815 --
121817 ---------------------------------------
121818 --
121819 -- PRIVATE FUNCTION
121820 --         AcctLineType_198
121821 --
121822 ---------------------------------------
121823 PROCEDURE AcctLineType_198 (
121824   p_application_id        IN NUMBER
121825  ,p_event_id              IN NUMBER
121826  ,p_calculate_acctd_flag  IN VARCHAR2
121827  ,p_calculate_g_l_flag    IN VARCHAR2
121828  ,p_actual_flag           IN OUT VARCHAR2
121829  ,p_balance_type_code     OUT VARCHAR2
121830  ,p_gain_or_loss_ref      OUT VARCHAR2
121831  
121832 --Invoice Distribution Description
121833  , p_source_1            IN VARCHAR2
121834 --Invoice Distribution Ledger Amount
121835  , p_source_21            IN NUMBER
121836 --Invoice Distribution Type
121837  , p_source_33            IN VARCHAR2
121838  , p_source_33_meaning    IN VARCHAR2
121839 --Self-Assessed Tax Account
121840  , p_source_49            IN NUMBER
121841 --Accounting Reversal Indicator
121842  , p_source_52            IN VARCHAR2
121843 --Distribution Link Type
121844  , p_source_54            IN VARCHAR2
121845 --Allocation to Main Distribution Identifier
121846  , p_source_56            IN NUMBER
121847 --Invoice Identifier
121848  , p_source_57            IN NUMBER
121849 --Invoice Distribution Identifier
121850  , p_source_63            IN NUMBER
121851 --Payables Encumbrance Upgrade Credit Account
121852  , p_source_64            IN NUMBER
121853 --Payables Encumbrance Upgrade Credit Amount
121854  , p_source_65            IN NUMBER
121855 --Invoice Currency Code
121856  , p_source_66            IN VARCHAR2
121857 --Payables Encumbrance Upgrade Credit Base Amount
121858  , p_source_67            IN NUMBER
121859 --Payables Encumbrance Upgrade Debit Account
121860  , p_source_68            IN NUMBER
121861 --Payables Encumbrance Upgrade Debit Amount
121862  , p_source_69            IN NUMBER
121863 --Payables Encumbrance Upgrade Debit Base Amount
121864  , p_source_70            IN NUMBER
121865 --Payables Encumbrance Upgrade Option
121866  , p_source_71            IN VARCHAR2
121867 --Invoice Distribution Amount
121868  , p_source_72            IN NUMBER
121869 --Deferred Accounting End Date
121870  , p_source_76            IN DATE
121871 --Deferred Accounting Option
121872  , p_source_77            IN VARCHAR2
121873 --Deferred Accounting Start Date
121874  , p_source_78            IN DATE
121875 --Override Accounted Amount Indicator
121876  , p_source_79            IN VARCHAR2
121877  , p_source_79_meaning    IN VARCHAR2
121878 --Invoice Supplier Identifier
121879  , p_source_80            IN NUMBER
121880 --Invoice Supplier Site Identifier
121881  , p_source_81            IN NUMBER
121882 --Third Party Type
121883  , p_source_82            IN VARCHAR2
121884 --Parent Reversal Identifier
121885  , p_source_83            IN NUMBER
121886 --Invoice Distribution Statistical Amount
121887  , p_source_84            IN NUMBER
121888 --Invoice Distribution Tax Line Identifier
121889  , p_source_85            IN NUMBER
121890 --Invoice Distribution Tax Distribution Identifier from Tax
121891  , p_source_86            IN NUMBER
121892 --Invoice Distribution Summary Tax Line Identifier
121893  , p_source_87            IN NUMBER
121894 --Payables Upgrade Credit Encumbrance Type Identifier
121895  , p_source_88            IN NUMBER
121896 --Payables Upgrade Debit Encumbrance Type Identifier
121897  , p_source_89            IN NUMBER
121898 --Business Flow Accounts Payable Application Identifier
121899  , p_source_90            IN NUMBER
121900 --Business Flow Invoice Distribution Type
121901  , p_source_91            IN VARCHAR2
121902 --Business Flow Invoice Entity Code
121903  , p_source_92            IN VARCHAR2
121904 --Business Flow Invoice Distribution Identifier
121905  , p_source_93            IN NUMBER
121906 --Business Flow Invoice Identifier
121907  , p_source_94            IN NUMBER
121908 --Self-Assessed Tax Flag
121909  , p_source_135            IN VARCHAR2
121910  , p_source_135_meaning    IN VARCHAR2
121911 --Invoice Exchange Date
121912  , p_source_136            IN DATE
121913 --Invoice Exchange Rate
121914  , p_source_137            IN NUMBER
121915 --Invoice Exchange Rate Type
121916  , p_source_138            IN VARCHAR2
121917 )
121918 IS
121919 
121920 l_component_type              VARCHAR2(80);
121921 l_component_code              VARCHAR2(30);
121922 l_component_type_code         VARCHAR2(1);
121923 l_component_appl_id           INTEGER;
121924 l_amb_context_code            VARCHAR2(30);
121925 l_entity_code                 VARCHAR2(30);
121926 l_event_class_code            VARCHAR2(30);
121927 l_ae_header_id                NUMBER;
121928 l_event_type_code             VARCHAR2(30);
121929 l_line_definition_code        VARCHAR2(30);
121930 l_line_definition_owner_code  VARCHAR2(1);
121931 --
121932 -- adr variables
121933 l_segment                     VARCHAR2(30);
121934 l_ccid                        NUMBER;
121935 l_adr_transaction_coa_id      NUMBER;
121936 l_adr_accounting_coa_id       NUMBER;
121937 l_adr_flexfield_segment_code  VARCHAR2(30);
121938 l_adr_flex_value_set_id       NUMBER;
121939 l_adr_value_type_code         VARCHAR2(30);
121940 l_adr_value_combination_id    NUMBER;
121941 l_adr_value_segment_code      VARCHAR2(30);
121942 
121943 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121944 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121945 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121949 l_entered_amt_idx             NUMBER;
121946 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121947 
121948 -- 4262811 Variables ------------------------------------------------------------------------------------------
121950 l_accted_amt_idx              NUMBER;
121951 l_acc_rev_flag                VARCHAR2(1);
121952 l_accrual_line_num            NUMBER;
121953 l_tmp_amt                     NUMBER;
121954 l_acc_rev_natural_side_code   VARCHAR2(1);
121955 
121956 l_num_entries                 NUMBER;
121957 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121958 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121959 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121960 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121961 l_recog_line_1                NUMBER;
121962 l_recog_line_2                NUMBER;
121963 
121964 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121965 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121966 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121967 
121968 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121969 
121970 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121971 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121972 
121973 ---------------------------------------------------------------------------------------------------------------
121974 
121975 
121976 --
121977 -- bulk performance
121978 --
121979 l_balance_type_code           VARCHAR2(1);
121980 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121981 l_log_module                  VARCHAR2(240);
121982 
121983 --
121984 -- Upgrade strategy
121985 --
121986 l_actual_upg_option           VARCHAR2(1);
121987 l_enc_upg_option           VARCHAR2(1);
121988 
121989 --
121990 BEGIN
121991 --
121992 IF g_log_enabled THEN
121993       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
121994 END IF;
121995 --
121996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121997 
121998       trace
121999          (p_msg      => 'BEGIN of AcctLineType_198'
122000          ,p_level    => C_LEVEL_PROCEDURE
122001          ,p_module   => l_log_module);
122002 
122003 END IF;
122004 --
122005 l_component_type             := 'AMB_JLT';
122006 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_INV';
122007 l_component_type_code        := 'S';
122008 l_component_appl_id          :=  200;
122009 l_amb_context_code           := 'DEFAULT';
122010 l_entity_code                := 'AP_INVOICES';
122011 l_event_class_code           := 'INVOICES';
122012 l_event_type_code            := 'INVOICES_ALL';
122013 l_line_definition_owner_code := 'S';
122014 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
122015 --
122016 l_balance_type_code          := 'A';
122017 l_segment                     := NULL;
122018 l_ccid                        := NULL;
122019 l_adr_transaction_coa_id      := NULL;
122020 l_adr_accounting_coa_id       := NULL;
122021 l_adr_flexfield_segment_code  := NULL;
122022 l_adr_flex_value_set_id       := NULL;
122023 l_adr_value_type_code         := NULL;
122024 l_adr_value_combination_id    := NULL;
122025 l_adr_value_segment_code      := NULL;
122026 
122027 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122028 l_bflow_class_code           := '';    -- 4219869 Business Flow
122029 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122030 l_budgetary_control_flag     := 'N';
122031 
122032 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122033 l_bflow_applied_to_amt       := NULL; -- 5132302
122034 l_entered_amt_idx            := NULL;          -- 4262811
122035 l_accted_amt_idx             := NULL;          -- 4262811
122036 l_acc_rev_flag               := NULL;          -- 4262811
122037 l_accrual_line_num           := NULL;          -- 4262811
122038 l_tmp_amt                    := NULL;          -- 4262811
122039 --
122040  
122041 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122042     l_balance_type_code <> 'B' THEN
122043 IF NVL(p_source_33,'
122044 ') =  'REC_TAX' AND 
122045 NVL(p_source_135,'
122046 ') =  'Y'
122047  THEN 
122048 
122049    --
122050    XLA_AE_LINES_PKG.SetNewLine;
122051 
122052    p_balance_type_code          := l_balance_type_code;
122053    -- set the flag so later we will know whether the gain loss line needs to be created
122054    
122055    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122056      p_actual_flag :='A';
122057    END IF;
122058 
122059    --
122060    -- bulk performance
122061    --
122062    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122063                                       p_header_num   => 0); -- 4262811
122064    --
122065    -- set accounting line options
122066    --
122067    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122068            p_natural_side_code          => 'D'
122069          , p_gain_or_loss_flag          => 'N'
122070          , p_gl_transfer_mode_code      => 'S'
122071          , p_acct_entry_type_code       => 'A'
122072          , p_switch_side_flag           => 'Y'
122073          , p_merge_duplicate_code       => 'A'
122074          );
122075    --
122079    -- set accounting line type info
122076    l_acc_rev_natural_side_code := 'C';  -- 4262811
122077    -- 
122078    --
122080    --
122081    xla_ae_lines_pkg.SetAcctLineType
122082       (p_component_type             => l_component_type
122083       ,p_event_type_code            => l_event_type_code
122084       ,p_line_definition_owner_code => l_line_definition_owner_code
122085       ,p_line_definition_code       => l_line_definition_code
122086       ,p_accounting_line_code       => l_component_code
122087       ,p_accounting_line_type_code  => l_component_type_code
122088       ,p_accounting_line_appl_id    => l_component_appl_id
122089       ,p_amb_context_code           => l_amb_context_code
122090       ,p_entity_code                => l_entity_code
122091       ,p_event_class_code           => l_event_class_code);
122092    --
122093    -- set accounting class
122094    --
122095    xla_ae_lines_pkg.SetAcctClass(
122096            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
122097          , p_ae_header_id           => l_ae_header_id
122098          );
122099 
122100    --
122101    -- set rounding class
122102    --
122103    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122104                       'SELF_ASSESSED_TAX';
122105 
122106    --
122107    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122108    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122109    --
122110    -- bulk performance
122111    --
122112    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
122113 
122114    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
122115       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
122116 
122117    -- 4955764
122118    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122119       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
122120 
122121    -- 4458381 Public Sector Enh
122122    
122123    --
122124    -- set accounting attributes for the line type
122125    --
122126    l_entered_amt_idx := 24;
122127    l_accted_amt_idx  := 29;
122128    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
122129    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122130    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
122131    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122132    l_rec_acct_attrs.array_num_value(2)  := 
122133 xla_ae_sources_pkg.GetSystemSourceNum(
122134    p_source_code           => 'XLA_EVENT_APPL_ID'
122135  , p_source_type_code      => 'Y'
122136  , p_source_application_id =>  602
122137 );
122138    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122139    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
122140    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122141    l_rec_acct_attrs.array_char_value(4)  := 
122142 xla_ae_sources_pkg.GetSystemSourceChar(
122143    p_source_code           => 'XLA_ENTITY_CODE'
122144  , p_source_type_code      => 'Y'
122145  , p_source_application_id =>  602
122146 );
122147    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122148    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
122149    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122150    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
122151    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
122152    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
122153    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
122154    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
122155    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122156    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
122157    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
122158    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
122159    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
122160    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
122161    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122162    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
122163    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
122164    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
122165    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
122166    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
122167    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
122168    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
122169    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
122170    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
122171    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
122172    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
122173    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
122174    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
122175    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
122176    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
122177    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
122178    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
122182    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
122179    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
122180    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
122181    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
122183    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
122184    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
122185    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
122186    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
122187    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
122188    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
122189    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
122190    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
122191    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
122192    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
122193    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
122194    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
122195    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
122196    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
122197    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
122198    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
122199    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
122200    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
122201    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
122202    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
122203    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
122204    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
122205    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
122206    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
122207    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
122208    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
122209    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
122210    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
122211    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
122212    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
122213    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
122214    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
122215    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
122216    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
122217    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
122218    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
122219    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
122220    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
122221    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
122222    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
122223    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
122224    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
122225    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
122226    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
122227 
122228    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122229    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122230 
122231    ---------------------------------------------------------------------------------------------------------------
122232    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122233    ---------------------------------------------------------------------------------------------------------------
122234    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122235 
122236    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122237    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122238 
122239    IF xla_accounting_cache_pkg.GetValueChar
122240          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122241          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122242    AND l_bflow_method_code = 'PRIOR_ENTRY'
122243 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122244    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122245          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122246        )
122247    THEN
122248          xla_ae_lines_pkg.BflowUpgEntry
122249            (p_business_method_code    => l_bflow_method_code
122250            ,p_business_class_code     => l_bflow_class_code
122251            ,p_balance_type            => l_balance_type_code);
122252    ELSE
122253       NULL;
122254 -- No business flow processing for business flow method of NONE.
122255    END IF;
122256 
122257    --
122258    -- call analytical criteria
122259    --
122260    
122261    --
122262    -- call description
122263    --
122264    
122265 xla_ae_lines_pkg.SetLineDescription(
122266    p_ae_header_id => l_ae_header_id
122267   ,p_description  => Description_1 (
122268      p_application_id         => p_application_id
122269    , p_ae_header_id           => l_ae_header_id 
122270 , p_source_1 => p_source_1
122271    )
122272 );
122273 
122274 
122275    --
122276    -- call ADRs
122277    -- Bug 4922099
122278    --
122279    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122280         (NVL(l_actual_upg_option, 'N') = 'O') OR
122281         (NVL(l_enc_upg_option, 'N') = 'O')
122285    --
122282       )
122283    THEN
122284    NULL;
122286    --
122287    
122288   l_ccid := AcctDerRule_41(
122289            p_application_id           => p_application_id
122290          , p_ae_header_id             => l_ae_header_id 
122291 , p_source_49 => p_source_49
122292          , x_transaction_coa_id       => l_adr_transaction_coa_id
122293          , x_accounting_coa_id        => l_adr_accounting_coa_id
122294          , x_value_type_code          => l_adr_value_type_code
122295          , p_side                     => 'NA'
122296    );
122297 
122298    xla_ae_lines_pkg.set_ccid(
122299     p_code_combination_id          => l_ccid
122300   , p_value_type_code              => l_adr_value_type_code
122301   , p_transaction_coa_id           => l_adr_transaction_coa_id
122302   , p_accounting_coa_id            => l_adr_accounting_coa_id
122303   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122304   , p_adr_type_code                => 'S'
122305   , p_component_type               => l_component_type
122306   , p_component_code               => l_component_code
122307   , p_component_type_code          => l_component_type_code
122308   , p_component_appl_id            => l_component_appl_id
122309   , p_amb_context_code             => l_amb_context_code
122310   , p_side                         => 'NA'
122311   );
122312 
122313 
122314    --
122315    --
122316    END IF;
122317    --
122318    -- Bug 4922099
122319    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
122320           (NVL(l_enc_upg_option, 'N') = 'O')
122321         ) AND
122322         (l_bflow_method_code = 'PRIOR_ENTRY')
122323       )
122324    THEN
122325       IF
122326       --
122327       1 = 2
122328       --
122329       THEN
122330       xla_accounting_err_pkg.build_message
122331                                     (p_appli_s_name            => 'XLA'
122332                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122333                                     ,p_token_1                 => 'LINE_NUMBER'
122334                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
122335                                     ,p_token_2                 => 'LINE_TYPE_NAME'
122336                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
122337                                                                              l_component_type
122338                                                                             ,l_component_code
122339                                                                             ,l_component_type_code
122340                                                                             ,l_component_appl_id
122341                                                                             ,l_amb_context_code
122342                                                                             ,l_entity_code
122343                                                                             ,l_event_class_code
122344                                                                            )
122345                                     ,p_token_3                 => 'OWNER'
122346                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
122347                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
122348                                                                           ,p_lookup_code    => l_component_type_code
122349                                                                          )
122350                                     ,p_token_4                 => 'PRODUCT_NAME'
122351                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
122352                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
122353                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
122354                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
122355                                     ,p_ae_header_id            =>  NULL
122356                                        );
122357 
122358         IF (C_LEVEL_ERROR>= g_log_level) THEN
122359                  trace
122360                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122361                       ,p_level    => C_LEVEL_ERROR
122362                       ,p_module   => l_log_module);
122363         END IF;
122364       END IF;
122365    END IF;
122366    --
122367    --
122368    ------------------------------------------------------------------------------------------------
122369    -- 4219869 Business Flow
122370    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
122371    -- Prior Entry.  Currently, the following code is always generated.
122372    ------------------------------------------------------------------------------------------------
122373    XLA_AE_LINES_PKG.ValidateCurrentLine;
122374 
122375    ------------------------------------------------------------------------------------
122376    -- 4219869 Business Flow
122377    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
122378    ------------------------------------------------------------------------------------
122379    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122380 
122381    ----------------------------------------------------------------------------------
122382    -- 4219869 Business Flow
122383    -- Update journal entry status -- Need to generate this within IF <condition>
122387          ,p_balance_type_code => l_balance_type_code
122384    ----------------------------------------------------------------------------------
122385    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122386          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122388          );
122389 
122390    -------------------------------------------------------------------------------------------
122391    -- 4262811 - Generate the Accrual Reversal lines
122392    -------------------------------------------------------------------------------------------
122393    BEGIN
122394       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122395                               (g_array_event(p_event_id).array_value_num('header_index'));
122396       IF l_acc_rev_flag IS NULL THEN
122397          l_acc_rev_flag := 'N';
122398       END IF;
122399    EXCEPTION
122400       WHEN OTHERS THEN
122401          l_acc_rev_flag := 'N';
122402    END;
122403    --
122404    IF (l_acc_rev_flag = 'Y') THEN
122405 
122406        -- 4645092  ------------------------------------------------------------------------------
122407        -- To allow MPA report to determine if it should generate report process
122408        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122409        ------------------------------------------------------------------------------------------
122410 
122411        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122412        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122413    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122414    -- call ADRs
122415    -- Bug 4922099
122416    --
122417    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122418         (NVL(l_actual_upg_option, 'N') = 'O') OR
122419         (NVL(l_enc_upg_option, 'N') = 'O')
122420       )
122421    THEN
122422    NULL;
122423    --
122424    --
122425    
122426   l_ccid := AcctDerRule_41(
122427            p_application_id           => p_application_id
122428          , p_ae_header_id             => l_ae_header_id 
122429 , p_source_49 => p_source_49
122430          , x_transaction_coa_id       => l_adr_transaction_coa_id
122431          , x_accounting_coa_id        => l_adr_accounting_coa_id
122432          , x_value_type_code          => l_adr_value_type_code
122433          , p_side                     => 'NA'
122434    );
122435 
122436    xla_ae_lines_pkg.set_ccid(
122437     p_code_combination_id          => l_ccid
122438   , p_value_type_code              => l_adr_value_type_code
122439   , p_transaction_coa_id           => l_adr_transaction_coa_id
122440   , p_accounting_coa_id            => l_adr_accounting_coa_id
122441   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122442   , p_adr_type_code                => 'S'
122443   , p_component_type               => l_component_type
122444   , p_component_code               => l_component_code
122445   , p_component_type_code          => l_component_type_code
122446   , p_component_appl_id            => l_component_appl_id
122447   , p_amb_context_code             => l_amb_context_code
122448   , p_side                         => 'NA'
122449   );
122450 
122451 
122452    --
122453    --
122454    END IF;
122455 
122456        --
122457        -- Update the line information that should be overwritten
122458        --
122459        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
122460                                          p_header_num   => 1);
122461        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
122462 
122463        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
122464 
122465        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
122466           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
122467        END IF;
122468 
122469       --
122470       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
122471       --
122472       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
122473           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
122474       ELSE
122475           ---------------------------------------------------------------------------------------------------
122476           -- 4262811a Switch Sign
122477           ---------------------------------------------------------------------------------------------------
122478           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
122479           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122480                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122481           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122482                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122483           -- 5132302
122484           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
122485                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122486 
122487       END IF;
122488 
122489       -- 4955764
122490       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122491       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
122492 
122493 
122497       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122494       XLA_AE_LINES_PKG.ValidateCurrentLine;
122495       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122496 
122498                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
122499                ,p_balance_type_code => l_balance_type_code);
122500 
122501    END IF;
122502 
122503    -----------------------------------------------------------------------------------------
122504    -- 4262811 Multiperiod Accounting
122505    -----------------------------------------------------------------------------------------
122506      -- No MPA option is assigned.
122507 
122508 
122509 END IF;
122510 END IF;
122511 --
122512 
122513 --
122514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122515    trace
122516       (p_msg      => 'END of AcctLineType_198'
122517       ,p_level    => C_LEVEL_PROCEDURE
122518       ,p_module   => l_log_module);
122519 END IF;
122520 --
122521 EXCEPTION
122522   WHEN xla_exceptions_pkg.application_exception THEN
122523       RAISE;
122524   WHEN OTHERS THEN
122525        xla_exceptions_pkg.raise_message
122526            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_198');
122527 END AcctLineType_198;
122528 --
122529 
122530 ---------------------------------------
122531 --
122532 -- PRIVATE FUNCTION
122533 --         AcctLineType_199
122534 --
122535 ---------------------------------------
122536 PROCEDURE AcctLineType_199 (
122537   p_application_id        IN NUMBER
122538  ,p_event_id              IN NUMBER
122539  ,p_calculate_acctd_flag  IN VARCHAR2
122540  ,p_calculate_g_l_flag    IN VARCHAR2
122541  ,p_actual_flag           IN OUT VARCHAR2
122542  ,p_balance_type_code     OUT VARCHAR2
122543  ,p_gain_or_loss_ref      OUT VARCHAR2
122544  
122545 --Invoice Distribution Description
122546  , p_source_1            IN VARCHAR2
122547 --Invoice Distribution Ledger Amount
122548  , p_source_21            IN NUMBER
122549 --Invoice Distribution Type
122550  , p_source_33            IN VARCHAR2
122551  , p_source_33_meaning    IN VARCHAR2
122552 --Self-Assessed Tax Liability Account
122553  , p_source_50            IN NUMBER
122554 --Accounting Reversal Indicator
122555  , p_source_52            IN VARCHAR2
122556 --Distribution Link Type
122557  , p_source_54            IN VARCHAR2
122558 --Allocation to Main Distribution Identifier
122559  , p_source_56            IN NUMBER
122560 --Invoice Identifier
122561  , p_source_57            IN NUMBER
122562 --Invoice Distribution Identifier
122563  , p_source_63            IN NUMBER
122564 --Payables Encumbrance Upgrade Credit Account
122565  , p_source_64            IN NUMBER
122566 --Payables Encumbrance Upgrade Credit Amount
122567  , p_source_65            IN NUMBER
122568 --Invoice Currency Code
122569  , p_source_66            IN VARCHAR2
122570 --Payables Encumbrance Upgrade Credit Base Amount
122571  , p_source_67            IN NUMBER
122572 --Payables Encumbrance Upgrade Debit Account
122573  , p_source_68            IN NUMBER
122574 --Payables Encumbrance Upgrade Debit Amount
122575  , p_source_69            IN NUMBER
122576 --Payables Encumbrance Upgrade Debit Base Amount
122577  , p_source_70            IN NUMBER
122578 --Payables Encumbrance Upgrade Option
122579  , p_source_71            IN VARCHAR2
122580 --Invoice Distribution Amount
122581  , p_source_72            IN NUMBER
122582 --Deferred Accounting End Date
122583  , p_source_76            IN DATE
122584 --Deferred Accounting Option
122585  , p_source_77            IN VARCHAR2
122586 --Deferred Accounting Start Date
122587  , p_source_78            IN DATE
122588 --Override Accounted Amount Indicator
122589  , p_source_79            IN VARCHAR2
122590  , p_source_79_meaning    IN VARCHAR2
122591 --Invoice Supplier Identifier
122592  , p_source_80            IN NUMBER
122593 --Invoice Supplier Site Identifier
122594  , p_source_81            IN NUMBER
122595 --Third Party Type
122596  , p_source_82            IN VARCHAR2
122597 --Parent Reversal Identifier
122598  , p_source_83            IN NUMBER
122599 --Invoice Distribution Statistical Amount
122600  , p_source_84            IN NUMBER
122601 --Invoice Distribution Tax Line Identifier
122602  , p_source_85            IN NUMBER
122603 --Invoice Distribution Tax Distribution Identifier from Tax
122604  , p_source_86            IN NUMBER
122605 --Invoice Distribution Summary Tax Line Identifier
122606  , p_source_87            IN NUMBER
122607 --Payables Upgrade Credit Encumbrance Type Identifier
122608  , p_source_88            IN NUMBER
122609 --Payables Upgrade Debit Encumbrance Type Identifier
122610  , p_source_89            IN NUMBER
122611 --Business Flow Accounts Payable Application Identifier
122612  , p_source_90            IN NUMBER
122613 --Business Flow Invoice Distribution Type
122614  , p_source_91            IN VARCHAR2
122615 --Business Flow Invoice Entity Code
122616  , p_source_92            IN VARCHAR2
122617 --Business Flow Invoice Distribution Identifier
122618  , p_source_93            IN NUMBER
122619 --Business Flow Invoice Identifier
122620  , p_source_94            IN NUMBER
122621 --Self-Assessed Tax Flag
122622  , p_source_135            IN VARCHAR2
122623  , p_source_135_meaning    IN VARCHAR2
122624 --Invoice Exchange Date
122625  , p_source_136            IN DATE
122626 --Invoice Exchange Rate
122627  , p_source_137            IN NUMBER
122628 --Invoice Exchange Rate Type
122629  , p_source_138            IN VARCHAR2
122633 l_component_type              VARCHAR2(80);
122630 )
122631 IS
122632 
122634 l_component_code              VARCHAR2(30);
122635 l_component_type_code         VARCHAR2(1);
122636 l_component_appl_id           INTEGER;
122637 l_amb_context_code            VARCHAR2(30);
122638 l_entity_code                 VARCHAR2(30);
122639 l_event_class_code            VARCHAR2(30);
122640 l_ae_header_id                NUMBER;
122641 l_event_type_code             VARCHAR2(30);
122642 l_line_definition_code        VARCHAR2(30);
122643 l_line_definition_owner_code  VARCHAR2(1);
122644 --
122645 -- adr variables
122646 l_segment                     VARCHAR2(30);
122647 l_ccid                        NUMBER;
122648 l_adr_transaction_coa_id      NUMBER;
122649 l_adr_accounting_coa_id       NUMBER;
122650 l_adr_flexfield_segment_code  VARCHAR2(30);
122651 l_adr_flex_value_set_id       NUMBER;
122652 l_adr_value_type_code         VARCHAR2(30);
122653 l_adr_value_combination_id    NUMBER;
122654 l_adr_value_segment_code      VARCHAR2(30);
122655 
122656 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122657 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122658 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122659 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122660 
122661 -- 4262811 Variables ------------------------------------------------------------------------------------------
122662 l_entered_amt_idx             NUMBER;
122663 l_accted_amt_idx              NUMBER;
122664 l_acc_rev_flag                VARCHAR2(1);
122665 l_accrual_line_num            NUMBER;
122666 l_tmp_amt                     NUMBER;
122667 l_acc_rev_natural_side_code   VARCHAR2(1);
122668 
122669 l_num_entries                 NUMBER;
122670 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122671 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122672 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122673 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122674 l_recog_line_1                NUMBER;
122675 l_recog_line_2                NUMBER;
122676 
122677 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122678 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122679 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122680 
122681 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122682 
122683 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122684 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122685 
122686 ---------------------------------------------------------------------------------------------------------------
122687 
122688 
122689 --
122690 -- bulk performance
122691 --
122692 l_balance_type_code           VARCHAR2(1);
122693 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
122694 l_log_module                  VARCHAR2(240);
122695 
122696 --
122697 -- Upgrade strategy
122698 --
122699 l_actual_upg_option           VARCHAR2(1);
122700 l_enc_upg_option           VARCHAR2(1);
122701 
122702 --
122703 BEGIN
122704 --
122705 IF g_log_enabled THEN
122706       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
122707 END IF;
122708 --
122709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122710 
122711       trace
122712          (p_msg      => 'BEGIN of AcctLineType_199'
122713          ,p_level    => C_LEVEL_PROCEDURE
122714          ,p_module   => l_log_module);
122715 
122716 END IF;
122717 --
122718 l_component_type             := 'AMB_JLT';
122719 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_CM';
122720 l_component_type_code        := 'S';
122721 l_component_appl_id          :=  200;
122722 l_amb_context_code           := 'DEFAULT';
122723 l_entity_code                := 'AP_INVOICES';
122724 l_event_class_code           := 'CREDIT MEMOS';
122725 l_event_type_code            := 'CREDIT MEMOS_ALL';
122726 l_line_definition_owner_code := 'S';
122727 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
122728 --
122729 l_balance_type_code          := 'A';
122730 l_segment                     := NULL;
122731 l_ccid                        := NULL;
122732 l_adr_transaction_coa_id      := NULL;
122733 l_adr_accounting_coa_id       := NULL;
122734 l_adr_flexfield_segment_code  := NULL;
122735 l_adr_flex_value_set_id       := NULL;
122736 l_adr_value_type_code         := NULL;
122737 l_adr_value_combination_id    := NULL;
122738 l_adr_value_segment_code      := NULL;
122739 
122740 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122741 l_bflow_class_code           := '';    -- 4219869 Business Flow
122742 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122743 l_budgetary_control_flag     := 'N';
122744 
122745 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122746 l_bflow_applied_to_amt       := NULL; -- 5132302
122747 l_entered_amt_idx            := NULL;          -- 4262811
122748 l_accted_amt_idx             := NULL;          -- 4262811
122749 l_acc_rev_flag               := NULL;          -- 4262811
122750 l_accrual_line_num           := NULL;          -- 4262811
122751 l_tmp_amt                    := NULL;          -- 4262811
122752 --
122753  
122754 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122758 NVL(p_source_33,'
122755     l_balance_type_code <> 'B' THEN
122756 IF (NVL(p_source_33,'
122757 ') =  'REC_TAX' OR 
122759 ') =  'NONREC_TAX') AND 
122760 NVL(p_source_135,'
122761 ') =  'Y'
122762  THEN 
122763 
122764    --
122765    XLA_AE_LINES_PKG.SetNewLine;
122766 
122767    p_balance_type_code          := l_balance_type_code;
122768    -- set the flag so later we will know whether the gain loss line needs to be created
122769    
122770    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122771      p_actual_flag :='A';
122772    END IF;
122773 
122774    --
122775    -- bulk performance
122776    --
122777    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122778                                       p_header_num   => 0); -- 4262811
122779    --
122780    -- set accounting line options
122781    --
122782    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122783            p_natural_side_code          => 'C'
122784          , p_gain_or_loss_flag          => 'N'
122785          , p_gl_transfer_mode_code      => 'S'
122786          , p_acct_entry_type_code       => 'A'
122787          , p_switch_side_flag           => 'Y'
122788          , p_merge_duplicate_code       => 'A'
122789          );
122790    --
122791    l_acc_rev_natural_side_code := 'D';  -- 4262811
122792    -- 
122793    --
122794    -- set accounting line type info
122795    --
122796    xla_ae_lines_pkg.SetAcctLineType
122797       (p_component_type             => l_component_type
122798       ,p_event_type_code            => l_event_type_code
122799       ,p_line_definition_owner_code => l_line_definition_owner_code
122800       ,p_line_definition_code       => l_line_definition_code
122801       ,p_accounting_line_code       => l_component_code
122802       ,p_accounting_line_type_code  => l_component_type_code
122803       ,p_accounting_line_appl_id    => l_component_appl_id
122804       ,p_amb_context_code           => l_amb_context_code
122805       ,p_entity_code                => l_entity_code
122806       ,p_event_class_code           => l_event_class_code);
122807    --
122808    -- set accounting class
122809    --
122810    xla_ae_lines_pkg.SetAcctClass(
122811            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
122812          , p_ae_header_id           => l_ae_header_id
122813          );
122814 
122815    --
122816    -- set rounding class
122817    --
122818    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122819                       'SELF_ASSESSED_TAX';
122820 
122821    --
122822    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122823    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122824    --
122825    -- bulk performance
122826    --
122827    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
122828 
122829    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
122830       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
122831 
122832    -- 4955764
122833    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122834       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
122835 
122836    -- 4458381 Public Sector Enh
122837    
122838    --
122839    -- set accounting attributes for the line type
122840    --
122841    l_entered_amt_idx := 23;
122842    l_accted_amt_idx  := 28;
122843    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
122844    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122845    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
122846    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122847    l_rec_acct_attrs.array_num_value(2)  := 
122848 xla_ae_sources_pkg.GetSystemSourceNum(
122849    p_source_code           => 'XLA_EVENT_APPL_ID'
122850  , p_source_type_code      => 'Y'
122851  , p_source_application_id =>  602
122852 );
122853    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122854    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
122855    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122856    l_rec_acct_attrs.array_char_value(4)  := 
122857 xla_ae_sources_pkg.GetSystemSourceChar(
122858    p_source_code           => 'XLA_ENTITY_CODE'
122859  , p_source_type_code      => 'Y'
122860  , p_source_application_id =>  602
122861 );
122862    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122863    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
122864    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122865    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
122866    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
122867    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
122868    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122869    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
122870    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
122871    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
122872    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
122873    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
122874    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122878    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
122875    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
122876    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
122877    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
122879    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
122880    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
122881    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
122882    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
122883    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
122884    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
122885    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
122886    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
122887    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
122888    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
122889    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
122890    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
122891    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
122892    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
122893    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
122894    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
122895    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
122896    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
122897    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
122898    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
122899    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
122900    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
122901    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
122902    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
122903    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
122904    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
122905    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
122906    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
122907    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
122908    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
122909    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
122910    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
122911    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
122912    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
122913    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
122914    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
122915    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
122916    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
122917    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
122918    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
122919    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
122920    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
122921    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
122922    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
122923    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
122924    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
122925    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
122926    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
122927    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
122928    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
122929    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
122930    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
122931    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
122932    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
122933    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
122934    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
122935    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
122936    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
122937    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
122938    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
122939    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
122940 
122941    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122942    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122943 
122944    ---------------------------------------------------------------------------------------------------------------
122945    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122946    ---------------------------------------------------------------------------------------------------------------
122947    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122948 
122949    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122950    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122951 
122952    IF xla_accounting_cache_pkg.GetValueChar
122953          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122954          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122955    AND l_bflow_method_code = 'PRIOR_ENTRY'
122956 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122957    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122958          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122959        )
122960    THEN
122964            ,p_balance_type            => l_balance_type_code);
122961          xla_ae_lines_pkg.BflowUpgEntry
122962            (p_business_method_code    => l_bflow_method_code
122963            ,p_business_class_code     => l_bflow_class_code
122965    ELSE
122966       NULL;
122967 -- No business flow processing for business flow method of NONE.
122968    END IF;
122969 
122970    --
122971    -- call analytical criteria
122972    --
122973    
122974    --
122975    -- call description
122976    --
122977    
122978 xla_ae_lines_pkg.SetLineDescription(
122979    p_ae_header_id => l_ae_header_id
122980   ,p_description  => Description_1 (
122981      p_application_id         => p_application_id
122982    , p_ae_header_id           => l_ae_header_id 
122983 , p_source_1 => p_source_1
122984    )
122985 );
122986 
122987 
122988    --
122989    -- call ADRs
122990    -- Bug 4922099
122991    --
122992    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122993         (NVL(l_actual_upg_option, 'N') = 'O') OR
122994         (NVL(l_enc_upg_option, 'N') = 'O')
122995       )
122996    THEN
122997    NULL;
122998    --
122999    --
123000    
123001   l_ccid := AcctDerRule_42(
123002            p_application_id           => p_application_id
123003          , p_ae_header_id             => l_ae_header_id 
123004 , p_source_50 => p_source_50
123005          , x_transaction_coa_id       => l_adr_transaction_coa_id
123006          , x_accounting_coa_id        => l_adr_accounting_coa_id
123007          , x_value_type_code          => l_adr_value_type_code
123008          , p_side                     => 'NA'
123009    );
123010 
123011    xla_ae_lines_pkg.set_ccid(
123012     p_code_combination_id          => l_ccid
123013   , p_value_type_code              => l_adr_value_type_code
123014   , p_transaction_coa_id           => l_adr_transaction_coa_id
123015   , p_accounting_coa_id            => l_adr_accounting_coa_id
123016   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123017   , p_adr_type_code                => 'S'
123018   , p_component_type               => l_component_type
123019   , p_component_code               => l_component_code
123020   , p_component_type_code          => l_component_type_code
123021   , p_component_appl_id            => l_component_appl_id
123022   , p_amb_context_code             => l_amb_context_code
123023   , p_side                         => 'NA'
123024   );
123025 
123026 
123027    --
123028    --
123029    END IF;
123030    --
123031    -- Bug 4922099
123032    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123033           (NVL(l_enc_upg_option, 'N') = 'O')
123034         ) AND
123035         (l_bflow_method_code = 'PRIOR_ENTRY')
123036       )
123037    THEN
123038       IF
123039       --
123040       1 = 2
123041       --
123042       THEN
123043       xla_accounting_err_pkg.build_message
123044                                     (p_appli_s_name            => 'XLA'
123045                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123046                                     ,p_token_1                 => 'LINE_NUMBER'
123047                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123048                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123049                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123050                                                                              l_component_type
123051                                                                             ,l_component_code
123052                                                                             ,l_component_type_code
123053                                                                             ,l_component_appl_id
123054                                                                             ,l_amb_context_code
123055                                                                             ,l_entity_code
123056                                                                             ,l_event_class_code
123057                                                                            )
123058                                     ,p_token_3                 => 'OWNER'
123059                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123060                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123061                                                                           ,p_lookup_code    => l_component_type_code
123062                                                                          )
123063                                     ,p_token_4                 => 'PRODUCT_NAME'
123064                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123065                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123066                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123067                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123068                                     ,p_ae_header_id            =>  NULL
123069                                        );
123070 
123071         IF (C_LEVEL_ERROR>= g_log_level) THEN
123072                  trace
123073                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123077       END IF;
123074                       ,p_level    => C_LEVEL_ERROR
123075                       ,p_module   => l_log_module);
123076         END IF;
123078    END IF;
123079    --
123080    --
123081    ------------------------------------------------------------------------------------------------
123082    -- 4219869 Business Flow
123083    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123084    -- Prior Entry.  Currently, the following code is always generated.
123085    ------------------------------------------------------------------------------------------------
123086    XLA_AE_LINES_PKG.ValidateCurrentLine;
123087 
123088    ------------------------------------------------------------------------------------
123089    -- 4219869 Business Flow
123090    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123091    ------------------------------------------------------------------------------------
123092    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123093 
123094    ----------------------------------------------------------------------------------
123095    -- 4219869 Business Flow
123096    -- Update journal entry status -- Need to generate this within IF <condition>
123097    ----------------------------------------------------------------------------------
123098    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123099          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123100          ,p_balance_type_code => l_balance_type_code
123101          );
123102 
123103    -------------------------------------------------------------------------------------------
123104    -- 4262811 - Generate the Accrual Reversal lines
123105    -------------------------------------------------------------------------------------------
123106    BEGIN
123107       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123108                               (g_array_event(p_event_id).array_value_num('header_index'));
123109       IF l_acc_rev_flag IS NULL THEN
123110          l_acc_rev_flag := 'N';
123111       END IF;
123112    EXCEPTION
123113       WHEN OTHERS THEN
123114          l_acc_rev_flag := 'N';
123115    END;
123116    --
123117    IF (l_acc_rev_flag = 'Y') THEN
123118 
123119        -- 4645092  ------------------------------------------------------------------------------
123120        -- To allow MPA report to determine if it should generate report process
123121        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
123122        ------------------------------------------------------------------------------------------
123123 
123124        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
123125        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
123126    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
123127    -- call ADRs
123128    -- Bug 4922099
123129    --
123130    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123131         (NVL(l_actual_upg_option, 'N') = 'O') OR
123132         (NVL(l_enc_upg_option, 'N') = 'O')
123133       )
123134    THEN
123135    NULL;
123136    --
123137    --
123138    
123139   l_ccid := AcctDerRule_42(
123140            p_application_id           => p_application_id
123141          , p_ae_header_id             => l_ae_header_id 
123142 , p_source_50 => p_source_50
123143          , x_transaction_coa_id       => l_adr_transaction_coa_id
123144          , x_accounting_coa_id        => l_adr_accounting_coa_id
123145          , x_value_type_code          => l_adr_value_type_code
123146          , p_side                     => 'NA'
123147    );
123148 
123149    xla_ae_lines_pkg.set_ccid(
123150     p_code_combination_id          => l_ccid
123151   , p_value_type_code              => l_adr_value_type_code
123152   , p_transaction_coa_id           => l_adr_transaction_coa_id
123153   , p_accounting_coa_id            => l_adr_accounting_coa_id
123154   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123155   , p_adr_type_code                => 'S'
123156   , p_component_type               => l_component_type
123157   , p_component_code               => l_component_code
123158   , p_component_type_code          => l_component_type_code
123159   , p_component_appl_id            => l_component_appl_id
123160   , p_amb_context_code             => l_amb_context_code
123161   , p_side                         => 'NA'
123162   );
123163 
123164 
123165    --
123166    --
123167    END IF;
123168 
123169        --
123170        -- Update the line information that should be overwritten
123171        --
123172        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123173                                          p_header_num   => 1);
123174        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123175 
123176        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123177 
123178        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123179           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123180        END IF;
123181 
123182       --
123183       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123184       --
123185       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123186           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123187       ELSE
123191           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123188           ---------------------------------------------------------------------------------------------------
123189           -- 4262811a Switch Sign
123190           ---------------------------------------------------------------------------------------------------
123192           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123193                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123194           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123195                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123196           -- 5132302
123197           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123198                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123199 
123200       END IF;
123201 
123202       -- 4955764
123203       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123204       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123205 
123206 
123207       XLA_AE_LINES_PKG.ValidateCurrentLine;
123208       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123209 
123210       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123211                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123212                ,p_balance_type_code => l_balance_type_code);
123213 
123214    END IF;
123215 
123216    -----------------------------------------------------------------------------------------
123217    -- 4262811 Multiperiod Accounting
123218    -----------------------------------------------------------------------------------------
123219      -- No MPA option is assigned.
123220 
123221 
123222 END IF;
123223 END IF;
123224 --
123225 
123226 --
123227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123228    trace
123229       (p_msg      => 'END of AcctLineType_199'
123230       ,p_level    => C_LEVEL_PROCEDURE
123231       ,p_module   => l_log_module);
123232 END IF;
123233 --
123234 EXCEPTION
123235   WHEN xla_exceptions_pkg.application_exception THEN
123236       RAISE;
123237   WHEN OTHERS THEN
123238        xla_exceptions_pkg.raise_message
123239            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_199');
123240 END AcctLineType_199;
123241 --
123242 
123243 ---------------------------------------
123244 --
123245 -- PRIVATE FUNCTION
123246 --         AcctLineType_200
123247 --
123248 ---------------------------------------
123249 PROCEDURE AcctLineType_200 (
123250   p_application_id        IN NUMBER
123251  ,p_event_id              IN NUMBER
123252  ,p_calculate_acctd_flag  IN VARCHAR2
123253  ,p_calculate_g_l_flag    IN VARCHAR2
123254  ,p_actual_flag           IN OUT VARCHAR2
123255  ,p_balance_type_code     OUT VARCHAR2
123256  ,p_gain_or_loss_ref      OUT VARCHAR2
123257  
123258 --Invoice Distribution Description
123259  , p_source_1            IN VARCHAR2
123260 --Invoice Distribution Ledger Amount
123261  , p_source_21            IN NUMBER
123262 --Invoice Distribution Type
123263  , p_source_33            IN VARCHAR2
123264  , p_source_33_meaning    IN VARCHAR2
123265 --Self-Assessed Tax Liability Account
123266  , p_source_50            IN NUMBER
123267 --Accounting Reversal Indicator
123268  , p_source_52            IN VARCHAR2
123269 --Distribution Link Type
123270  , p_source_54            IN VARCHAR2
123271 --Allocation to Main Distribution Identifier
123272  , p_source_56            IN NUMBER
123273 --Invoice Identifier
123274  , p_source_57            IN NUMBER
123275 --Invoice Distribution Identifier
123276  , p_source_63            IN NUMBER
123277 --Payables Encumbrance Upgrade Credit Account
123278  , p_source_64            IN NUMBER
123279 --Payables Encumbrance Upgrade Credit Amount
123280  , p_source_65            IN NUMBER
123281 --Invoice Currency Code
123282  , p_source_66            IN VARCHAR2
123283 --Payables Encumbrance Upgrade Credit Base Amount
123284  , p_source_67            IN NUMBER
123285 --Payables Encumbrance Upgrade Debit Account
123286  , p_source_68            IN NUMBER
123287 --Payables Encumbrance Upgrade Debit Amount
123288  , p_source_69            IN NUMBER
123289 --Payables Encumbrance Upgrade Debit Base Amount
123290  , p_source_70            IN NUMBER
123291 --Payables Encumbrance Upgrade Option
123292  , p_source_71            IN VARCHAR2
123293 --Invoice Distribution Amount
123294  , p_source_72            IN NUMBER
123295 --Deferred Accounting End Date
123296  , p_source_76            IN DATE
123297 --Deferred Accounting Option
123298  , p_source_77            IN VARCHAR2
123299 --Deferred Accounting Start Date
123300  , p_source_78            IN DATE
123301 --Override Accounted Amount Indicator
123302  , p_source_79            IN VARCHAR2
123303  , p_source_79_meaning    IN VARCHAR2
123304 --Invoice Supplier Identifier
123305  , p_source_80            IN NUMBER
123306 --Invoice Supplier Site Identifier
123307  , p_source_81            IN NUMBER
123308 --Third Party Type
123309  , p_source_82            IN VARCHAR2
123310 --Parent Reversal Identifier
123311  , p_source_83            IN NUMBER
123312 --Invoice Distribution Tax Line Identifier
123316 --Invoice Distribution Summary Tax Line Identifier
123313  , p_source_85            IN NUMBER
123314 --Invoice Distribution Tax Distribution Identifier from Tax
123315  , p_source_86            IN NUMBER
123317  , p_source_87            IN NUMBER
123318 --Payables Upgrade Credit Encumbrance Type Identifier
123319  , p_source_88            IN NUMBER
123320 --Payables Upgrade Debit Encumbrance Type Identifier
123321  , p_source_89            IN NUMBER
123322 --Business Flow Accounts Payable Application Identifier
123323  , p_source_90            IN NUMBER
123324 --Business Flow Invoice Distribution Type
123325  , p_source_91            IN VARCHAR2
123326 --Business Flow Invoice Entity Code
123327  , p_source_92            IN VARCHAR2
123328 --Business Flow Invoice Distribution Identifier
123329  , p_source_93            IN NUMBER
123330 --Business Flow Invoice Identifier
123331  , p_source_94            IN NUMBER
123332 --Self-Assessed Tax Flag
123333  , p_source_135            IN VARCHAR2
123334  , p_source_135_meaning    IN VARCHAR2
123335 --Invoice Exchange Date
123336  , p_source_136            IN DATE
123337 --Invoice Exchange Rate
123338  , p_source_137            IN NUMBER
123339 --Invoice Exchange Rate Type
123340  , p_source_138            IN VARCHAR2
123341 )
123342 IS
123343 
123344 l_component_type              VARCHAR2(80);
123345 l_component_code              VARCHAR2(30);
123346 l_component_type_code         VARCHAR2(1);
123347 l_component_appl_id           INTEGER;
123348 l_amb_context_code            VARCHAR2(30);
123349 l_entity_code                 VARCHAR2(30);
123350 l_event_class_code            VARCHAR2(30);
123351 l_ae_header_id                NUMBER;
123352 l_event_type_code             VARCHAR2(30);
123353 l_line_definition_code        VARCHAR2(30);
123354 l_line_definition_owner_code  VARCHAR2(1);
123355 --
123356 -- adr variables
123357 l_segment                     VARCHAR2(30);
123358 l_ccid                        NUMBER;
123359 l_adr_transaction_coa_id      NUMBER;
123360 l_adr_accounting_coa_id       NUMBER;
123361 l_adr_flexfield_segment_code  VARCHAR2(30);
123362 l_adr_flex_value_set_id       NUMBER;
123363 l_adr_value_type_code         VARCHAR2(30);
123364 l_adr_value_combination_id    NUMBER;
123365 l_adr_value_segment_code      VARCHAR2(30);
123366 
123367 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
123368 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
123369 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
123370 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
123371 
123372 -- 4262811 Variables ------------------------------------------------------------------------------------------
123373 l_entered_amt_idx             NUMBER;
123374 l_accted_amt_idx              NUMBER;
123375 l_acc_rev_flag                VARCHAR2(1);
123376 l_accrual_line_num            NUMBER;
123377 l_tmp_amt                     NUMBER;
123378 l_acc_rev_natural_side_code   VARCHAR2(1);
123379 
123380 l_num_entries                 NUMBER;
123381 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
123382 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
123383 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
123384 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
123385 l_recog_line_1                NUMBER;
123386 l_recog_line_2                NUMBER;
123387 
123388 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
123389 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
123390 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
123391 
123392 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
123393 
123394 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
123395 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
123396 
123397 ---------------------------------------------------------------------------------------------------------------
123398 
123399 
123400 --
123401 -- bulk performance
123402 --
123403 l_balance_type_code           VARCHAR2(1);
123404 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123405 l_log_module                  VARCHAR2(240);
123406 
123407 --
123408 -- Upgrade strategy
123409 --
123410 l_actual_upg_option           VARCHAR2(1);
123411 l_enc_upg_option           VARCHAR2(1);
123412 
123413 --
123414 BEGIN
123415 --
123416 IF g_log_enabled THEN
123417       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
123418 END IF;
123419 --
123420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123421 
123422       trace
123423          (p_msg      => 'BEGIN of AcctLineType_200'
123424          ,p_level    => C_LEVEL_PROCEDURE
123425          ,p_module   => l_log_module);
123426 
123427 END IF;
123428 --
123429 l_component_type             := 'AMB_JLT';
123430 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_DM';
123431 l_component_type_code        := 'S';
123432 l_component_appl_id          :=  200;
123433 l_amb_context_code           := 'DEFAULT';
123434 l_entity_code                := 'AP_INVOICES';
123435 l_event_class_code           := 'DEBIT MEMOS';
123436 l_event_type_code            := 'DEBIT MEMOS_ALL';
123437 l_line_definition_owner_code := 'S';
123438 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
123442 l_ccid                        := NULL;
123439 --
123440 l_balance_type_code          := 'A';
123441 l_segment                     := NULL;
123443 l_adr_transaction_coa_id      := NULL;
123444 l_adr_accounting_coa_id       := NULL;
123445 l_adr_flexfield_segment_code  := NULL;
123446 l_adr_flex_value_set_id       := NULL;
123447 l_adr_value_type_code         := NULL;
123448 l_adr_value_combination_id    := NULL;
123449 l_adr_value_segment_code      := NULL;
123450 
123451 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
123452 l_bflow_class_code           := '';    -- 4219869 Business Flow
123453 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
123454 l_budgetary_control_flag     := 'N';
123455 
123456 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
123457 l_bflow_applied_to_amt       := NULL; -- 5132302
123458 l_entered_amt_idx            := NULL;          -- 4262811
123459 l_accted_amt_idx             := NULL;          -- 4262811
123460 l_acc_rev_flag               := NULL;          -- 4262811
123461 l_accrual_line_num           := NULL;          -- 4262811
123462 l_tmp_amt                    := NULL;          -- 4262811
123463 --
123464  
123465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
123466     l_balance_type_code <> 'B' THEN
123467 IF (NVL(p_source_33,'
123468 ') =  'REC_TAX' OR 
123469 NVL(p_source_33,'
123470 ') =  'NONREC_TAX') AND 
123471 NVL(p_source_135,'
123472 ') =  'Y'
123473  THEN 
123474 
123475    --
123476    XLA_AE_LINES_PKG.SetNewLine;
123477 
123478    p_balance_type_code          := l_balance_type_code;
123479    -- set the flag so later we will know whether the gain loss line needs to be created
123480    
123481    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
123482      p_actual_flag :='A';
123483    END IF;
123484 
123485    --
123486    -- bulk performance
123487    --
123488    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
123489                                       p_header_num   => 0); -- 4262811
123490    --
123491    -- set accounting line options
123492    --
123493    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
123494            p_natural_side_code          => 'C'
123495          , p_gain_or_loss_flag          => 'N'
123496          , p_gl_transfer_mode_code      => 'S'
123497          , p_acct_entry_type_code       => 'A'
123498          , p_switch_side_flag           => 'Y'
123499          , p_merge_duplicate_code       => 'A'
123500          );
123501    --
123502    l_acc_rev_natural_side_code := 'D';  -- 4262811
123503    -- 
123504    --
123505    -- set accounting line type info
123506    --
123507    xla_ae_lines_pkg.SetAcctLineType
123508       (p_component_type             => l_component_type
123509       ,p_event_type_code            => l_event_type_code
123510       ,p_line_definition_owner_code => l_line_definition_owner_code
123511       ,p_line_definition_code       => l_line_definition_code
123512       ,p_accounting_line_code       => l_component_code
123513       ,p_accounting_line_type_code  => l_component_type_code
123514       ,p_accounting_line_appl_id    => l_component_appl_id
123515       ,p_amb_context_code           => l_amb_context_code
123516       ,p_entity_code                => l_entity_code
123517       ,p_event_class_code           => l_event_class_code);
123518    --
123519    -- set accounting class
123520    --
123521    xla_ae_lines_pkg.SetAcctClass(
123522            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
123523          , p_ae_header_id           => l_ae_header_id
123524          );
123525 
123526    --
123527    -- set rounding class
123528    --
123529    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
123530                       'SELF_ASSESSED_TAX';
123531 
123532    --
123533    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
123534    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
123535    --
123536    -- bulk performance
123537    --
123538    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123539 
123540    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123541       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123542 
123543    -- 4955764
123544    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123545       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123546 
123547    -- 4458381 Public Sector Enh
123548    
123549    --
123550    -- set accounting attributes for the line type
123551    --
123552    l_entered_amt_idx := 23;
123553    l_accted_amt_idx  := 28;
123554    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
123555    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123556    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
123557    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123558    l_rec_acct_attrs.array_num_value(2)  := 
123559 xla_ae_sources_pkg.GetSystemSourceNum(
123560    p_source_code           => 'XLA_EVENT_APPL_ID'
123561  , p_source_type_code      => 'Y'
123562  , p_source_application_id =>  602
123563 );
123564    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123565    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
123566    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123570  , p_source_type_code      => 'Y'
123567    l_rec_acct_attrs.array_char_value(4)  := 
123568 xla_ae_sources_pkg.GetSystemSourceChar(
123569    p_source_code           => 'XLA_ENTITY_CODE'
123571  , p_source_application_id =>  602
123572 );
123573    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123574    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
123575    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123576    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
123577    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
123578    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
123579    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123580    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
123581    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
123582    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
123583    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
123584    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
123585    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123586    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
123587    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
123588    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
123589    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
123590    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
123591    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
123592    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
123593    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
123594    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
123595    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
123596    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
123597    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
123598    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
123599    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
123600    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
123601    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
123602    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
123603    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
123604    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
123605    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
123606    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
123607    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
123608    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
123609    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
123610    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
123611    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
123612    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
123613    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
123614    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
123615    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
123616    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
123617    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
123618    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
123619    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
123620    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
123621    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
123622    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
123623    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
123624    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
123625    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
123626    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
123627    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
123628    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
123629    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
123630    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
123631    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
123632    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
123633    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
123634    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
123635    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
123636    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
123637    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
123638    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
123639    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
123640    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
123641    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
123642    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
123643    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
123644    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
123645    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
123646    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
123647    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
123648    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
123649 
123650    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123651    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123652 
123653    ---------------------------------------------------------------------------------------------------------------
123657 
123654    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123655    ---------------------------------------------------------------------------------------------------------------
123656    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123658    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123659    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123660 
123661    IF xla_accounting_cache_pkg.GetValueChar
123662          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123663          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123664    AND l_bflow_method_code = 'PRIOR_ENTRY'
123665 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123666    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123667          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123668        )
123669    THEN
123670          xla_ae_lines_pkg.BflowUpgEntry
123671            (p_business_method_code    => l_bflow_method_code
123672            ,p_business_class_code     => l_bflow_class_code
123673            ,p_balance_type            => l_balance_type_code);
123674    ELSE
123675       NULL;
123676 -- No business flow processing for business flow method of NONE.
123677    END IF;
123678 
123679    --
123680    -- call analytical criteria
123681    --
123682    
123683    --
123684    -- call description
123685    --
123686    
123687 xla_ae_lines_pkg.SetLineDescription(
123688    p_ae_header_id => l_ae_header_id
123689   ,p_description  => Description_1 (
123690      p_application_id         => p_application_id
123691    , p_ae_header_id           => l_ae_header_id 
123692 , p_source_1 => p_source_1
123693    )
123694 );
123695 
123696 
123697    --
123698    -- call ADRs
123699    -- Bug 4922099
123700    --
123701    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123702         (NVL(l_actual_upg_option, 'N') = 'O') OR
123703         (NVL(l_enc_upg_option, 'N') = 'O')
123704       )
123705    THEN
123706    NULL;
123707    --
123708    --
123709    
123710   l_ccid := AcctDerRule_42(
123711            p_application_id           => p_application_id
123712          , p_ae_header_id             => l_ae_header_id 
123713 , p_source_50 => p_source_50
123714          , x_transaction_coa_id       => l_adr_transaction_coa_id
123715          , x_accounting_coa_id        => l_adr_accounting_coa_id
123716          , x_value_type_code          => l_adr_value_type_code
123717          , p_side                     => 'NA'
123718    );
123719 
123720    xla_ae_lines_pkg.set_ccid(
123721     p_code_combination_id          => l_ccid
123722   , p_value_type_code              => l_adr_value_type_code
123723   , p_transaction_coa_id           => l_adr_transaction_coa_id
123724   , p_accounting_coa_id            => l_adr_accounting_coa_id
123725   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123726   , p_adr_type_code                => 'S'
123727   , p_component_type               => l_component_type
123728   , p_component_code               => l_component_code
123729   , p_component_type_code          => l_component_type_code
123730   , p_component_appl_id            => l_component_appl_id
123731   , p_amb_context_code             => l_amb_context_code
123732   , p_side                         => 'NA'
123733   );
123734 
123735 
123736    --
123737    --
123738    END IF;
123739    --
123740    -- Bug 4922099
123741    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123742           (NVL(l_enc_upg_option, 'N') = 'O')
123743         ) AND
123744         (l_bflow_method_code = 'PRIOR_ENTRY')
123745       )
123746    THEN
123747       IF
123748       --
123749       1 = 2
123750       --
123751       THEN
123752       xla_accounting_err_pkg.build_message
123753                                     (p_appli_s_name            => 'XLA'
123754                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123755                                     ,p_token_1                 => 'LINE_NUMBER'
123756                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123757                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123758                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123759                                                                              l_component_type
123760                                                                             ,l_component_code
123761                                                                             ,l_component_type_code
123762                                                                             ,l_component_appl_id
123763                                                                             ,l_amb_context_code
123764                                                                             ,l_entity_code
123765                                                                             ,l_event_class_code
123766                                                                            )
123767                                     ,p_token_3                 => 'OWNER'
123768                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123769                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123773                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123770                                                                           ,p_lookup_code    => l_component_type_code
123771                                                                          )
123772                                     ,p_token_4                 => 'PRODUCT_NAME'
123774                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123775                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123776                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123777                                     ,p_ae_header_id            =>  NULL
123778                                        );
123779 
123780         IF (C_LEVEL_ERROR>= g_log_level) THEN
123781                  trace
123782                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123783                       ,p_level    => C_LEVEL_ERROR
123784                       ,p_module   => l_log_module);
123785         END IF;
123786       END IF;
123787    END IF;
123788    --
123789    --
123790    ------------------------------------------------------------------------------------------------
123791    -- 4219869 Business Flow
123792    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123793    -- Prior Entry.  Currently, the following code is always generated.
123794    ------------------------------------------------------------------------------------------------
123795    XLA_AE_LINES_PKG.ValidateCurrentLine;
123796 
123797    ------------------------------------------------------------------------------------
123798    -- 4219869 Business Flow
123799    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123800    ------------------------------------------------------------------------------------
123801    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123802 
123803    ----------------------------------------------------------------------------------
123804    -- 4219869 Business Flow
123805    -- Update journal entry status -- Need to generate this within IF <condition>
123806    ----------------------------------------------------------------------------------
123807    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123808          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123809          ,p_balance_type_code => l_balance_type_code
123810          );
123811 
123812    -------------------------------------------------------------------------------------------
123813    -- 4262811 - Generate the Accrual Reversal lines
123814    -------------------------------------------------------------------------------------------
123815    BEGIN
123816       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123817                               (g_array_event(p_event_id).array_value_num('header_index'));
123818       IF l_acc_rev_flag IS NULL THEN
123819          l_acc_rev_flag := 'N';
123820       END IF;
123821    EXCEPTION
123822       WHEN OTHERS THEN
123823          l_acc_rev_flag := 'N';
123824    END;
123825    --
123826    IF (l_acc_rev_flag = 'Y') THEN
123827 
123828        -- 4645092  ------------------------------------------------------------------------------
123829        -- To allow MPA report to determine if it should generate report process
123830        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
123831        ------------------------------------------------------------------------------------------
123832 
123833        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
123834        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
123835    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
123836    -- call ADRs
123837    -- Bug 4922099
123838    --
123839    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123840         (NVL(l_actual_upg_option, 'N') = 'O') OR
123841         (NVL(l_enc_upg_option, 'N') = 'O')
123842       )
123843    THEN
123844    NULL;
123845    --
123846    --
123847    
123848   l_ccid := AcctDerRule_42(
123849            p_application_id           => p_application_id
123850          , p_ae_header_id             => l_ae_header_id 
123851 , p_source_50 => p_source_50
123852          , x_transaction_coa_id       => l_adr_transaction_coa_id
123853          , x_accounting_coa_id        => l_adr_accounting_coa_id
123854          , x_value_type_code          => l_adr_value_type_code
123855          , p_side                     => 'NA'
123856    );
123857 
123858    xla_ae_lines_pkg.set_ccid(
123859     p_code_combination_id          => l_ccid
123860   , p_value_type_code              => l_adr_value_type_code
123861   , p_transaction_coa_id           => l_adr_transaction_coa_id
123862   , p_accounting_coa_id            => l_adr_accounting_coa_id
123863   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123864   , p_adr_type_code                => 'S'
123865   , p_component_type               => l_component_type
123866   , p_component_code               => l_component_code
123867   , p_component_type_code          => l_component_type_code
123868   , p_component_appl_id            => l_component_appl_id
123869   , p_amb_context_code             => l_amb_context_code
123870   , p_side                         => 'NA'
123871   );
123872 
123873 
123874    --
123875    --
123876    END IF;
123877 
123878        --
123882                                          p_header_num   => 1);
123879        -- Update the line information that should be overwritten
123880        --
123881        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123883        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123884 
123885        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123886 
123887        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123888           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123889        END IF;
123890 
123891       --
123892       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123893       --
123894       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123895           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123896       ELSE
123897           ---------------------------------------------------------------------------------------------------
123898           -- 4262811a Switch Sign
123899           ---------------------------------------------------------------------------------------------------
123900           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123901           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123902                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123903           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123904                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123905           -- 5132302
123906           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123907                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123908 
123909       END IF;
123910 
123911       -- 4955764
123912       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123913       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123914 
123915 
123916       XLA_AE_LINES_PKG.ValidateCurrentLine;
123917       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123918 
123919       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123920                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123921                ,p_balance_type_code => l_balance_type_code);
123922 
123923    END IF;
123924 
123925    -----------------------------------------------------------------------------------------
123926    -- 4262811 Multiperiod Accounting
123927    -----------------------------------------------------------------------------------------
123928      -- No MPA option is assigned.
123929 
123930 
123931 END IF;
123932 END IF;
123933 --
123934 
123935 --
123936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123937    trace
123938       (p_msg      => 'END of AcctLineType_200'
123939       ,p_level    => C_LEVEL_PROCEDURE
123940       ,p_module   => l_log_module);
123941 END IF;
123942 --
123943 EXCEPTION
123944   WHEN xla_exceptions_pkg.application_exception THEN
123945       RAISE;
123946   WHEN OTHERS THEN
123947        xla_exceptions_pkg.raise_message
123948            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_200');
123949 END AcctLineType_200;
123950 --
123951 
123952 ---------------------------------------
123953 --
123954 -- PRIVATE FUNCTION
123955 --         AcctLineType_201
123956 --
123957 ---------------------------------------
123958 PROCEDURE AcctLineType_201 (
123959   p_application_id        IN NUMBER
123960  ,p_event_id              IN NUMBER
123961  ,p_calculate_acctd_flag  IN VARCHAR2
123962  ,p_calculate_g_l_flag    IN VARCHAR2
123963  ,p_actual_flag           IN OUT VARCHAR2
123964  ,p_balance_type_code     OUT VARCHAR2
123965  ,p_gain_or_loss_ref      OUT VARCHAR2
123966  
123967 --Invoice Distribution Description
123968  , p_source_1            IN VARCHAR2
123969 --Invoice Distribution Ledger Amount
123970  , p_source_21            IN NUMBER
123971 --Invoice Distribution Type
123972  , p_source_33            IN VARCHAR2
123973  , p_source_33_meaning    IN VARCHAR2
123974 --Self-Assessed Tax Liability Account
123975  , p_source_50            IN NUMBER
123976 --Accounting Reversal Indicator
123977  , p_source_52            IN VARCHAR2
123978 --Distribution Link Type
123979  , p_source_54            IN VARCHAR2
123980 --Allocation to Main Distribution Identifier
123981  , p_source_56            IN NUMBER
123982 --Invoice Identifier
123983  , p_source_57            IN NUMBER
123984 --Invoice Distribution Identifier
123985  , p_source_63            IN NUMBER
123986 --Payables Encumbrance Upgrade Credit Account
123987  , p_source_64            IN NUMBER
123988 --Payables Encumbrance Upgrade Credit Amount
123989  , p_source_65            IN NUMBER
123990 --Invoice Currency Code
123991  , p_source_66            IN VARCHAR2
123992 --Payables Encumbrance Upgrade Credit Base Amount
123993  , p_source_67            IN NUMBER
123994 --Payables Encumbrance Upgrade Debit Account
123995  , p_source_68            IN NUMBER
123996 --Payables Encumbrance Upgrade Debit Amount
123997  , p_source_69            IN NUMBER
124001  , p_source_71            IN VARCHAR2
123998 --Payables Encumbrance Upgrade Debit Base Amount
123999  , p_source_70            IN NUMBER
124000 --Payables Encumbrance Upgrade Option
124002 --Invoice Distribution Amount
124003  , p_source_72            IN NUMBER
124004 --Deferred Accounting End Date
124005  , p_source_76            IN DATE
124006 --Deferred Accounting Option
124007  , p_source_77            IN VARCHAR2
124008 --Deferred Accounting Start Date
124009  , p_source_78            IN DATE
124010 --Override Accounted Amount Indicator
124011  , p_source_79            IN VARCHAR2
124012  , p_source_79_meaning    IN VARCHAR2
124013 --Invoice Supplier Identifier
124014  , p_source_80            IN NUMBER
124015 --Invoice Supplier Site Identifier
124016  , p_source_81            IN NUMBER
124017 --Third Party Type
124018  , p_source_82            IN VARCHAR2
124019 --Parent Reversal Identifier
124020  , p_source_83            IN NUMBER
124021 --Invoice Distribution Statistical Amount
124022  , p_source_84            IN NUMBER
124023 --Invoice Distribution Tax Line Identifier
124024  , p_source_85            IN NUMBER
124025 --Invoice Distribution Tax Distribution Identifier from Tax
124026  , p_source_86            IN NUMBER
124027 --Invoice Distribution Summary Tax Line Identifier
124028  , p_source_87            IN NUMBER
124029 --Payables Upgrade Credit Encumbrance Type Identifier
124030  , p_source_88            IN NUMBER
124031 --Payables Upgrade Debit Encumbrance Type Identifier
124032  , p_source_89            IN NUMBER
124033 --Business Flow Accounts Payable Application Identifier
124034  , p_source_90            IN NUMBER
124035 --Business Flow Invoice Distribution Type
124036  , p_source_91            IN VARCHAR2
124037 --Business Flow Invoice Entity Code
124038  , p_source_92            IN VARCHAR2
124039 --Business Flow Invoice Distribution Identifier
124040  , p_source_93            IN NUMBER
124041 --Business Flow Invoice Identifier
124042  , p_source_94            IN NUMBER
124043 --Self-Assessed Tax Flag
124044  , p_source_135            IN VARCHAR2
124045  , p_source_135_meaning    IN VARCHAR2
124046 --Invoice Exchange Date
124047  , p_source_136            IN DATE
124048 --Invoice Exchange Rate
124049  , p_source_137            IN NUMBER
124050 --Invoice Exchange Rate Type
124051  , p_source_138            IN VARCHAR2
124052 )
124053 IS
124054 
124055 l_component_type              VARCHAR2(80);
124056 l_component_code              VARCHAR2(30);
124057 l_component_type_code         VARCHAR2(1);
124058 l_component_appl_id           INTEGER;
124059 l_amb_context_code            VARCHAR2(30);
124060 l_entity_code                 VARCHAR2(30);
124061 l_event_class_code            VARCHAR2(30);
124062 l_ae_header_id                NUMBER;
124063 l_event_type_code             VARCHAR2(30);
124064 l_line_definition_code        VARCHAR2(30);
124065 l_line_definition_owner_code  VARCHAR2(1);
124066 --
124067 -- adr variables
124068 l_segment                     VARCHAR2(30);
124069 l_ccid                        NUMBER;
124070 l_adr_transaction_coa_id      NUMBER;
124071 l_adr_accounting_coa_id       NUMBER;
124072 l_adr_flexfield_segment_code  VARCHAR2(30);
124073 l_adr_flex_value_set_id       NUMBER;
124074 l_adr_value_type_code         VARCHAR2(30);
124075 l_adr_value_combination_id    NUMBER;
124076 l_adr_value_segment_code      VARCHAR2(30);
124077 
124078 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124079 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124080 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124081 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124082 
124083 -- 4262811 Variables ------------------------------------------------------------------------------------------
124084 l_entered_amt_idx             NUMBER;
124085 l_accted_amt_idx              NUMBER;
124086 l_acc_rev_flag                VARCHAR2(1);
124087 l_accrual_line_num            NUMBER;
124088 l_tmp_amt                     NUMBER;
124089 l_acc_rev_natural_side_code   VARCHAR2(1);
124090 
124091 l_num_entries                 NUMBER;
124092 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124093 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124094 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124095 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124096 l_recog_line_1                NUMBER;
124097 l_recog_line_2                NUMBER;
124098 
124099 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124100 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124101 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124102 
124103 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124104 
124105 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124106 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124107 
124108 ---------------------------------------------------------------------------------------------------------------
124109 
124110 
124111 --
124112 -- bulk performance
124113 --
124114 l_balance_type_code           VARCHAR2(1);
124115 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
124116 l_log_module                  VARCHAR2(240);
124117 
124118 --
124119 -- Upgrade strategy
124120 --
124121 l_actual_upg_option           VARCHAR2(1);
124125 BEGIN
124122 l_enc_upg_option           VARCHAR2(1);
124123 
124124 --
124126 --
124127 IF g_log_enabled THEN
124128       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
124129 END IF;
124130 --
124131 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124132 
124133       trace
124134          (p_msg      => 'BEGIN of AcctLineType_201'
124135          ,p_level    => C_LEVEL_PROCEDURE
124136          ,p_module   => l_log_module);
124137 
124138 END IF;
124139 --
124140 l_component_type             := 'AMB_JLT';
124141 l_component_code             := 'AP_SELF_ASSESSED_TAX_CRL_INV';
124142 l_component_type_code        := 'S';
124143 l_component_appl_id          :=  200;
124144 l_amb_context_code           := 'DEFAULT';
124145 l_entity_code                := 'AP_INVOICES';
124146 l_event_class_code           := 'INVOICES';
124147 l_event_type_code            := 'INVOICES_ALL';
124148 l_line_definition_owner_code := 'S';
124149 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
124150 --
124151 l_balance_type_code          := 'A';
124152 l_segment                     := NULL;
124153 l_ccid                        := NULL;
124154 l_adr_transaction_coa_id      := NULL;
124155 l_adr_accounting_coa_id       := NULL;
124156 l_adr_flexfield_segment_code  := NULL;
124157 l_adr_flex_value_set_id       := NULL;
124158 l_adr_value_type_code         := NULL;
124159 l_adr_value_combination_id    := NULL;
124160 l_adr_value_segment_code      := NULL;
124161 
124162 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124163 l_bflow_class_code           := '';    -- 4219869 Business Flow
124164 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124165 l_budgetary_control_flag     := 'N';
124166 
124167 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124168 l_bflow_applied_to_amt       := NULL; -- 5132302
124169 l_entered_amt_idx            := NULL;          -- 4262811
124170 l_accted_amt_idx             := NULL;          -- 4262811
124171 l_acc_rev_flag               := NULL;          -- 4262811
124172 l_accrual_line_num           := NULL;          -- 4262811
124173 l_tmp_amt                    := NULL;          -- 4262811
124174 --
124175  
124176 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124177     l_balance_type_code <> 'B' THEN
124178 IF (NVL(p_source_33,'
124179 ') =  'REC_TAX' OR 
124180 NVL(p_source_33,'
124181 ') =  'NONREC_TAX') AND 
124182 NVL(p_source_135,'
124183 ') =  'Y'
124184  THEN 
124185 
124186    --
124187    XLA_AE_LINES_PKG.SetNewLine;
124188 
124189    p_balance_type_code          := l_balance_type_code;
124190    -- set the flag so later we will know whether the gain loss line needs to be created
124191    
124192    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124193      p_actual_flag :='A';
124194    END IF;
124195 
124196    --
124197    -- bulk performance
124198    --
124199    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124200                                       p_header_num   => 0); -- 4262811
124201    --
124202    -- set accounting line options
124203    --
124204    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124205            p_natural_side_code          => 'C'
124206          , p_gain_or_loss_flag          => 'N'
124207          , p_gl_transfer_mode_code      => 'S'
124208          , p_acct_entry_type_code       => 'A'
124209          , p_switch_side_flag           => 'Y'
124210          , p_merge_duplicate_code       => 'A'
124211          );
124212    --
124213    l_acc_rev_natural_side_code := 'D';  -- 4262811
124214    -- 
124215    --
124216    -- set accounting line type info
124217    --
124218    xla_ae_lines_pkg.SetAcctLineType
124219       (p_component_type             => l_component_type
124220       ,p_event_type_code            => l_event_type_code
124221       ,p_line_definition_owner_code => l_line_definition_owner_code
124222       ,p_line_definition_code       => l_line_definition_code
124223       ,p_accounting_line_code       => l_component_code
124224       ,p_accounting_line_type_code  => l_component_type_code
124225       ,p_accounting_line_appl_id    => l_component_appl_id
124226       ,p_amb_context_code           => l_amb_context_code
124227       ,p_entity_code                => l_entity_code
124228       ,p_event_class_code           => l_event_class_code);
124229    --
124230    -- set accounting class
124231    --
124232    xla_ae_lines_pkg.SetAcctClass(
124233            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
124234          , p_ae_header_id           => l_ae_header_id
124235          );
124236 
124237    --
124238    -- set rounding class
124239    --
124240    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124241                       'SELF_ASSESSED_TAX';
124242 
124243    --
124244    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124245    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124246    --
124247    -- bulk performance
124248    --
124249    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124250 
124251    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124252       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124253 
124254    -- 4955764
124255    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124259    
124256       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124257 
124258    -- 4458381 Public Sector Enh
124260    --
124261    -- set accounting attributes for the line type
124262    --
124263    l_entered_amt_idx := 24;
124264    l_accted_amt_idx  := 29;
124265    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
124266    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124267    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
124268    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124269    l_rec_acct_attrs.array_num_value(2)  := 
124270 xla_ae_sources_pkg.GetSystemSourceNum(
124271    p_source_code           => 'XLA_EVENT_APPL_ID'
124272  , p_source_type_code      => 'Y'
124273  , p_source_application_id =>  602
124274 );
124275    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124276    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
124277    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124278    l_rec_acct_attrs.array_char_value(4)  := 
124279 xla_ae_sources_pkg.GetSystemSourceChar(
124280    p_source_code           => 'XLA_ENTITY_CODE'
124281  , p_source_type_code      => 'Y'
124282  , p_source_application_id =>  602
124283 );
124284    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
124285    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
124286    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
124287    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
124288    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
124289    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
124290    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
124291    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
124292    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
124293    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
124294    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
124295    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
124296    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
124297    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
124298    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
124299    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
124300    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
124301    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
124302    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
124303    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
124304    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
124305    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
124306    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
124307    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
124308    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
124309    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
124310    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
124311    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
124312    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
124313    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
124314    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
124315    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
124316    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
124317    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
124318    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
124319    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
124320    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
124321    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
124322    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
124323    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
124324    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
124325    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
124326    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
124327    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
124328    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
124329    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
124330    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
124331    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
124332    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
124333    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
124334    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
124335    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
124336    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
124337    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
124338    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
124339    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
124340    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
124341    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
124342    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
124343    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
124344    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
124345    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
124346    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
124347    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
124351    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
124348    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
124349    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
124350    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
124352    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
124353    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
124354    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
124355    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
124356    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
124357    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
124358    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
124359    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
124360    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
124361    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
124362    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
124363    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
124364 
124365    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
124366    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
124367 
124368    ---------------------------------------------------------------------------------------------------------------
124369    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
124370    ---------------------------------------------------------------------------------------------------------------
124371    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
124372 
124373    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124374    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124375 
124376    IF xla_accounting_cache_pkg.GetValueChar
124377          (p_source_code         => 'LEDGER_CATEGORY_CODE'
124378          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
124379    AND l_bflow_method_code = 'PRIOR_ENTRY'
124380 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
124381    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
124382          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
124383        )
124384    THEN
124385          xla_ae_lines_pkg.BflowUpgEntry
124386            (p_business_method_code    => l_bflow_method_code
124387            ,p_business_class_code     => l_bflow_class_code
124388            ,p_balance_type            => l_balance_type_code);
124389    ELSE
124390       NULL;
124391 -- No business flow processing for business flow method of NONE.
124392    END IF;
124393 
124394    --
124395    -- call analytical criteria
124396    --
124397    
124398    --
124399    -- call description
124400    --
124401    
124402 xla_ae_lines_pkg.SetLineDescription(
124403    p_ae_header_id => l_ae_header_id
124404   ,p_description  => Description_1 (
124405      p_application_id         => p_application_id
124406    , p_ae_header_id           => l_ae_header_id 
124407 , p_source_1 => p_source_1
124408    )
124409 );
124410 
124411 
124412    --
124413    -- call ADRs
124414    -- Bug 4922099
124415    --
124416    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124417         (NVL(l_actual_upg_option, 'N') = 'O') OR
124418         (NVL(l_enc_upg_option, 'N') = 'O')
124419       )
124420    THEN
124421    NULL;
124422    --
124423    --
124424    
124425   l_ccid := AcctDerRule_42(
124426            p_application_id           => p_application_id
124427          , p_ae_header_id             => l_ae_header_id 
124428 , p_source_50 => p_source_50
124429          , x_transaction_coa_id       => l_adr_transaction_coa_id
124430          , x_accounting_coa_id        => l_adr_accounting_coa_id
124431          , x_value_type_code          => l_adr_value_type_code
124432          , p_side                     => 'NA'
124433    );
124434 
124435    xla_ae_lines_pkg.set_ccid(
124436     p_code_combination_id          => l_ccid
124437   , p_value_type_code              => l_adr_value_type_code
124438   , p_transaction_coa_id           => l_adr_transaction_coa_id
124439   , p_accounting_coa_id            => l_adr_accounting_coa_id
124440   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124441   , p_adr_type_code                => 'S'
124442   , p_component_type               => l_component_type
124443   , p_component_code               => l_component_code
124444   , p_component_type_code          => l_component_type_code
124445   , p_component_appl_id            => l_component_appl_id
124446   , p_amb_context_code             => l_amb_context_code
124447   , p_side                         => 'NA'
124448   );
124449 
124450 
124451    --
124452    --
124453    END IF;
124454    --
124455    -- Bug 4922099
124456    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
124457           (NVL(l_enc_upg_option, 'N') = 'O')
124458         ) AND
124459         (l_bflow_method_code = 'PRIOR_ENTRY')
124460       )
124461    THEN
124462       IF
124463       --
124464       1 = 2
124465       --
124466       THEN
124467       xla_accounting_err_pkg.build_message
124468                                     (p_appli_s_name            => 'XLA'
124472                                     ,p_token_2                 => 'LINE_TYPE_NAME'
124469                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124470                                     ,p_token_1                 => 'LINE_NUMBER'
124471                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
124473                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
124474                                                                              l_component_type
124475                                                                             ,l_component_code
124476                                                                             ,l_component_type_code
124477                                                                             ,l_component_appl_id
124478                                                                             ,l_amb_context_code
124479                                                                             ,l_entity_code
124480                                                                             ,l_event_class_code
124481                                                                            )
124482                                     ,p_token_3                 => 'OWNER'
124483                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
124484                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
124485                                                                           ,p_lookup_code    => l_component_type_code
124486                                                                          )
124487                                     ,p_token_4                 => 'PRODUCT_NAME'
124488                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
124489                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
124490                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
124491                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
124492                                     ,p_ae_header_id            =>  NULL
124493                                        );
124494 
124495         IF (C_LEVEL_ERROR>= g_log_level) THEN
124496                  trace
124497                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124498                       ,p_level    => C_LEVEL_ERROR
124499                       ,p_module   => l_log_module);
124500         END IF;
124501       END IF;
124502    END IF;
124503    --
124504    --
124505    ------------------------------------------------------------------------------------------------
124506    -- 4219869 Business Flow
124507    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
124508    -- Prior Entry.  Currently, the following code is always generated.
124509    ------------------------------------------------------------------------------------------------
124510    XLA_AE_LINES_PKG.ValidateCurrentLine;
124511 
124512    ------------------------------------------------------------------------------------
124513    -- 4219869 Business Flow
124514    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
124515    ------------------------------------------------------------------------------------
124516    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124517 
124518    ----------------------------------------------------------------------------------
124519    -- 4219869 Business Flow
124520    -- Update journal entry status -- Need to generate this within IF <condition>
124521    ----------------------------------------------------------------------------------
124522    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124523          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
124524          ,p_balance_type_code => l_balance_type_code
124525          );
124526 
124527    -------------------------------------------------------------------------------------------
124528    -- 4262811 - Generate the Accrual Reversal lines
124529    -------------------------------------------------------------------------------------------
124530    BEGIN
124531       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
124532                               (g_array_event(p_event_id).array_value_num('header_index'));
124533       IF l_acc_rev_flag IS NULL THEN
124534          l_acc_rev_flag := 'N';
124535       END IF;
124536    EXCEPTION
124537       WHEN OTHERS THEN
124538          l_acc_rev_flag := 'N';
124539    END;
124540    --
124541    IF (l_acc_rev_flag = 'Y') THEN
124542 
124543        -- 4645092  ------------------------------------------------------------------------------
124544        -- To allow MPA report to determine if it should generate report process
124545        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124546        ------------------------------------------------------------------------------------------
124547 
124548        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124549        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124550    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124551    -- call ADRs
124552    -- Bug 4922099
124553    --
124554    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124555         (NVL(l_actual_upg_option, 'N') = 'O') OR
124556         (NVL(l_enc_upg_option, 'N') = 'O')
124557       )
124558    THEN
124562    
124559    NULL;
124560    --
124561    --
124563   l_ccid := AcctDerRule_42(
124564            p_application_id           => p_application_id
124565          , p_ae_header_id             => l_ae_header_id 
124566 , p_source_50 => p_source_50
124567          , x_transaction_coa_id       => l_adr_transaction_coa_id
124568          , x_accounting_coa_id        => l_adr_accounting_coa_id
124569          , x_value_type_code          => l_adr_value_type_code
124570          , p_side                     => 'NA'
124571    );
124572 
124573    xla_ae_lines_pkg.set_ccid(
124574     p_code_combination_id          => l_ccid
124575   , p_value_type_code              => l_adr_value_type_code
124576   , p_transaction_coa_id           => l_adr_transaction_coa_id
124577   , p_accounting_coa_id            => l_adr_accounting_coa_id
124578   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124579   , p_adr_type_code                => 'S'
124580   , p_component_type               => l_component_type
124581   , p_component_code               => l_component_code
124582   , p_component_type_code          => l_component_type_code
124583   , p_component_appl_id            => l_component_appl_id
124584   , p_amb_context_code             => l_amb_context_code
124585   , p_side                         => 'NA'
124586   );
124587 
124588 
124589    --
124590    --
124591    END IF;
124592 
124593        --
124594        -- Update the line information that should be overwritten
124595        --
124596        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124597                                          p_header_num   => 1);
124598        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124599 
124600        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124601 
124602        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124603           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124604        END IF;
124605 
124606       --
124607       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124608       --
124609       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124610           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124611       ELSE
124612           ---------------------------------------------------------------------------------------------------
124613           -- 4262811a Switch Sign
124614           ---------------------------------------------------------------------------------------------------
124615           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124616           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124617                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124618           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124619                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124620           -- 5132302
124621           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124622                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124623 
124624       END IF;
124625 
124626       -- 4955764
124627       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124628       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124629 
124630 
124631       XLA_AE_LINES_PKG.ValidateCurrentLine;
124632       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124633 
124634       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124635                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124636                ,p_balance_type_code => l_balance_type_code);
124637 
124638    END IF;
124639 
124640    -----------------------------------------------------------------------------------------
124641    -- 4262811 Multiperiod Accounting
124642    -----------------------------------------------------------------------------------------
124643      -- No MPA option is assigned.
124644 
124645 
124646 END IF;
124647 END IF;
124648 --
124649 
124650 --
124651 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124652    trace
124653       (p_msg      => 'END of AcctLineType_201'
124654       ,p_level    => C_LEVEL_PROCEDURE
124655       ,p_module   => l_log_module);
124656 END IF;
124657 --
124658 EXCEPTION
124659   WHEN xla_exceptions_pkg.application_exception THEN
124660       RAISE;
124661   WHEN OTHERS THEN
124662        xla_exceptions_pkg.raise_message
124663            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_201');
124664 END AcctLineType_201;
124665 --
124666 
124667 ---------------------------------------
124668 --
124669 -- PRIVATE FUNCTION
124670 --         AcctLineType_202
124671 --
124672 ---------------------------------------
124673 PROCEDURE AcctLineType_202 (
124674   p_application_id        IN NUMBER
124675  ,p_event_id              IN NUMBER
124676  ,p_calculate_acctd_flag  IN VARCHAR2
124677  ,p_calculate_g_l_flag    IN VARCHAR2
124678  ,p_actual_flag           IN OUT VARCHAR2
124679  ,p_balance_type_code     OUT VARCHAR2
124683  , p_source_1            IN VARCHAR2
124680  ,p_gain_or_loss_ref      OUT VARCHAR2
124681  
124682 --Invoice Distribution Description
124684 --Invoice Distribution Ledger Amount
124685  , p_source_21            IN NUMBER
124686 --Invoice Distribution Type
124687  , p_source_33            IN VARCHAR2
124688  , p_source_33_meaning    IN VARCHAR2
124689 --Self-Assessed Tax Liability Account
124690  , p_source_50            IN NUMBER
124691 --Accounting Reversal Indicator
124692  , p_source_52            IN VARCHAR2
124693 --Distribution Link Type
124694  , p_source_54            IN VARCHAR2
124695 --Allocation to Main Distribution Identifier
124696  , p_source_56            IN NUMBER
124697 --Invoice Identifier
124698  , p_source_57            IN NUMBER
124699 --Invoice Distribution Identifier
124700  , p_source_63            IN NUMBER
124701 --Payables Encumbrance Upgrade Credit Account
124702  , p_source_64            IN NUMBER
124703 --Payables Encumbrance Upgrade Credit Amount
124704  , p_source_65            IN NUMBER
124705 --Invoice Currency Code
124706  , p_source_66            IN VARCHAR2
124707 --Payables Encumbrance Upgrade Credit Base Amount
124708  , p_source_67            IN NUMBER
124709 --Payables Encumbrance Upgrade Debit Account
124710  , p_source_68            IN NUMBER
124711 --Payables Encumbrance Upgrade Debit Amount
124712  , p_source_69            IN NUMBER
124713 --Payables Encumbrance Upgrade Debit Base Amount
124714  , p_source_70            IN NUMBER
124715 --Payables Encumbrance Upgrade Option
124716  , p_source_71            IN VARCHAR2
124717 --Invoice Distribution Amount
124718  , p_source_72            IN NUMBER
124719 --Deferred Accounting End Date
124720  , p_source_76            IN DATE
124721 --Deferred Accounting Option
124722  , p_source_77            IN VARCHAR2
124723 --Deferred Accounting Start Date
124724  , p_source_78            IN DATE
124725 --Override Accounted Amount Indicator
124726  , p_source_79            IN VARCHAR2
124727  , p_source_79_meaning    IN VARCHAR2
124728 --Invoice Supplier Identifier
124729  , p_source_80            IN NUMBER
124730 --Invoice Supplier Site Identifier
124731  , p_source_81            IN NUMBER
124732 --Third Party Type
124733  , p_source_82            IN VARCHAR2
124734 --Parent Reversal Identifier
124735  , p_source_83            IN NUMBER
124736 --Invoice Distribution Statistical Amount
124737  , p_source_84            IN NUMBER
124738 --Invoice Distribution Tax Line Identifier
124739  , p_source_85            IN NUMBER
124740 --Invoice Distribution Tax Distribution Identifier from Tax
124741  , p_source_86            IN NUMBER
124742 --Invoice Distribution Summary Tax Line Identifier
124743  , p_source_87            IN NUMBER
124744 --Payables Upgrade Credit Encumbrance Type Identifier
124745  , p_source_88            IN NUMBER
124746 --Payables Upgrade Debit Encumbrance Type Identifier
124747  , p_source_89            IN NUMBER
124748 --Business Flow Accounts Payable Application Identifier
124749  , p_source_90            IN NUMBER
124750 --Business Flow Invoice Distribution Type
124751  , p_source_91            IN VARCHAR2
124752 --Business Flow Invoice Entity Code
124753  , p_source_92            IN VARCHAR2
124754 --Business Flow Invoice Distribution Identifier
124755  , p_source_93            IN NUMBER
124756 --Business Flow Invoice Identifier
124757  , p_source_94            IN NUMBER
124758 --Self-Assessed Tax Flag
124759  , p_source_135            IN VARCHAR2
124760  , p_source_135_meaning    IN VARCHAR2
124761 --Invoice Exchange Date
124762  , p_source_136            IN DATE
124763 --Invoice Exchange Rate
124764  , p_source_137            IN NUMBER
124765 --Invoice Exchange Rate Type
124766  , p_source_138            IN VARCHAR2
124767 )
124768 IS
124769 
124770 l_component_type              VARCHAR2(80);
124771 l_component_code              VARCHAR2(30);
124772 l_component_type_code         VARCHAR2(1);
124773 l_component_appl_id           INTEGER;
124774 l_amb_context_code            VARCHAR2(30);
124775 l_entity_code                 VARCHAR2(30);
124776 l_event_class_code            VARCHAR2(30);
124777 l_ae_header_id                NUMBER;
124778 l_event_type_code             VARCHAR2(30);
124779 l_line_definition_code        VARCHAR2(30);
124780 l_line_definition_owner_code  VARCHAR2(1);
124781 --
124782 -- adr variables
124783 l_segment                     VARCHAR2(30);
124784 l_ccid                        NUMBER;
124785 l_adr_transaction_coa_id      NUMBER;
124786 l_adr_accounting_coa_id       NUMBER;
124787 l_adr_flexfield_segment_code  VARCHAR2(30);
124788 l_adr_flex_value_set_id       NUMBER;
124789 l_adr_value_type_code         VARCHAR2(30);
124790 l_adr_value_combination_id    NUMBER;
124791 l_adr_value_segment_code      VARCHAR2(30);
124792 
124793 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124794 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124795 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124796 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124797 
124798 -- 4262811 Variables ------------------------------------------------------------------------------------------
124799 l_entered_amt_idx             NUMBER;
124800 l_accted_amt_idx              NUMBER;
124801 l_acc_rev_flag                VARCHAR2(1);
124802 l_accrual_line_num            NUMBER;
124803 l_tmp_amt                     NUMBER;
124804 l_acc_rev_natural_side_code   VARCHAR2(1);
124805 
124806 l_num_entries                 NUMBER;
124807 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124811 l_recog_line_1                NUMBER;
124808 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124809 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124810 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124812 l_recog_line_2                NUMBER;
124813 
124814 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124815 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124816 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124817 
124818 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124819 
124820 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124821 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124822 
124823 ---------------------------------------------------------------------------------------------------------------
124824 
124825 
124826 --
124827 -- bulk performance
124828 --
124829 l_balance_type_code           VARCHAR2(1);
124830 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
124831 l_log_module                  VARCHAR2(240);
124832 
124833 --
124834 -- Upgrade strategy
124835 --
124836 l_actual_upg_option           VARCHAR2(1);
124837 l_enc_upg_option           VARCHAR2(1);
124838 
124839 --
124840 BEGIN
124841 --
124842 IF g_log_enabled THEN
124843       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
124844 END IF;
124845 --
124846 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124847 
124848       trace
124849          (p_msg      => 'BEGIN of AcctLineType_202'
124850          ,p_level    => C_LEVEL_PROCEDURE
124851          ,p_module   => l_log_module);
124852 
124853 END IF;
124854 --
124855 l_component_type             := 'AMB_JLT';
124856 l_component_code             := 'AP_SELF_ASSESSED_TAX_LIB_PP';
124857 l_component_type_code        := 'S';
124858 l_component_appl_id          :=  200;
124859 l_amb_context_code           := 'DEFAULT';
124860 l_entity_code                := 'AP_INVOICES';
124861 l_event_class_code           := 'PREPAYMENTS';
124862 l_event_type_code            := 'PREPAYMENTS_ALL';
124863 l_line_definition_owner_code := 'S';
124864 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
124865 --
124866 l_balance_type_code          := 'A';
124867 l_segment                     := NULL;
124868 l_ccid                        := NULL;
124869 l_adr_transaction_coa_id      := NULL;
124870 l_adr_accounting_coa_id       := NULL;
124871 l_adr_flexfield_segment_code  := NULL;
124872 l_adr_flex_value_set_id       := NULL;
124873 l_adr_value_type_code         := NULL;
124874 l_adr_value_combination_id    := NULL;
124875 l_adr_value_segment_code      := NULL;
124876 
124877 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124878 l_bflow_class_code           := '';    -- 4219869 Business Flow
124879 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124880 l_budgetary_control_flag     := 'N';
124881 
124882 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124883 l_bflow_applied_to_amt       := NULL; -- 5132302
124884 l_entered_amt_idx            := NULL;          -- 4262811
124885 l_accted_amt_idx             := NULL;          -- 4262811
124886 l_acc_rev_flag               := NULL;          -- 4262811
124887 l_accrual_line_num           := NULL;          -- 4262811
124888 l_tmp_amt                    := NULL;          -- 4262811
124889 --
124890  
124891 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124892     l_balance_type_code <> 'B' THEN
124893 IF (NVL(p_source_33,'
124894 ') =  'REC_TAX' OR 
124895 NVL(p_source_33,'
124896 ') =  'NONREC_TAX') AND 
124897 NVL(p_source_135,'
124898 ') =  'Y'
124899  THEN 
124900 
124901    --
124902    XLA_AE_LINES_PKG.SetNewLine;
124903 
124904    p_balance_type_code          := l_balance_type_code;
124905    -- set the flag so later we will know whether the gain loss line needs to be created
124906    
124907    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124908      p_actual_flag :='A';
124909    END IF;
124910 
124911    --
124912    -- bulk performance
124913    --
124914    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124915                                       p_header_num   => 0); -- 4262811
124916    --
124917    -- set accounting line options
124918    --
124919    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124920            p_natural_side_code          => 'C'
124921          , p_gain_or_loss_flag          => 'N'
124922          , p_gl_transfer_mode_code      => 'S'
124923          , p_acct_entry_type_code       => 'A'
124924          , p_switch_side_flag           => 'Y'
124925          , p_merge_duplicate_code       => 'A'
124926          );
124927    --
124928    l_acc_rev_natural_side_code := 'D';  -- 4262811
124929    -- 
124930    --
124931    -- set accounting line type info
124932    --
124933    xla_ae_lines_pkg.SetAcctLineType
124934       (p_component_type             => l_component_type
124935       ,p_event_type_code            => l_event_type_code
124936       ,p_line_definition_owner_code => l_line_definition_owner_code
124937       ,p_line_definition_code       => l_line_definition_code
124938       ,p_accounting_line_code       => l_component_code
124939       ,p_accounting_line_type_code  => l_component_type_code
124940       ,p_accounting_line_appl_id    => l_component_appl_id
124944    --
124941       ,p_amb_context_code           => l_amb_context_code
124942       ,p_entity_code                => l_entity_code
124943       ,p_event_class_code           => l_event_class_code);
124945    -- set accounting class
124946    --
124947    xla_ae_lines_pkg.SetAcctClass(
124948            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
124949          , p_ae_header_id           => l_ae_header_id
124950          );
124951 
124952    --
124953    -- set rounding class
124954    --
124955    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124956                       'SELF_ASSESSED_TAX';
124957 
124958    --
124959    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124960    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124961    --
124962    -- bulk performance
124963    --
124964    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124965 
124966    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124967       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124968 
124969    -- 4955764
124970    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124971       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124972 
124973    -- 4458381 Public Sector Enh
124974    
124975    --
124976    -- set accounting attributes for the line type
124977    --
124978    l_entered_amt_idx := 23;
124979    l_accted_amt_idx  := 28;
124980    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
124981    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124982    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
124983    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124984    l_rec_acct_attrs.array_num_value(2)  := 
124985 xla_ae_sources_pkg.GetSystemSourceNum(
124986    p_source_code           => 'XLA_EVENT_APPL_ID'
124987  , p_source_type_code      => 'Y'
124988  , p_source_application_id =>  602
124989 );
124990    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124991    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
124992    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124993    l_rec_acct_attrs.array_char_value(4)  := 
124994 xla_ae_sources_pkg.GetSystemSourceChar(
124995    p_source_code           => 'XLA_ENTITY_CODE'
124996  , p_source_type_code      => 'Y'
124997  , p_source_application_id =>  602
124998 );
124999    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125000    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
125001    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125002    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
125003    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
125004    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
125005    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125006    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
125007    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
125008    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
125009    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
125010    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
125011    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125012    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
125013    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
125014    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
125015    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
125016    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
125017    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
125018    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
125019    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
125020    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
125021    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
125022    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
125023    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
125024    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
125025    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
125026    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
125027    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
125028    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
125029    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
125030    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
125031    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
125032    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
125033    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
125034    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
125035    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
125036    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
125037    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
125038    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
125039    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
125040    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
125044    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
125041    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
125042    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
125043    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
125045    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
125046    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
125047    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
125048    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
125049    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
125050    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
125051    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
125052    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
125053    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
125054    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
125055    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
125056    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
125057    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
125058    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
125059    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
125060    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
125061    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
125062    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
125063    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
125064    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
125065    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
125066    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
125067    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
125068    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
125069    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
125070    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
125071    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
125072    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
125073    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
125074    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
125075    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
125076    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
125077 
125078    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125079    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125080 
125081    ---------------------------------------------------------------------------------------------------------------
125082    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125083    ---------------------------------------------------------------------------------------------------------------
125084    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125085 
125086    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125087    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125088 
125089    IF xla_accounting_cache_pkg.GetValueChar
125090          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125091          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125092    AND l_bflow_method_code = 'PRIOR_ENTRY'
125093 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125094    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125095          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125096        )
125097    THEN
125098          xla_ae_lines_pkg.BflowUpgEntry
125099            (p_business_method_code    => l_bflow_method_code
125100            ,p_business_class_code     => l_bflow_class_code
125101            ,p_balance_type            => l_balance_type_code);
125102    ELSE
125103       NULL;
125104 -- No business flow processing for business flow method of NONE.
125105    END IF;
125106 
125107    --
125108    -- call analytical criteria
125109    --
125110    
125111    --
125112    -- call description
125113    --
125114    
125115 xla_ae_lines_pkg.SetLineDescription(
125116    p_ae_header_id => l_ae_header_id
125117   ,p_description  => Description_1 (
125118      p_application_id         => p_application_id
125119    , p_ae_header_id           => l_ae_header_id 
125120 , p_source_1 => p_source_1
125121    )
125122 );
125123 
125124 
125125    --
125126    -- call ADRs
125127    -- Bug 4922099
125128    --
125129    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125130         (NVL(l_actual_upg_option, 'N') = 'O') OR
125131         (NVL(l_enc_upg_option, 'N') = 'O')
125132       )
125133    THEN
125134    NULL;
125135    --
125136    --
125137    
125138   l_ccid := AcctDerRule_42(
125139            p_application_id           => p_application_id
125140          , p_ae_header_id             => l_ae_header_id 
125141 , p_source_50 => p_source_50
125142          , x_transaction_coa_id       => l_adr_transaction_coa_id
125143          , x_accounting_coa_id        => l_adr_accounting_coa_id
125144          , x_value_type_code          => l_adr_value_type_code
125145          , p_side                     => 'NA'
125146    );
125147 
125148    xla_ae_lines_pkg.set_ccid(
125149     p_code_combination_id          => l_ccid
125153   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125150   , p_value_type_code              => l_adr_value_type_code
125151   , p_transaction_coa_id           => l_adr_transaction_coa_id
125152   , p_accounting_coa_id            => l_adr_accounting_coa_id
125154   , p_adr_type_code                => 'S'
125155   , p_component_type               => l_component_type
125156   , p_component_code               => l_component_code
125157   , p_component_type_code          => l_component_type_code
125158   , p_component_appl_id            => l_component_appl_id
125159   , p_amb_context_code             => l_amb_context_code
125160   , p_side                         => 'NA'
125161   );
125162 
125163 
125164    --
125165    --
125166    END IF;
125167    --
125168    -- Bug 4922099
125169    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125170           (NVL(l_enc_upg_option, 'N') = 'O')
125171         ) AND
125172         (l_bflow_method_code = 'PRIOR_ENTRY')
125173       )
125174    THEN
125175       IF
125176       --
125177       1 = 2
125178       --
125179       THEN
125180       xla_accounting_err_pkg.build_message
125181                                     (p_appli_s_name            => 'XLA'
125182                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125183                                     ,p_token_1                 => 'LINE_NUMBER'
125184                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125185                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125186                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125187                                                                              l_component_type
125188                                                                             ,l_component_code
125189                                                                             ,l_component_type_code
125190                                                                             ,l_component_appl_id
125191                                                                             ,l_amb_context_code
125192                                                                             ,l_entity_code
125193                                                                             ,l_event_class_code
125194                                                                            )
125195                                     ,p_token_3                 => 'OWNER'
125196                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125197                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125198                                                                           ,p_lookup_code    => l_component_type_code
125199                                                                          )
125200                                     ,p_token_4                 => 'PRODUCT_NAME'
125201                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125202                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125203                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125204                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125205                                     ,p_ae_header_id            =>  NULL
125206                                        );
125207 
125208         IF (C_LEVEL_ERROR>= g_log_level) THEN
125209                  trace
125210                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125211                       ,p_level    => C_LEVEL_ERROR
125212                       ,p_module   => l_log_module);
125213         END IF;
125214       END IF;
125215    END IF;
125216    --
125217    --
125218    ------------------------------------------------------------------------------------------------
125219    -- 4219869 Business Flow
125220    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125221    -- Prior Entry.  Currently, the following code is always generated.
125222    ------------------------------------------------------------------------------------------------
125223    XLA_AE_LINES_PKG.ValidateCurrentLine;
125224 
125225    ------------------------------------------------------------------------------------
125226    -- 4219869 Business Flow
125227    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125228    ------------------------------------------------------------------------------------
125229    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125230 
125231    ----------------------------------------------------------------------------------
125232    -- 4219869 Business Flow
125233    -- Update journal entry status -- Need to generate this within IF <condition>
125234    ----------------------------------------------------------------------------------
125235    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125236          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125237          ,p_balance_type_code => l_balance_type_code
125238          );
125239 
125240    -------------------------------------------------------------------------------------------
125241    -- 4262811 - Generate the Accrual Reversal lines
125242    -------------------------------------------------------------------------------------------
125243    BEGIN
125244       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125248       END IF;
125245                               (g_array_event(p_event_id).array_value_num('header_index'));
125246       IF l_acc_rev_flag IS NULL THEN
125247          l_acc_rev_flag := 'N';
125249    EXCEPTION
125250       WHEN OTHERS THEN
125251          l_acc_rev_flag := 'N';
125252    END;
125253    --
125254    IF (l_acc_rev_flag = 'Y') THEN
125255 
125256        -- 4645092  ------------------------------------------------------------------------------
125257        -- To allow MPA report to determine if it should generate report process
125258        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125259        ------------------------------------------------------------------------------------------
125260 
125261        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125262        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125263    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125264    -- call ADRs
125265    -- Bug 4922099
125266    --
125267    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125268         (NVL(l_actual_upg_option, 'N') = 'O') OR
125269         (NVL(l_enc_upg_option, 'N') = 'O')
125270       )
125271    THEN
125272    NULL;
125273    --
125274    --
125275    
125276   l_ccid := AcctDerRule_42(
125277            p_application_id           => p_application_id
125278          , p_ae_header_id             => l_ae_header_id 
125279 , p_source_50 => p_source_50
125280          , x_transaction_coa_id       => l_adr_transaction_coa_id
125281          , x_accounting_coa_id        => l_adr_accounting_coa_id
125282          , x_value_type_code          => l_adr_value_type_code
125283          , p_side                     => 'NA'
125284    );
125285 
125286    xla_ae_lines_pkg.set_ccid(
125287     p_code_combination_id          => l_ccid
125288   , p_value_type_code              => l_adr_value_type_code
125289   , p_transaction_coa_id           => l_adr_transaction_coa_id
125290   , p_accounting_coa_id            => l_adr_accounting_coa_id
125291   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125292   , p_adr_type_code                => 'S'
125293   , p_component_type               => l_component_type
125294   , p_component_code               => l_component_code
125295   , p_component_type_code          => l_component_type_code
125296   , p_component_appl_id            => l_component_appl_id
125297   , p_amb_context_code             => l_amb_context_code
125298   , p_side                         => 'NA'
125299   );
125300 
125301 
125302    --
125303    --
125304    END IF;
125305 
125306        --
125307        -- Update the line information that should be overwritten
125308        --
125309        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
125310                                          p_header_num   => 1);
125311        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
125312 
125313        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
125314 
125315        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
125316           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
125317        END IF;
125318 
125319       --
125320       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
125321       --
125322       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
125323           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
125324       ELSE
125325           ---------------------------------------------------------------------------------------------------
125326           -- 4262811a Switch Sign
125327           ---------------------------------------------------------------------------------------------------
125328           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
125329           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125330                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125331           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125332                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125333           -- 5132302
125334           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
125335                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125336 
125337       END IF;
125338 
125339       -- 4955764
125340       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125341       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
125342 
125343 
125344       XLA_AE_LINES_PKG.ValidateCurrentLine;
125345       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125346 
125347       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125348                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
125349                ,p_balance_type_code => l_balance_type_code);
125350 
125351    END IF;
125352 
125353    -----------------------------------------------------------------------------------------
125354    -- 4262811 Multiperiod Accounting
125355    -----------------------------------------------------------------------------------------
125359 END IF;
125356      -- No MPA option is assigned.
125357 
125358 
125360 END IF;
125361 --
125362 
125363 --
125364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125365    trace
125366       (p_msg      => 'END of AcctLineType_202'
125367       ,p_level    => C_LEVEL_PROCEDURE
125368       ,p_module   => l_log_module);
125369 END IF;
125370 --
125371 EXCEPTION
125372   WHEN xla_exceptions_pkg.application_exception THEN
125373       RAISE;
125374   WHEN OTHERS THEN
125375        xla_exceptions_pkg.raise_message
125376            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_202');
125377 END AcctLineType_202;
125378 --
125379 
125380 ---------------------------------------
125381 --
125382 -- PRIVATE FUNCTION
125383 --         AcctLineType_203
125384 --
125385 ---------------------------------------
125386 PROCEDURE AcctLineType_203 (
125387   p_application_id        IN NUMBER
125388  ,p_event_id              IN NUMBER
125389  ,p_calculate_acctd_flag  IN VARCHAR2
125390  ,p_calculate_g_l_flag    IN VARCHAR2
125391  ,p_actual_flag           IN OUT VARCHAR2
125392  ,p_balance_type_code     OUT VARCHAR2
125393  ,p_gain_or_loss_ref      OUT VARCHAR2
125394  
125395 --Invoice Distribution Description
125396  , p_source_1            IN VARCHAR2
125397 --Invoice Distribution Ledger Amount
125398  , p_source_21            IN NUMBER
125399 --Invoice Distribution Type
125400  , p_source_33            IN VARCHAR2
125401  , p_source_33_meaning    IN VARCHAR2
125402 --Self-Assessed Tax Account
125403  , p_source_49            IN NUMBER
125404 --Accounting Reversal Indicator
125405  , p_source_52            IN VARCHAR2
125406 --Distribution Link Type
125407  , p_source_54            IN VARCHAR2
125408 --Allocation to Main Distribution Identifier
125409  , p_source_56            IN NUMBER
125410 --Invoice Identifier
125411  , p_source_57            IN NUMBER
125412 --Invoice Distribution Identifier
125413  , p_source_63            IN NUMBER
125414 --Payables Encumbrance Upgrade Credit Account
125415  , p_source_64            IN NUMBER
125416 --Payables Encumbrance Upgrade Credit Amount
125417  , p_source_65            IN NUMBER
125418 --Invoice Currency Code
125419  , p_source_66            IN VARCHAR2
125420 --Payables Encumbrance Upgrade Credit Base Amount
125421  , p_source_67            IN NUMBER
125422 --Payables Encumbrance Upgrade Debit Account
125423  , p_source_68            IN NUMBER
125424 --Payables Encumbrance Upgrade Debit Amount
125425  , p_source_69            IN NUMBER
125426 --Payables Encumbrance Upgrade Debit Base Amount
125427  , p_source_70            IN NUMBER
125428 --Payables Encumbrance Upgrade Option
125429  , p_source_71            IN VARCHAR2
125430 --Invoice Distribution Amount
125431  , p_source_72            IN NUMBER
125432 --Purchase Order Exchange Rate Date
125433  , p_source_73            IN DATE
125434 --Purchase Order Exchange Rate
125435  , p_source_74            IN NUMBER
125436 --Purchase Order Exchange Rate Type
125437  , p_source_75            IN VARCHAR2
125438 --Deferred Accounting End Date
125439  , p_source_76            IN DATE
125440 --Deferred Accounting Option
125441  , p_source_77            IN VARCHAR2
125442 --Deferred Accounting Start Date
125443  , p_source_78            IN DATE
125444 --Override Accounted Amount Indicator
125445  , p_source_79            IN VARCHAR2
125446  , p_source_79_meaning    IN VARCHAR2
125447 --Invoice Supplier Identifier
125448  , p_source_80            IN NUMBER
125449 --Invoice Supplier Site Identifier
125450  , p_source_81            IN NUMBER
125451 --Third Party Type
125452  , p_source_82            IN VARCHAR2
125453 --Parent Reversal Identifier
125454  , p_source_83            IN NUMBER
125455 --Invoice Distribution Statistical Amount
125456  , p_source_84            IN NUMBER
125457 --Invoice Distribution Tax Line Identifier
125458  , p_source_85            IN NUMBER
125459 --Invoice Distribution Tax Distribution Identifier from Tax
125460  , p_source_86            IN NUMBER
125461 --Invoice Distribution Summary Tax Line Identifier
125462  , p_source_87            IN NUMBER
125463 --Payables Upgrade Credit Encumbrance Type Identifier
125464  , p_source_88            IN NUMBER
125465 --Payables Upgrade Debit Encumbrance Type Identifier
125466  , p_source_89            IN NUMBER
125467 --Business Flow Accounts Payable Application Identifier
125468  , p_source_90            IN NUMBER
125469 --Business Flow Invoice Distribution Type
125470  , p_source_91            IN VARCHAR2
125471 --Business Flow Invoice Entity Code
125472  , p_source_92            IN VARCHAR2
125473 --Business Flow Invoice Distribution Identifier
125474  , p_source_93            IN NUMBER
125475 --Business Flow Invoice Identifier
125476  , p_source_94            IN NUMBER
125477 --Accrue on Receipt Option
125478  , p_source_95            IN VARCHAR2
125479  , p_source_95_meaning    IN VARCHAR2
125480 --Self-Assessed Tax Flag
125481  , p_source_135            IN VARCHAR2
125482  , p_source_135_meaning    IN VARCHAR2
125483 )
125484 IS
125485 
125486 l_component_type              VARCHAR2(80);
125487 l_component_code              VARCHAR2(30);
125488 l_component_type_code         VARCHAR2(1);
125489 l_component_appl_id           INTEGER;
125490 l_amb_context_code            VARCHAR2(30);
125491 l_entity_code                 VARCHAR2(30);
125492 l_event_class_code            VARCHAR2(30);
125493 l_ae_header_id                NUMBER;
125494 l_event_type_code             VARCHAR2(30);
125495 l_line_definition_code        VARCHAR2(30);
125499 l_segment                     VARCHAR2(30);
125496 l_line_definition_owner_code  VARCHAR2(1);
125497 --
125498 -- adr variables
125500 l_ccid                        NUMBER;
125501 l_adr_transaction_coa_id      NUMBER;
125502 l_adr_accounting_coa_id       NUMBER;
125503 l_adr_flexfield_segment_code  VARCHAR2(30);
125504 l_adr_flex_value_set_id       NUMBER;
125505 l_adr_value_type_code         VARCHAR2(30);
125506 l_adr_value_combination_id    NUMBER;
125507 l_adr_value_segment_code      VARCHAR2(30);
125508 
125509 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
125510 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
125511 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
125512 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
125513 
125514 -- 4262811 Variables ------------------------------------------------------------------------------------------
125515 l_entered_amt_idx             NUMBER;
125516 l_accted_amt_idx              NUMBER;
125517 l_acc_rev_flag                VARCHAR2(1);
125518 l_accrual_line_num            NUMBER;
125519 l_tmp_amt                     NUMBER;
125520 l_acc_rev_natural_side_code   VARCHAR2(1);
125521 
125522 l_num_entries                 NUMBER;
125523 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
125524 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
125525 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
125526 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
125527 l_recog_line_1                NUMBER;
125528 l_recog_line_2                NUMBER;
125529 
125530 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
125531 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
125532 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
125533 
125534 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
125535 
125536 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
125537 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
125538 
125539 ---------------------------------------------------------------------------------------------------------------
125540 
125541 
125542 --
125543 -- bulk performance
125544 --
125545 l_balance_type_code           VARCHAR2(1);
125546 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125547 l_log_module                  VARCHAR2(240);
125548 
125549 --
125550 -- Upgrade strategy
125551 --
125552 l_actual_upg_option           VARCHAR2(1);
125553 l_enc_upg_option           VARCHAR2(1);
125554 
125555 --
125556 BEGIN
125557 --
125558 IF g_log_enabled THEN
125559       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
125560 END IF;
125561 --
125562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125563 
125564       trace
125565          (p_msg      => 'BEGIN of AcctLineType_203'
125566          ,p_level    => C_LEVEL_PROCEDURE
125567          ,p_module   => l_log_module);
125568 
125569 END IF;
125570 --
125571 l_component_type             := 'AMB_JLT';
125572 l_component_code             := 'AP_SELF_NONREC_ACCRUAL_PREPAY';
125573 l_component_type_code        := 'S';
125574 l_component_appl_id          :=  200;
125575 l_amb_context_code           := 'DEFAULT';
125576 l_entity_code                := 'AP_INVOICES';
125577 l_event_class_code           := 'PREPAYMENTS';
125578 l_event_type_code            := 'PREPAYMENTS_ALL';
125579 l_line_definition_owner_code := 'S';
125580 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
125581 --
125582 l_balance_type_code          := 'A';
125583 l_segment                     := NULL;
125584 l_ccid                        := NULL;
125585 l_adr_transaction_coa_id      := NULL;
125586 l_adr_accounting_coa_id       := NULL;
125587 l_adr_flexfield_segment_code  := NULL;
125588 l_adr_flex_value_set_id       := NULL;
125589 l_adr_value_type_code         := NULL;
125590 l_adr_value_combination_id    := NULL;
125591 l_adr_value_segment_code      := NULL;
125592 
125593 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125594 l_bflow_class_code           := '';    -- 4219869 Business Flow
125595 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125596 l_budgetary_control_flag     := 'N';
125597 
125598 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125599 l_bflow_applied_to_amt       := NULL; -- 5132302
125600 l_entered_amt_idx            := NULL;          -- 4262811
125601 l_accted_amt_idx             := NULL;          -- 4262811
125602 l_acc_rev_flag               := NULL;          -- 4262811
125603 l_accrual_line_num           := NULL;          -- 4262811
125604 l_tmp_amt                    := NULL;          -- 4262811
125605 --
125606  
125607 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125608     l_balance_type_code <> 'B' THEN
125609 IF NVL(p_source_33,'
125610 ') =  'NONREC_TAX' AND 
125611 NVL(p_source_135,'
125612 ') =  'Y' AND 
125613 NVL(p_source_95,'
125614 ') =  'Y'
125615  THEN 
125616 
125617    --
125618    XLA_AE_LINES_PKG.SetNewLine;
125619 
125620    p_balance_type_code          := l_balance_type_code;
125621    -- set the flag so later we will know whether the gain loss line needs to be created
125622    
125626 
125623    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125624      p_actual_flag :='A';
125625    END IF;
125627    --
125628    -- bulk performance
125629    --
125630    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125631                                       p_header_num   => 0); -- 4262811
125632    --
125633    -- set accounting line options
125634    --
125635    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125636            p_natural_side_code          => 'D'
125637          , p_gain_or_loss_flag          => 'N'
125638          , p_gl_transfer_mode_code      => 'S'
125639          , p_acct_entry_type_code       => 'A'
125640          , p_switch_side_flag           => 'Y'
125641          , p_merge_duplicate_code       => 'A'
125642          );
125643    --
125644    l_acc_rev_natural_side_code := 'C';  -- 4262811
125645    -- 
125646    --
125647    -- set accounting line type info
125648    --
125649    xla_ae_lines_pkg.SetAcctLineType
125650       (p_component_type             => l_component_type
125651       ,p_event_type_code            => l_event_type_code
125652       ,p_line_definition_owner_code => l_line_definition_owner_code
125653       ,p_line_definition_code       => l_line_definition_code
125654       ,p_accounting_line_code       => l_component_code
125655       ,p_accounting_line_type_code  => l_component_type_code
125656       ,p_accounting_line_appl_id    => l_component_appl_id
125657       ,p_amb_context_code           => l_amb_context_code
125658       ,p_entity_code                => l_entity_code
125659       ,p_event_class_code           => l_event_class_code);
125660    --
125661    -- set accounting class
125662    --
125663    xla_ae_lines_pkg.SetAcctClass(
125664            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
125665          , p_ae_header_id           => l_ae_header_id
125666          );
125667 
125668    --
125669    -- set rounding class
125670    --
125671    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125672                       'SELF_ASSESSED_TAX';
125673 
125674    --
125675    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125676    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125677    --
125678    -- bulk performance
125679    --
125680    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125681 
125682    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125683       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125684 
125685    -- 4955764
125686    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125687       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125688 
125689    -- 4458381 Public Sector Enh
125690    
125691    --
125692    -- set accounting attributes for the line type
125693    --
125694    l_entered_amt_idx := 23;
125695    l_accted_amt_idx  := 28;
125696    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
125697    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125698    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
125699    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
125700    l_rec_acct_attrs.array_num_value(2)  := 
125701 xla_ae_sources_pkg.GetSystemSourceNum(
125702    p_source_code           => 'XLA_EVENT_APPL_ID'
125703  , p_source_type_code      => 'Y'
125704  , p_source_application_id =>  602
125705 );
125706    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
125707    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
125708    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
125709    l_rec_acct_attrs.array_char_value(4)  := 
125710 xla_ae_sources_pkg.GetSystemSourceChar(
125711    p_source_code           => 'XLA_ENTITY_CODE'
125712  , p_source_type_code      => 'Y'
125713  , p_source_application_id =>  602
125714 );
125715    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125716    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
125717    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125718    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
125719    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
125720    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
125721    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125722    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
125723    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
125724    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
125725    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
125726    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
125727    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125728    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
125729    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
125730    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
125731    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
125732    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
125733    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
125734    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
125738    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
125735    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
125736    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
125737    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
125739    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
125740    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
125741    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
125742    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
125743    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
125744    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
125745    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
125746    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
125747    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
125748    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
125749    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
125750    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
125751    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
125752    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
125753    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
125754    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
125755    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
125756    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
125757    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
125758    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
125759    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
125760    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
125761    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
125762    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
125763    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
125764    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
125765    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
125766    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
125767    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
125768    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
125769    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
125770    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
125771    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
125772    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
125773    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
125774    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
125775    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
125776    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
125777    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
125778    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
125779    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
125780    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
125781    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
125782    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
125783    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
125784    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
125785    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
125786    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
125787    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
125788    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
125789    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
125790    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
125791    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
125792    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
125793 
125794    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125795    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125796 
125797    ---------------------------------------------------------------------------------------------------------------
125798    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125799    ---------------------------------------------------------------------------------------------------------------
125800    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125801 
125802    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125803    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125804 
125805    IF xla_accounting_cache_pkg.GetValueChar
125806          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125807          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125808    AND l_bflow_method_code = 'PRIOR_ENTRY'
125809 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125810    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125811          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125812        )
125813    THEN
125814          xla_ae_lines_pkg.BflowUpgEntry
125815            (p_business_method_code    => l_bflow_method_code
125816            ,p_business_class_code     => l_bflow_class_code
125817            ,p_balance_type            => l_balance_type_code);
125818    ELSE
125819       NULL;
125820 -- No business flow processing for business flow method of NONE.
125821    END IF;
125822 
125823    --
125824    -- call analytical criteria
125825    --
125826    
125830    
125827    --
125828    -- call description
125829    --
125831 xla_ae_lines_pkg.SetLineDescription(
125832    p_ae_header_id => l_ae_header_id
125833   ,p_description  => Description_1 (
125834      p_application_id         => p_application_id
125835    , p_ae_header_id           => l_ae_header_id 
125836 , p_source_1 => p_source_1
125837    )
125838 );
125839 
125840 
125841    --
125842    -- call ADRs
125843    -- Bug 4922099
125844    --
125845    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125846         (NVL(l_actual_upg_option, 'N') = 'O') OR
125847         (NVL(l_enc_upg_option, 'N') = 'O')
125848       )
125849    THEN
125850    NULL;
125851    --
125852    --
125853    
125854   l_ccid := AcctDerRule_41(
125855            p_application_id           => p_application_id
125856          , p_ae_header_id             => l_ae_header_id 
125857 , p_source_49 => p_source_49
125858          , x_transaction_coa_id       => l_adr_transaction_coa_id
125859          , x_accounting_coa_id        => l_adr_accounting_coa_id
125860          , x_value_type_code          => l_adr_value_type_code
125861          , p_side                     => 'NA'
125862    );
125863 
125864    xla_ae_lines_pkg.set_ccid(
125865     p_code_combination_id          => l_ccid
125866   , p_value_type_code              => l_adr_value_type_code
125867   , p_transaction_coa_id           => l_adr_transaction_coa_id
125868   , p_accounting_coa_id            => l_adr_accounting_coa_id
125869   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
125870   , p_adr_type_code                => 'S'
125871   , p_component_type               => l_component_type
125872   , p_component_code               => l_component_code
125873   , p_component_type_code          => l_component_type_code
125874   , p_component_appl_id            => l_component_appl_id
125875   , p_amb_context_code             => l_amb_context_code
125876   , p_side                         => 'NA'
125877   );
125878 
125879 
125880    --
125881    --
125882    END IF;
125883    --
125884    -- Bug 4922099
125885    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125886           (NVL(l_enc_upg_option, 'N') = 'O')
125887         ) AND
125888         (l_bflow_method_code = 'PRIOR_ENTRY')
125889       )
125890    THEN
125891       IF
125892       --
125893       1 = 2
125894       --
125895       THEN
125896       xla_accounting_err_pkg.build_message
125897                                     (p_appli_s_name            => 'XLA'
125898                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125899                                     ,p_token_1                 => 'LINE_NUMBER'
125900                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125901                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125902                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125903                                                                              l_component_type
125904                                                                             ,l_component_code
125905                                                                             ,l_component_type_code
125906                                                                             ,l_component_appl_id
125907                                                                             ,l_amb_context_code
125908                                                                             ,l_entity_code
125909                                                                             ,l_event_class_code
125910                                                                            )
125911                                     ,p_token_3                 => 'OWNER'
125912                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125913                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125914                                                                           ,p_lookup_code    => l_component_type_code
125915                                                                          )
125916                                     ,p_token_4                 => 'PRODUCT_NAME'
125917                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125918                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125919                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125920                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125921                                     ,p_ae_header_id            =>  NULL
125922                                        );
125923 
125924         IF (C_LEVEL_ERROR>= g_log_level) THEN
125925                  trace
125926                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125927                       ,p_level    => C_LEVEL_ERROR
125928                       ,p_module   => l_log_module);
125929         END IF;
125930       END IF;
125931    END IF;
125932    --
125933    --
125934    ------------------------------------------------------------------------------------------------
125935    -- 4219869 Business Flow
125936    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125937    -- Prior Entry.  Currently, the following code is always generated.
125938    ------------------------------------------------------------------------------------------------
125942    -- 4219869 Business Flow
125939    XLA_AE_LINES_PKG.ValidateCurrentLine;
125940 
125941    ------------------------------------------------------------------------------------
125943    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125944    ------------------------------------------------------------------------------------
125945    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125946 
125947    ----------------------------------------------------------------------------------
125948    -- 4219869 Business Flow
125949    -- Update journal entry status -- Need to generate this within IF <condition>
125950    ----------------------------------------------------------------------------------
125951    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125952          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125953          ,p_balance_type_code => l_balance_type_code
125954          );
125955 
125956    -------------------------------------------------------------------------------------------
125957    -- 4262811 - Generate the Accrual Reversal lines
125958    -------------------------------------------------------------------------------------------
125959    BEGIN
125960       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125961                               (g_array_event(p_event_id).array_value_num('header_index'));
125962       IF l_acc_rev_flag IS NULL THEN
125963          l_acc_rev_flag := 'N';
125964       END IF;
125965    EXCEPTION
125966       WHEN OTHERS THEN
125967          l_acc_rev_flag := 'N';
125968    END;
125969    --
125970    IF (l_acc_rev_flag = 'Y') THEN
125971 
125972        -- 4645092  ------------------------------------------------------------------------------
125973        -- To allow MPA report to determine if it should generate report process
125974        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125975        ------------------------------------------------------------------------------------------
125976 
125977        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125978        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125979    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125980    -- call ADRs
125981    -- Bug 4922099
125982    --
125983    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125984         (NVL(l_actual_upg_option, 'N') = 'O') OR
125985         (NVL(l_enc_upg_option, 'N') = 'O')
125986       )
125987    THEN
125988    NULL;
125989    --
125990    --
125991    
125992   l_ccid := AcctDerRule_41(
125993            p_application_id           => p_application_id
125994          , p_ae_header_id             => l_ae_header_id 
125995 , p_source_49 => p_source_49
125996          , x_transaction_coa_id       => l_adr_transaction_coa_id
125997          , x_accounting_coa_id        => l_adr_accounting_coa_id
125998          , x_value_type_code          => l_adr_value_type_code
125999          , p_side                     => 'NA'
126000    );
126001 
126002    xla_ae_lines_pkg.set_ccid(
126003     p_code_combination_id          => l_ccid
126004   , p_value_type_code              => l_adr_value_type_code
126005   , p_transaction_coa_id           => l_adr_transaction_coa_id
126006   , p_accounting_coa_id            => l_adr_accounting_coa_id
126007   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126008   , p_adr_type_code                => 'S'
126009   , p_component_type               => l_component_type
126010   , p_component_code               => l_component_code
126011   , p_component_type_code          => l_component_type_code
126012   , p_component_appl_id            => l_component_appl_id
126013   , p_amb_context_code             => l_amb_context_code
126014   , p_side                         => 'NA'
126015   );
126016 
126017 
126018    --
126019    --
126020    END IF;
126021 
126022        --
126023        -- Update the line information that should be overwritten
126024        --
126025        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126026                                          p_header_num   => 1);
126027        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126028 
126029        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126030 
126031        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126032           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126033        END IF;
126034 
126035       --
126036       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126037       --
126038       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126039           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126040       ELSE
126041           ---------------------------------------------------------------------------------------------------
126042           -- 4262811a Switch Sign
126043           ---------------------------------------------------------------------------------------------------
126044           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126045           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126046                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126047           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126051                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126048                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126049           -- 5132302
126050           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126052 
126053       END IF;
126054 
126055       -- 4955764
126056       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126057       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126058 
126059 
126060       XLA_AE_LINES_PKG.ValidateCurrentLine;
126061       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126062 
126063       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126064                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126065                ,p_balance_type_code => l_balance_type_code);
126066 
126067    END IF;
126068 
126069    -----------------------------------------------------------------------------------------
126070    -- 4262811 Multiperiod Accounting
126071    -----------------------------------------------------------------------------------------
126072      -- No MPA option is assigned.
126073 
126074 
126075 END IF;
126076 END IF;
126077 --
126078 
126079 --
126080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126081    trace
126082       (p_msg      => 'END of AcctLineType_203'
126083       ,p_level    => C_LEVEL_PROCEDURE
126084       ,p_module   => l_log_module);
126085 END IF;
126086 --
126087 EXCEPTION
126088   WHEN xla_exceptions_pkg.application_exception THEN
126089       RAISE;
126090   WHEN OTHERS THEN
126091        xla_exceptions_pkg.raise_message
126092            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_203');
126093 END AcctLineType_203;
126094 --
126095 
126096 ---------------------------------------
126097 --
126098 -- PRIVATE FUNCTION
126099 --         AcctLineType_204
126100 --
126101 ---------------------------------------
126102 PROCEDURE AcctLineType_204 (
126103   p_application_id        IN NUMBER
126104  ,p_event_id              IN NUMBER
126105  ,p_calculate_acctd_flag  IN VARCHAR2
126106  ,p_calculate_g_l_flag    IN VARCHAR2
126107  ,p_actual_flag           IN OUT VARCHAR2
126108  ,p_balance_type_code     OUT VARCHAR2
126109  ,p_gain_or_loss_ref      OUT VARCHAR2
126110  
126111 --Invoice Distribution Description
126112  , p_source_1            IN VARCHAR2
126113 --Invoice Distribution Ledger Amount
126114  , p_source_21            IN NUMBER
126115 --Invoice Distribution Type
126116  , p_source_33            IN VARCHAR2
126117  , p_source_33_meaning    IN VARCHAR2
126118 --Self-Assessed Tax Account
126119  , p_source_49            IN NUMBER
126120 --Accounting Reversal Indicator
126121  , p_source_52            IN VARCHAR2
126122 --Distribution Link Type
126123  , p_source_54            IN VARCHAR2
126124 --Allocation to Main Distribution Identifier
126125  , p_source_56            IN NUMBER
126126 --Invoice Identifier
126127  , p_source_57            IN NUMBER
126128 --Invoice Distribution Identifier
126129  , p_source_63            IN NUMBER
126130 --Payables Encumbrance Upgrade Credit Account
126131  , p_source_64            IN NUMBER
126132 --Payables Encumbrance Upgrade Credit Amount
126133  , p_source_65            IN NUMBER
126134 --Invoice Currency Code
126135  , p_source_66            IN VARCHAR2
126136 --Payables Encumbrance Upgrade Credit Base Amount
126137  , p_source_67            IN NUMBER
126138 --Payables Encumbrance Upgrade Debit Account
126139  , p_source_68            IN NUMBER
126140 --Payables Encumbrance Upgrade Debit Amount
126141  , p_source_69            IN NUMBER
126142 --Payables Encumbrance Upgrade Debit Base Amount
126143  , p_source_70            IN NUMBER
126144 --Payables Encumbrance Upgrade Option
126145  , p_source_71            IN VARCHAR2
126146 --Invoice Distribution Amount
126147  , p_source_72            IN NUMBER
126148 --Purchase Order Exchange Rate Date
126149  , p_source_73            IN DATE
126150 --Purchase Order Exchange Rate
126151  , p_source_74            IN NUMBER
126152 --Purchase Order Exchange Rate Type
126153  , p_source_75            IN VARCHAR2
126154 --Deferred Accounting End Date
126155  , p_source_76            IN DATE
126156 --Deferred Accounting Option
126157  , p_source_77            IN VARCHAR2
126158 --Deferred Accounting Start Date
126159  , p_source_78            IN DATE
126160 --Override Accounted Amount Indicator
126161  , p_source_79            IN VARCHAR2
126162  , p_source_79_meaning    IN VARCHAR2
126163 --Invoice Supplier Identifier
126164  , p_source_80            IN NUMBER
126165 --Invoice Supplier Site Identifier
126166  , p_source_81            IN NUMBER
126167 --Third Party Type
126168  , p_source_82            IN VARCHAR2
126169 --Parent Reversal Identifier
126170  , p_source_83            IN NUMBER
126171 --Invoice Distribution Statistical Amount
126172  , p_source_84            IN NUMBER
126173 --Invoice Distribution Tax Line Identifier
126174  , p_source_85            IN NUMBER
126175 --Invoice Distribution Tax Distribution Identifier from Tax
126176  , p_source_86            IN NUMBER
126177 --Invoice Distribution Summary Tax Line Identifier
126178  , p_source_87            IN NUMBER
126179 --Payables Upgrade Credit Encumbrance Type Identifier
126180  , p_source_88            IN NUMBER
126184  , p_source_90            IN NUMBER
126181 --Payables Upgrade Debit Encumbrance Type Identifier
126182  , p_source_89            IN NUMBER
126183 --Business Flow Accounts Payable Application Identifier
126185 --Business Flow Invoice Distribution Type
126186  , p_source_91            IN VARCHAR2
126187 --Business Flow Invoice Entity Code
126188  , p_source_92            IN VARCHAR2
126189 --Business Flow Invoice Distribution Identifier
126190  , p_source_93            IN NUMBER
126191 --Business Flow Invoice Identifier
126192  , p_source_94            IN NUMBER
126193 --Accrue on Receipt Option
126194  , p_source_95            IN VARCHAR2
126195  , p_source_95_meaning    IN VARCHAR2
126196 --Self-Assessed Tax Flag
126197  , p_source_135            IN VARCHAR2
126198  , p_source_135_meaning    IN VARCHAR2
126199 )
126200 IS
126201 
126202 l_component_type              VARCHAR2(80);
126203 l_component_code              VARCHAR2(30);
126204 l_component_type_code         VARCHAR2(1);
126205 l_component_appl_id           INTEGER;
126206 l_amb_context_code            VARCHAR2(30);
126207 l_entity_code                 VARCHAR2(30);
126208 l_event_class_code            VARCHAR2(30);
126209 l_ae_header_id                NUMBER;
126210 l_event_type_code             VARCHAR2(30);
126211 l_line_definition_code        VARCHAR2(30);
126212 l_line_definition_owner_code  VARCHAR2(1);
126213 --
126214 -- adr variables
126215 l_segment                     VARCHAR2(30);
126216 l_ccid                        NUMBER;
126217 l_adr_transaction_coa_id      NUMBER;
126218 l_adr_accounting_coa_id       NUMBER;
126219 l_adr_flexfield_segment_code  VARCHAR2(30);
126220 l_adr_flex_value_set_id       NUMBER;
126221 l_adr_value_type_code         VARCHAR2(30);
126222 l_adr_value_combination_id    NUMBER;
126223 l_adr_value_segment_code      VARCHAR2(30);
126224 
126225 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126226 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126227 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126228 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126229 
126230 -- 4262811 Variables ------------------------------------------------------------------------------------------
126231 l_entered_amt_idx             NUMBER;
126232 l_accted_amt_idx              NUMBER;
126233 l_acc_rev_flag                VARCHAR2(1);
126234 l_accrual_line_num            NUMBER;
126235 l_tmp_amt                     NUMBER;
126236 l_acc_rev_natural_side_code   VARCHAR2(1);
126237 
126238 l_num_entries                 NUMBER;
126239 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126240 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126241 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126242 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126243 l_recog_line_1                NUMBER;
126244 l_recog_line_2                NUMBER;
126245 
126246 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126247 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126248 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126249 
126250 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126251 
126252 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126253 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126254 
126255 ---------------------------------------------------------------------------------------------------------------
126256 
126257 
126258 --
126259 -- bulk performance
126260 --
126261 l_balance_type_code           VARCHAR2(1);
126262 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126263 l_log_module                  VARCHAR2(240);
126264 
126265 --
126266 -- Upgrade strategy
126267 --
126268 l_actual_upg_option           VARCHAR2(1);
126269 l_enc_upg_option           VARCHAR2(1);
126270 
126271 --
126272 BEGIN
126273 --
126274 IF g_log_enabled THEN
126275       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_204';
126276 END IF;
126277 --
126278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126279 
126280       trace
126281          (p_msg      => 'BEGIN of AcctLineType_204'
126282          ,p_level    => C_LEVEL_PROCEDURE
126283          ,p_module   => l_log_module);
126284 
126285 END IF;
126286 --
126287 l_component_type             := 'AMB_JLT';
126288 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_CM';
126289 l_component_type_code        := 'S';
126290 l_component_appl_id          :=  200;
126291 l_amb_context_code           := 'DEFAULT';
126292 l_entity_code                := 'AP_INVOICES';
126293 l_event_class_code           := 'CREDIT MEMOS';
126294 l_event_type_code            := 'CREDIT MEMOS_ALL';
126295 l_line_definition_owner_code := 'S';
126296 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
126297 --
126298 l_balance_type_code          := 'A';
126299 l_segment                     := NULL;
126300 l_ccid                        := NULL;
126301 l_adr_transaction_coa_id      := NULL;
126302 l_adr_accounting_coa_id       := NULL;
126303 l_adr_flexfield_segment_code  := NULL;
126304 l_adr_flex_value_set_id       := NULL;
126305 l_adr_value_type_code         := NULL;
126306 l_adr_value_combination_id    := NULL;
126307 l_adr_value_segment_code      := NULL;
126308 
126312 l_budgetary_control_flag     := 'N';
126309 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
126310 l_bflow_class_code           := '';    -- 4219869 Business Flow
126311 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
126313 
126314 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
126315 l_bflow_applied_to_amt       := NULL; -- 5132302
126316 l_entered_amt_idx            := NULL;          -- 4262811
126317 l_accted_amt_idx             := NULL;          -- 4262811
126318 l_acc_rev_flag               := NULL;          -- 4262811
126319 l_accrual_line_num           := NULL;          -- 4262811
126320 l_tmp_amt                    := NULL;          -- 4262811
126321 --
126322  
126323 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
126324     l_balance_type_code <> 'B' THEN
126325 IF NVL(p_source_33,'
126326 ') =  'NONREC_TAX' AND 
126327 NVL(p_source_135,'
126328 ') =  'Y' AND 
126329 NVL(p_source_95,'
126330 ') =  'Y'
126331  THEN 
126332 
126333    --
126334    XLA_AE_LINES_PKG.SetNewLine;
126335 
126336    p_balance_type_code          := l_balance_type_code;
126337    -- set the flag so later we will know whether the gain loss line needs to be created
126338    
126339    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
126340      p_actual_flag :='A';
126341    END IF;
126342 
126343    --
126344    -- bulk performance
126345    --
126346    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
126347                                       p_header_num   => 0); -- 4262811
126348    --
126349    -- set accounting line options
126350    --
126351    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
126352            p_natural_side_code          => 'D'
126353          , p_gain_or_loss_flag          => 'N'
126354          , p_gl_transfer_mode_code      => 'S'
126355          , p_acct_entry_type_code       => 'A'
126356          , p_switch_side_flag           => 'Y'
126357          , p_merge_duplicate_code       => 'A'
126358          );
126359    --
126360    l_acc_rev_natural_side_code := 'C';  -- 4262811
126361    -- 
126362    --
126363    -- set accounting line type info
126364    --
126365    xla_ae_lines_pkg.SetAcctLineType
126366       (p_component_type             => l_component_type
126367       ,p_event_type_code            => l_event_type_code
126368       ,p_line_definition_owner_code => l_line_definition_owner_code
126369       ,p_line_definition_code       => l_line_definition_code
126370       ,p_accounting_line_code       => l_component_code
126371       ,p_accounting_line_type_code  => l_component_type_code
126372       ,p_accounting_line_appl_id    => l_component_appl_id
126373       ,p_amb_context_code           => l_amb_context_code
126374       ,p_entity_code                => l_entity_code
126375       ,p_event_class_code           => l_event_class_code);
126376    --
126377    -- set accounting class
126378    --
126379    xla_ae_lines_pkg.SetAcctClass(
126380            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
126381          , p_ae_header_id           => l_ae_header_id
126382          );
126383 
126384    --
126385    -- set rounding class
126386    --
126387    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
126388                       'SELF_ASSESSED_TAX';
126389 
126390    --
126391    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
126392    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
126393    --
126394    -- bulk performance
126395    --
126396    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
126397 
126398    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
126399       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
126400 
126401    -- 4955764
126402    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126403       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
126404 
126405    -- 4458381 Public Sector Enh
126406    
126407    --
126408    -- set accounting attributes for the line type
126409    --
126410    l_entered_amt_idx := 23;
126411    l_accted_amt_idx  := 28;
126412    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
126413    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
126414    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
126415    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
126416    l_rec_acct_attrs.array_num_value(2)  := 
126417 xla_ae_sources_pkg.GetSystemSourceNum(
126418    p_source_code           => 'XLA_EVENT_APPL_ID'
126419  , p_source_type_code      => 'Y'
126420  , p_source_application_id =>  602
126421 );
126422    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
126423    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
126424    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
126425    l_rec_acct_attrs.array_char_value(4)  := 
126426 xla_ae_sources_pkg.GetSystemSourceChar(
126427    p_source_code           => 'XLA_ENTITY_CODE'
126428  , p_source_type_code      => 'Y'
126429  , p_source_application_id =>  602
126430 );
126431    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
126432    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
126436    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
126433    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
126434    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
126435    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
126437    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
126438    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
126439    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
126440    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
126441    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
126442    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
126443    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
126444    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
126445    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
126446    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
126447    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
126448    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
126449    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
126450    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
126451    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
126452    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
126453    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
126454    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
126455    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
126456    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
126457    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
126458    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
126459    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
126460    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
126461    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
126462    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
126463    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
126464    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
126465    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
126466    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
126467    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
126468    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
126469    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
126470    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
126471    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
126472    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
126473    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
126474    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
126475    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
126476    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
126477    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
126478    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
126479    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
126480    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
126481    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
126482    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
126483    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
126484    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
126485    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
126486    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
126487    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
126488    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
126489    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
126490    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
126491    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
126492    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
126493    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
126494    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
126495    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
126496    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
126497    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
126498    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
126499    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
126500    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
126501    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
126502    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
126503    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
126504    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
126505    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
126506    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
126507    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
126508    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
126509 
126510    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
126511    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
126512 
126513    ---------------------------------------------------------------------------------------------------------------
126514    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
126515    ---------------------------------------------------------------------------------------------------------------
126519    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126516    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
126517 
126518    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126520 
126521    IF xla_accounting_cache_pkg.GetValueChar
126522          (p_source_code         => 'LEDGER_CATEGORY_CODE'
126523          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
126524    AND l_bflow_method_code = 'PRIOR_ENTRY'
126525 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
126526    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
126527          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
126528        )
126529    THEN
126530          xla_ae_lines_pkg.BflowUpgEntry
126531            (p_business_method_code    => l_bflow_method_code
126532            ,p_business_class_code     => l_bflow_class_code
126533            ,p_balance_type            => l_balance_type_code);
126534    ELSE
126535       NULL;
126536 -- No business flow processing for business flow method of NONE.
126537    END IF;
126538 
126539    --
126540    -- call analytical criteria
126541    --
126542    
126543    --
126544    -- call description
126545    --
126546    
126547 xla_ae_lines_pkg.SetLineDescription(
126548    p_ae_header_id => l_ae_header_id
126549   ,p_description  => Description_1 (
126550      p_application_id         => p_application_id
126551    , p_ae_header_id           => l_ae_header_id 
126552 , p_source_1 => p_source_1
126553    )
126554 );
126555 
126556 
126557    --
126558    -- call ADRs
126559    -- Bug 4922099
126560    --
126561    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126562         (NVL(l_actual_upg_option, 'N') = 'O') OR
126563         (NVL(l_enc_upg_option, 'N') = 'O')
126564       )
126565    THEN
126566    NULL;
126567    --
126568    --
126569    
126570   l_ccid := AcctDerRule_41(
126571            p_application_id           => p_application_id
126572          , p_ae_header_id             => l_ae_header_id 
126573 , p_source_49 => p_source_49
126574          , x_transaction_coa_id       => l_adr_transaction_coa_id
126575          , x_accounting_coa_id        => l_adr_accounting_coa_id
126576          , x_value_type_code          => l_adr_value_type_code
126577          , p_side                     => 'NA'
126578    );
126579 
126580    xla_ae_lines_pkg.set_ccid(
126581     p_code_combination_id          => l_ccid
126582   , p_value_type_code              => l_adr_value_type_code
126583   , p_transaction_coa_id           => l_adr_transaction_coa_id
126584   , p_accounting_coa_id            => l_adr_accounting_coa_id
126585   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126586   , p_adr_type_code                => 'S'
126587   , p_component_type               => l_component_type
126588   , p_component_code               => l_component_code
126589   , p_component_type_code          => l_component_type_code
126590   , p_component_appl_id            => l_component_appl_id
126591   , p_amb_context_code             => l_amb_context_code
126592   , p_side                         => 'NA'
126593   );
126594 
126595 
126596    --
126597    --
126598    END IF;
126599    --
126600    -- Bug 4922099
126601    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
126602           (NVL(l_enc_upg_option, 'N') = 'O')
126603         ) AND
126604         (l_bflow_method_code = 'PRIOR_ENTRY')
126605       )
126606    THEN
126607       IF
126608       --
126609       1 = 2
126610       --
126611       THEN
126612       xla_accounting_err_pkg.build_message
126613                                     (p_appli_s_name            => 'XLA'
126614                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126615                                     ,p_token_1                 => 'LINE_NUMBER'
126616                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
126617                                     ,p_token_2                 => 'LINE_TYPE_NAME'
126618                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
126619                                                                              l_component_type
126620                                                                             ,l_component_code
126621                                                                             ,l_component_type_code
126622                                                                             ,l_component_appl_id
126623                                                                             ,l_amb_context_code
126624                                                                             ,l_entity_code
126625                                                                             ,l_event_class_code
126626                                                                            )
126627                                     ,p_token_3                 => 'OWNER'
126628                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126629                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126630                                                                           ,p_lookup_code    => l_component_type_code
126631                                                                          )
126632                                     ,p_token_4                 => 'PRODUCT_NAME'
126636                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126633                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126634                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126635                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126637                                     ,p_ae_header_id            =>  NULL
126638                                        );
126639 
126640         IF (C_LEVEL_ERROR>= g_log_level) THEN
126641                  trace
126642                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126643                       ,p_level    => C_LEVEL_ERROR
126644                       ,p_module   => l_log_module);
126645         END IF;
126646       END IF;
126647    END IF;
126648    --
126649    --
126650    ------------------------------------------------------------------------------------------------
126651    -- 4219869 Business Flow
126652    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126653    -- Prior Entry.  Currently, the following code is always generated.
126654    ------------------------------------------------------------------------------------------------
126655    XLA_AE_LINES_PKG.ValidateCurrentLine;
126656 
126657    ------------------------------------------------------------------------------------
126658    -- 4219869 Business Flow
126659    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126660    ------------------------------------------------------------------------------------
126661    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126662 
126663    ----------------------------------------------------------------------------------
126664    -- 4219869 Business Flow
126665    -- Update journal entry status -- Need to generate this within IF <condition>
126666    ----------------------------------------------------------------------------------
126667    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126668          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126669          ,p_balance_type_code => l_balance_type_code
126670          );
126671 
126672    -------------------------------------------------------------------------------------------
126673    -- 4262811 - Generate the Accrual Reversal lines
126674    -------------------------------------------------------------------------------------------
126675    BEGIN
126676       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126677                               (g_array_event(p_event_id).array_value_num('header_index'));
126678       IF l_acc_rev_flag IS NULL THEN
126679          l_acc_rev_flag := 'N';
126680       END IF;
126681    EXCEPTION
126682       WHEN OTHERS THEN
126683          l_acc_rev_flag := 'N';
126684    END;
126685    --
126686    IF (l_acc_rev_flag = 'Y') THEN
126687 
126688        -- 4645092  ------------------------------------------------------------------------------
126689        -- To allow MPA report to determine if it should generate report process
126690        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126691        ------------------------------------------------------------------------------------------
126692 
126693        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126694        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126695    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126696    -- call ADRs
126697    -- Bug 4922099
126698    --
126699    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126700         (NVL(l_actual_upg_option, 'N') = 'O') OR
126701         (NVL(l_enc_upg_option, 'N') = 'O')
126702       )
126703    THEN
126704    NULL;
126705    --
126706    --
126707    
126708   l_ccid := AcctDerRule_41(
126709            p_application_id           => p_application_id
126710          , p_ae_header_id             => l_ae_header_id 
126711 , p_source_49 => p_source_49
126712          , x_transaction_coa_id       => l_adr_transaction_coa_id
126713          , x_accounting_coa_id        => l_adr_accounting_coa_id
126714          , x_value_type_code          => l_adr_value_type_code
126715          , p_side                     => 'NA'
126716    );
126717 
126718    xla_ae_lines_pkg.set_ccid(
126719     p_code_combination_id          => l_ccid
126720   , p_value_type_code              => l_adr_value_type_code
126721   , p_transaction_coa_id           => l_adr_transaction_coa_id
126722   , p_accounting_coa_id            => l_adr_accounting_coa_id
126723   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126724   , p_adr_type_code                => 'S'
126725   , p_component_type               => l_component_type
126726   , p_component_code               => l_component_code
126727   , p_component_type_code          => l_component_type_code
126728   , p_component_appl_id            => l_component_appl_id
126729   , p_amb_context_code             => l_amb_context_code
126730   , p_side                         => 'NA'
126731   );
126732 
126733 
126734    --
126735    --
126736    END IF;
126737 
126738        --
126739        -- Update the line information that should be overwritten
126740        --
126741        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126742                                          p_header_num   => 1);
126746 
126743        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126744 
126745        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126747        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126748           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126749        END IF;
126750 
126751       --
126752       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126753       --
126754       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126755           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126756       ELSE
126757           ---------------------------------------------------------------------------------------------------
126758           -- 4262811a Switch Sign
126759           ---------------------------------------------------------------------------------------------------
126760           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126761           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126762                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126763           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126764                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126765           -- 5132302
126766           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126767                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126768 
126769       END IF;
126770 
126771       -- 4955764
126772       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126773       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126774 
126775 
126776       XLA_AE_LINES_PKG.ValidateCurrentLine;
126777       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126778 
126779       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126780                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126781                ,p_balance_type_code => l_balance_type_code);
126782 
126783    END IF;
126784 
126785    -----------------------------------------------------------------------------------------
126786    -- 4262811 Multiperiod Accounting
126787    -----------------------------------------------------------------------------------------
126788      -- No MPA option is assigned.
126789 
126790 
126791 END IF;
126792 END IF;
126793 --
126794 
126795 --
126796 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126797    trace
126798       (p_msg      => 'END of AcctLineType_204'
126799       ,p_level    => C_LEVEL_PROCEDURE
126800       ,p_module   => l_log_module);
126801 END IF;
126802 --
126803 EXCEPTION
126804   WHEN xla_exceptions_pkg.application_exception THEN
126805       RAISE;
126806   WHEN OTHERS THEN
126807        xla_exceptions_pkg.raise_message
126808            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_204');
126809 END AcctLineType_204;
126810 --
126811 
126812 ---------------------------------------
126813 --
126814 -- PRIVATE FUNCTION
126815 --         AcctLineType_205
126816 --
126817 ---------------------------------------
126818 PROCEDURE AcctLineType_205 (
126819   p_application_id        IN NUMBER
126820  ,p_event_id              IN NUMBER
126821  ,p_calculate_acctd_flag  IN VARCHAR2
126822  ,p_calculate_g_l_flag    IN VARCHAR2
126823  ,p_actual_flag           IN OUT VARCHAR2
126824  ,p_balance_type_code     OUT VARCHAR2
126825  ,p_gain_or_loss_ref      OUT VARCHAR2
126826  
126827 --Invoice Distribution Description
126828  , p_source_1            IN VARCHAR2
126829 --Invoice Distribution Ledger Amount
126830  , p_source_21            IN NUMBER
126831 --Invoice Distribution Type
126832  , p_source_33            IN VARCHAR2
126833  , p_source_33_meaning    IN VARCHAR2
126834 --Self-Assessed Tax Account
126835  , p_source_49            IN NUMBER
126836 --Accounting Reversal Indicator
126837  , p_source_52            IN VARCHAR2
126838 --Distribution Link Type
126839  , p_source_54            IN VARCHAR2
126840 --Allocation to Main Distribution Identifier
126841  , p_source_56            IN NUMBER
126842 --Invoice Identifier
126843  , p_source_57            IN NUMBER
126844 --Invoice Distribution Identifier
126845  , p_source_63            IN NUMBER
126846 --Payables Encumbrance Upgrade Credit Account
126847  , p_source_64            IN NUMBER
126848 --Payables Encumbrance Upgrade Credit Amount
126849  , p_source_65            IN NUMBER
126850 --Invoice Currency Code
126851  , p_source_66            IN VARCHAR2
126852 --Payables Encumbrance Upgrade Credit Base Amount
126853  , p_source_67            IN NUMBER
126854 --Payables Encumbrance Upgrade Debit Account
126855  , p_source_68            IN NUMBER
126856 --Payables Encumbrance Upgrade Debit Amount
126857  , p_source_69            IN NUMBER
126858 --Payables Encumbrance Upgrade Debit Base Amount
126859  , p_source_70            IN NUMBER
126860 --Payables Encumbrance Upgrade Option
126861  , p_source_71            IN VARCHAR2
126862 --Invoice Distribution Amount
126866 --Purchase Order Exchange Rate
126863  , p_source_72            IN NUMBER
126864 --Purchase Order Exchange Rate Date
126865  , p_source_73            IN DATE
126867  , p_source_74            IN NUMBER
126868 --Purchase Order Exchange Rate Type
126869  , p_source_75            IN VARCHAR2
126870 --Deferred Accounting End Date
126871  , p_source_76            IN DATE
126872 --Deferred Accounting Option
126873  , p_source_77            IN VARCHAR2
126874 --Deferred Accounting Start Date
126875  , p_source_78            IN DATE
126876 --Override Accounted Amount Indicator
126877  , p_source_79            IN VARCHAR2
126878  , p_source_79_meaning    IN VARCHAR2
126879 --Invoice Supplier Identifier
126880  , p_source_80            IN NUMBER
126881 --Invoice Supplier Site Identifier
126882  , p_source_81            IN NUMBER
126883 --Third Party Type
126884  , p_source_82            IN VARCHAR2
126885 --Parent Reversal Identifier
126886  , p_source_83            IN NUMBER
126887 --Invoice Distribution Tax Line Identifier
126888  , p_source_85            IN NUMBER
126889 --Invoice Distribution Tax Distribution Identifier from Tax
126890  , p_source_86            IN NUMBER
126891 --Invoice Distribution Summary Tax Line Identifier
126892  , p_source_87            IN NUMBER
126893 --Payables Upgrade Credit Encumbrance Type Identifier
126894  , p_source_88            IN NUMBER
126895 --Payables Upgrade Debit Encumbrance Type Identifier
126896  , p_source_89            IN NUMBER
126897 --Business Flow Accounts Payable Application Identifier
126898  , p_source_90            IN NUMBER
126899 --Business Flow Invoice Distribution Type
126900  , p_source_91            IN VARCHAR2
126901 --Business Flow Invoice Entity Code
126902  , p_source_92            IN VARCHAR2
126903 --Business Flow Invoice Distribution Identifier
126904  , p_source_93            IN NUMBER
126905 --Business Flow Invoice Identifier
126906  , p_source_94            IN NUMBER
126907 --Accrue on Receipt Option
126908  , p_source_95            IN VARCHAR2
126909  , p_source_95_meaning    IN VARCHAR2
126910 --Self-Assessed Tax Flag
126911  , p_source_135            IN VARCHAR2
126912  , p_source_135_meaning    IN VARCHAR2
126913 )
126914 IS
126915 
126916 l_component_type              VARCHAR2(80);
126917 l_component_code              VARCHAR2(30);
126918 l_component_type_code         VARCHAR2(1);
126919 l_component_appl_id           INTEGER;
126920 l_amb_context_code            VARCHAR2(30);
126921 l_entity_code                 VARCHAR2(30);
126922 l_event_class_code            VARCHAR2(30);
126923 l_ae_header_id                NUMBER;
126924 l_event_type_code             VARCHAR2(30);
126925 l_line_definition_code        VARCHAR2(30);
126926 l_line_definition_owner_code  VARCHAR2(1);
126927 --
126928 -- adr variables
126929 l_segment                     VARCHAR2(30);
126930 l_ccid                        NUMBER;
126931 l_adr_transaction_coa_id      NUMBER;
126932 l_adr_accounting_coa_id       NUMBER;
126933 l_adr_flexfield_segment_code  VARCHAR2(30);
126934 l_adr_flex_value_set_id       NUMBER;
126935 l_adr_value_type_code         VARCHAR2(30);
126936 l_adr_value_combination_id    NUMBER;
126937 l_adr_value_segment_code      VARCHAR2(30);
126938 
126939 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126940 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126941 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126942 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126943 
126944 -- 4262811 Variables ------------------------------------------------------------------------------------------
126945 l_entered_amt_idx             NUMBER;
126946 l_accted_amt_idx              NUMBER;
126947 l_acc_rev_flag                VARCHAR2(1);
126948 l_accrual_line_num            NUMBER;
126949 l_tmp_amt                     NUMBER;
126950 l_acc_rev_natural_side_code   VARCHAR2(1);
126951 
126952 l_num_entries                 NUMBER;
126953 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126954 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126955 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126956 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126957 l_recog_line_1                NUMBER;
126958 l_recog_line_2                NUMBER;
126959 
126960 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126961 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126962 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126963 
126964 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126965 
126966 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126967 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126968 
126969 ---------------------------------------------------------------------------------------------------------------
126970 
126971 
126972 --
126973 -- bulk performance
126974 --
126975 l_balance_type_code           VARCHAR2(1);
126976 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126977 l_log_module                  VARCHAR2(240);
126978 
126979 --
126980 -- Upgrade strategy
126981 --
126982 l_actual_upg_option           VARCHAR2(1);
126983 l_enc_upg_option           VARCHAR2(1);
126984 
126985 --
126986 BEGIN
126987 --
126988 IF g_log_enabled THEN
126989       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_205';
126990 END IF;
126991 --
126995          (p_msg      => 'BEGIN of AcctLineType_205'
126992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126993 
126994       trace
126996          ,p_level    => C_LEVEL_PROCEDURE
126997          ,p_module   => l_log_module);
126998 
126999 END IF;
127000 --
127001 l_component_type             := 'AMB_JLT';
127002 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_DM';
127003 l_component_type_code        := 'S';
127004 l_component_appl_id          :=  200;
127005 l_amb_context_code           := 'DEFAULT';
127006 l_entity_code                := 'AP_INVOICES';
127007 l_event_class_code           := 'DEBIT MEMOS';
127008 l_event_type_code            := 'DEBIT MEMOS_ALL';
127009 l_line_definition_owner_code := 'S';
127010 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
127011 --
127012 l_balance_type_code          := 'A';
127013 l_segment                     := NULL;
127014 l_ccid                        := NULL;
127015 l_adr_transaction_coa_id      := NULL;
127016 l_adr_accounting_coa_id       := NULL;
127017 l_adr_flexfield_segment_code  := NULL;
127018 l_adr_flex_value_set_id       := NULL;
127019 l_adr_value_type_code         := NULL;
127020 l_adr_value_combination_id    := NULL;
127021 l_adr_value_segment_code      := NULL;
127022 
127023 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127024 l_bflow_class_code           := '';    -- 4219869 Business Flow
127025 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127026 l_budgetary_control_flag     := 'N';
127027 
127028 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127029 l_bflow_applied_to_amt       := NULL; -- 5132302
127030 l_entered_amt_idx            := NULL;          -- 4262811
127031 l_accted_amt_idx             := NULL;          -- 4262811
127032 l_acc_rev_flag               := NULL;          -- 4262811
127033 l_accrual_line_num           := NULL;          -- 4262811
127034 l_tmp_amt                    := NULL;          -- 4262811
127035 --
127036  
127037 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127038     l_balance_type_code <> 'B' THEN
127039 IF NVL(p_source_33,'
127040 ') =  'NONREC_TAX' AND 
127041 NVL(p_source_135,'
127042 ') =  'Y' AND 
127043 NVL(p_source_95,'
127044 ') =  'Y'
127045  THEN 
127046 
127047    --
127048    XLA_AE_LINES_PKG.SetNewLine;
127049 
127050    p_balance_type_code          := l_balance_type_code;
127051    -- set the flag so later we will know whether the gain loss line needs to be created
127052    
127053    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127054      p_actual_flag :='A';
127055    END IF;
127056 
127057    --
127058    -- bulk performance
127059    --
127060    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127061                                       p_header_num   => 0); -- 4262811
127062    --
127063    -- set accounting line options
127064    --
127065    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127066            p_natural_side_code          => 'D'
127067          , p_gain_or_loss_flag          => 'N'
127068          , p_gl_transfer_mode_code      => 'S'
127069          , p_acct_entry_type_code       => 'A'
127070          , p_switch_side_flag           => 'Y'
127071          , p_merge_duplicate_code       => 'A'
127072          );
127073    --
127074    l_acc_rev_natural_side_code := 'C';  -- 4262811
127075    -- 
127076    --
127077    -- set accounting line type info
127078    --
127079    xla_ae_lines_pkg.SetAcctLineType
127080       (p_component_type             => l_component_type
127081       ,p_event_type_code            => l_event_type_code
127082       ,p_line_definition_owner_code => l_line_definition_owner_code
127083       ,p_line_definition_code       => l_line_definition_code
127084       ,p_accounting_line_code       => l_component_code
127085       ,p_accounting_line_type_code  => l_component_type_code
127086       ,p_accounting_line_appl_id    => l_component_appl_id
127087       ,p_amb_context_code           => l_amb_context_code
127088       ,p_entity_code                => l_entity_code
127089       ,p_event_class_code           => l_event_class_code);
127090    --
127091    -- set accounting class
127092    --
127093    xla_ae_lines_pkg.SetAcctClass(
127094            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
127095          , p_ae_header_id           => l_ae_header_id
127096          );
127097 
127098    --
127099    -- set rounding class
127100    --
127101    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127102                       'SELF_ASSESSED_TAX';
127103 
127104    --
127105    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127106    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127107    --
127108    -- bulk performance
127109    --
127110    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127111 
127112    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127113       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127114 
127115    -- 4955764
127116    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127117       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127118 
127119    -- 4458381 Public Sector Enh
127120    
127121    --
127125    l_accted_amt_idx  := 28;
127122    -- set accounting attributes for the line type
127123    --
127124    l_entered_amt_idx := 23;
127126    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
127127    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127128    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
127129    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127130    l_rec_acct_attrs.array_num_value(2)  := 
127131 xla_ae_sources_pkg.GetSystemSourceNum(
127132    p_source_code           => 'XLA_EVENT_APPL_ID'
127133  , p_source_type_code      => 'Y'
127134  , p_source_application_id =>  602
127135 );
127136    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127137    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
127138    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127139    l_rec_acct_attrs.array_char_value(4)  := 
127140 xla_ae_sources_pkg.GetSystemSourceChar(
127141    p_source_code           => 'XLA_ENTITY_CODE'
127142  , p_source_type_code      => 'Y'
127143  , p_source_application_id =>  602
127144 );
127145    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127146    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
127147    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127148    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
127149    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127150    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
127151    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127152    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
127153    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127154    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
127155    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127156    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
127157    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127158    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
127159    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127160    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
127161    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127162    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
127163    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
127164    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
127165    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
127166    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
127167    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
127168    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
127169    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
127170    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
127171    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
127172    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
127173    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
127174    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
127175    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
127176    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
127177    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
127178    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
127179    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
127180    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
127181    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
127182    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
127183    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
127184    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
127185    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
127186    l_rec_acct_attrs.array_date_value(25)  := p_source_73;
127187    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
127188    l_rec_acct_attrs.array_num_value(26)  := p_source_74;
127189    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
127190    l_rec_acct_attrs.array_char_value(27)  := p_source_75;
127191    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
127192    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
127193    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
127194    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
127195    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
127196    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
127197    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
127198    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
127199    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
127200    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
127201    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
127202    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
127203    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
127204    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
127205    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
127206    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
127207    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
127208    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
127209    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
127210    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
127211    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
127215    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
127212    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
127213    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
127214    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
127216    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
127217    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
127218    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
127219    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
127220    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
127221 
127222    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127223    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127224 
127225    ---------------------------------------------------------------------------------------------------------------
127226    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127227    ---------------------------------------------------------------------------------------------------------------
127228    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127229 
127230    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127231    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127232 
127233    IF xla_accounting_cache_pkg.GetValueChar
127234          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127235          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127236    AND l_bflow_method_code = 'PRIOR_ENTRY'
127237 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127238    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127239          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127240        )
127241    THEN
127242          xla_ae_lines_pkg.BflowUpgEntry
127243            (p_business_method_code    => l_bflow_method_code
127244            ,p_business_class_code     => l_bflow_class_code
127245            ,p_balance_type            => l_balance_type_code);
127246    ELSE
127247       NULL;
127248 -- No business flow processing for business flow method of NONE.
127249    END IF;
127250 
127251    --
127252    -- call analytical criteria
127253    --
127254    
127255    --
127256    -- call description
127257    --
127258    
127259 xla_ae_lines_pkg.SetLineDescription(
127260    p_ae_header_id => l_ae_header_id
127261   ,p_description  => Description_1 (
127262      p_application_id         => p_application_id
127263    , p_ae_header_id           => l_ae_header_id 
127264 , p_source_1 => p_source_1
127265    )
127266 );
127267 
127268 
127269    --
127270    -- call ADRs
127271    -- Bug 4922099
127272    --
127273    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127274         (NVL(l_actual_upg_option, 'N') = 'O') OR
127275         (NVL(l_enc_upg_option, 'N') = 'O')
127276       )
127277    THEN
127278    NULL;
127279    --
127280    --
127281    
127282   l_ccid := AcctDerRule_41(
127283            p_application_id           => p_application_id
127284          , p_ae_header_id             => l_ae_header_id 
127285 , p_source_49 => p_source_49
127286          , x_transaction_coa_id       => l_adr_transaction_coa_id
127287          , x_accounting_coa_id        => l_adr_accounting_coa_id
127288          , x_value_type_code          => l_adr_value_type_code
127289          , p_side                     => 'NA'
127290    );
127291 
127292    xla_ae_lines_pkg.set_ccid(
127293     p_code_combination_id          => l_ccid
127294   , p_value_type_code              => l_adr_value_type_code
127295   , p_transaction_coa_id           => l_adr_transaction_coa_id
127296   , p_accounting_coa_id            => l_adr_accounting_coa_id
127297   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127298   , p_adr_type_code                => 'S'
127299   , p_component_type               => l_component_type
127300   , p_component_code               => l_component_code
127301   , p_component_type_code          => l_component_type_code
127302   , p_component_appl_id            => l_component_appl_id
127303   , p_amb_context_code             => l_amb_context_code
127304   , p_side                         => 'NA'
127305   );
127306 
127307 
127308    --
127309    --
127310    END IF;
127311    --
127312    -- Bug 4922099
127313    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
127314           (NVL(l_enc_upg_option, 'N') = 'O')
127315         ) AND
127316         (l_bflow_method_code = 'PRIOR_ENTRY')
127317       )
127318    THEN
127319       IF
127320       --
127321       1 = 2
127322       --
127323       THEN
127324       xla_accounting_err_pkg.build_message
127325                                     (p_appli_s_name            => 'XLA'
127326                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127327                                     ,p_token_1                 => 'LINE_NUMBER'
127328                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
127329                                     ,p_token_2                 => 'LINE_TYPE_NAME'
127330                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
127334                                                                             ,l_component_appl_id
127331                                                                              l_component_type
127332                                                                             ,l_component_code
127333                                                                             ,l_component_type_code
127335                                                                             ,l_amb_context_code
127336                                                                             ,l_entity_code
127337                                                                             ,l_event_class_code
127338                                                                            )
127339                                     ,p_token_3                 => 'OWNER'
127340                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
127341                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
127342                                                                           ,p_lookup_code    => l_component_type_code
127343                                                                          )
127344                                     ,p_token_4                 => 'PRODUCT_NAME'
127345                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
127346                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
127347                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
127348                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
127349                                     ,p_ae_header_id            =>  NULL
127350                                        );
127351 
127352         IF (C_LEVEL_ERROR>= g_log_level) THEN
127353                  trace
127354                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127355                       ,p_level    => C_LEVEL_ERROR
127356                       ,p_module   => l_log_module);
127357         END IF;
127358       END IF;
127359    END IF;
127360    --
127361    --
127362    ------------------------------------------------------------------------------------------------
127363    -- 4219869 Business Flow
127364    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
127365    -- Prior Entry.  Currently, the following code is always generated.
127366    ------------------------------------------------------------------------------------------------
127367    XLA_AE_LINES_PKG.ValidateCurrentLine;
127368 
127369    ------------------------------------------------------------------------------------
127370    -- 4219869 Business Flow
127371    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
127372    ------------------------------------------------------------------------------------
127373    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127374 
127375    ----------------------------------------------------------------------------------
127376    -- 4219869 Business Flow
127377    -- Update journal entry status -- Need to generate this within IF <condition>
127378    ----------------------------------------------------------------------------------
127379    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127380          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
127381          ,p_balance_type_code => l_balance_type_code
127382          );
127383 
127384    -------------------------------------------------------------------------------------------
127385    -- 4262811 - Generate the Accrual Reversal lines
127386    -------------------------------------------------------------------------------------------
127387    BEGIN
127388       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
127389                               (g_array_event(p_event_id).array_value_num('header_index'));
127390       IF l_acc_rev_flag IS NULL THEN
127391          l_acc_rev_flag := 'N';
127392       END IF;
127393    EXCEPTION
127394       WHEN OTHERS THEN
127395          l_acc_rev_flag := 'N';
127396    END;
127397    --
127398    IF (l_acc_rev_flag = 'Y') THEN
127399 
127400        -- 4645092  ------------------------------------------------------------------------------
127401        -- To allow MPA report to determine if it should generate report process
127402        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
127403        ------------------------------------------------------------------------------------------
127404 
127405        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
127406        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
127407    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
127408    -- call ADRs
127409    -- Bug 4922099
127410    --
127411    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127412         (NVL(l_actual_upg_option, 'N') = 'O') OR
127413         (NVL(l_enc_upg_option, 'N') = 'O')
127414       )
127415    THEN
127416    NULL;
127417    --
127418    --
127419    
127420   l_ccid := AcctDerRule_41(
127421            p_application_id           => p_application_id
127422          , p_ae_header_id             => l_ae_header_id 
127423 , p_source_49 => p_source_49
127424          , x_transaction_coa_id       => l_adr_transaction_coa_id
127425          , x_accounting_coa_id        => l_adr_accounting_coa_id
127429 
127426          , x_value_type_code          => l_adr_value_type_code
127427          , p_side                     => 'NA'
127428    );
127430    xla_ae_lines_pkg.set_ccid(
127431     p_code_combination_id          => l_ccid
127432   , p_value_type_code              => l_adr_value_type_code
127433   , p_transaction_coa_id           => l_adr_transaction_coa_id
127434   , p_accounting_coa_id            => l_adr_accounting_coa_id
127435   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127436   , p_adr_type_code                => 'S'
127437   , p_component_type               => l_component_type
127438   , p_component_code               => l_component_code
127439   , p_component_type_code          => l_component_type_code
127440   , p_component_appl_id            => l_component_appl_id
127441   , p_amb_context_code             => l_amb_context_code
127442   , p_side                         => 'NA'
127443   );
127444 
127445 
127446    --
127447    --
127448    END IF;
127449 
127450        --
127451        -- Update the line information that should be overwritten
127452        --
127453        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
127454                                          p_header_num   => 1);
127455        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
127456 
127457        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
127458 
127459        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
127460           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
127461        END IF;
127462 
127463       --
127464       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
127465       --
127466       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
127467           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
127468       ELSE
127469           ---------------------------------------------------------------------------------------------------
127470           -- 4262811a Switch Sign
127471           ---------------------------------------------------------------------------------------------------
127472           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
127473           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127474                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127475           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127476                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127477           -- 5132302
127478           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
127479                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127480 
127481       END IF;
127482 
127483       -- 4955764
127484       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127485       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
127486 
127487 
127488       XLA_AE_LINES_PKG.ValidateCurrentLine;
127489       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127490 
127491       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127492                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
127493                ,p_balance_type_code => l_balance_type_code);
127494 
127495    END IF;
127496 
127497    -----------------------------------------------------------------------------------------
127498    -- 4262811 Multiperiod Accounting
127499    -----------------------------------------------------------------------------------------
127500      -- No MPA option is assigned.
127501 
127502 
127503 END IF;
127504 END IF;
127505 --
127506 
127507 --
127508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127509    trace
127510       (p_msg      => 'END of AcctLineType_205'
127511       ,p_level    => C_LEVEL_PROCEDURE
127512       ,p_module   => l_log_module);
127513 END IF;
127514 --
127515 EXCEPTION
127516   WHEN xla_exceptions_pkg.application_exception THEN
127517       RAISE;
127518   WHEN OTHERS THEN
127519        xla_exceptions_pkg.raise_message
127520            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_205');
127521 END AcctLineType_205;
127522 --
127523 
127524 ---------------------------------------
127525 --
127526 -- PRIVATE FUNCTION
127527 --         AcctLineType_206
127528 --
127529 ---------------------------------------
127530 PROCEDURE AcctLineType_206 (
127531   p_application_id        IN NUMBER
127532  ,p_event_id              IN NUMBER
127533  ,p_calculate_acctd_flag  IN VARCHAR2
127534  ,p_calculate_g_l_flag    IN VARCHAR2
127535  ,p_actual_flag           IN OUT VARCHAR2
127536  ,p_balance_type_code     OUT VARCHAR2
127537  ,p_gain_or_loss_ref      OUT VARCHAR2
127538  
127539 --Invoice Distribution Description
127540  , p_source_1            IN VARCHAR2
127541 --Invoice Distribution Ledger Amount
127542  , p_source_21            IN NUMBER
127543 --Invoice Distribution Type
127544  , p_source_33            IN VARCHAR2
127545  , p_source_33_meaning    IN VARCHAR2
127546 --Self-Assessed Tax Account
127547  , p_source_49            IN NUMBER
127548 --Accounting Reversal Indicator
127549  , p_source_52            IN VARCHAR2
127553  , p_source_56            IN NUMBER
127550 --Distribution Link Type
127551  , p_source_54            IN VARCHAR2
127552 --Allocation to Main Distribution Identifier
127554 --Invoice Identifier
127555  , p_source_57            IN NUMBER
127556 --Invoice Distribution Identifier
127557  , p_source_63            IN NUMBER
127558 --Payables Encumbrance Upgrade Credit Account
127559  , p_source_64            IN NUMBER
127560 --Payables Encumbrance Upgrade Credit Amount
127561  , p_source_65            IN NUMBER
127562 --Invoice Currency Code
127563  , p_source_66            IN VARCHAR2
127564 --Payables Encumbrance Upgrade Credit Base Amount
127565  , p_source_67            IN NUMBER
127566 --Payables Encumbrance Upgrade Debit Account
127567  , p_source_68            IN NUMBER
127568 --Payables Encumbrance Upgrade Debit Amount
127569  , p_source_69            IN NUMBER
127570 --Payables Encumbrance Upgrade Debit Base Amount
127571  , p_source_70            IN NUMBER
127572 --Payables Encumbrance Upgrade Option
127573  , p_source_71            IN VARCHAR2
127574 --Invoice Distribution Amount
127575  , p_source_72            IN NUMBER
127576 --Purchase Order Exchange Rate Date
127577  , p_source_73            IN DATE
127578 --Purchase Order Exchange Rate
127579  , p_source_74            IN NUMBER
127580 --Purchase Order Exchange Rate Type
127581  , p_source_75            IN VARCHAR2
127582 --Deferred Accounting End Date
127583  , p_source_76            IN DATE
127584 --Deferred Accounting Option
127585  , p_source_77            IN VARCHAR2
127586 --Deferred Accounting Start Date
127587  , p_source_78            IN DATE
127588 --Override Accounted Amount Indicator
127589  , p_source_79            IN VARCHAR2
127590  , p_source_79_meaning    IN VARCHAR2
127591 --Invoice Supplier Identifier
127592  , p_source_80            IN NUMBER
127593 --Invoice Supplier Site Identifier
127594  , p_source_81            IN NUMBER
127595 --Third Party Type
127596  , p_source_82            IN VARCHAR2
127597 --Parent Reversal Identifier
127598  , p_source_83            IN NUMBER
127599 --Invoice Distribution Statistical Amount
127600  , p_source_84            IN NUMBER
127601 --Invoice Distribution Tax Line Identifier
127602  , p_source_85            IN NUMBER
127603 --Invoice Distribution Tax Distribution Identifier from Tax
127604  , p_source_86            IN NUMBER
127605 --Invoice Distribution Summary Tax Line Identifier
127606  , p_source_87            IN NUMBER
127607 --Payables Upgrade Credit Encumbrance Type Identifier
127608  , p_source_88            IN NUMBER
127609 --Payables Upgrade Debit Encumbrance Type Identifier
127610  , p_source_89            IN NUMBER
127611 --Business Flow Accounts Payable Application Identifier
127612  , p_source_90            IN NUMBER
127613 --Business Flow Invoice Distribution Type
127614  , p_source_91            IN VARCHAR2
127615 --Business Flow Invoice Entity Code
127616  , p_source_92            IN VARCHAR2
127617 --Business Flow Invoice Distribution Identifier
127618  , p_source_93            IN NUMBER
127619 --Business Flow Invoice Identifier
127620  , p_source_94            IN NUMBER
127621 --Accrue on Receipt Option
127622  , p_source_95            IN VARCHAR2
127623  , p_source_95_meaning    IN VARCHAR2
127624 --Self-Assessed Tax Flag
127625  , p_source_135            IN VARCHAR2
127626  , p_source_135_meaning    IN VARCHAR2
127627 )
127628 IS
127629 
127630 l_component_type              VARCHAR2(80);
127631 l_component_code              VARCHAR2(30);
127632 l_component_type_code         VARCHAR2(1);
127633 l_component_appl_id           INTEGER;
127634 l_amb_context_code            VARCHAR2(30);
127635 l_entity_code                 VARCHAR2(30);
127636 l_event_class_code            VARCHAR2(30);
127637 l_ae_header_id                NUMBER;
127638 l_event_type_code             VARCHAR2(30);
127639 l_line_definition_code        VARCHAR2(30);
127640 l_line_definition_owner_code  VARCHAR2(1);
127641 --
127642 -- adr variables
127643 l_segment                     VARCHAR2(30);
127644 l_ccid                        NUMBER;
127645 l_adr_transaction_coa_id      NUMBER;
127646 l_adr_accounting_coa_id       NUMBER;
127647 l_adr_flexfield_segment_code  VARCHAR2(30);
127648 l_adr_flex_value_set_id       NUMBER;
127649 l_adr_value_type_code         VARCHAR2(30);
127650 l_adr_value_combination_id    NUMBER;
127651 l_adr_value_segment_code      VARCHAR2(30);
127652 
127653 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
127654 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
127655 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
127656 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
127657 
127658 -- 4262811 Variables ------------------------------------------------------------------------------------------
127659 l_entered_amt_idx             NUMBER;
127660 l_accted_amt_idx              NUMBER;
127661 l_acc_rev_flag                VARCHAR2(1);
127662 l_accrual_line_num            NUMBER;
127663 l_tmp_amt                     NUMBER;
127664 l_acc_rev_natural_side_code   VARCHAR2(1);
127665 
127666 l_num_entries                 NUMBER;
127667 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
127668 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
127669 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
127670 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
127671 l_recog_line_1                NUMBER;
127672 l_recog_line_2                NUMBER;
127673 
127677 
127674 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
127675 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
127676 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
127678 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
127679 
127680 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
127681 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
127682 
127683 ---------------------------------------------------------------------------------------------------------------
127684 
127685 
127686 --
127687 -- bulk performance
127688 --
127689 l_balance_type_code           VARCHAR2(1);
127690 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
127691 l_log_module                  VARCHAR2(240);
127692 
127693 --
127694 -- Upgrade strategy
127695 --
127696 l_actual_upg_option           VARCHAR2(1);
127697 l_enc_upg_option           VARCHAR2(1);
127698 
127699 --
127700 BEGIN
127701 --
127702 IF g_log_enabled THEN
127703       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_206';
127704 END IF;
127705 --
127706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127707 
127708       trace
127709          (p_msg      => 'BEGIN of AcctLineType_206'
127710          ,p_level    => C_LEVEL_PROCEDURE
127711          ,p_module   => l_log_module);
127712 
127713 END IF;
127714 --
127715 l_component_type             := 'AMB_JLT';
127716 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_INV';
127717 l_component_type_code        := 'S';
127718 l_component_appl_id          :=  200;
127719 l_amb_context_code           := 'DEFAULT';
127720 l_entity_code                := 'AP_INVOICES';
127721 l_event_class_code           := 'INVOICES';
127722 l_event_type_code            := 'INVOICES_ALL';
127723 l_line_definition_owner_code := 'S';
127724 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
127725 --
127726 l_balance_type_code          := 'A';
127727 l_segment                     := NULL;
127728 l_ccid                        := NULL;
127729 l_adr_transaction_coa_id      := NULL;
127730 l_adr_accounting_coa_id       := NULL;
127731 l_adr_flexfield_segment_code  := NULL;
127732 l_adr_flex_value_set_id       := NULL;
127733 l_adr_value_type_code         := NULL;
127734 l_adr_value_combination_id    := NULL;
127735 l_adr_value_segment_code      := NULL;
127736 
127737 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127738 l_bflow_class_code           := '';    -- 4219869 Business Flow
127739 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127740 l_budgetary_control_flag     := 'N';
127741 
127742 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127743 l_bflow_applied_to_amt       := NULL; -- 5132302
127744 l_entered_amt_idx            := NULL;          -- 4262811
127745 l_accted_amt_idx             := NULL;          -- 4262811
127746 l_acc_rev_flag               := NULL;          -- 4262811
127747 l_accrual_line_num           := NULL;          -- 4262811
127748 l_tmp_amt                    := NULL;          -- 4262811
127749 --
127750  
127751 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127752     l_balance_type_code <> 'B' THEN
127753 IF NVL(p_source_33,'
127754 ') =  'NONREC_TAX' AND 
127755 NVL(p_source_135,'
127756 ') =  'Y' AND 
127757 NVL(p_source_95,'
127758 ') =  'Y'
127759  THEN 
127760 
127761    --
127762    XLA_AE_LINES_PKG.SetNewLine;
127763 
127764    p_balance_type_code          := l_balance_type_code;
127765    -- set the flag so later we will know whether the gain loss line needs to be created
127766    
127767    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127768      p_actual_flag :='A';
127769    END IF;
127770 
127771    --
127772    -- bulk performance
127773    --
127774    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127775                                       p_header_num   => 0); -- 4262811
127776    --
127777    -- set accounting line options
127778    --
127779    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127780            p_natural_side_code          => 'D'
127781          , p_gain_or_loss_flag          => 'N'
127782          , p_gl_transfer_mode_code      => 'S'
127783          , p_acct_entry_type_code       => 'A'
127784          , p_switch_side_flag           => 'Y'
127785          , p_merge_duplicate_code       => 'A'
127786          );
127787    --
127788    l_acc_rev_natural_side_code := 'C';  -- 4262811
127789    -- 
127790    --
127791    -- set accounting line type info
127792    --
127793    xla_ae_lines_pkg.SetAcctLineType
127794       (p_component_type             => l_component_type
127795       ,p_event_type_code            => l_event_type_code
127796       ,p_line_definition_owner_code => l_line_definition_owner_code
127797       ,p_line_definition_code       => l_line_definition_code
127798       ,p_accounting_line_code       => l_component_code
127799       ,p_accounting_line_type_code  => l_component_type_code
127800       ,p_accounting_line_appl_id    => l_component_appl_id
127801       ,p_amb_context_code           => l_amb_context_code
127802       ,p_entity_code                => l_entity_code
127803       ,p_event_class_code           => l_event_class_code);
127804    --
127805    -- set accounting class
127806    --
127807    xla_ae_lines_pkg.SetAcctClass(
127808            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
127812    --
127809          , p_ae_header_id           => l_ae_header_id
127810          );
127811 
127813    -- set rounding class
127814    --
127815    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127816                       'SELF_ASSESSED_TAX';
127817 
127818    --
127819    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127820    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127821    --
127822    -- bulk performance
127823    --
127824    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127825 
127826    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127827       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127828 
127829    -- 4955764
127830    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127831       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127832 
127833    -- 4458381 Public Sector Enh
127834    
127835    --
127836    -- set accounting attributes for the line type
127837    --
127838    l_entered_amt_idx := 24;
127839    l_accted_amt_idx  := 29;
127840    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
127841    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127842    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
127843    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127844    l_rec_acct_attrs.array_num_value(2)  := 
127845 xla_ae_sources_pkg.GetSystemSourceNum(
127846    p_source_code           => 'XLA_EVENT_APPL_ID'
127847  , p_source_type_code      => 'Y'
127848  , p_source_application_id =>  602
127849 );
127850    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127851    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
127852    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127853    l_rec_acct_attrs.array_char_value(4)  := 
127854 xla_ae_sources_pkg.GetSystemSourceChar(
127855    p_source_code           => 'XLA_ENTITY_CODE'
127856  , p_source_type_code      => 'Y'
127857  , p_source_application_id =>  602
127858 );
127859    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127860    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
127861    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127862    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
127863    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
127864    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
127865    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
127866    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
127867    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127868    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
127869    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
127870    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
127871    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
127872    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
127873    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127874    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
127875    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
127876    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
127877    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
127878    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
127879    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
127880    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
127881    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
127882    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
127883    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
127884    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
127885    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
127886    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
127887    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
127888    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
127889    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
127890    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
127891    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
127892    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
127893    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
127894    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
127895    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
127896    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
127897    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
127898    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
127899    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
127900    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
127901    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
127902    l_rec_acct_attrs.array_date_value(26)  := p_source_73;
127903    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
127904    l_rec_acct_attrs.array_num_value(27)  := p_source_74;
127905    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
127909    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
127906    l_rec_acct_attrs.array_char_value(28)  := p_source_75;
127907    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
127908    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
127910    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
127911    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
127912    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
127913    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
127914    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
127915    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
127916    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
127917    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
127918    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
127919    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
127920    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
127921    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
127922    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
127923    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
127924    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
127925    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
127926    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
127927    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
127928    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
127929    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
127930    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
127931    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
127932    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
127933    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
127934    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
127935    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
127936    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
127937    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
127938    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
127939 
127940    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127941    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127942 
127943    ---------------------------------------------------------------------------------------------------------------
127944    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127945    ---------------------------------------------------------------------------------------------------------------
127946    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127947 
127948    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127949    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127950 
127951    IF xla_accounting_cache_pkg.GetValueChar
127952          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127953          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127954    AND l_bflow_method_code = 'PRIOR_ENTRY'
127955 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127956    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127957          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127958        )
127959    THEN
127960          xla_ae_lines_pkg.BflowUpgEntry
127961            (p_business_method_code    => l_bflow_method_code
127962            ,p_business_class_code     => l_bflow_class_code
127963            ,p_balance_type            => l_balance_type_code);
127964    ELSE
127965       NULL;
127966 -- No business flow processing for business flow method of NONE.
127967    END IF;
127968 
127969    --
127970    -- call analytical criteria
127971    --
127972    
127973    --
127974    -- call description
127975    --
127976    
127977 xla_ae_lines_pkg.SetLineDescription(
127978    p_ae_header_id => l_ae_header_id
127979   ,p_description  => Description_1 (
127980      p_application_id         => p_application_id
127981    , p_ae_header_id           => l_ae_header_id 
127982 , p_source_1 => p_source_1
127983    )
127984 );
127985 
127986 
127987    --
127988    -- call ADRs
127989    -- Bug 4922099
127990    --
127991    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127992         (NVL(l_actual_upg_option, 'N') = 'O') OR
127993         (NVL(l_enc_upg_option, 'N') = 'O')
127994       )
127995    THEN
127996    NULL;
127997    --
127998    --
127999    
128000   l_ccid := AcctDerRule_41(
128001            p_application_id           => p_application_id
128002          , p_ae_header_id             => l_ae_header_id 
128003 , p_source_49 => p_source_49
128004          , x_transaction_coa_id       => l_adr_transaction_coa_id
128005          , x_accounting_coa_id        => l_adr_accounting_coa_id
128006          , x_value_type_code          => l_adr_value_type_code
128007          , p_side                     => 'NA'
128008    );
128009 
128010    xla_ae_lines_pkg.set_ccid(
128011     p_code_combination_id          => l_ccid
128012   , p_value_type_code              => l_adr_value_type_code
128013   , p_transaction_coa_id           => l_adr_transaction_coa_id
128017   , p_component_type               => l_component_type
128014   , p_accounting_coa_id            => l_adr_accounting_coa_id
128015   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128016   , p_adr_type_code                => 'S'
128018   , p_component_code               => l_component_code
128019   , p_component_type_code          => l_component_type_code
128020   , p_component_appl_id            => l_component_appl_id
128021   , p_amb_context_code             => l_amb_context_code
128022   , p_side                         => 'NA'
128023   );
128024 
128025 
128026    --
128027    --
128028    END IF;
128029    --
128030    -- Bug 4922099
128031    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128032           (NVL(l_enc_upg_option, 'N') = 'O')
128033         ) AND
128034         (l_bflow_method_code = 'PRIOR_ENTRY')
128035       )
128036    THEN
128037       IF
128038       --
128039       1 = 2
128040       --
128041       THEN
128042       xla_accounting_err_pkg.build_message
128043                                     (p_appli_s_name            => 'XLA'
128044                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128045                                     ,p_token_1                 => 'LINE_NUMBER'
128046                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128047                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128048                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128049                                                                              l_component_type
128050                                                                             ,l_component_code
128051                                                                             ,l_component_type_code
128052                                                                             ,l_component_appl_id
128053                                                                             ,l_amb_context_code
128054                                                                             ,l_entity_code
128055                                                                             ,l_event_class_code
128056                                                                            )
128057                                     ,p_token_3                 => 'OWNER'
128058                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128059                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128060                                                                           ,p_lookup_code    => l_component_type_code
128061                                                                          )
128062                                     ,p_token_4                 => 'PRODUCT_NAME'
128063                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128064                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128065                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128066                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128067                                     ,p_ae_header_id            =>  NULL
128068                                        );
128069 
128070         IF (C_LEVEL_ERROR>= g_log_level) THEN
128071                  trace
128072                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128073                       ,p_level    => C_LEVEL_ERROR
128074                       ,p_module   => l_log_module);
128075         END IF;
128076       END IF;
128077    END IF;
128078    --
128079    --
128080    ------------------------------------------------------------------------------------------------
128081    -- 4219869 Business Flow
128082    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128083    -- Prior Entry.  Currently, the following code is always generated.
128084    ------------------------------------------------------------------------------------------------
128085    XLA_AE_LINES_PKG.ValidateCurrentLine;
128086 
128087    ------------------------------------------------------------------------------------
128088    -- 4219869 Business Flow
128089    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128090    ------------------------------------------------------------------------------------
128091    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128092 
128093    ----------------------------------------------------------------------------------
128094    -- 4219869 Business Flow
128095    -- Update journal entry status -- Need to generate this within IF <condition>
128096    ----------------------------------------------------------------------------------
128097    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128098          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128099          ,p_balance_type_code => l_balance_type_code
128100          );
128101 
128102    -------------------------------------------------------------------------------------------
128103    -- 4262811 - Generate the Accrual Reversal lines
128104    -------------------------------------------------------------------------------------------
128105    BEGIN
128106       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128107                               (g_array_event(p_event_id).array_value_num('header_index'));
128108       IF l_acc_rev_flag IS NULL THEN
128109          l_acc_rev_flag := 'N';
128110       END IF;
128114    END;
128111    EXCEPTION
128112       WHEN OTHERS THEN
128113          l_acc_rev_flag := 'N';
128115    --
128116    IF (l_acc_rev_flag = 'Y') THEN
128117 
128118        -- 4645092  ------------------------------------------------------------------------------
128119        -- To allow MPA report to determine if it should generate report process
128120        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128121        ------------------------------------------------------------------------------------------
128122 
128123        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128124        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128125    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128126    -- call ADRs
128127    -- Bug 4922099
128128    --
128129    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128130         (NVL(l_actual_upg_option, 'N') = 'O') OR
128131         (NVL(l_enc_upg_option, 'N') = 'O')
128132       )
128133    THEN
128134    NULL;
128135    --
128136    --
128137    
128138   l_ccid := AcctDerRule_41(
128139            p_application_id           => p_application_id
128140          , p_ae_header_id             => l_ae_header_id 
128141 , p_source_49 => p_source_49
128142          , x_transaction_coa_id       => l_adr_transaction_coa_id
128143          , x_accounting_coa_id        => l_adr_accounting_coa_id
128144          , x_value_type_code          => l_adr_value_type_code
128145          , p_side                     => 'NA'
128146    );
128147 
128148    xla_ae_lines_pkg.set_ccid(
128149     p_code_combination_id          => l_ccid
128150   , p_value_type_code              => l_adr_value_type_code
128151   , p_transaction_coa_id           => l_adr_transaction_coa_id
128152   , p_accounting_coa_id            => l_adr_accounting_coa_id
128153   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128154   , p_adr_type_code                => 'S'
128155   , p_component_type               => l_component_type
128156   , p_component_code               => l_component_code
128157   , p_component_type_code          => l_component_type_code
128158   , p_component_appl_id            => l_component_appl_id
128159   , p_amb_context_code             => l_amb_context_code
128160   , p_side                         => 'NA'
128161   );
128162 
128163 
128164    --
128165    --
128166    END IF;
128167 
128168        --
128169        -- Update the line information that should be overwritten
128170        --
128171        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128172                                          p_header_num   => 1);
128173        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128174 
128175        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128176 
128177        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128178           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128179        END IF;
128180 
128181       --
128182       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128183       --
128184       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128185           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128186       ELSE
128187           ---------------------------------------------------------------------------------------------------
128188           -- 4262811a Switch Sign
128189           ---------------------------------------------------------------------------------------------------
128190           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128191           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128192                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128193           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128194                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128195           -- 5132302
128196           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128197                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128198 
128199       END IF;
128200 
128201       -- 4955764
128202       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128203       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128204 
128205 
128206       XLA_AE_LINES_PKG.ValidateCurrentLine;
128207       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128208 
128209       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128210                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128211                ,p_balance_type_code => l_balance_type_code);
128212 
128213    END IF;
128214 
128215    -----------------------------------------------------------------------------------------
128216    -- 4262811 Multiperiod Accounting
128217    -----------------------------------------------------------------------------------------
128218      -- No MPA option is assigned.
128219 
128220 
128221 END IF;
128222 END IF;
128223 --
128224 
128225 --
128226 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128227    trace
128228       (p_msg      => 'END of AcctLineType_206'
128232 --
128229       ,p_level    => C_LEVEL_PROCEDURE
128230       ,p_module   => l_log_module);
128231 END IF;
128233 EXCEPTION
128234   WHEN xla_exceptions_pkg.application_exception THEN
128235       RAISE;
128236   WHEN OTHERS THEN
128237        xla_exceptions_pkg.raise_message
128238            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_206');
128239 END AcctLineType_206;
128240 --
128241 
128242 ---------------------------------------
128243 --
128244 -- PRIVATE FUNCTION
128245 --         AcctLineType_207
128246 --
128247 ---------------------------------------
128248 PROCEDURE AcctLineType_207 (
128249   p_application_id        IN NUMBER
128250  ,p_event_id              IN NUMBER
128251  ,p_calculate_acctd_flag  IN VARCHAR2
128252  ,p_calculate_g_l_flag    IN VARCHAR2
128253  ,p_actual_flag           IN OUT VARCHAR2
128254  ,p_balance_type_code     OUT VARCHAR2
128255  ,p_gain_or_loss_ref      OUT VARCHAR2
128256  
128257 --Automatic Offsets Value
128258  , p_source_15            IN VARCHAR2
128259  , p_source_15_meaning    IN VARCHAR2
128260 --Invoice Distribution Account
128261  , p_source_30            IN NUMBER
128262 --Payables Options Tax Difference Account
128263  , p_source_41            IN NUMBER
128264 --Accounting Reversal Indicator
128265  , p_source_52            IN VARCHAR2
128266 --Distribution Link Type
128267  , p_source_54            IN VARCHAR2
128268 --Invoice Identifier
128269  , p_source_57            IN NUMBER
128270 --Payables Encumbrance Upgrade Credit Account
128271  , p_source_64            IN NUMBER
128272 --Payables Encumbrance Upgrade Credit Amount
128273  , p_source_65            IN NUMBER
128274 --Invoice Currency Code
128275  , p_source_66            IN VARCHAR2
128276 --Payables Encumbrance Upgrade Credit Base Amount
128277  , p_source_67            IN NUMBER
128278 --Payables Encumbrance Upgrade Debit Account
128279  , p_source_68            IN NUMBER
128280 --Payables Encumbrance Upgrade Debit Amount
128281  , p_source_69            IN NUMBER
128282 --Payables Encumbrance Upgrade Debit Base Amount
128283  , p_source_70            IN NUMBER
128284 --Payables Encumbrance Upgrade Option
128285  , p_source_71            IN VARCHAR2
128286 --Deferred Accounting End Date
128287  , p_source_76            IN DATE
128288 --Deferred Accounting Option
128289  , p_source_77            IN VARCHAR2
128290 --Deferred Accounting Start Date
128291  , p_source_78            IN DATE
128292 --Override Accounted Amount Indicator
128293  , p_source_79            IN VARCHAR2
128294  , p_source_79_meaning    IN VARCHAR2
128295 --Invoice Supplier Identifier
128296  , p_source_80            IN NUMBER
128297 --Invoice Supplier Site Identifier
128298  , p_source_81            IN NUMBER
128299 --Third Party Type
128300  , p_source_82            IN VARCHAR2
128301 --Invoice Distribution Tax Line Identifier
128302  , p_source_85            IN NUMBER
128303 --Invoice Distribution Tax Distribution Identifier from Tax
128304  , p_source_86            IN NUMBER
128305 --Invoice Distribution Summary Tax Line Identifier
128306  , p_source_87            IN NUMBER
128307 --Payables Upgrade Credit Encumbrance Type Identifier
128308  , p_source_88            IN NUMBER
128309 --Payables Upgrade Debit Encumbrance Type Identifier
128310  , p_source_89            IN NUMBER
128311 --Business Flow Accounts Payable Application Identifier
128312  , p_source_90            IN NUMBER
128313 --Prepayment Application Distribution Identifier
128314  , p_source_127            IN NUMBER
128315 --Upgrade Encumbrance Credit Account Class
128316  , p_source_130            IN VARCHAR2
128317 --Upgrade Encumbrance Debit Account Class
128318  , p_source_131            IN VARCHAR2
128319 --Prepayment Distribution Amount
128320  , p_source_132            IN NUMBER
128321 --Prepayment Distribution (Invoice Rate) Ledger Amount
128322  , p_source_133            IN NUMBER
128323 --Identifier of the Prepayment Application Reversed
128324  , p_source_134            IN NUMBER
128325 --Invoice Exchange Date
128326  , p_source_136            IN DATE
128327 --Invoice Exchange Rate
128328  , p_source_137            IN NUMBER
128329 --Invoice Exchange Rate Type
128330  , p_source_138            IN VARCHAR2
128331 --Business Flow Prepayment Invoice Distribution Type
128332  , p_source_139            IN VARCHAR2
128333 --Business Flow Prepayment Invoice Entity Code
128334  , p_source_140            IN VARCHAR2
128335 --Business Flow Prepayment Invoice Distribution Identifier
128336  , p_source_141            IN NUMBER
128337 --Business Flow Prepayment Invoice Identifier
128338  , p_source_142            IN NUMBER
128339 --Prepayment Distribution Type
128340  , p_source_143            IN VARCHAR2
128341 )
128342 IS
128343 
128344 l_component_type              VARCHAR2(80);
128345 l_component_code              VARCHAR2(30);
128346 l_component_type_code         VARCHAR2(1);
128347 l_component_appl_id           INTEGER;
128348 l_amb_context_code            VARCHAR2(30);
128349 l_entity_code                 VARCHAR2(30);
128350 l_event_class_code            VARCHAR2(30);
128351 l_ae_header_id                NUMBER;
128352 l_event_type_code             VARCHAR2(30);
128353 l_line_definition_code        VARCHAR2(30);
128354 l_line_definition_owner_code  VARCHAR2(1);
128355 --
128356 -- adr variables
128357 l_segment                     VARCHAR2(30);
128358 l_ccid                        NUMBER;
128359 l_adr_transaction_coa_id      NUMBER;
128360 l_adr_accounting_coa_id       NUMBER;
128361 l_adr_flexfield_segment_code  VARCHAR2(30);
128365 l_adr_value_segment_code      VARCHAR2(30);
128362 l_adr_flex_value_set_id       NUMBER;
128363 l_adr_value_type_code         VARCHAR2(30);
128364 l_adr_value_combination_id    NUMBER;
128366 
128367 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
128368 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
128369 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
128370 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
128371 
128372 -- 4262811 Variables ------------------------------------------------------------------------------------------
128373 l_entered_amt_idx             NUMBER;
128374 l_accted_amt_idx              NUMBER;
128375 l_acc_rev_flag                VARCHAR2(1);
128376 l_accrual_line_num            NUMBER;
128377 l_tmp_amt                     NUMBER;
128378 l_acc_rev_natural_side_code   VARCHAR2(1);
128379 
128380 l_num_entries                 NUMBER;
128381 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
128382 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
128383 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
128384 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
128385 l_recog_line_1                NUMBER;
128386 l_recog_line_2                NUMBER;
128387 
128388 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
128389 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
128390 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
128391 
128392 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
128393 
128394 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
128395 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
128396 
128397 ---------------------------------------------------------------------------------------------------------------
128398 
128399 
128400 --
128401 -- bulk performance
128402 --
128403 l_balance_type_code           VARCHAR2(1);
128404 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
128405 l_log_module                  VARCHAR2(240);
128406 
128407 --
128408 -- Upgrade strategy
128409 --
128410 l_actual_upg_option           VARCHAR2(1);
128411 l_enc_upg_option           VARCHAR2(1);
128412 
128413 --
128414 BEGIN
128415 --
128416 IF g_log_enabled THEN
128417       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_207';
128418 END IF;
128419 --
128420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128421 
128422       trace
128423          (p_msg      => 'BEGIN of AcctLineType_207'
128424          ,p_level    => C_LEVEL_PROCEDURE
128425          ,p_module   => l_log_module);
128426 
128427 END IF;
128428 --
128429 l_component_type             := 'AMB_JLT';
128430 l_component_code             := 'AP_TAX_DIFF_PREPAY_APP';
128431 l_component_type_code        := 'S';
128432 l_component_appl_id          :=  200;
128433 l_amb_context_code           := 'DEFAULT';
128434 l_entity_code                := 'AP_INVOICES';
128435 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
128436 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
128437 l_line_definition_owner_code := 'S';
128438 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT_APP';
128439 --
128440 l_balance_type_code          := 'A';
128441 l_segment                     := NULL;
128442 l_ccid                        := NULL;
128443 l_adr_transaction_coa_id      := NULL;
128444 l_adr_accounting_coa_id       := NULL;
128445 l_adr_flexfield_segment_code  := NULL;
128446 l_adr_flex_value_set_id       := NULL;
128447 l_adr_value_type_code         := NULL;
128448 l_adr_value_combination_id    := NULL;
128449 l_adr_value_segment_code      := NULL;
128450 
128451 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
128452 l_bflow_class_code           := '';    -- 4219869 Business Flow
128453 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
128454 l_budgetary_control_flag     := 'N';
128455 
128456 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
128457 l_bflow_applied_to_amt       := NULL; -- 5132302
128458 l_entered_amt_idx            := NULL;          -- 4262811
128459 l_accted_amt_idx             := NULL;          -- 4262811
128460 l_acc_rev_flag               := NULL;          -- 4262811
128461 l_accrual_line_num           := NULL;          -- 4262811
128462 l_tmp_amt                    := NULL;          -- 4262811
128463 --
128464  
128465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
128466     l_balance_type_code <> 'B' THEN
128467 IF NVL(p_source_143,'
128468 ') =  'TAX DIFF'
128469  THEN 
128470 
128471    --
128472    XLA_AE_LINES_PKG.SetNewLine;
128473 
128474    p_balance_type_code          := l_balance_type_code;
128475    -- set the flag so later we will know whether the gain loss line needs to be created
128476    
128477    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
128478      p_actual_flag :='A';
128479    END IF;
128480 
128481    --
128482    -- bulk performance
128483    --
128484    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
128485                                       p_header_num   => 0); -- 4262811
128486    --
128487    -- set accounting line options
128488    --
128489    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
128493          , p_acct_entry_type_code       => 'A'
128490            p_natural_side_code          => 'C'
128491          , p_gain_or_loss_flag          => 'N'
128492          , p_gl_transfer_mode_code      => 'S'
128494          , p_switch_side_flag           => 'Y'
128495          , p_merge_duplicate_code       => 'A'
128496          );
128497    --
128498    l_acc_rev_natural_side_code := 'D';  -- 4262811
128499    -- 
128500    --
128501    -- set accounting line type info
128502    --
128503    xla_ae_lines_pkg.SetAcctLineType
128504       (p_component_type             => l_component_type
128505       ,p_event_type_code            => l_event_type_code
128506       ,p_line_definition_owner_code => l_line_definition_owner_code
128507       ,p_line_definition_code       => l_line_definition_code
128508       ,p_accounting_line_code       => l_component_code
128509       ,p_accounting_line_type_code  => l_component_type_code
128510       ,p_accounting_line_appl_id    => l_component_appl_id
128511       ,p_amb_context_code           => l_amb_context_code
128512       ,p_entity_code                => l_entity_code
128513       ,p_event_class_code           => l_event_class_code);
128514    --
128515    -- set accounting class
128516    --
128517    xla_ae_lines_pkg.SetAcctClass(
128518            p_accounting_class_code  => 'TAX_DIFF'
128519          , p_ae_header_id           => l_ae_header_id
128520          );
128521 
128522    --
128523    -- set rounding class
128524    --
128525    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
128526                       'TAX_DIFF';
128527 
128528    --
128529    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
128530    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
128531    --
128532    -- bulk performance
128533    --
128534    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
128535 
128536    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
128537       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
128538 
128539    -- 4955764
128540    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128541       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
128542 
128543    -- 4458381 Public Sector Enh
128544    
128545    --
128546    -- set accounting attributes for the line type
128547    --
128548    l_entered_amt_idx := 25;
128549    l_accted_amt_idx  := 30;
128550    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
128551    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
128552    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
128553    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
128554    l_rec_acct_attrs.array_num_value(2)  := 
128555 xla_ae_sources_pkg.GetSystemSourceNum(
128556    p_source_code           => 'XLA_EVENT_APPL_ID'
128557  , p_source_type_code      => 'Y'
128558  , p_source_application_id =>  602
128559 );
128560    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
128561    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
128562    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
128563    l_rec_acct_attrs.array_char_value(4)  := 
128564 xla_ae_sources_pkg.GetSystemSourceChar(
128565    p_source_code           => 'XLA_ENTITY_CODE'
128566  , p_source_type_code      => 'Y'
128567  , p_source_application_id =>  602
128568 );
128569    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
128570    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
128571    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
128572    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
128573    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
128574    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
128575    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
128576    l_rec_acct_attrs.array_char_value(8)  := p_source_139;
128577    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
128578    l_rec_acct_attrs.array_char_value(9)  := p_source_140;
128579    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
128580    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_141);
128581    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
128582    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_142);
128583    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
128584    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
128585    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
128586    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
128587    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
128588    l_rec_acct_attrs.array_char_value(14)  := p_source_130;
128589    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
128590    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
128591    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
128592    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
128593    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
128594    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
128595    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
128599    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
128596    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
128597    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
128598    l_rec_acct_attrs.array_char_value(19)  := p_source_131;
128600    l_rec_acct_attrs.array_num_value(20)  := p_source_68;
128601    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
128602    l_rec_acct_attrs.array_num_value(21)  := p_source_69;
128603    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
128604    l_rec_acct_attrs.array_char_value(22)  := p_source_66;
128605    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
128606    l_rec_acct_attrs.array_num_value(23)  := p_source_70;
128607    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
128608    l_rec_acct_attrs.array_char_value(24)  := p_source_71;
128609    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
128610    l_rec_acct_attrs.array_num_value(25)  := p_source_132;
128611    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
128612    l_rec_acct_attrs.array_char_value(26)  := p_source_66;
128613    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
128614    l_rec_acct_attrs.array_date_value(27)  := p_source_136;
128615    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
128616    l_rec_acct_attrs.array_num_value(28)  := p_source_137;
128617    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
128618    l_rec_acct_attrs.array_char_value(29)  := p_source_138;
128619    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
128620    l_rec_acct_attrs.array_num_value(30)  := p_source_133;
128621    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
128622    l_rec_acct_attrs.array_date_value(31)  := p_source_76;
128623    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
128624    l_rec_acct_attrs.array_char_value(32)  := p_source_77;
128625    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
128626    l_rec_acct_attrs.array_date_value(33)  := p_source_78;
128627    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
128628    l_rec_acct_attrs.array_char_value(34)  := p_source_79;
128629    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
128630    l_rec_acct_attrs.array_num_value(35)  := p_source_80;
128631    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
128632    l_rec_acct_attrs.array_num_value(36)  := p_source_81;
128633    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
128634    l_rec_acct_attrs.array_char_value(37)  := p_source_82;
128635    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
128636    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_134);
128637    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
128638    l_rec_acct_attrs.array_char_value(39)  := p_source_54;
128639    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
128640    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
128641    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
128642    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
128643    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
128644    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
128645    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
128646    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
128647    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
128648    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
128649 
128650    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128651    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128652 
128653    ---------------------------------------------------------------------------------------------------------------
128654    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128655    ---------------------------------------------------------------------------------------------------------------
128656    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128657 
128658    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128659    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128660 
128661    IF xla_accounting_cache_pkg.GetValueChar
128662          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128663          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128664    AND l_bflow_method_code = 'PRIOR_ENTRY'
128665 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128666    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128667          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128668        )
128669    THEN
128670          xla_ae_lines_pkg.BflowUpgEntry
128671            (p_business_method_code    => l_bflow_method_code
128672            ,p_business_class_code     => l_bflow_class_code
128673            ,p_balance_type            => l_balance_type_code);
128674    ELSE
128675       NULL;
128676 -- No business flow processing for business flow method of NONE.
128677    END IF;
128678 
128679    --
128680    -- call analytical criteria
128681    --
128682    
128683    --
128684    -- call description
128685    --
128686    -- No description or it is inherited.
128687    --
128688    -- call ADRs
128689    -- Bug 4922099
128690    --
128694       )
128691    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128692         (NVL(l_actual_upg_option, 'N') = 'O') OR
128693         (NVL(l_enc_upg_option, 'N') = 'O')
128695    THEN
128696    NULL;
128697    --
128698    --
128699    
128700   l_ccid := AcctDerRule_44(
128701            p_application_id           => p_application_id
128702          , p_ae_header_id             => l_ae_header_id 
128703 , p_source_15 => p_source_15
128704 , p_source_15_meaning => p_source_15_meaning
128705 , p_source_30 => p_source_30
128706 , p_source_41 => p_source_41
128707          , x_transaction_coa_id       => l_adr_transaction_coa_id
128708          , x_accounting_coa_id        => l_adr_accounting_coa_id
128709          , x_value_type_code          => l_adr_value_type_code
128710          , p_side                     => 'NA'
128711    );
128712 
128713    xla_ae_lines_pkg.set_ccid(
128714     p_code_combination_id          => l_ccid
128715   , p_value_type_code              => l_adr_value_type_code
128716   , p_transaction_coa_id           => l_adr_transaction_coa_id
128717   , p_accounting_coa_id            => l_adr_accounting_coa_id
128718   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
128719   , p_adr_type_code                => 'S'
128720   , p_component_type               => l_component_type
128721   , p_component_code               => l_component_code
128722   , p_component_type_code          => l_component_type_code
128723   , p_component_appl_id            => l_component_appl_id
128724   , p_amb_context_code             => l_amb_context_code
128725   , p_side                         => 'NA'
128726   );
128727 
128728 
128729    l_segment := AcctDerRule_22(
128730            p_application_id           => p_application_id
128731          , p_ae_header_id             => l_ae_header_id 
128732 , p_source_15 => p_source_15
128733 , p_source_15_meaning => p_source_15_meaning
128734 , p_source_30 => p_source_30
128735          , x_transaction_coa_id       => l_adr_transaction_coa_id
128736          , x_accounting_coa_id        => l_adr_accounting_coa_id
128737          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
128738          , x_flex_value_set_id        => l_adr_flex_value_set_id
128739          , x_value_type_code          => l_adr_value_type_code
128740          , x_value_combination_id     => l_adr_value_combination_id
128741          , x_value_segment_code       => l_adr_value_segment_code
128742          , p_side                     => 'NA'
128743          , p_override_seg_flag        => 'Y'
128744    );
128745 
128746    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
128747 
128748       xla_ae_lines_pkg.set_segment(
128749           p_to_segment_code         => 'GL_BALANCING'
128750         , p_segment_value           => l_segment
128751         , p_from_segment_code       => l_adr_value_segment_code
128752         , p_from_combination_id     => l_adr_value_combination_id
128753         , p_value_type_code         => l_adr_value_type_code
128754         , p_transaction_coa_id      => l_adr_transaction_coa_id
128755         , p_accounting_coa_id       => l_adr_accounting_coa_id
128756         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
128757         , p_flex_value_set_id       => l_adr_flex_value_set_id
128758         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
128759         , p_adr_type_code           => 'S'
128760         , p_component_type          => l_component_type
128761         , p_component_code          => l_component_code
128762         , p_component_type_code     => l_component_type_code
128763         , p_component_appl_id       => l_component_appl_id
128764         , p_amb_context_code        => l_amb_context_code
128765         , p_entity_code             => 'AP_INVOICES'
128766         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
128767         , p_side                    => 'NA'
128768         );
128769 
128770   END IF;
128771 
128772    l_segment := AcctDerRule_20(
128773            p_application_id           => p_application_id
128774          , p_ae_header_id             => l_ae_header_id 
128775 , p_source_41 => p_source_41
128776          , x_transaction_coa_id       => l_adr_transaction_coa_id
128777          , x_accounting_coa_id        => l_adr_accounting_coa_id
128778          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
128779          , x_flex_value_set_id        => l_adr_flex_value_set_id
128780          , x_value_type_code          => l_adr_value_type_code
128781          , x_value_combination_id     => l_adr_value_combination_id
128782          , x_value_segment_code       => l_adr_value_segment_code
128783          , p_side                     => 'NA'
128784          , p_override_seg_flag        => 'Y'
128785    );
128786 
128787    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
128788 
128789       xla_ae_lines_pkg.set_segment(
128790           p_to_segment_code         => 'GL_ACCOUNT'
128791         , p_segment_value           => l_segment
128792         , p_from_segment_code       => l_adr_value_segment_code
128793         , p_from_combination_id     => l_adr_value_combination_id
128794         , p_value_type_code         => l_adr_value_type_code
128795         , p_transaction_coa_id      => l_adr_transaction_coa_id
128796         , p_accounting_coa_id       => l_adr_accounting_coa_id
128797         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
128798         , p_flex_value_set_id       => l_adr_flex_value_set_id
128799         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
128800         , p_adr_type_code           => 'S'
128801         , p_component_type          => l_component_type
128802         , p_component_code          => l_component_code
128806         , p_entity_code             => 'AP_INVOICES'
128803         , p_component_type_code     => l_component_type_code
128804         , p_component_appl_id       => l_component_appl_id
128805         , p_amb_context_code        => l_amb_context_code
128807         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
128808         , p_side                    => 'NA'
128809         );
128810 
128811   END IF;
128812 
128813    --
128814    --
128815    END IF;
128816    --
128817    -- Bug 4922099
128818    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128819           (NVL(l_enc_upg_option, 'N') = 'O')
128820         ) AND
128821         (l_bflow_method_code = 'PRIOR_ENTRY')
128822       )
128823    THEN
128824       IF
128825       --
128826       1 = 2
128827       --
128828       THEN
128829       xla_accounting_err_pkg.build_message
128830                                     (p_appli_s_name            => 'XLA'
128831                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128832                                     ,p_token_1                 => 'LINE_NUMBER'
128833                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128834                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128835                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128836                                                                              l_component_type
128837                                                                             ,l_component_code
128838                                                                             ,l_component_type_code
128839                                                                             ,l_component_appl_id
128840                                                                             ,l_amb_context_code
128841                                                                             ,l_entity_code
128842                                                                             ,l_event_class_code
128843                                                                            )
128844                                     ,p_token_3                 => 'OWNER'
128845                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128846                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128847                                                                           ,p_lookup_code    => l_component_type_code
128848                                                                          )
128849                                     ,p_token_4                 => 'PRODUCT_NAME'
128850                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128851                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128852                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128853                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128854                                     ,p_ae_header_id            =>  NULL
128855                                        );
128856 
128857         IF (C_LEVEL_ERROR>= g_log_level) THEN
128858                  trace
128859                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128860                       ,p_level    => C_LEVEL_ERROR
128861                       ,p_module   => l_log_module);
128862         END IF;
128863       END IF;
128864    END IF;
128865    --
128866    --
128867    ------------------------------------------------------------------------------------------------
128868    -- 4219869 Business Flow
128869    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128870    -- Prior Entry.  Currently, the following code is always generated.
128871    ------------------------------------------------------------------------------------------------
128872    XLA_AE_LINES_PKG.ValidateCurrentLine;
128873 
128874    ------------------------------------------------------------------------------------
128875    -- 4219869 Business Flow
128876    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128877    ------------------------------------------------------------------------------------
128878    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128879 
128880    ----------------------------------------------------------------------------------
128881    -- 4219869 Business Flow
128882    -- Update journal entry status -- Need to generate this within IF <condition>
128883    ----------------------------------------------------------------------------------
128884    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128885          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128886          ,p_balance_type_code => l_balance_type_code
128887          );
128888 
128889    -------------------------------------------------------------------------------------------
128890    -- 4262811 - Generate the Accrual Reversal lines
128891    -------------------------------------------------------------------------------------------
128892    BEGIN
128893       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128894                               (g_array_event(p_event_id).array_value_num('header_index'));
128895       IF l_acc_rev_flag IS NULL THEN
128896          l_acc_rev_flag := 'N';
128897       END IF;
128898    EXCEPTION
128899       WHEN OTHERS THEN
128900          l_acc_rev_flag := 'N';
128904 
128901    END;
128902    --
128903    IF (l_acc_rev_flag = 'Y') THEN
128905        -- 4645092  ------------------------------------------------------------------------------
128906        -- To allow MPA report to determine if it should generate report process
128907        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128908        ------------------------------------------------------------------------------------------
128909 
128910        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128911        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128912    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128913    -- call ADRs
128914    -- Bug 4922099
128915    --
128916    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128917         (NVL(l_actual_upg_option, 'N') = 'O') OR
128918         (NVL(l_enc_upg_option, 'N') = 'O')
128919       )
128920    THEN
128921    NULL;
128922    --
128923    --
128924    
128925   l_ccid := AcctDerRule_44(
128926            p_application_id           => p_application_id
128927          , p_ae_header_id             => l_ae_header_id 
128928 , p_source_15 => p_source_15
128929 , p_source_15_meaning => p_source_15_meaning
128930 , p_source_30 => p_source_30
128931 , p_source_41 => p_source_41
128932          , x_transaction_coa_id       => l_adr_transaction_coa_id
128933          , x_accounting_coa_id        => l_adr_accounting_coa_id
128934          , x_value_type_code          => l_adr_value_type_code
128935          , p_side                     => 'NA'
128936    );
128937 
128938    xla_ae_lines_pkg.set_ccid(
128939     p_code_combination_id          => l_ccid
128940   , p_value_type_code              => l_adr_value_type_code
128941   , p_transaction_coa_id           => l_adr_transaction_coa_id
128942   , p_accounting_coa_id            => l_adr_accounting_coa_id
128943   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
128944   , p_adr_type_code                => 'S'
128945   , p_component_type               => l_component_type
128946   , p_component_code               => l_component_code
128947   , p_component_type_code          => l_component_type_code
128948   , p_component_appl_id            => l_component_appl_id
128949   , p_amb_context_code             => l_amb_context_code
128950   , p_side                         => 'NA'
128951   );
128952 
128953 
128954    l_segment := AcctDerRule_22(
128955            p_application_id           => p_application_id
128956          , p_ae_header_id             => l_ae_header_id 
128957 , p_source_15 => p_source_15
128958 , p_source_15_meaning => p_source_15_meaning
128959 , p_source_30 => p_source_30
128960          , x_transaction_coa_id       => l_adr_transaction_coa_id
128961          , x_accounting_coa_id        => l_adr_accounting_coa_id
128962          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
128963          , x_flex_value_set_id        => l_adr_flex_value_set_id
128964          , x_value_type_code          => l_adr_value_type_code
128965          , x_value_combination_id     => l_adr_value_combination_id
128966          , x_value_segment_code       => l_adr_value_segment_code
128967          , p_side                     => 'NA'
128968          , p_override_seg_flag        => 'Y'
128969    );
128970 
128971    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
128972 
128973       xla_ae_lines_pkg.set_segment(
128974           p_to_segment_code         => 'GL_BALANCING'
128975         , p_segment_value           => l_segment
128976         , p_from_segment_code       => l_adr_value_segment_code
128977         , p_from_combination_id     => l_adr_value_combination_id
128978         , p_value_type_code         => l_adr_value_type_code
128979         , p_transaction_coa_id      => l_adr_transaction_coa_id
128980         , p_accounting_coa_id       => l_adr_accounting_coa_id
128981         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
128982         , p_flex_value_set_id       => l_adr_flex_value_set_id
128983         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
128984         , p_adr_type_code           => 'S'
128985         , p_component_type          => l_component_type
128986         , p_component_code          => l_component_code
128987         , p_component_type_code     => l_component_type_code
128988         , p_component_appl_id       => l_component_appl_id
128989         , p_amb_context_code        => l_amb_context_code
128990         , p_entity_code             => 'AP_INVOICES'
128991         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
128992         , p_side                    => 'NA'
128993         );
128994 
128995   END IF;
128996 
128997    l_segment := AcctDerRule_20(
128998            p_application_id           => p_application_id
128999          , p_ae_header_id             => l_ae_header_id 
129000 , p_source_41 => p_source_41
129001          , x_transaction_coa_id       => l_adr_transaction_coa_id
129002          , x_accounting_coa_id        => l_adr_accounting_coa_id
129003          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129004          , x_flex_value_set_id        => l_adr_flex_value_set_id
129005          , x_value_type_code          => l_adr_value_type_code
129006          , x_value_combination_id     => l_adr_value_combination_id
129007          , x_value_segment_code       => l_adr_value_segment_code
129008          , p_side                     => 'NA'
129009          , p_override_seg_flag        => 'Y'
129010    );
129011 
129012    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129013 
129014       xla_ae_lines_pkg.set_segment(
129015           p_to_segment_code         => 'GL_ACCOUNT'
129019         , p_value_type_code         => l_adr_value_type_code
129016         , p_segment_value           => l_segment
129017         , p_from_segment_code       => l_adr_value_segment_code
129018         , p_from_combination_id     => l_adr_value_combination_id
129020         , p_transaction_coa_id      => l_adr_transaction_coa_id
129021         , p_accounting_coa_id       => l_adr_accounting_coa_id
129022         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129023         , p_flex_value_set_id       => l_adr_flex_value_set_id
129024         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
129025         , p_adr_type_code           => 'S'
129026         , p_component_type          => l_component_type
129027         , p_component_code          => l_component_code
129028         , p_component_type_code     => l_component_type_code
129029         , p_component_appl_id       => l_component_appl_id
129030         , p_amb_context_code        => l_amb_context_code
129031         , p_entity_code             => 'AP_INVOICES'
129032         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
129033         , p_side                    => 'NA'
129034         );
129035 
129036   END IF;
129037 
129038    --
129039    --
129040    END IF;
129041 
129042        --
129043        -- Update the line information that should be overwritten
129044        --
129045        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
129046                                          p_header_num   => 1);
129047        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
129048 
129049        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
129050 
129051        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
129052           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
129053        END IF;
129054 
129055       --
129056       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
129057       --
129058       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
129059           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
129060       ELSE
129061           ---------------------------------------------------------------------------------------------------
129062           -- 4262811a Switch Sign
129063           ---------------------------------------------------------------------------------------------------
129064           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
129065           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129066                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129067           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129068                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129069           -- 5132302
129070           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
129071                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129072 
129073       END IF;
129074 
129075       -- 4955764
129076       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129077       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
129078 
129079 
129080       XLA_AE_LINES_PKG.ValidateCurrentLine;
129081       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129082 
129083       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129084                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
129085                ,p_balance_type_code => l_balance_type_code);
129086 
129087    END IF;
129088 
129089    -----------------------------------------------------------------------------------------
129090    -- 4262811 Multiperiod Accounting
129091    -----------------------------------------------------------------------------------------
129092      -- No MPA option is assigned.
129093 
129094 
129095 END IF;
129096 END IF;
129097 --
129098 
129099 --
129100 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129101    trace
129102       (p_msg      => 'END of AcctLineType_207'
129103       ,p_level    => C_LEVEL_PROCEDURE
129104       ,p_module   => l_log_module);
129105 END IF;
129106 --
129107 EXCEPTION
129108   WHEN xla_exceptions_pkg.application_exception THEN
129109       RAISE;
129110   WHEN OTHERS THEN
129111        xla_exceptions_pkg.raise_message
129112            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_207');
129113 END AcctLineType_207;
129114 --
129115 
129116 ---------------------------------------
129117 --
129118 -- PRIVATE FUNCTION
129119 --         AcctLineType_208
129120 --
129121 ---------------------------------------
129122 PROCEDURE AcctLineType_208 (
129123   p_application_id        IN NUMBER
129124  ,p_event_id              IN NUMBER
129125  ,p_calculate_acctd_flag  IN VARCHAR2
129126  ,p_calculate_g_l_flag    IN VARCHAR2
129127  ,p_actual_flag           IN OUT VARCHAR2
129128  ,p_balance_type_code     OUT VARCHAR2
129129  ,p_gain_or_loss_ref      OUT VARCHAR2
129130  
129131 --Invoice Distribution Description
129132  , p_source_1            IN VARCHAR2
129136 --Purchase Order Rate Variance Gain Account
129133 --Automatic Offsets Value
129134  , p_source_15            IN VARCHAR2
129135  , p_source_15_meaning    IN VARCHAR2
129137  , p_source_20            IN NUMBER
129138 --Invoice Distribution Ledger Amount
129139  , p_source_21            IN NUMBER
129140 --Destination Type of the PO Distribution
129141  , p_source_22            IN VARCHAR2
129142  , p_source_22_meaning    IN VARCHAR2
129143 --Purchase Order Rate Variance Loss Account
129144  , p_source_23            IN NUMBER
129145 --Invoice Distribution Account
129146  , p_source_30            IN NUMBER
129147 --Invoice Distribution Type
129148  , p_source_33            IN VARCHAR2
129149  , p_source_33_meaning    IN VARCHAR2
129150 --Automatic Offsets Flag
129151  , p_source_47            IN VARCHAR2
129152  , p_source_47_meaning    IN VARCHAR2
129153 --Accounting Reversal Indicator
129154  , p_source_52            IN VARCHAR2
129155 --Distribution Link Type
129156  , p_source_54            IN VARCHAR2
129157 --Allocation to Main Distribution Identifier
129158  , p_source_56            IN NUMBER
129159 --Invoice Identifier
129160  , p_source_57            IN NUMBER
129161 --Invoice Distribution Identifier
129162  , p_source_63            IN NUMBER
129163 --Payables Encumbrance Upgrade Credit Account
129164  , p_source_64            IN NUMBER
129165 --Payables Encumbrance Upgrade Credit Amount
129166  , p_source_65            IN NUMBER
129167 --Invoice Currency Code
129168  , p_source_66            IN VARCHAR2
129169 --Payables Encumbrance Upgrade Credit Base Amount
129170  , p_source_67            IN NUMBER
129171 --Payables Encumbrance Upgrade Debit Account
129172  , p_source_68            IN NUMBER
129173 --Payables Encumbrance Upgrade Debit Amount
129174  , p_source_69            IN NUMBER
129175 --Payables Encumbrance Upgrade Debit Base Amount
129176  , p_source_70            IN NUMBER
129177 --Payables Encumbrance Upgrade Option
129178  , p_source_71            IN VARCHAR2
129179 --Invoice Distribution Amount
129180  , p_source_72            IN NUMBER
129181 --Deferred Accounting End Date
129182  , p_source_76            IN DATE
129183 --Deferred Accounting Option
129184  , p_source_77            IN VARCHAR2
129185 --Deferred Accounting Start Date
129186  , p_source_78            IN DATE
129187 --Override Accounted Amount Indicator
129188  , p_source_79            IN VARCHAR2
129189  , p_source_79_meaning    IN VARCHAR2
129190 --Invoice Supplier Identifier
129191  , p_source_80            IN NUMBER
129192 --Invoice Supplier Site Identifier
129193  , p_source_81            IN NUMBER
129194 --Third Party Type
129195  , p_source_82            IN VARCHAR2
129196 --Parent Reversal Identifier
129197  , p_source_83            IN NUMBER
129198 --Invoice Distribution Statistical Amount
129199  , p_source_84            IN NUMBER
129200 --Invoice Distribution Tax Line Identifier
129201  , p_source_85            IN NUMBER
129202 --Invoice Distribution Tax Distribution Identifier from Tax
129203  , p_source_86            IN NUMBER
129204 --Invoice Distribution Summary Tax Line Identifier
129205  , p_source_87            IN NUMBER
129206 --Payables Upgrade Credit Encumbrance Type Identifier
129207  , p_source_88            IN NUMBER
129208 --Payables Upgrade Debit Encumbrance Type Identifier
129209  , p_source_89            IN NUMBER
129210 --Business Flow Accounts Payable Application Identifier
129211  , p_source_90            IN NUMBER
129212 --Business Flow Invoice Distribution Type
129213  , p_source_91            IN VARCHAR2
129214 --Business Flow Invoice Entity Code
129215  , p_source_92            IN VARCHAR2
129216 --Business Flow Invoice Distribution Identifier
129217  , p_source_93            IN NUMBER
129218 --Business Flow Invoice Identifier
129219  , p_source_94            IN NUMBER
129220 --Accrue on Receipt Option
129221  , p_source_95            IN VARCHAR2
129222  , p_source_95_meaning    IN VARCHAR2
129223 --Invoice Exchange Date
129224  , p_source_136            IN DATE
129225 --Invoice Exchange Rate
129226  , p_source_137            IN NUMBER
129227 --Invoice Exchange Rate Type
129228  , p_source_138            IN VARCHAR2
129229 )
129230 IS
129231 
129232 l_component_type              VARCHAR2(80);
129233 l_component_code              VARCHAR2(30);
129234 l_component_type_code         VARCHAR2(1);
129235 l_component_appl_id           INTEGER;
129236 l_amb_context_code            VARCHAR2(30);
129237 l_entity_code                 VARCHAR2(30);
129238 l_event_class_code            VARCHAR2(30);
129239 l_ae_header_id                NUMBER;
129240 l_event_type_code             VARCHAR2(30);
129241 l_line_definition_code        VARCHAR2(30);
129242 l_line_definition_owner_code  VARCHAR2(1);
129243 --
129244 -- adr variables
129245 l_segment                     VARCHAR2(30);
129246 l_ccid                        NUMBER;
129247 l_adr_transaction_coa_id      NUMBER;
129248 l_adr_accounting_coa_id       NUMBER;
129249 l_adr_flexfield_segment_code  VARCHAR2(30);
129250 l_adr_flex_value_set_id       NUMBER;
129251 l_adr_value_type_code         VARCHAR2(30);
129252 l_adr_value_combination_id    NUMBER;
129253 l_adr_value_segment_code      VARCHAR2(30);
129254 
129255 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
129256 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
129257 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
129258 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
129259 
129263 l_acc_rev_flag                VARCHAR2(1);
129260 -- 4262811 Variables ------------------------------------------------------------------------------------------
129261 l_entered_amt_idx             NUMBER;
129262 l_accted_amt_idx              NUMBER;
129264 l_accrual_line_num            NUMBER;
129265 l_tmp_amt                     NUMBER;
129266 l_acc_rev_natural_side_code   VARCHAR2(1);
129267 
129268 l_num_entries                 NUMBER;
129269 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
129270 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
129271 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
129272 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
129273 l_recog_line_1                NUMBER;
129274 l_recog_line_2                NUMBER;
129275 
129276 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
129277 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
129278 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
129279 
129280 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
129281 
129282 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
129283 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
129284 
129285 ---------------------------------------------------------------------------------------------------------------
129286 
129287 
129288 --
129289 -- bulk performance
129290 --
129291 l_balance_type_code           VARCHAR2(1);
129292 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
129293 l_log_module                  VARCHAR2(240);
129294 
129295 --
129296 -- Upgrade strategy
129297 --
129298 l_actual_upg_option           VARCHAR2(1);
129299 l_enc_upg_option           VARCHAR2(1);
129300 
129301 --
129302 BEGIN
129303 --
129304 IF g_log_enabled THEN
129305       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_208';
129306 END IF;
129307 --
129308 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129309 
129310       trace
129311          (p_msg      => 'BEGIN of AcctLineType_208'
129312          ,p_level    => C_LEVEL_PROCEDURE
129313          ,p_module   => l_log_module);
129314 
129315 END IF;
129316 --
129317 l_component_type             := 'AMB_JLT';
129318 l_component_code             := 'AP_TAX_EX_RATE_VAR_CM';
129319 l_component_type_code        := 'S';
129320 l_component_appl_id          :=  200;
129321 l_amb_context_code           := 'DEFAULT';
129322 l_entity_code                := 'AP_INVOICES';
129323 l_event_class_code           := 'CREDIT MEMOS';
129324 l_event_type_code            := 'CREDIT MEMOS_ALL';
129325 l_line_definition_owner_code := 'S';
129326 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
129327 --
129328 l_balance_type_code          := 'A';
129329 l_segment                     := NULL;
129330 l_ccid                        := NULL;
129331 l_adr_transaction_coa_id      := NULL;
129332 l_adr_accounting_coa_id       := NULL;
129333 l_adr_flexfield_segment_code  := NULL;
129334 l_adr_flex_value_set_id       := NULL;
129335 l_adr_value_type_code         := NULL;
129336 l_adr_value_combination_id    := NULL;
129337 l_adr_value_segment_code      := NULL;
129338 
129339 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
129340 l_bflow_class_code           := '';    -- 4219869 Business Flow
129341 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129342 l_budgetary_control_flag     := 'N';
129343 
129344 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129345 l_bflow_applied_to_amt       := NULL; -- 5132302
129346 l_entered_amt_idx            := NULL;          -- 4262811
129347 l_accted_amt_idx             := NULL;          -- 4262811
129348 l_acc_rev_flag               := NULL;          -- 4262811
129349 l_accrual_line_num           := NULL;          -- 4262811
129350 l_tmp_amt                    := NULL;          -- 4262811
129351 --
129352 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
129353             (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
129354                return;
129355   END IF;
129356   
129357 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129358     l_balance_type_code <> 'B' THEN
129359 IF NVL(p_source_33,'
129360 ') =  'TERV' AND 
129361 NVL(p_source_95,'
129362 ') =  'Y'
129363  THEN 
129364 
129365    --
129366    XLA_AE_LINES_PKG.SetNewLine;
129367 
129368    p_balance_type_code          := l_balance_type_code;
129369    -- set the flag so later we will know whether the gain loss line needs to be created
129370    
129371    IF(l_balance_type_code = 'A' ) THEN
129372      p_actual_flag :='G';
129373    END IF;
129374 
129375    --
129376    -- bulk performance
129377    --
129378    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129379                                       p_header_num   => 0); -- 4262811
129380    --
129381    -- set accounting line options
129382    --
129383    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129384            p_natural_side_code          => 'D'
129385          , p_gain_or_loss_flag          => 'Y'
129386          , p_gl_transfer_mode_code      => 'S'
129387          , p_acct_entry_type_code       => 'A'
129391    --
129388          , p_switch_side_flag           => 'Y'
129389          , p_merge_duplicate_code       => 'A'
129390          );
129392    l_acc_rev_natural_side_code := 'C';  -- 4262811
129393    -- 
129394    --
129395    -- set accounting line type info
129396    --
129397    xla_ae_lines_pkg.SetAcctLineType
129398       (p_component_type             => l_component_type
129399       ,p_event_type_code            => l_event_type_code
129400       ,p_line_definition_owner_code => l_line_definition_owner_code
129401       ,p_line_definition_code       => l_line_definition_code
129402       ,p_accounting_line_code       => l_component_code
129403       ,p_accounting_line_type_code  => l_component_type_code
129404       ,p_accounting_line_appl_id    => l_component_appl_id
129405       ,p_amb_context_code           => l_amb_context_code
129406       ,p_entity_code                => l_entity_code
129407       ,p_event_class_code           => l_event_class_code);
129408    --
129409    -- set accounting class
129410    --
129411    xla_ae_lines_pkg.SetAcctClass(
129412            p_accounting_class_code  => 'TERV'
129413          , p_ae_header_id           => l_ae_header_id
129414          );
129415 
129416    --
129417    -- set rounding class
129418    --
129419    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129420                       'TERV';
129421 
129422    --
129423    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129424    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129425    --
129426    -- bulk performance
129427    --
129428    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129429 
129430    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129431       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129432 
129433    -- 4955764
129434    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129435       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129436 
129437    -- 4458381 Public Sector Enh
129438    
129439    --
129440    -- set accounting attributes for the line type
129441    --
129442    l_entered_amt_idx := 23;
129443    l_accted_amt_idx  := 28;
129444    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
129445    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129446    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
129447    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129448    l_rec_acct_attrs.array_num_value(2)  := 
129449 xla_ae_sources_pkg.GetSystemSourceNum(
129450    p_source_code           => 'XLA_EVENT_APPL_ID'
129451  , p_source_type_code      => 'Y'
129452  , p_source_application_id =>  602
129453 );
129454    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129455    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
129456    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129457    l_rec_acct_attrs.array_char_value(4)  := 
129458 xla_ae_sources_pkg.GetSystemSourceChar(
129459    p_source_code           => 'XLA_ENTITY_CODE'
129460  , p_source_type_code      => 'Y'
129461  , p_source_application_id =>  602
129462 );
129463    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129464    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
129465    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129466    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
129467    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
129468    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
129469    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129470    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
129471    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
129472    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
129473    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
129474    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
129475    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129476    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
129477    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
129478    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
129479    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
129480    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
129481    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
129482    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
129483    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
129484    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
129485    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
129486    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
129487    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
129488    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
129489    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
129490    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
129491    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
129492    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
129493    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
129494    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
129498    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
129495    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
129496    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
129497    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
129499    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
129500    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
129501    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
129502    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
129503    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
129504    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
129505    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
129506    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
129507    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
129508    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
129509    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
129510    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
129511    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
129512    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
129513    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
129514    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
129515    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
129516    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
129517    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
129518    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
129519    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
129520    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
129521    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
129522    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
129523    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
129524    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
129525    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
129526    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
129527    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
129528    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
129529    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
129530    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
129531    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
129532    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
129533    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
129534    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
129535    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
129536    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
129537    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
129538    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
129539    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
129540    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
129541 
129542    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
129543    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
129544 
129545    ---------------------------------------------------------------------------------------------------------------
129546    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
129547    ---------------------------------------------------------------------------------------------------------------
129548    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
129549 
129550    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129551    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129552 
129553    IF xla_accounting_cache_pkg.GetValueChar
129554          (p_source_code         => 'LEDGER_CATEGORY_CODE'
129555          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
129556    AND l_bflow_method_code = 'PRIOR_ENTRY'
129557 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
129558    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
129559          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
129560        )
129561    THEN
129562          xla_ae_lines_pkg.BflowUpgEntry
129563            (p_business_method_code    => l_bflow_method_code
129564            ,p_business_class_code     => l_bflow_class_code
129565            ,p_balance_type            => l_balance_type_code);
129566    ELSE
129567       NULL;
129568 -- No business flow processing for business flow method of NONE.
129569    END IF;
129570 
129571    --
129572    -- call analytical criteria
129573    --
129574    
129575    --
129576    -- call description
129577    --
129578    
129579 xla_ae_lines_pkg.SetLineDescription(
129580    p_ae_header_id => l_ae_header_id
129581   ,p_description  => Description_1 (
129582      p_application_id         => p_application_id
129583    , p_ae_header_id           => l_ae_header_id 
129584 , p_source_1 => p_source_1
129585    )
129586 );
129587 
129588 
129589    --
129590    -- call ADRs
129591    -- Bug 4922099
129592    --
129593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129594         (NVL(l_actual_upg_option, 'N') = 'O') OR
129595         (NVL(l_enc_upg_option, 'N') = 'O')
129596       )
129597    THEN
129601    
129598    NULL;
129599    --
129600    --
129602   l_ccid := AcctDerRule_30(
129603            p_application_id           => p_application_id
129604          , p_ae_header_id             => l_ae_header_id 
129605 , p_source_15 => p_source_15
129606 , p_source_15_meaning => p_source_15_meaning
129607 , p_source_20 => p_source_20
129608 , p_source_21 => p_source_21
129609 , p_source_22 => p_source_22
129610 , p_source_22_meaning => p_source_22_meaning
129611 , p_source_23 => p_source_23
129612 , p_source_30 => p_source_30
129613 , p_source_47 => p_source_47
129614 , p_source_47_meaning => p_source_47_meaning
129615          , x_transaction_coa_id       => l_adr_transaction_coa_id
129616          , x_accounting_coa_id        => l_adr_accounting_coa_id
129617          , x_value_type_code          => l_adr_value_type_code
129618          , p_side                     => 'NA'
129619    );
129620 
129621    xla_ae_lines_pkg.set_ccid(
129622     p_code_combination_id          => l_ccid
129623   , p_value_type_code              => l_adr_value_type_code
129624   , p_transaction_coa_id           => l_adr_transaction_coa_id
129625   , p_accounting_coa_id            => l_adr_accounting_coa_id
129626   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
129627   , p_adr_type_code                => 'S'
129628   , p_component_type               => l_component_type
129629   , p_component_code               => l_component_code
129630   , p_component_type_code          => l_component_type_code
129631   , p_component_appl_id            => l_component_appl_id
129632   , p_amb_context_code             => l_amb_context_code
129633   , p_side                         => 'NA'
129634   );
129635 
129636 
129637    l_segment := AcctDerRule_8(
129638            p_application_id           => p_application_id
129639          , p_ae_header_id             => l_ae_header_id 
129640 , p_source_15 => p_source_15
129641 , p_source_15_meaning => p_source_15_meaning
129642 , p_source_20 => p_source_20
129643 , p_source_21 => p_source_21
129644 , p_source_22 => p_source_22
129645 , p_source_22_meaning => p_source_22_meaning
129646 , p_source_23 => p_source_23
129647          , x_transaction_coa_id       => l_adr_transaction_coa_id
129648          , x_accounting_coa_id        => l_adr_accounting_coa_id
129649          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129650          , x_flex_value_set_id        => l_adr_flex_value_set_id
129651          , x_value_type_code          => l_adr_value_type_code
129652          , x_value_combination_id     => l_adr_value_combination_id
129653          , x_value_segment_code       => l_adr_value_segment_code
129654          , p_side                     => 'NA'
129655          , p_override_seg_flag        => 'Y'
129656    );
129657 
129658    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129659 
129660       xla_ae_lines_pkg.set_segment(
129661           p_to_segment_code         => 'GL_ACCOUNT'
129662         , p_segment_value           => l_segment
129663         , p_from_segment_code       => l_adr_value_segment_code
129664         , p_from_combination_id     => l_adr_value_combination_id
129665         , p_value_type_code         => l_adr_value_type_code
129666         , p_transaction_coa_id      => l_adr_transaction_coa_id
129667         , p_accounting_coa_id       => l_adr_accounting_coa_id
129668         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129669         , p_flex_value_set_id       => l_adr_flex_value_set_id
129670         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
129671         , p_adr_type_code           => 'S'
129672         , p_component_type          => l_component_type
129673         , p_component_code          => l_component_code
129674         , p_component_type_code     => l_component_type_code
129675         , p_component_appl_id       => l_component_appl_id
129676         , p_amb_context_code        => l_amb_context_code
129677         , p_entity_code             => 'AP_INVOICES'
129678         , p_event_class_code        => 'CREDIT MEMOS'
129679         , p_side                    => 'NA'
129680         );
129681 
129682   END IF;
129683 
129684    l_segment := AcctDerRule_23(
129685            p_application_id           => p_application_id
129686          , p_ae_header_id             => l_ae_header_id 
129687 , p_source_15 => p_source_15
129688 , p_source_15_meaning => p_source_15_meaning
129689 , p_source_22 => p_source_22
129690 , p_source_22_meaning => p_source_22_meaning
129691 , p_source_30 => p_source_30
129692          , x_transaction_coa_id       => l_adr_transaction_coa_id
129693          , x_accounting_coa_id        => l_adr_accounting_coa_id
129694          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129695          , x_flex_value_set_id        => l_adr_flex_value_set_id
129696          , x_value_type_code          => l_adr_value_type_code
129697          , x_value_combination_id     => l_adr_value_combination_id
129698          , x_value_segment_code       => l_adr_value_segment_code
129699          , p_side                     => 'NA'
129700          , p_override_seg_flag        => 'Y'
129701    );
129702 
129703    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129704 
129705       xla_ae_lines_pkg.set_segment(
129706           p_to_segment_code         => 'GL_BALANCING'
129707         , p_segment_value           => l_segment
129708         , p_from_segment_code       => l_adr_value_segment_code
129709         , p_from_combination_id     => l_adr_value_combination_id
129710         , p_value_type_code         => l_adr_value_type_code
129711         , p_transaction_coa_id      => l_adr_transaction_coa_id
129712         , p_accounting_coa_id       => l_adr_accounting_coa_id
129716         , p_adr_type_code           => 'S'
129713         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129714         , p_flex_value_set_id       => l_adr_flex_value_set_id
129715         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
129717         , p_component_type          => l_component_type
129718         , p_component_code          => l_component_code
129719         , p_component_type_code     => l_component_type_code
129720         , p_component_appl_id       => l_component_appl_id
129721         , p_amb_context_code        => l_amb_context_code
129722         , p_entity_code             => 'AP_INVOICES'
129723         , p_event_class_code        => 'CREDIT MEMOS'
129724         , p_side                    => 'NA'
129725         );
129726 
129727   END IF;
129728 
129729    --
129730    --
129731    END IF;
129732    --
129733    -- Bug 4922099
129734    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
129735           (NVL(l_enc_upg_option, 'N') = 'O')
129736         ) AND
129737         (l_bflow_method_code = 'PRIOR_ENTRY')
129738       )
129739    THEN
129740       IF
129741       --
129742       1 = 2
129743       --
129744       THEN
129745       xla_accounting_err_pkg.build_message
129746                                     (p_appli_s_name            => 'XLA'
129747                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129748                                     ,p_token_1                 => 'LINE_NUMBER'
129749                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
129750                                     ,p_token_2                 => 'LINE_TYPE_NAME'
129751                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
129752                                                                              l_component_type
129753                                                                             ,l_component_code
129754                                                                             ,l_component_type_code
129755                                                                             ,l_component_appl_id
129756                                                                             ,l_amb_context_code
129757                                                                             ,l_entity_code
129758                                                                             ,l_event_class_code
129759                                                                            )
129760                                     ,p_token_3                 => 'OWNER'
129761                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
129762                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
129763                                                                           ,p_lookup_code    => l_component_type_code
129764                                                                          )
129765                                     ,p_token_4                 => 'PRODUCT_NAME'
129766                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
129767                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
129768                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
129769                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
129770                                     ,p_ae_header_id            =>  NULL
129771                                        );
129772 
129773         IF (C_LEVEL_ERROR>= g_log_level) THEN
129774                  trace
129775                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129776                       ,p_level    => C_LEVEL_ERROR
129777                       ,p_module   => l_log_module);
129778         END IF;
129779       END IF;
129780    END IF;
129781    --
129782    --
129783    ------------------------------------------------------------------------------------------------
129784    -- 4219869 Business Flow
129785    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
129786    -- Prior Entry.  Currently, the following code is always generated.
129787    ------------------------------------------------------------------------------------------------
129788    XLA_AE_LINES_PKG.ValidateCurrentLine;
129789 
129790    ------------------------------------------------------------------------------------
129791    -- 4219869 Business Flow
129792    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
129793    ------------------------------------------------------------------------------------
129794    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129795 
129796    ----------------------------------------------------------------------------------
129797    -- 4219869 Business Flow
129798    -- Update journal entry status -- Need to generate this within IF <condition>
129799    ----------------------------------------------------------------------------------
129800    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129801          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
129802          ,p_balance_type_code => l_balance_type_code
129803          );
129804 
129805    -------------------------------------------------------------------------------------------
129806    -- 4262811 - Generate the Accrual Reversal lines
129810                               (g_array_event(p_event_id).array_value_num('header_index'));
129807    -------------------------------------------------------------------------------------------
129808    BEGIN
129809       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
129811       IF l_acc_rev_flag IS NULL THEN
129812          l_acc_rev_flag := 'N';
129813       END IF;
129814    EXCEPTION
129815       WHEN OTHERS THEN
129816          l_acc_rev_flag := 'N';
129817    END;
129818    --
129819    IF (l_acc_rev_flag = 'Y') THEN
129820 
129821        -- 4645092  ------------------------------------------------------------------------------
129822        -- To allow MPA report to determine if it should generate report process
129823        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
129824        ------------------------------------------------------------------------------------------
129825 
129826        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
129827        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
129828    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
129829    -- call ADRs
129830    -- Bug 4922099
129831    --
129832    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129833         (NVL(l_actual_upg_option, 'N') = 'O') OR
129834         (NVL(l_enc_upg_option, 'N') = 'O')
129835       )
129836    THEN
129837    NULL;
129838    --
129839    --
129840    
129841   l_ccid := AcctDerRule_30(
129842            p_application_id           => p_application_id
129843          , p_ae_header_id             => l_ae_header_id 
129844 , p_source_15 => p_source_15
129845 , p_source_15_meaning => p_source_15_meaning
129846 , p_source_20 => p_source_20
129847 , p_source_21 => p_source_21
129848 , p_source_22 => p_source_22
129849 , p_source_22_meaning => p_source_22_meaning
129850 , p_source_23 => p_source_23
129851 , p_source_30 => p_source_30
129852 , p_source_47 => p_source_47
129853 , p_source_47_meaning => p_source_47_meaning
129854          , x_transaction_coa_id       => l_adr_transaction_coa_id
129855          , x_accounting_coa_id        => l_adr_accounting_coa_id
129856          , x_value_type_code          => l_adr_value_type_code
129857          , p_side                     => 'NA'
129858    );
129859 
129860    xla_ae_lines_pkg.set_ccid(
129861     p_code_combination_id          => l_ccid
129862   , p_value_type_code              => l_adr_value_type_code
129863   , p_transaction_coa_id           => l_adr_transaction_coa_id
129864   , p_accounting_coa_id            => l_adr_accounting_coa_id
129865   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
129866   , p_adr_type_code                => 'S'
129867   , p_component_type               => l_component_type
129868   , p_component_code               => l_component_code
129869   , p_component_type_code          => l_component_type_code
129870   , p_component_appl_id            => l_component_appl_id
129871   , p_amb_context_code             => l_amb_context_code
129872   , p_side                         => 'NA'
129873   );
129874 
129875 
129876    l_segment := AcctDerRule_8(
129877            p_application_id           => p_application_id
129878          , p_ae_header_id             => l_ae_header_id 
129879 , p_source_15 => p_source_15
129880 , p_source_15_meaning => p_source_15_meaning
129881 , p_source_20 => p_source_20
129882 , p_source_21 => p_source_21
129883 , p_source_22 => p_source_22
129884 , p_source_22_meaning => p_source_22_meaning
129885 , p_source_23 => p_source_23
129886          , x_transaction_coa_id       => l_adr_transaction_coa_id
129887          , x_accounting_coa_id        => l_adr_accounting_coa_id
129888          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129889          , x_flex_value_set_id        => l_adr_flex_value_set_id
129890          , x_value_type_code          => l_adr_value_type_code
129891          , x_value_combination_id     => l_adr_value_combination_id
129892          , x_value_segment_code       => l_adr_value_segment_code
129893          , p_side                     => 'NA'
129894          , p_override_seg_flag        => 'Y'
129895    );
129896 
129897    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129898 
129899       xla_ae_lines_pkg.set_segment(
129900           p_to_segment_code         => 'GL_ACCOUNT'
129901         , p_segment_value           => l_segment
129902         , p_from_segment_code       => l_adr_value_segment_code
129903         , p_from_combination_id     => l_adr_value_combination_id
129904         , p_value_type_code         => l_adr_value_type_code
129905         , p_transaction_coa_id      => l_adr_transaction_coa_id
129906         , p_accounting_coa_id       => l_adr_accounting_coa_id
129907         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129908         , p_flex_value_set_id       => l_adr_flex_value_set_id
129909         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
129910         , p_adr_type_code           => 'S'
129911         , p_component_type          => l_component_type
129912         , p_component_code          => l_component_code
129913         , p_component_type_code     => l_component_type_code
129914         , p_component_appl_id       => l_component_appl_id
129915         , p_amb_context_code        => l_amb_context_code
129916         , p_entity_code             => 'AP_INVOICES'
129917         , p_event_class_code        => 'CREDIT MEMOS'
129918         , p_side                    => 'NA'
129919         );
129920 
129921   END IF;
129925          , p_ae_header_id             => l_ae_header_id 
129922 
129923    l_segment := AcctDerRule_23(
129924            p_application_id           => p_application_id
129926 , p_source_15 => p_source_15
129927 , p_source_15_meaning => p_source_15_meaning
129928 , p_source_22 => p_source_22
129929 , p_source_22_meaning => p_source_22_meaning
129930 , p_source_30 => p_source_30
129931          , x_transaction_coa_id       => l_adr_transaction_coa_id
129932          , x_accounting_coa_id        => l_adr_accounting_coa_id
129933          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129934          , x_flex_value_set_id        => l_adr_flex_value_set_id
129935          , x_value_type_code          => l_adr_value_type_code
129936          , x_value_combination_id     => l_adr_value_combination_id
129937          , x_value_segment_code       => l_adr_value_segment_code
129938          , p_side                     => 'NA'
129939          , p_override_seg_flag        => 'Y'
129940    );
129941 
129942    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129943 
129944       xla_ae_lines_pkg.set_segment(
129945           p_to_segment_code         => 'GL_BALANCING'
129946         , p_segment_value           => l_segment
129947         , p_from_segment_code       => l_adr_value_segment_code
129948         , p_from_combination_id     => l_adr_value_combination_id
129949         , p_value_type_code         => l_adr_value_type_code
129950         , p_transaction_coa_id      => l_adr_transaction_coa_id
129951         , p_accounting_coa_id       => l_adr_accounting_coa_id
129952         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129953         , p_flex_value_set_id       => l_adr_flex_value_set_id
129954         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
129955         , p_adr_type_code           => 'S'
129956         , p_component_type          => l_component_type
129957         , p_component_code          => l_component_code
129958         , p_component_type_code     => l_component_type_code
129959         , p_component_appl_id       => l_component_appl_id
129960         , p_amb_context_code        => l_amb_context_code
129961         , p_entity_code             => 'AP_INVOICES'
129962         , p_event_class_code        => 'CREDIT MEMOS'
129963         , p_side                    => 'NA'
129964         );
129965 
129966   END IF;
129967 
129968    --
129969    --
129970    END IF;
129971 
129972        --
129973        -- Update the line information that should be overwritten
129974        --
129975        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
129976                                          p_header_num   => 1);
129977        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
129978 
129979        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
129980 
129981        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
129982           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
129983        END IF;
129984 
129985       --
129986       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
129987       --
129988       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
129989           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
129990       ELSE
129991           ---------------------------------------------------------------------------------------------------
129992           -- 4262811a Switch Sign
129993           ---------------------------------------------------------------------------------------------------
129994           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
129995           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129996                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129997           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129998                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129999           -- 5132302
130000           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130001                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130002 
130003       END IF;
130004 
130005       -- 4955764
130006       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130007       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130008 
130009 
130010       XLA_AE_LINES_PKG.ValidateCurrentLine;
130011       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130012 
130013       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130014                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130015                ,p_balance_type_code => l_balance_type_code);
130016 
130017    END IF;
130018 
130019    -----------------------------------------------------------------------------------------
130020    -- 4262811 Multiperiod Accounting
130021    -----------------------------------------------------------------------------------------
130022      -- No MPA option is assigned.
130023 
130024 
130025 END IF;
130026 END IF;
130027 --
130028 
130029 --
130030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130031    trace
130032       (p_msg      => 'END of AcctLineType_208'
130033       ,p_level    => C_LEVEL_PROCEDURE
130037 EXCEPTION
130034       ,p_module   => l_log_module);
130035 END IF;
130036 --
130038   WHEN xla_exceptions_pkg.application_exception THEN
130039       RAISE;
130040   WHEN OTHERS THEN
130041        xla_exceptions_pkg.raise_message
130042            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_208');
130043 END AcctLineType_208;
130044 --
130045 
130046 ---------------------------------------
130047 --
130048 -- PRIVATE FUNCTION
130049 --         AcctLineType_209
130050 --
130051 ---------------------------------------
130052 PROCEDURE AcctLineType_209 (
130053   p_application_id        IN NUMBER
130054  ,p_event_id              IN NUMBER
130055  ,p_calculate_acctd_flag  IN VARCHAR2
130056  ,p_calculate_g_l_flag    IN VARCHAR2
130057  ,p_actual_flag           IN OUT VARCHAR2
130058  ,p_balance_type_code     OUT VARCHAR2
130059  ,p_gain_or_loss_ref      OUT VARCHAR2
130060  
130061 --Invoice Distribution Description
130062  , p_source_1            IN VARCHAR2
130063 --Automatic Offsets Value
130064  , p_source_15            IN VARCHAR2
130065  , p_source_15_meaning    IN VARCHAR2
130066 --Purchase Order Rate Variance Gain Account
130067  , p_source_20            IN NUMBER
130068 --Invoice Distribution Ledger Amount
130069  , p_source_21            IN NUMBER
130070 --Destination Type of the PO Distribution
130071  , p_source_22            IN VARCHAR2
130072  , p_source_22_meaning    IN VARCHAR2
130073 --Purchase Order Rate Variance Loss Account
130074  , p_source_23            IN NUMBER
130075 --Invoice Distribution Account
130076  , p_source_30            IN NUMBER
130077 --Invoice Distribution Type
130078  , p_source_33            IN VARCHAR2
130079  , p_source_33_meaning    IN VARCHAR2
130080 --Automatic Offsets Flag
130081  , p_source_47            IN VARCHAR2
130082  , p_source_47_meaning    IN VARCHAR2
130083 --Accounting Reversal Indicator
130084  , p_source_52            IN VARCHAR2
130085 --Distribution Link Type
130086  , p_source_54            IN VARCHAR2
130087 --Allocation to Main Distribution Identifier
130088  , p_source_56            IN NUMBER
130089 --Invoice Identifier
130090  , p_source_57            IN NUMBER
130091 --Invoice Distribution Identifier
130092  , p_source_63            IN NUMBER
130093 --Payables Encumbrance Upgrade Credit Account
130094  , p_source_64            IN NUMBER
130095 --Payables Encumbrance Upgrade Credit Amount
130096  , p_source_65            IN NUMBER
130097 --Invoice Currency Code
130098  , p_source_66            IN VARCHAR2
130099 --Payables Encumbrance Upgrade Credit Base Amount
130100  , p_source_67            IN NUMBER
130101 --Payables Encumbrance Upgrade Debit Account
130102  , p_source_68            IN NUMBER
130103 --Payables Encumbrance Upgrade Debit Amount
130104  , p_source_69            IN NUMBER
130105 --Payables Encumbrance Upgrade Debit Base Amount
130106  , p_source_70            IN NUMBER
130107 --Payables Encumbrance Upgrade Option
130108  , p_source_71            IN VARCHAR2
130109 --Invoice Distribution Amount
130110  , p_source_72            IN NUMBER
130111 --Deferred Accounting End Date
130112  , p_source_76            IN DATE
130113 --Deferred Accounting Option
130114  , p_source_77            IN VARCHAR2
130115 --Deferred Accounting Start Date
130116  , p_source_78            IN DATE
130117 --Override Accounted Amount Indicator
130118  , p_source_79            IN VARCHAR2
130119  , p_source_79_meaning    IN VARCHAR2
130120 --Invoice Supplier Identifier
130121  , p_source_80            IN NUMBER
130122 --Invoice Supplier Site Identifier
130123  , p_source_81            IN NUMBER
130124 --Third Party Type
130125  , p_source_82            IN VARCHAR2
130126 --Parent Reversal Identifier
130127  , p_source_83            IN NUMBER
130128 --Invoice Distribution Tax Line Identifier
130129  , p_source_85            IN NUMBER
130130 --Invoice Distribution Tax Distribution Identifier from Tax
130131  , p_source_86            IN NUMBER
130132 --Invoice Distribution Summary Tax Line Identifier
130133  , p_source_87            IN NUMBER
130134 --Payables Upgrade Credit Encumbrance Type Identifier
130135  , p_source_88            IN NUMBER
130136 --Payables Upgrade Debit Encumbrance Type Identifier
130137  , p_source_89            IN NUMBER
130138 --Business Flow Accounts Payable Application Identifier
130139  , p_source_90            IN NUMBER
130140 --Business Flow Invoice Distribution Type
130141  , p_source_91            IN VARCHAR2
130142 --Business Flow Invoice Entity Code
130143  , p_source_92            IN VARCHAR2
130144 --Business Flow Invoice Distribution Identifier
130145  , p_source_93            IN NUMBER
130146 --Business Flow Invoice Identifier
130147  , p_source_94            IN NUMBER
130148 --Accrue on Receipt Option
130149  , p_source_95            IN VARCHAR2
130150  , p_source_95_meaning    IN VARCHAR2
130151 --Invoice Exchange Date
130152  , p_source_136            IN DATE
130153 --Invoice Exchange Rate
130154  , p_source_137            IN NUMBER
130155 --Invoice Exchange Rate Type
130156  , p_source_138            IN VARCHAR2
130157 )
130158 IS
130159 
130160 l_component_type              VARCHAR2(80);
130161 l_component_code              VARCHAR2(30);
130162 l_component_type_code         VARCHAR2(1);
130163 l_component_appl_id           INTEGER;
130164 l_amb_context_code            VARCHAR2(30);
130165 l_entity_code                 VARCHAR2(30);
130166 l_event_class_code            VARCHAR2(30);
130167 l_ae_header_id                NUMBER;
130168 l_event_type_code             VARCHAR2(30);
130172 -- adr variables
130169 l_line_definition_code        VARCHAR2(30);
130170 l_line_definition_owner_code  VARCHAR2(1);
130171 --
130173 l_segment                     VARCHAR2(30);
130174 l_ccid                        NUMBER;
130175 l_adr_transaction_coa_id      NUMBER;
130176 l_adr_accounting_coa_id       NUMBER;
130177 l_adr_flexfield_segment_code  VARCHAR2(30);
130178 l_adr_flex_value_set_id       NUMBER;
130179 l_adr_value_type_code         VARCHAR2(30);
130180 l_adr_value_combination_id    NUMBER;
130181 l_adr_value_segment_code      VARCHAR2(30);
130182 
130183 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
130184 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
130185 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
130186 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
130187 
130188 -- 4262811 Variables ------------------------------------------------------------------------------------------
130189 l_entered_amt_idx             NUMBER;
130190 l_accted_amt_idx              NUMBER;
130191 l_acc_rev_flag                VARCHAR2(1);
130192 l_accrual_line_num            NUMBER;
130193 l_tmp_amt                     NUMBER;
130194 l_acc_rev_natural_side_code   VARCHAR2(1);
130195 
130196 l_num_entries                 NUMBER;
130197 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
130198 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
130199 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
130200 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
130201 l_recog_line_1                NUMBER;
130202 l_recog_line_2                NUMBER;
130203 
130204 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
130205 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
130206 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
130207 
130208 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
130209 
130210 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
130211 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
130212 
130213 ---------------------------------------------------------------------------------------------------------------
130214 
130215 
130216 --
130217 -- bulk performance
130218 --
130219 l_balance_type_code           VARCHAR2(1);
130220 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
130221 l_log_module                  VARCHAR2(240);
130222 
130223 --
130224 -- Upgrade strategy
130225 --
130226 l_actual_upg_option           VARCHAR2(1);
130227 l_enc_upg_option           VARCHAR2(1);
130228 
130229 --
130230 BEGIN
130231 --
130232 IF g_log_enabled THEN
130233       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_209';
130234 END IF;
130235 --
130236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130237 
130238       trace
130239          (p_msg      => 'BEGIN of AcctLineType_209'
130240          ,p_level    => C_LEVEL_PROCEDURE
130241          ,p_module   => l_log_module);
130242 
130243 END IF;
130244 --
130245 l_component_type             := 'AMB_JLT';
130246 l_component_code             := 'AP_TAX_EX_RATE_VAR_DM';
130247 l_component_type_code        := 'S';
130248 l_component_appl_id          :=  200;
130249 l_amb_context_code           := 'DEFAULT';
130250 l_entity_code                := 'AP_INVOICES';
130251 l_event_class_code           := 'DEBIT MEMOS';
130252 l_event_type_code            := 'DEBIT MEMOS_ALL';
130253 l_line_definition_owner_code := 'S';
130254 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
130255 --
130256 l_balance_type_code          := 'A';
130257 l_segment                     := NULL;
130258 l_ccid                        := NULL;
130259 l_adr_transaction_coa_id      := NULL;
130260 l_adr_accounting_coa_id       := NULL;
130261 l_adr_flexfield_segment_code  := NULL;
130262 l_adr_flex_value_set_id       := NULL;
130263 l_adr_value_type_code         := NULL;
130264 l_adr_value_combination_id    := NULL;
130265 l_adr_value_segment_code      := NULL;
130266 
130267 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
130268 l_bflow_class_code           := '';    -- 4219869 Business Flow
130269 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
130270 l_budgetary_control_flag     := 'N';
130271 
130272 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
130273 l_bflow_applied_to_amt       := NULL; -- 5132302
130274 l_entered_amt_idx            := NULL;          -- 4262811
130275 l_accted_amt_idx             := NULL;          -- 4262811
130276 l_acc_rev_flag               := NULL;          -- 4262811
130277 l_accrual_line_num           := NULL;          -- 4262811
130278 l_tmp_amt                    := NULL;          -- 4262811
130279 --
130280 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
130281             (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
130282                return;
130283   END IF;
130284   
130285 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
130286     l_balance_type_code <> 'B' THEN
130287 IF NVL(p_source_33,'
130288 ') =  'TERV' AND 
130289 NVL(p_source_95,'
130290 ') =  'Y'
130291  THEN 
130295 
130292 
130293    --
130294    XLA_AE_LINES_PKG.SetNewLine;
130296    p_balance_type_code          := l_balance_type_code;
130297    -- set the flag so later we will know whether the gain loss line needs to be created
130298    
130299    IF(l_balance_type_code = 'A' ) THEN
130300      p_actual_flag :='G';
130301    END IF;
130302 
130303    --
130304    -- bulk performance
130305    --
130306    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
130307                                       p_header_num   => 0); -- 4262811
130308    --
130309    -- set accounting line options
130310    --
130311    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
130312            p_natural_side_code          => 'D'
130313          , p_gain_or_loss_flag          => 'Y'
130314          , p_gl_transfer_mode_code      => 'S'
130315          , p_acct_entry_type_code       => 'A'
130316          , p_switch_side_flag           => 'Y'
130317          , p_merge_duplicate_code       => 'A'
130318          );
130319    --
130320    l_acc_rev_natural_side_code := 'C';  -- 4262811
130321    -- 
130322    --
130323    -- set accounting line type info
130324    --
130325    xla_ae_lines_pkg.SetAcctLineType
130326       (p_component_type             => l_component_type
130327       ,p_event_type_code            => l_event_type_code
130328       ,p_line_definition_owner_code => l_line_definition_owner_code
130329       ,p_line_definition_code       => l_line_definition_code
130330       ,p_accounting_line_code       => l_component_code
130331       ,p_accounting_line_type_code  => l_component_type_code
130332       ,p_accounting_line_appl_id    => l_component_appl_id
130333       ,p_amb_context_code           => l_amb_context_code
130334       ,p_entity_code                => l_entity_code
130335       ,p_event_class_code           => l_event_class_code);
130336    --
130337    -- set accounting class
130338    --
130339    xla_ae_lines_pkg.SetAcctClass(
130340            p_accounting_class_code  => 'TERV'
130341          , p_ae_header_id           => l_ae_header_id
130342          );
130343 
130344    --
130345    -- set rounding class
130346    --
130347    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
130348                       'TERV';
130349 
130350    --
130351    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
130352    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
130353    --
130354    -- bulk performance
130355    --
130356    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
130357 
130358    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
130359       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
130360 
130361    -- 4955764
130362    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130363       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
130364 
130365    -- 4458381 Public Sector Enh
130366    
130367    --
130368    -- set accounting attributes for the line type
130369    --
130370    l_entered_amt_idx := 23;
130371    l_accted_amt_idx  := 28;
130372    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
130373    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
130374    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
130375    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
130376    l_rec_acct_attrs.array_num_value(2)  := 
130377 xla_ae_sources_pkg.GetSystemSourceNum(
130378    p_source_code           => 'XLA_EVENT_APPL_ID'
130379  , p_source_type_code      => 'Y'
130380  , p_source_application_id =>  602
130381 );
130382    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
130383    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
130384    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
130385    l_rec_acct_attrs.array_char_value(4)  := 
130386 xla_ae_sources_pkg.GetSystemSourceChar(
130387    p_source_code           => 'XLA_ENTITY_CODE'
130388  , p_source_type_code      => 'Y'
130389  , p_source_application_id =>  602
130390 );
130391    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
130392    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
130393    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
130394    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
130395    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
130396    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
130397    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
130398    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
130399    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
130400    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
130401    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
130402    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
130403    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
130404    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
130405    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
130406    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
130407    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
130408    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
130409    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
130413    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
130410    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
130411    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
130412    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
130414    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
130415    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
130416    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
130417    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
130418    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
130419    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
130420    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
130421    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
130422    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
130423    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
130424    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
130425    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
130426    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
130427    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
130428    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
130429    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
130430    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
130431    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
130432    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
130433    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
130434    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
130435    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
130436    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
130437    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
130438    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
130439    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
130440    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
130441    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
130442    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
130443    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
130444    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
130445    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
130446    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
130447    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
130448    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
130449    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
130450    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
130451    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
130452    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
130453    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
130454    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
130455    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
130456    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
130457    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
130458    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
130459    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
130460    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
130461    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
130462    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
130463    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
130464    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
130465    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
130466    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
130467 
130468    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
130469    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
130470 
130471    ---------------------------------------------------------------------------------------------------------------
130472    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
130473    ---------------------------------------------------------------------------------------------------------------
130474    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
130475 
130476    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130477    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130478 
130479    IF xla_accounting_cache_pkg.GetValueChar
130480          (p_source_code         => 'LEDGER_CATEGORY_CODE'
130481          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
130482    AND l_bflow_method_code = 'PRIOR_ENTRY'
130483 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
130484    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
130485          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
130486        )
130487    THEN
130488          xla_ae_lines_pkg.BflowUpgEntry
130489            (p_business_method_code    => l_bflow_method_code
130490            ,p_business_class_code     => l_bflow_class_code
130491            ,p_balance_type            => l_balance_type_code);
130492    ELSE
130493       NULL;
130494 -- No business flow processing for business flow method of NONE.
130495    END IF;
130496 
130497    --
130498    -- call analytical criteria
130499    --
130503    --
130500    
130501    --
130502    -- call description
130504    
130505 xla_ae_lines_pkg.SetLineDescription(
130506    p_ae_header_id => l_ae_header_id
130507   ,p_description  => Description_1 (
130508      p_application_id         => p_application_id
130509    , p_ae_header_id           => l_ae_header_id 
130510 , p_source_1 => p_source_1
130511    )
130512 );
130513 
130514 
130515    --
130516    -- call ADRs
130517    -- Bug 4922099
130518    --
130519    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130520         (NVL(l_actual_upg_option, 'N') = 'O') OR
130521         (NVL(l_enc_upg_option, 'N') = 'O')
130522       )
130523    THEN
130524    NULL;
130525    --
130526    --
130527    
130528   l_ccid := AcctDerRule_30(
130529            p_application_id           => p_application_id
130530          , p_ae_header_id             => l_ae_header_id 
130531 , p_source_15 => p_source_15
130532 , p_source_15_meaning => p_source_15_meaning
130533 , p_source_20 => p_source_20
130534 , p_source_21 => p_source_21
130535 , p_source_22 => p_source_22
130536 , p_source_22_meaning => p_source_22_meaning
130537 , p_source_23 => p_source_23
130538 , p_source_30 => p_source_30
130539 , p_source_47 => p_source_47
130540 , p_source_47_meaning => p_source_47_meaning
130541          , x_transaction_coa_id       => l_adr_transaction_coa_id
130542          , x_accounting_coa_id        => l_adr_accounting_coa_id
130543          , x_value_type_code          => l_adr_value_type_code
130544          , p_side                     => 'NA'
130545    );
130546 
130547    xla_ae_lines_pkg.set_ccid(
130548     p_code_combination_id          => l_ccid
130549   , p_value_type_code              => l_adr_value_type_code
130550   , p_transaction_coa_id           => l_adr_transaction_coa_id
130551   , p_accounting_coa_id            => l_adr_accounting_coa_id
130552   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
130553   , p_adr_type_code                => 'S'
130554   , p_component_type               => l_component_type
130555   , p_component_code               => l_component_code
130556   , p_component_type_code          => l_component_type_code
130557   , p_component_appl_id            => l_component_appl_id
130558   , p_amb_context_code             => l_amb_context_code
130559   , p_side                         => 'NA'
130560   );
130561 
130562 
130563    l_segment := AcctDerRule_8(
130564            p_application_id           => p_application_id
130565          , p_ae_header_id             => l_ae_header_id 
130566 , p_source_15 => p_source_15
130567 , p_source_15_meaning => p_source_15_meaning
130568 , p_source_20 => p_source_20
130569 , p_source_21 => p_source_21
130570 , p_source_22 => p_source_22
130571 , p_source_22_meaning => p_source_22_meaning
130572 , p_source_23 => p_source_23
130573          , x_transaction_coa_id       => l_adr_transaction_coa_id
130574          , x_accounting_coa_id        => l_adr_accounting_coa_id
130575          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130576          , x_flex_value_set_id        => l_adr_flex_value_set_id
130577          , x_value_type_code          => l_adr_value_type_code
130578          , x_value_combination_id     => l_adr_value_combination_id
130579          , x_value_segment_code       => l_adr_value_segment_code
130580          , p_side                     => 'NA'
130581          , p_override_seg_flag        => 'Y'
130582    );
130583 
130584    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130585 
130586       xla_ae_lines_pkg.set_segment(
130587           p_to_segment_code         => 'GL_ACCOUNT'
130588         , p_segment_value           => l_segment
130589         , p_from_segment_code       => l_adr_value_segment_code
130590         , p_from_combination_id     => l_adr_value_combination_id
130591         , p_value_type_code         => l_adr_value_type_code
130592         , p_transaction_coa_id      => l_adr_transaction_coa_id
130593         , p_accounting_coa_id       => l_adr_accounting_coa_id
130594         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130595         , p_flex_value_set_id       => l_adr_flex_value_set_id
130596         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
130597         , p_adr_type_code           => 'S'
130598         , p_component_type          => l_component_type
130599         , p_component_code          => l_component_code
130600         , p_component_type_code     => l_component_type_code
130601         , p_component_appl_id       => l_component_appl_id
130602         , p_amb_context_code        => l_amb_context_code
130603         , p_entity_code             => 'AP_INVOICES'
130604         , p_event_class_code        => 'DEBIT MEMOS'
130605         , p_side                    => 'NA'
130606         );
130607 
130608   END IF;
130609 
130610    l_segment := AcctDerRule_23(
130611            p_application_id           => p_application_id
130612          , p_ae_header_id             => l_ae_header_id 
130613 , p_source_15 => p_source_15
130614 , p_source_15_meaning => p_source_15_meaning
130615 , p_source_22 => p_source_22
130616 , p_source_22_meaning => p_source_22_meaning
130617 , p_source_30 => p_source_30
130618          , x_transaction_coa_id       => l_adr_transaction_coa_id
130619          , x_accounting_coa_id        => l_adr_accounting_coa_id
130620          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130621          , x_flex_value_set_id        => l_adr_flex_value_set_id
130625          , p_side                     => 'NA'
130622          , x_value_type_code          => l_adr_value_type_code
130623          , x_value_combination_id     => l_adr_value_combination_id
130624          , x_value_segment_code       => l_adr_value_segment_code
130626          , p_override_seg_flag        => 'Y'
130627    );
130628 
130629    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130630 
130631       xla_ae_lines_pkg.set_segment(
130632           p_to_segment_code         => 'GL_BALANCING'
130633         , p_segment_value           => l_segment
130634         , p_from_segment_code       => l_adr_value_segment_code
130635         , p_from_combination_id     => l_adr_value_combination_id
130636         , p_value_type_code         => l_adr_value_type_code
130637         , p_transaction_coa_id      => l_adr_transaction_coa_id
130638         , p_accounting_coa_id       => l_adr_accounting_coa_id
130639         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130640         , p_flex_value_set_id       => l_adr_flex_value_set_id
130641         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
130642         , p_adr_type_code           => 'S'
130643         , p_component_type          => l_component_type
130644         , p_component_code          => l_component_code
130645         , p_component_type_code     => l_component_type_code
130646         , p_component_appl_id       => l_component_appl_id
130647         , p_amb_context_code        => l_amb_context_code
130648         , p_entity_code             => 'AP_INVOICES'
130649         , p_event_class_code        => 'DEBIT MEMOS'
130650         , p_side                    => 'NA'
130651         );
130652 
130653   END IF;
130654 
130655    --
130656    --
130657    END IF;
130658    --
130659    -- Bug 4922099
130660    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
130661           (NVL(l_enc_upg_option, 'N') = 'O')
130662         ) AND
130663         (l_bflow_method_code = 'PRIOR_ENTRY')
130664       )
130665    THEN
130666       IF
130667       --
130668       1 = 2
130669       --
130670       THEN
130671       xla_accounting_err_pkg.build_message
130672                                     (p_appli_s_name            => 'XLA'
130673                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130674                                     ,p_token_1                 => 'LINE_NUMBER'
130675                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
130676                                     ,p_token_2                 => 'LINE_TYPE_NAME'
130677                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
130678                                                                              l_component_type
130679                                                                             ,l_component_code
130680                                                                             ,l_component_type_code
130681                                                                             ,l_component_appl_id
130682                                                                             ,l_amb_context_code
130683                                                                             ,l_entity_code
130684                                                                             ,l_event_class_code
130685                                                                            )
130686                                     ,p_token_3                 => 'OWNER'
130687                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
130688                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
130689                                                                           ,p_lookup_code    => l_component_type_code
130690                                                                          )
130691                                     ,p_token_4                 => 'PRODUCT_NAME'
130692                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
130693                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
130694                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
130695                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
130696                                     ,p_ae_header_id            =>  NULL
130697                                        );
130698 
130699         IF (C_LEVEL_ERROR>= g_log_level) THEN
130700                  trace
130701                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130702                       ,p_level    => C_LEVEL_ERROR
130703                       ,p_module   => l_log_module);
130704         END IF;
130705       END IF;
130706    END IF;
130707    --
130708    --
130709    ------------------------------------------------------------------------------------------------
130710    -- 4219869 Business Flow
130711    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
130712    -- Prior Entry.  Currently, the following code is always generated.
130713    ------------------------------------------------------------------------------------------------
130714    XLA_AE_LINES_PKG.ValidateCurrentLine;
130715 
130716    ------------------------------------------------------------------------------------
130717    -- 4219869 Business Flow
130718    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
130722    ----------------------------------------------------------------------------------
130719    ------------------------------------------------------------------------------------
130720    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130721 
130723    -- 4219869 Business Flow
130724    -- Update journal entry status -- Need to generate this within IF <condition>
130725    ----------------------------------------------------------------------------------
130726    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130727          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
130728          ,p_balance_type_code => l_balance_type_code
130729          );
130730 
130731    -------------------------------------------------------------------------------------------
130732    -- 4262811 - Generate the Accrual Reversal lines
130733    -------------------------------------------------------------------------------------------
130734    BEGIN
130735       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
130736                               (g_array_event(p_event_id).array_value_num('header_index'));
130737       IF l_acc_rev_flag IS NULL THEN
130738          l_acc_rev_flag := 'N';
130739       END IF;
130740    EXCEPTION
130741       WHEN OTHERS THEN
130742          l_acc_rev_flag := 'N';
130743    END;
130744    --
130745    IF (l_acc_rev_flag = 'Y') THEN
130746 
130747        -- 4645092  ------------------------------------------------------------------------------
130748        -- To allow MPA report to determine if it should generate report process
130749        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
130750        ------------------------------------------------------------------------------------------
130751 
130752        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130753        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130754    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130755    -- call ADRs
130756    -- Bug 4922099
130757    --
130758    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130759         (NVL(l_actual_upg_option, 'N') = 'O') OR
130760         (NVL(l_enc_upg_option, 'N') = 'O')
130761       )
130762    THEN
130763    NULL;
130764    --
130765    --
130766    
130767   l_ccid := AcctDerRule_30(
130768            p_application_id           => p_application_id
130769          , p_ae_header_id             => l_ae_header_id 
130770 , p_source_15 => p_source_15
130771 , p_source_15_meaning => p_source_15_meaning
130772 , p_source_20 => p_source_20
130773 , p_source_21 => p_source_21
130774 , p_source_22 => p_source_22
130775 , p_source_22_meaning => p_source_22_meaning
130776 , p_source_23 => p_source_23
130777 , p_source_30 => p_source_30
130778 , p_source_47 => p_source_47
130779 , p_source_47_meaning => p_source_47_meaning
130780          , x_transaction_coa_id       => l_adr_transaction_coa_id
130781          , x_accounting_coa_id        => l_adr_accounting_coa_id
130782          , x_value_type_code          => l_adr_value_type_code
130783          , p_side                     => 'NA'
130784    );
130785 
130786    xla_ae_lines_pkg.set_ccid(
130787     p_code_combination_id          => l_ccid
130788   , p_value_type_code              => l_adr_value_type_code
130789   , p_transaction_coa_id           => l_adr_transaction_coa_id
130790   , p_accounting_coa_id            => l_adr_accounting_coa_id
130791   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
130792   , p_adr_type_code                => 'S'
130793   , p_component_type               => l_component_type
130794   , p_component_code               => l_component_code
130795   , p_component_type_code          => l_component_type_code
130796   , p_component_appl_id            => l_component_appl_id
130797   , p_amb_context_code             => l_amb_context_code
130798   , p_side                         => 'NA'
130799   );
130800 
130801 
130802    l_segment := AcctDerRule_8(
130803            p_application_id           => p_application_id
130804          , p_ae_header_id             => l_ae_header_id 
130805 , p_source_15 => p_source_15
130806 , p_source_15_meaning => p_source_15_meaning
130807 , p_source_20 => p_source_20
130808 , p_source_21 => p_source_21
130809 , p_source_22 => p_source_22
130810 , p_source_22_meaning => p_source_22_meaning
130811 , p_source_23 => p_source_23
130812          , x_transaction_coa_id       => l_adr_transaction_coa_id
130813          , x_accounting_coa_id        => l_adr_accounting_coa_id
130814          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130815          , x_flex_value_set_id        => l_adr_flex_value_set_id
130816          , x_value_type_code          => l_adr_value_type_code
130817          , x_value_combination_id     => l_adr_value_combination_id
130818          , x_value_segment_code       => l_adr_value_segment_code
130819          , p_side                     => 'NA'
130820          , p_override_seg_flag        => 'Y'
130821    );
130822 
130823    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130824 
130825       xla_ae_lines_pkg.set_segment(
130826           p_to_segment_code         => 'GL_ACCOUNT'
130827         , p_segment_value           => l_segment
130828         , p_from_segment_code       => l_adr_value_segment_code
130829         , p_from_combination_id     => l_adr_value_combination_id
130830         , p_value_type_code         => l_adr_value_type_code
130831         , p_transaction_coa_id      => l_adr_transaction_coa_id
130832         , p_accounting_coa_id       => l_adr_accounting_coa_id
130833         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130837         , p_component_type          => l_component_type
130834         , p_flex_value_set_id       => l_adr_flex_value_set_id
130835         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
130836         , p_adr_type_code           => 'S'
130838         , p_component_code          => l_component_code
130839         , p_component_type_code     => l_component_type_code
130840         , p_component_appl_id       => l_component_appl_id
130841         , p_amb_context_code        => l_amb_context_code
130842         , p_entity_code             => 'AP_INVOICES'
130843         , p_event_class_code        => 'DEBIT MEMOS'
130844         , p_side                    => 'NA'
130845         );
130846 
130847   END IF;
130848 
130849    l_segment := AcctDerRule_23(
130850            p_application_id           => p_application_id
130851          , p_ae_header_id             => l_ae_header_id 
130852 , p_source_15 => p_source_15
130853 , p_source_15_meaning => p_source_15_meaning
130854 , p_source_22 => p_source_22
130855 , p_source_22_meaning => p_source_22_meaning
130856 , p_source_30 => p_source_30
130857          , x_transaction_coa_id       => l_adr_transaction_coa_id
130858          , x_accounting_coa_id        => l_adr_accounting_coa_id
130859          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130860          , x_flex_value_set_id        => l_adr_flex_value_set_id
130861          , x_value_type_code          => l_adr_value_type_code
130862          , x_value_combination_id     => l_adr_value_combination_id
130863          , x_value_segment_code       => l_adr_value_segment_code
130864          , p_side                     => 'NA'
130865          , p_override_seg_flag        => 'Y'
130866    );
130867 
130868    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130869 
130870       xla_ae_lines_pkg.set_segment(
130871           p_to_segment_code         => 'GL_BALANCING'
130872         , p_segment_value           => l_segment
130873         , p_from_segment_code       => l_adr_value_segment_code
130874         , p_from_combination_id     => l_adr_value_combination_id
130875         , p_value_type_code         => l_adr_value_type_code
130876         , p_transaction_coa_id      => l_adr_transaction_coa_id
130877         , p_accounting_coa_id       => l_adr_accounting_coa_id
130878         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130879         , p_flex_value_set_id       => l_adr_flex_value_set_id
130880         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
130881         , p_adr_type_code           => 'S'
130882         , p_component_type          => l_component_type
130883         , p_component_code          => l_component_code
130884         , p_component_type_code     => l_component_type_code
130885         , p_component_appl_id       => l_component_appl_id
130886         , p_amb_context_code        => l_amb_context_code
130887         , p_entity_code             => 'AP_INVOICES'
130888         , p_event_class_code        => 'DEBIT MEMOS'
130889         , p_side                    => 'NA'
130890         );
130891 
130892   END IF;
130893 
130894    --
130895    --
130896    END IF;
130897 
130898        --
130899        -- Update the line information that should be overwritten
130900        --
130901        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
130902                                          p_header_num   => 1);
130903        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
130904 
130905        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
130906 
130907        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
130908           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
130909        END IF;
130910 
130911       --
130912       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
130913       --
130914       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
130915           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
130916       ELSE
130917           ---------------------------------------------------------------------------------------------------
130918           -- 4262811a Switch Sign
130919           ---------------------------------------------------------------------------------------------------
130920           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
130921           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130922                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130923           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130924                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130925           -- 5132302
130926           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130927                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130928 
130929       END IF;
130930 
130931       -- 4955764
130932       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130933       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130934 
130935 
130936       XLA_AE_LINES_PKG.ValidateCurrentLine;
130937       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130938 
130942 
130939       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130940                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130941                ,p_balance_type_code => l_balance_type_code);
130943    END IF;
130944 
130945    -----------------------------------------------------------------------------------------
130946    -- 4262811 Multiperiod Accounting
130947    -----------------------------------------------------------------------------------------
130948      -- No MPA option is assigned.
130949 
130950 
130951 END IF;
130952 END IF;
130953 --
130954 
130955 --
130956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130957    trace
130958       (p_msg      => 'END of AcctLineType_209'
130959       ,p_level    => C_LEVEL_PROCEDURE
130960       ,p_module   => l_log_module);
130961 END IF;
130962 --
130963 EXCEPTION
130964   WHEN xla_exceptions_pkg.application_exception THEN
130965       RAISE;
130966   WHEN OTHERS THEN
130967        xla_exceptions_pkg.raise_message
130968            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_209');
130969 END AcctLineType_209;
130970 --
130971 
130972 ---------------------------------------
130973 --
130974 -- PRIVATE FUNCTION
130975 --         AcctLineType_210
130976 --
130977 ---------------------------------------
130978 PROCEDURE AcctLineType_210 (
130979   p_application_id        IN NUMBER
130980  ,p_event_id              IN NUMBER
130981  ,p_calculate_acctd_flag  IN VARCHAR2
130982  ,p_calculate_g_l_flag    IN VARCHAR2
130983  ,p_actual_flag           IN OUT VARCHAR2
130984  ,p_balance_type_code     OUT VARCHAR2
130985  ,p_gain_or_loss_ref      OUT VARCHAR2
130986  
130987 --Invoice Distribution Description
130988  , p_source_1            IN VARCHAR2
130989 --Automatic Offsets Value
130990  , p_source_15            IN VARCHAR2
130991  , p_source_15_meaning    IN VARCHAR2
130992 --Purchase Order Rate Variance Gain Account
130993  , p_source_20            IN NUMBER
130994 --Invoice Distribution Ledger Amount
130995  , p_source_21            IN NUMBER
130996 --Destination Type of the PO Distribution
130997  , p_source_22            IN VARCHAR2
130998  , p_source_22_meaning    IN VARCHAR2
130999 --Purchase Order Rate Variance Loss Account
131000  , p_source_23            IN NUMBER
131001 --Invoice Distribution Account
131002  , p_source_30            IN NUMBER
131003 --Invoice Distribution Type
131004  , p_source_33            IN VARCHAR2
131005  , p_source_33_meaning    IN VARCHAR2
131006 --Automatic Offsets Flag
131007  , p_source_47            IN VARCHAR2
131008  , p_source_47_meaning    IN VARCHAR2
131009 --Accounting Reversal Indicator
131010  , p_source_52            IN VARCHAR2
131011 --Distribution Link Type
131012  , p_source_54            IN VARCHAR2
131013 --Allocation to Main Distribution Identifier
131014  , p_source_56            IN NUMBER
131015 --Invoice Identifier
131016  , p_source_57            IN NUMBER
131017 --Invoice Distribution Identifier
131018  , p_source_63            IN NUMBER
131019 --Payables Encumbrance Upgrade Credit Account
131020  , p_source_64            IN NUMBER
131021 --Payables Encumbrance Upgrade Credit Amount
131022  , p_source_65            IN NUMBER
131023 --Invoice Currency Code
131024  , p_source_66            IN VARCHAR2
131025 --Payables Encumbrance Upgrade Credit Base Amount
131026  , p_source_67            IN NUMBER
131027 --Payables Encumbrance Upgrade Debit Account
131028  , p_source_68            IN NUMBER
131029 --Payables Encumbrance Upgrade Debit Amount
131030  , p_source_69            IN NUMBER
131031 --Payables Encumbrance Upgrade Debit Base Amount
131032  , p_source_70            IN NUMBER
131033 --Payables Encumbrance Upgrade Option
131034  , p_source_71            IN VARCHAR2
131035 --Invoice Distribution Amount
131036  , p_source_72            IN NUMBER
131037 --Deferred Accounting End Date
131038  , p_source_76            IN DATE
131039 --Deferred Accounting Option
131040  , p_source_77            IN VARCHAR2
131041 --Deferred Accounting Start Date
131042  , p_source_78            IN DATE
131043 --Override Accounted Amount Indicator
131044  , p_source_79            IN VARCHAR2
131045  , p_source_79_meaning    IN VARCHAR2
131046 --Invoice Supplier Identifier
131047  , p_source_80            IN NUMBER
131048 --Invoice Supplier Site Identifier
131049  , p_source_81            IN NUMBER
131050 --Third Party Type
131051  , p_source_82            IN VARCHAR2
131052 --Parent Reversal Identifier
131053  , p_source_83            IN NUMBER
131054 --Invoice Distribution Statistical Amount
131055  , p_source_84            IN NUMBER
131056 --Invoice Distribution Tax Line Identifier
131057  , p_source_85            IN NUMBER
131058 --Invoice Distribution Tax Distribution Identifier from Tax
131059  , p_source_86            IN NUMBER
131060 --Invoice Distribution Summary Tax Line Identifier
131061  , p_source_87            IN NUMBER
131062 --Payables Upgrade Credit Encumbrance Type Identifier
131063  , p_source_88            IN NUMBER
131064 --Payables Upgrade Debit Encumbrance Type Identifier
131065  , p_source_89            IN NUMBER
131066 --Business Flow Accounts Payable Application Identifier
131067  , p_source_90            IN NUMBER
131068 --Business Flow Invoice Distribution Type
131069  , p_source_91            IN VARCHAR2
131070 --Business Flow Invoice Entity Code
131071  , p_source_92            IN VARCHAR2
131072 --Business Flow Invoice Distribution Identifier
131073  , p_source_93            IN NUMBER
131077  , p_source_95            IN VARCHAR2
131074 --Business Flow Invoice Identifier
131075  , p_source_94            IN NUMBER
131076 --Accrue on Receipt Option
131078  , p_source_95_meaning    IN VARCHAR2
131079 --Invoice Exchange Date
131080  , p_source_136            IN DATE
131081 --Invoice Exchange Rate
131082  , p_source_137            IN NUMBER
131083 --Invoice Exchange Rate Type
131084  , p_source_138            IN VARCHAR2
131085 )
131086 IS
131087 
131088 l_component_type              VARCHAR2(80);
131089 l_component_code              VARCHAR2(30);
131090 l_component_type_code         VARCHAR2(1);
131091 l_component_appl_id           INTEGER;
131092 l_amb_context_code            VARCHAR2(30);
131093 l_entity_code                 VARCHAR2(30);
131094 l_event_class_code            VARCHAR2(30);
131095 l_ae_header_id                NUMBER;
131096 l_event_type_code             VARCHAR2(30);
131097 l_line_definition_code        VARCHAR2(30);
131098 l_line_definition_owner_code  VARCHAR2(1);
131099 --
131100 -- adr variables
131101 l_segment                     VARCHAR2(30);
131102 l_ccid                        NUMBER;
131103 l_adr_transaction_coa_id      NUMBER;
131104 l_adr_accounting_coa_id       NUMBER;
131105 l_adr_flexfield_segment_code  VARCHAR2(30);
131106 l_adr_flex_value_set_id       NUMBER;
131107 l_adr_value_type_code         VARCHAR2(30);
131108 l_adr_value_combination_id    NUMBER;
131109 l_adr_value_segment_code      VARCHAR2(30);
131110 
131111 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
131112 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
131113 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
131114 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
131115 
131116 -- 4262811 Variables ------------------------------------------------------------------------------------------
131117 l_entered_amt_idx             NUMBER;
131118 l_accted_amt_idx              NUMBER;
131119 l_acc_rev_flag                VARCHAR2(1);
131120 l_accrual_line_num            NUMBER;
131121 l_tmp_amt                     NUMBER;
131122 l_acc_rev_natural_side_code   VARCHAR2(1);
131123 
131124 l_num_entries                 NUMBER;
131125 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
131126 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
131127 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
131128 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
131129 l_recog_line_1                NUMBER;
131130 l_recog_line_2                NUMBER;
131131 
131132 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
131133 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
131134 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
131135 
131136 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
131137 
131138 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
131139 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
131140 
131141 ---------------------------------------------------------------------------------------------------------------
131142 
131143 
131144 --
131145 -- bulk performance
131146 --
131147 l_balance_type_code           VARCHAR2(1);
131148 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
131149 l_log_module                  VARCHAR2(240);
131150 
131151 --
131152 -- Upgrade strategy
131153 --
131154 l_actual_upg_option           VARCHAR2(1);
131155 l_enc_upg_option           VARCHAR2(1);
131156 
131157 --
131158 BEGIN
131159 --
131160 IF g_log_enabled THEN
131161       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_210';
131162 END IF;
131163 --
131164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131165 
131166       trace
131167          (p_msg      => 'BEGIN of AcctLineType_210'
131168          ,p_level    => C_LEVEL_PROCEDURE
131169          ,p_module   => l_log_module);
131170 
131171 END IF;
131172 --
131173 l_component_type             := 'AMB_JLT';
131174 l_component_code             := 'AP_TAX_EX_RATE_VAR_INV';
131175 l_component_type_code        := 'S';
131176 l_component_appl_id          :=  200;
131177 l_amb_context_code           := 'DEFAULT';
131178 l_entity_code                := 'AP_INVOICES';
131179 l_event_class_code           := 'INVOICES';
131180 l_event_type_code            := 'INVOICES_ALL';
131181 l_line_definition_owner_code := 'S';
131182 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
131183 --
131184 l_balance_type_code          := 'A';
131185 l_segment                     := NULL;
131186 l_ccid                        := NULL;
131187 l_adr_transaction_coa_id      := NULL;
131188 l_adr_accounting_coa_id       := NULL;
131189 l_adr_flexfield_segment_code  := NULL;
131190 l_adr_flex_value_set_id       := NULL;
131191 l_adr_value_type_code         := NULL;
131192 l_adr_value_combination_id    := NULL;
131193 l_adr_value_segment_code      := NULL;
131194 
131195 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
131196 l_bflow_class_code           := '';    -- 4219869 Business Flow
131197 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
131198 l_budgetary_control_flag     := 'N';
131199 
131200 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
131201 l_bflow_applied_to_amt       := NULL; -- 5132302
131202 l_entered_amt_idx            := NULL;          -- 4262811
131203 l_accted_amt_idx             := NULL;          -- 4262811
131207 --
131204 l_acc_rev_flag               := NULL;          -- 4262811
131205 l_accrual_line_num           := NULL;          -- 4262811
131206 l_tmp_amt                    := NULL;          -- 4262811
131208 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
131209             (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
131210                return;
131211   END IF;
131212   
131213 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
131214     l_balance_type_code <> 'B' THEN
131215 IF NVL(p_source_33,'
131216 ') =  'TERV' AND 
131217 NVL(p_source_95,'
131218 ') =  'Y'
131219  THEN 
131220 
131221    --
131222    XLA_AE_LINES_PKG.SetNewLine;
131223 
131224    p_balance_type_code          := l_balance_type_code;
131225    -- set the flag so later we will know whether the gain loss line needs to be created
131226    
131227    IF(l_balance_type_code = 'A' ) THEN
131228      p_actual_flag :='G';
131229    END IF;
131230 
131231    --
131232    -- bulk performance
131233    --
131234    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
131235                                       p_header_num   => 0); -- 4262811
131236    --
131237    -- set accounting line options
131238    --
131239    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
131240            p_natural_side_code          => 'D'
131241          , p_gain_or_loss_flag          => 'Y'
131242          , p_gl_transfer_mode_code      => 'S'
131243          , p_acct_entry_type_code       => 'A'
131244          , p_switch_side_flag           => 'Y'
131245          , p_merge_duplicate_code       => 'A'
131246          );
131247    --
131248    l_acc_rev_natural_side_code := 'C';  -- 4262811
131249    -- 
131250    --
131251    -- set accounting line type info
131252    --
131253    xla_ae_lines_pkg.SetAcctLineType
131254       (p_component_type             => l_component_type
131255       ,p_event_type_code            => l_event_type_code
131256       ,p_line_definition_owner_code => l_line_definition_owner_code
131257       ,p_line_definition_code       => l_line_definition_code
131258       ,p_accounting_line_code       => l_component_code
131259       ,p_accounting_line_type_code  => l_component_type_code
131260       ,p_accounting_line_appl_id    => l_component_appl_id
131261       ,p_amb_context_code           => l_amb_context_code
131262       ,p_entity_code                => l_entity_code
131263       ,p_event_class_code           => l_event_class_code);
131264    --
131265    -- set accounting class
131266    --
131267    xla_ae_lines_pkg.SetAcctClass(
131268            p_accounting_class_code  => 'TERV'
131269          , p_ae_header_id           => l_ae_header_id
131270          );
131271 
131272    --
131273    -- set rounding class
131274    --
131275    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
131276                       'TERV';
131277 
131278    --
131279    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
131280    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
131281    --
131282    -- bulk performance
131283    --
131284    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
131285 
131286    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
131287       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
131288 
131289    -- 4955764
131290    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131291       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
131292 
131293    -- 4458381 Public Sector Enh
131294    
131295    --
131296    -- set accounting attributes for the line type
131297    --
131298    l_entered_amt_idx := 24;
131299    l_accted_amt_idx  := 29;
131300    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
131301    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
131302    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
131303    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
131304    l_rec_acct_attrs.array_num_value(2)  := 
131305 xla_ae_sources_pkg.GetSystemSourceNum(
131306    p_source_code           => 'XLA_EVENT_APPL_ID'
131307  , p_source_type_code      => 'Y'
131308  , p_source_application_id =>  602
131309 );
131310    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
131311    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
131312    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
131313    l_rec_acct_attrs.array_char_value(4)  := 
131314 xla_ae_sources_pkg.GetSystemSourceChar(
131315    p_source_code           => 'XLA_ENTITY_CODE'
131316  , p_source_type_code      => 'Y'
131317  , p_source_application_id =>  602
131318 );
131319    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
131320    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
131321    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
131322    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
131323    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
131327    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
131324    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
131325    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
131326    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
131328    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
131329    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
131330    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
131331    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
131332    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
131333    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
131334    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
131335    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
131336    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
131337    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
131338    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
131339    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
131340    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
131341    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
131342    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
131343    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
131344    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
131345    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
131346    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
131347    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
131348    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
131349    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
131350    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
131351    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
131352    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
131353    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
131354    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
131355    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
131356    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
131357    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
131358    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
131359    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
131360    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
131361    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
131362    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
131363    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
131364    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
131365    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
131366    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
131367    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
131368    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
131369    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
131370    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
131371    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
131372    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
131373    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
131374    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
131375    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
131376    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
131377    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
131378    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
131379    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
131380    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
131381    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
131382    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
131383    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
131384    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
131385    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
131386    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
131387    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
131388    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
131389    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
131390    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
131391    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
131392    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
131393    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
131394    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
131395    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
131396    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
131397    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
131398    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
131399 
131400    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
131401    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
131402 
131403    ---------------------------------------------------------------------------------------------------------------
131404    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
131405    ---------------------------------------------------------------------------------------------------------------
131409    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131406    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
131407 
131408    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131410 
131411    IF xla_accounting_cache_pkg.GetValueChar
131412          (p_source_code         => 'LEDGER_CATEGORY_CODE'
131413          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
131414    AND l_bflow_method_code = 'PRIOR_ENTRY'
131415 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
131416    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
131417          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
131418        )
131419    THEN
131420          xla_ae_lines_pkg.BflowUpgEntry
131421            (p_business_method_code    => l_bflow_method_code
131422            ,p_business_class_code     => l_bflow_class_code
131423            ,p_balance_type            => l_balance_type_code);
131424    ELSE
131425       NULL;
131426 -- No business flow processing for business flow method of NONE.
131427    END IF;
131428 
131429    --
131430    -- call analytical criteria
131431    --
131432    
131433    --
131434    -- call description
131435    --
131436    
131437 xla_ae_lines_pkg.SetLineDescription(
131438    p_ae_header_id => l_ae_header_id
131439   ,p_description  => Description_1 (
131440      p_application_id         => p_application_id
131441    , p_ae_header_id           => l_ae_header_id 
131442 , p_source_1 => p_source_1
131443    )
131444 );
131445 
131446 
131447    --
131448    -- call ADRs
131449    -- Bug 4922099
131450    --
131451    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131452         (NVL(l_actual_upg_option, 'N') = 'O') OR
131453         (NVL(l_enc_upg_option, 'N') = 'O')
131454       )
131455    THEN
131456    NULL;
131457    --
131458    --
131459    
131460   l_ccid := AcctDerRule_30(
131461            p_application_id           => p_application_id
131462          , p_ae_header_id             => l_ae_header_id 
131463 , p_source_15 => p_source_15
131464 , p_source_15_meaning => p_source_15_meaning
131465 , p_source_20 => p_source_20
131466 , p_source_21 => p_source_21
131467 , p_source_22 => p_source_22
131468 , p_source_22_meaning => p_source_22_meaning
131469 , p_source_23 => p_source_23
131470 , p_source_30 => p_source_30
131471 , p_source_47 => p_source_47
131472 , p_source_47_meaning => p_source_47_meaning
131473          , x_transaction_coa_id       => l_adr_transaction_coa_id
131474          , x_accounting_coa_id        => l_adr_accounting_coa_id
131475          , x_value_type_code          => l_adr_value_type_code
131476          , p_side                     => 'NA'
131477    );
131478 
131479    xla_ae_lines_pkg.set_ccid(
131480     p_code_combination_id          => l_ccid
131481   , p_value_type_code              => l_adr_value_type_code
131482   , p_transaction_coa_id           => l_adr_transaction_coa_id
131483   , p_accounting_coa_id            => l_adr_accounting_coa_id
131484   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131485   , p_adr_type_code                => 'S'
131486   , p_component_type               => l_component_type
131487   , p_component_code               => l_component_code
131488   , p_component_type_code          => l_component_type_code
131489   , p_component_appl_id            => l_component_appl_id
131490   , p_amb_context_code             => l_amb_context_code
131491   , p_side                         => 'NA'
131492   );
131493 
131494 
131495    l_segment := AcctDerRule_8(
131496            p_application_id           => p_application_id
131497          , p_ae_header_id             => l_ae_header_id 
131498 , p_source_15 => p_source_15
131499 , p_source_15_meaning => p_source_15_meaning
131500 , p_source_20 => p_source_20
131501 , p_source_21 => p_source_21
131502 , p_source_22 => p_source_22
131503 , p_source_22_meaning => p_source_22_meaning
131504 , p_source_23 => p_source_23
131505          , x_transaction_coa_id       => l_adr_transaction_coa_id
131506          , x_accounting_coa_id        => l_adr_accounting_coa_id
131507          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131508          , x_flex_value_set_id        => l_adr_flex_value_set_id
131509          , x_value_type_code          => l_adr_value_type_code
131510          , x_value_combination_id     => l_adr_value_combination_id
131511          , x_value_segment_code       => l_adr_value_segment_code
131512          , p_side                     => 'NA'
131513          , p_override_seg_flag        => 'Y'
131514    );
131515 
131516    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131517 
131518       xla_ae_lines_pkg.set_segment(
131519           p_to_segment_code         => 'GL_ACCOUNT'
131520         , p_segment_value           => l_segment
131521         , p_from_segment_code       => l_adr_value_segment_code
131522         , p_from_combination_id     => l_adr_value_combination_id
131523         , p_value_type_code         => l_adr_value_type_code
131524         , p_transaction_coa_id      => l_adr_transaction_coa_id
131525         , p_accounting_coa_id       => l_adr_accounting_coa_id
131526         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131527         , p_flex_value_set_id       => l_adr_flex_value_set_id
131528         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131529         , p_adr_type_code           => 'S'
131533         , p_component_appl_id       => l_component_appl_id
131530         , p_component_type          => l_component_type
131531         , p_component_code          => l_component_code
131532         , p_component_type_code     => l_component_type_code
131534         , p_amb_context_code        => l_amb_context_code
131535         , p_entity_code             => 'AP_INVOICES'
131536         , p_event_class_code        => 'INVOICES'
131537         , p_side                    => 'NA'
131538         );
131539 
131540   END IF;
131541 
131542    l_segment := AcctDerRule_23(
131543            p_application_id           => p_application_id
131544          , p_ae_header_id             => l_ae_header_id 
131545 , p_source_15 => p_source_15
131546 , p_source_15_meaning => p_source_15_meaning
131547 , p_source_22 => p_source_22
131548 , p_source_22_meaning => p_source_22_meaning
131549 , p_source_30 => p_source_30
131550          , x_transaction_coa_id       => l_adr_transaction_coa_id
131551          , x_accounting_coa_id        => l_adr_accounting_coa_id
131552          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131553          , x_flex_value_set_id        => l_adr_flex_value_set_id
131554          , x_value_type_code          => l_adr_value_type_code
131555          , x_value_combination_id     => l_adr_value_combination_id
131556          , x_value_segment_code       => l_adr_value_segment_code
131557          , p_side                     => 'NA'
131558          , p_override_seg_flag        => 'Y'
131559    );
131560 
131561    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131562 
131563       xla_ae_lines_pkg.set_segment(
131564           p_to_segment_code         => 'GL_BALANCING'
131565         , p_segment_value           => l_segment
131566         , p_from_segment_code       => l_adr_value_segment_code
131567         , p_from_combination_id     => l_adr_value_combination_id
131568         , p_value_type_code         => l_adr_value_type_code
131569         , p_transaction_coa_id      => l_adr_transaction_coa_id
131570         , p_accounting_coa_id       => l_adr_accounting_coa_id
131571         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131572         , p_flex_value_set_id       => l_adr_flex_value_set_id
131573         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131574         , p_adr_type_code           => 'S'
131575         , p_component_type          => l_component_type
131576         , p_component_code          => l_component_code
131577         , p_component_type_code     => l_component_type_code
131578         , p_component_appl_id       => l_component_appl_id
131579         , p_amb_context_code        => l_amb_context_code
131580         , p_entity_code             => 'AP_INVOICES'
131581         , p_event_class_code        => 'INVOICES'
131582         , p_side                    => 'NA'
131583         );
131584 
131585   END IF;
131586 
131587    --
131588    --
131589    END IF;
131590    --
131591    -- Bug 4922099
131592    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
131593           (NVL(l_enc_upg_option, 'N') = 'O')
131594         ) AND
131595         (l_bflow_method_code = 'PRIOR_ENTRY')
131596       )
131597    THEN
131598       IF
131599       --
131600       1 = 2
131601       --
131602       THEN
131603       xla_accounting_err_pkg.build_message
131604                                     (p_appli_s_name            => 'XLA'
131605                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131606                                     ,p_token_1                 => 'LINE_NUMBER'
131607                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
131608                                     ,p_token_2                 => 'LINE_TYPE_NAME'
131609                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
131610                                                                              l_component_type
131611                                                                             ,l_component_code
131612                                                                             ,l_component_type_code
131613                                                                             ,l_component_appl_id
131614                                                                             ,l_amb_context_code
131615                                                                             ,l_entity_code
131616                                                                             ,l_event_class_code
131617                                                                            )
131618                                     ,p_token_3                 => 'OWNER'
131619                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
131620                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
131621                                                                           ,p_lookup_code    => l_component_type_code
131622                                                                          )
131623                                     ,p_token_4                 => 'PRODUCT_NAME'
131624                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
131625                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
131626                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
131627                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
131628                                     ,p_ae_header_id            =>  NULL
131632                  trace
131629                                        );
131630 
131631         IF (C_LEVEL_ERROR>= g_log_level) THEN
131633                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131634                       ,p_level    => C_LEVEL_ERROR
131635                       ,p_module   => l_log_module);
131636         END IF;
131637       END IF;
131638    END IF;
131639    --
131640    --
131641    ------------------------------------------------------------------------------------------------
131642    -- 4219869 Business Flow
131643    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
131644    -- Prior Entry.  Currently, the following code is always generated.
131645    ------------------------------------------------------------------------------------------------
131646    XLA_AE_LINES_PKG.ValidateCurrentLine;
131647 
131648    ------------------------------------------------------------------------------------
131649    -- 4219869 Business Flow
131650    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
131651    ------------------------------------------------------------------------------------
131652    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131653 
131654    ----------------------------------------------------------------------------------
131655    -- 4219869 Business Flow
131656    -- Update journal entry status -- Need to generate this within IF <condition>
131657    ----------------------------------------------------------------------------------
131658    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131659          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
131660          ,p_balance_type_code => l_balance_type_code
131661          );
131662 
131663    -------------------------------------------------------------------------------------------
131664    -- 4262811 - Generate the Accrual Reversal lines
131665    -------------------------------------------------------------------------------------------
131666    BEGIN
131667       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
131668                               (g_array_event(p_event_id).array_value_num('header_index'));
131669       IF l_acc_rev_flag IS NULL THEN
131670          l_acc_rev_flag := 'N';
131671       END IF;
131672    EXCEPTION
131673       WHEN OTHERS THEN
131674          l_acc_rev_flag := 'N';
131675    END;
131676    --
131677    IF (l_acc_rev_flag = 'Y') THEN
131678 
131679        -- 4645092  ------------------------------------------------------------------------------
131680        -- To allow MPA report to determine if it should generate report process
131681        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
131682        ------------------------------------------------------------------------------------------
131683 
131684        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
131685        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
131686    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
131687    -- call ADRs
131688    -- Bug 4922099
131689    --
131690    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131691         (NVL(l_actual_upg_option, 'N') = 'O') OR
131692         (NVL(l_enc_upg_option, 'N') = 'O')
131693       )
131694    THEN
131695    NULL;
131696    --
131697    --
131698    
131699   l_ccid := AcctDerRule_30(
131700            p_application_id           => p_application_id
131701          , p_ae_header_id             => l_ae_header_id 
131702 , p_source_15 => p_source_15
131703 , p_source_15_meaning => p_source_15_meaning
131704 , p_source_20 => p_source_20
131705 , p_source_21 => p_source_21
131706 , p_source_22 => p_source_22
131707 , p_source_22_meaning => p_source_22_meaning
131708 , p_source_23 => p_source_23
131709 , p_source_30 => p_source_30
131710 , p_source_47 => p_source_47
131711 , p_source_47_meaning => p_source_47_meaning
131712          , x_transaction_coa_id       => l_adr_transaction_coa_id
131713          , x_accounting_coa_id        => l_adr_accounting_coa_id
131714          , x_value_type_code          => l_adr_value_type_code
131715          , p_side                     => 'NA'
131716    );
131717 
131718    xla_ae_lines_pkg.set_ccid(
131719     p_code_combination_id          => l_ccid
131720   , p_value_type_code              => l_adr_value_type_code
131721   , p_transaction_coa_id           => l_adr_transaction_coa_id
131722   , p_accounting_coa_id            => l_adr_accounting_coa_id
131723   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131724   , p_adr_type_code                => 'S'
131725   , p_component_type               => l_component_type
131726   , p_component_code               => l_component_code
131727   , p_component_type_code          => l_component_type_code
131728   , p_component_appl_id            => l_component_appl_id
131729   , p_amb_context_code             => l_amb_context_code
131730   , p_side                         => 'NA'
131731   );
131732 
131733 
131734    l_segment := AcctDerRule_8(
131735            p_application_id           => p_application_id
131736          , p_ae_header_id             => l_ae_header_id 
131737 , p_source_15 => p_source_15
131738 , p_source_15_meaning => p_source_15_meaning
131739 , p_source_20 => p_source_20
131740 , p_source_21 => p_source_21
131741 , p_source_22 => p_source_22
131742 , p_source_22_meaning => p_source_22_meaning
131743 , p_source_23 => p_source_23
131744          , x_transaction_coa_id       => l_adr_transaction_coa_id
131745          , x_accounting_coa_id        => l_adr_accounting_coa_id
131749          , x_value_combination_id     => l_adr_value_combination_id
131746          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131747          , x_flex_value_set_id        => l_adr_flex_value_set_id
131748          , x_value_type_code          => l_adr_value_type_code
131750          , x_value_segment_code       => l_adr_value_segment_code
131751          , p_side                     => 'NA'
131752          , p_override_seg_flag        => 'Y'
131753    );
131754 
131755    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131756 
131757       xla_ae_lines_pkg.set_segment(
131758           p_to_segment_code         => 'GL_ACCOUNT'
131759         , p_segment_value           => l_segment
131760         , p_from_segment_code       => l_adr_value_segment_code
131761         , p_from_combination_id     => l_adr_value_combination_id
131762         , p_value_type_code         => l_adr_value_type_code
131763         , p_transaction_coa_id      => l_adr_transaction_coa_id
131764         , p_accounting_coa_id       => l_adr_accounting_coa_id
131765         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131766         , p_flex_value_set_id       => l_adr_flex_value_set_id
131767         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131768         , p_adr_type_code           => 'S'
131769         , p_component_type          => l_component_type
131770         , p_component_code          => l_component_code
131771         , p_component_type_code     => l_component_type_code
131772         , p_component_appl_id       => l_component_appl_id
131773         , p_amb_context_code        => l_amb_context_code
131774         , p_entity_code             => 'AP_INVOICES'
131775         , p_event_class_code        => 'INVOICES'
131776         , p_side                    => 'NA'
131777         );
131778 
131779   END IF;
131780 
131781    l_segment := AcctDerRule_23(
131782            p_application_id           => p_application_id
131783          , p_ae_header_id             => l_ae_header_id 
131784 , p_source_15 => p_source_15
131785 , p_source_15_meaning => p_source_15_meaning
131786 , p_source_22 => p_source_22
131787 , p_source_22_meaning => p_source_22_meaning
131788 , p_source_30 => p_source_30
131789          , x_transaction_coa_id       => l_adr_transaction_coa_id
131790          , x_accounting_coa_id        => l_adr_accounting_coa_id
131791          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131792          , x_flex_value_set_id        => l_adr_flex_value_set_id
131793          , x_value_type_code          => l_adr_value_type_code
131794          , x_value_combination_id     => l_adr_value_combination_id
131795          , x_value_segment_code       => l_adr_value_segment_code
131796          , p_side                     => 'NA'
131797          , p_override_seg_flag        => 'Y'
131798    );
131799 
131800    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131801 
131802       xla_ae_lines_pkg.set_segment(
131803           p_to_segment_code         => 'GL_BALANCING'
131804         , p_segment_value           => l_segment
131805         , p_from_segment_code       => l_adr_value_segment_code
131806         , p_from_combination_id     => l_adr_value_combination_id
131807         , p_value_type_code         => l_adr_value_type_code
131808         , p_transaction_coa_id      => l_adr_transaction_coa_id
131809         , p_accounting_coa_id       => l_adr_accounting_coa_id
131810         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131811         , p_flex_value_set_id       => l_adr_flex_value_set_id
131812         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131813         , p_adr_type_code           => 'S'
131814         , p_component_type          => l_component_type
131815         , p_component_code          => l_component_code
131816         , p_component_type_code     => l_component_type_code
131817         , p_component_appl_id       => l_component_appl_id
131818         , p_amb_context_code        => l_amb_context_code
131819         , p_entity_code             => 'AP_INVOICES'
131820         , p_event_class_code        => 'INVOICES'
131821         , p_side                    => 'NA'
131822         );
131823 
131824   END IF;
131825 
131826    --
131827    --
131828    END IF;
131829 
131830        --
131831        -- Update the line information that should be overwritten
131832        --
131833        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
131834                                          p_header_num   => 1);
131835        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
131836 
131837        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
131838 
131839        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
131840           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
131841        END IF;
131842 
131843       --
131844       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
131845       --
131846       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
131847           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
131848       ELSE
131849           ---------------------------------------------------------------------------------------------------
131850           -- 4262811a Switch Sign
131851           ---------------------------------------------------------------------------------------------------
131855           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131852           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
131853           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131854                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131856                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131857           -- 5132302
131858           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
131859                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131860 
131861       END IF;
131862 
131863       -- 4955764
131864       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131865       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
131866 
131867 
131868       XLA_AE_LINES_PKG.ValidateCurrentLine;
131869       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131870 
131871       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131872                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
131873                ,p_balance_type_code => l_balance_type_code);
131874 
131875    END IF;
131876 
131877    -----------------------------------------------------------------------------------------
131878    -- 4262811 Multiperiod Accounting
131879    -----------------------------------------------------------------------------------------
131880      -- No MPA option is assigned.
131881 
131882 
131883 END IF;
131884 END IF;
131885 --
131886 
131887 --
131888 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131889    trace
131890       (p_msg      => 'END of AcctLineType_210'
131891       ,p_level    => C_LEVEL_PROCEDURE
131892       ,p_module   => l_log_module);
131893 END IF;
131894 --
131895 EXCEPTION
131896   WHEN xla_exceptions_pkg.application_exception THEN
131897       RAISE;
131898   WHEN OTHERS THEN
131899        xla_exceptions_pkg.raise_message
131900            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_210');
131901 END AcctLineType_210;
131902 --
131903 
131904 ---------------------------------------
131905 --
131906 -- PRIVATE FUNCTION
131907 --         AcctLineType_211
131908 --
131909 ---------------------------------------
131910 PROCEDURE AcctLineType_211 (
131911   p_application_id        IN NUMBER
131912  ,p_event_id              IN NUMBER
131913  ,p_calculate_acctd_flag  IN VARCHAR2
131914  ,p_calculate_g_l_flag    IN VARCHAR2
131915  ,p_actual_flag           IN OUT VARCHAR2
131916  ,p_balance_type_code     OUT VARCHAR2
131917  ,p_gain_or_loss_ref      OUT VARCHAR2
131918  
131919 --Invoice Distribution Description
131920  , p_source_1            IN VARCHAR2
131921 --Automatic Offsets Value
131922  , p_source_15            IN VARCHAR2
131923  , p_source_15_meaning    IN VARCHAR2
131924 --Purchase Order Rate Variance Gain Account
131925  , p_source_20            IN NUMBER
131926 --Invoice Distribution Ledger Amount
131927  , p_source_21            IN NUMBER
131928 --Destination Type of the PO Distribution
131929  , p_source_22            IN VARCHAR2
131930  , p_source_22_meaning    IN VARCHAR2
131931 --Purchase Order Rate Variance Loss Account
131932  , p_source_23            IN NUMBER
131933 --Invoice Distribution Account
131934  , p_source_30            IN NUMBER
131935 --Invoice Distribution Type
131936  , p_source_33            IN VARCHAR2
131937  , p_source_33_meaning    IN VARCHAR2
131938 --Automatic Offsets Flag
131939  , p_source_47            IN VARCHAR2
131940  , p_source_47_meaning    IN VARCHAR2
131941 --Accounting Reversal Indicator
131942  , p_source_52            IN VARCHAR2
131943 --Distribution Link Type
131944  , p_source_54            IN VARCHAR2
131945 --Allocation to Main Distribution Identifier
131946  , p_source_56            IN NUMBER
131947 --Invoice Identifier
131948  , p_source_57            IN NUMBER
131949 --Invoice Distribution Identifier
131950  , p_source_63            IN NUMBER
131951 --Payables Encumbrance Upgrade Credit Account
131952  , p_source_64            IN NUMBER
131953 --Payables Encumbrance Upgrade Credit Amount
131954  , p_source_65            IN NUMBER
131955 --Invoice Currency Code
131956  , p_source_66            IN VARCHAR2
131957 --Payables Encumbrance Upgrade Credit Base Amount
131958  , p_source_67            IN NUMBER
131959 --Payables Encumbrance Upgrade Debit Account
131960  , p_source_68            IN NUMBER
131961 --Payables Encumbrance Upgrade Debit Amount
131962  , p_source_69            IN NUMBER
131963 --Payables Encumbrance Upgrade Debit Base Amount
131964  , p_source_70            IN NUMBER
131965 --Payables Encumbrance Upgrade Option
131966  , p_source_71            IN VARCHAR2
131967 --Invoice Distribution Amount
131968  , p_source_72            IN NUMBER
131969 --Deferred Accounting End Date
131970  , p_source_76            IN DATE
131971 --Deferred Accounting Option
131972  , p_source_77            IN VARCHAR2
131973 --Deferred Accounting Start Date
131974  , p_source_78            IN DATE
131975 --Override Accounted Amount Indicator
131976  , p_source_79            IN VARCHAR2
131977  , p_source_79_meaning    IN VARCHAR2
131978 --Invoice Supplier Identifier
131979  , p_source_80            IN NUMBER
131980 --Invoice Supplier Site Identifier
131984 --Parent Reversal Identifier
131981  , p_source_81            IN NUMBER
131982 --Third Party Type
131983  , p_source_82            IN VARCHAR2
131985  , p_source_83            IN NUMBER
131986 --Invoice Distribution Statistical Amount
131987  , p_source_84            IN NUMBER
131988 --Invoice Distribution Tax Line Identifier
131989  , p_source_85            IN NUMBER
131990 --Invoice Distribution Tax Distribution Identifier from Tax
131991  , p_source_86            IN NUMBER
131992 --Invoice Distribution Summary Tax Line Identifier
131993  , p_source_87            IN NUMBER
131994 --Payables Upgrade Credit Encumbrance Type Identifier
131995  , p_source_88            IN NUMBER
131996 --Payables Upgrade Debit Encumbrance Type Identifier
131997  , p_source_89            IN NUMBER
131998 --Business Flow Accounts Payable Application Identifier
131999  , p_source_90            IN NUMBER
132000 --Business Flow Invoice Distribution Type
132001  , p_source_91            IN VARCHAR2
132002 --Business Flow Invoice Entity Code
132003  , p_source_92            IN VARCHAR2
132004 --Business Flow Invoice Distribution Identifier
132005  , p_source_93            IN NUMBER
132006 --Business Flow Invoice Identifier
132007  , p_source_94            IN NUMBER
132008 --Accrue on Receipt Option
132009  , p_source_95            IN VARCHAR2
132010  , p_source_95_meaning    IN VARCHAR2
132011 --Invoice Exchange Date
132012  , p_source_136            IN DATE
132013 --Invoice Exchange Rate
132014  , p_source_137            IN NUMBER
132015 --Invoice Exchange Rate Type
132016  , p_source_138            IN VARCHAR2
132017 )
132018 IS
132019 
132020 l_component_type              VARCHAR2(80);
132021 l_component_code              VARCHAR2(30);
132022 l_component_type_code         VARCHAR2(1);
132023 l_component_appl_id           INTEGER;
132024 l_amb_context_code            VARCHAR2(30);
132025 l_entity_code                 VARCHAR2(30);
132026 l_event_class_code            VARCHAR2(30);
132027 l_ae_header_id                NUMBER;
132028 l_event_type_code             VARCHAR2(30);
132029 l_line_definition_code        VARCHAR2(30);
132030 l_line_definition_owner_code  VARCHAR2(1);
132031 --
132032 -- adr variables
132033 l_segment                     VARCHAR2(30);
132034 l_ccid                        NUMBER;
132035 l_adr_transaction_coa_id      NUMBER;
132036 l_adr_accounting_coa_id       NUMBER;
132037 l_adr_flexfield_segment_code  VARCHAR2(30);
132038 l_adr_flex_value_set_id       NUMBER;
132039 l_adr_value_type_code         VARCHAR2(30);
132040 l_adr_value_combination_id    NUMBER;
132041 l_adr_value_segment_code      VARCHAR2(30);
132042 
132043 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
132044 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
132045 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
132046 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
132047 
132048 -- 4262811 Variables ------------------------------------------------------------------------------------------
132049 l_entered_amt_idx             NUMBER;
132050 l_accted_amt_idx              NUMBER;
132051 l_acc_rev_flag                VARCHAR2(1);
132052 l_accrual_line_num            NUMBER;
132053 l_tmp_amt                     NUMBER;
132054 l_acc_rev_natural_side_code   VARCHAR2(1);
132055 
132056 l_num_entries                 NUMBER;
132057 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
132058 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
132059 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
132060 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
132061 l_recog_line_1                NUMBER;
132062 l_recog_line_2                NUMBER;
132063 
132064 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
132065 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
132066 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
132067 
132068 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
132069 
132070 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
132071 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
132072 
132073 ---------------------------------------------------------------------------------------------------------------
132074 
132075 
132076 --
132077 -- bulk performance
132078 --
132079 l_balance_type_code           VARCHAR2(1);
132080 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
132081 l_log_module                  VARCHAR2(240);
132082 
132083 --
132084 -- Upgrade strategy
132085 --
132086 l_actual_upg_option           VARCHAR2(1);
132087 l_enc_upg_option           VARCHAR2(1);
132088 
132089 --
132090 BEGIN
132091 --
132092 IF g_log_enabled THEN
132093       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_211';
132094 END IF;
132095 --
132096 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132097 
132098       trace
132099          (p_msg      => 'BEGIN of AcctLineType_211'
132100          ,p_level    => C_LEVEL_PROCEDURE
132101          ,p_module   => l_log_module);
132102 
132103 END IF;
132104 --
132105 l_component_type             := 'AMB_JLT';
132106 l_component_code             := 'AP_TAX_EX_RATE_VAR_PREPAY';
132107 l_component_type_code        := 'S';
132108 l_component_appl_id          :=  200;
132112 l_event_type_code            := 'PREPAYMENTS_ALL';
132109 l_amb_context_code           := 'DEFAULT';
132110 l_entity_code                := 'AP_INVOICES';
132111 l_event_class_code           := 'PREPAYMENTS';
132113 l_line_definition_owner_code := 'S';
132114 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
132115 --
132116 l_balance_type_code          := 'A';
132117 l_segment                     := NULL;
132118 l_ccid                        := NULL;
132119 l_adr_transaction_coa_id      := NULL;
132120 l_adr_accounting_coa_id       := NULL;
132121 l_adr_flexfield_segment_code  := NULL;
132122 l_adr_flex_value_set_id       := NULL;
132123 l_adr_value_type_code         := NULL;
132124 l_adr_value_combination_id    := NULL;
132125 l_adr_value_segment_code      := NULL;
132126 
132127 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
132128 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
132129 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
132130 l_budgetary_control_flag     := 'N';
132131 
132132 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
132133 l_bflow_applied_to_amt       := NULL; -- 5132302
132134 l_entered_amt_idx            := NULL;          -- 4262811
132135 l_accted_amt_idx             := NULL;          -- 4262811
132136 l_acc_rev_flag               := NULL;          -- 4262811
132137 l_accrual_line_num           := NULL;          -- 4262811
132138 l_tmp_amt                    := NULL;          -- 4262811
132139 --
132140 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
132141             (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
132142                return;
132143   END IF;
132144   
132145 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
132146     l_balance_type_code <> 'B' THEN
132147 IF NVL(p_source_33,'
132148 ') =  'TERV' AND 
132149 NVL(p_source_95,'
132150 ') =  'Y'
132151  THEN 
132152 
132153    --
132154    XLA_AE_LINES_PKG.SetNewLine;
132155 
132156    p_balance_type_code          := l_balance_type_code;
132157    -- set the flag so later we will know whether the gain loss line needs to be created
132158    
132159    IF(l_balance_type_code = 'A' ) THEN
132160      p_actual_flag :='G';
132161    END IF;
132162 
132163    --
132164    -- bulk performance
132165    --
132166    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
132167                                       p_header_num   => 0); -- 4262811
132168    --
132169    -- set accounting line options
132170    --
132171    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
132172            p_natural_side_code          => 'D'
132173          , p_gain_or_loss_flag          => 'Y'
132174          , p_gl_transfer_mode_code      => 'S'
132175          , p_acct_entry_type_code       => 'A'
132176          , p_switch_side_flag           => 'Y'
132177          , p_merge_duplicate_code       => 'A'
132178          );
132179    --
132180    l_acc_rev_natural_side_code := 'C';  -- 4262811
132181    -- 
132182    --
132183    -- set accounting line type info
132184    --
132185    xla_ae_lines_pkg.SetAcctLineType
132186       (p_component_type             => l_component_type
132187       ,p_event_type_code            => l_event_type_code
132188       ,p_line_definition_owner_code => l_line_definition_owner_code
132189       ,p_line_definition_code       => l_line_definition_code
132190       ,p_accounting_line_code       => l_component_code
132191       ,p_accounting_line_type_code  => l_component_type_code
132192       ,p_accounting_line_appl_id    => l_component_appl_id
132193       ,p_amb_context_code           => l_amb_context_code
132194       ,p_entity_code                => l_entity_code
132195       ,p_event_class_code           => l_event_class_code);
132196    --
132197    -- set accounting class
132198    --
132199    xla_ae_lines_pkg.SetAcctClass(
132200            p_accounting_class_code  => 'TERV'
132201          , p_ae_header_id           => l_ae_header_id
132202          );
132203 
132204    --
132205    -- set rounding class
132206    --
132207    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
132208                       'TERV';
132209 
132210    --
132211    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
132212    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
132213    --
132214    -- bulk performance
132215    --
132216    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
132217 
132218    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
132219       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
132220 
132221    -- 4955764
132222    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132223       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
132224 
132225    -- 4458381 Public Sector Enh
132226    
132227    --
132228    -- set accounting attributes for the line type
132229    --
132230    l_entered_amt_idx := 23;
132231    l_accted_amt_idx  := 28;
132232    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
132236    l_rec_acct_attrs.array_num_value(2)  := 
132233    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
132234    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
132235    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
132237 xla_ae_sources_pkg.GetSystemSourceNum(
132238    p_source_code           => 'XLA_EVENT_APPL_ID'
132239  , p_source_type_code      => 'Y'
132240  , p_source_application_id =>  602
132241 );
132242    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
132243    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
132244    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
132245    l_rec_acct_attrs.array_char_value(4)  := 
132246 xla_ae_sources_pkg.GetSystemSourceChar(
132247    p_source_code           => 'XLA_ENTITY_CODE'
132248  , p_source_type_code      => 'Y'
132249  , p_source_application_id =>  602
132250 );
132251    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
132252    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
132253    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
132254    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
132255    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
132256    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
132257    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
132258    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
132259    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
132260    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
132261    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
132262    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
132263    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
132264    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
132265    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
132266    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
132267    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
132268    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
132269    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
132270    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
132271    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
132272    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
132273    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
132274    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
132275    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
132276    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
132277    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
132278    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
132279    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
132280    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
132281    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
132282    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
132283    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
132284    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
132285    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
132286    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
132287    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
132288    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
132289    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
132290    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
132291    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
132292    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
132293    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
132294    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
132295    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
132296    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
132297    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
132298    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
132299    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
132300    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
132301    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
132302    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
132303    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
132304    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
132305    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
132306    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
132307    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
132308    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
132309    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
132310    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
132311    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
132312    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
132313    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
132314    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
132315    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
132316    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
132317    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
132318    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
132319    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
132320    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
132321    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
132325    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
132322    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
132323    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
132324    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
132326    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
132327    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
132328    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
132329 
132330    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
132331    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
132332 
132333    ---------------------------------------------------------------------------------------------------------------
132334    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
132335    ---------------------------------------------------------------------------------------------------------------
132336    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
132337 
132338    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132339    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132340 
132341    IF xla_accounting_cache_pkg.GetValueChar
132342          (p_source_code         => 'LEDGER_CATEGORY_CODE'
132343          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
132344    AND l_bflow_method_code = 'PRIOR_ENTRY'
132345 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
132346    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
132347          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
132348        )
132349    THEN
132350          xla_ae_lines_pkg.BflowUpgEntry
132351            (p_business_method_code    => l_bflow_method_code
132352            ,p_business_class_code     => l_bflow_class_code
132353            ,p_balance_type            => l_balance_type_code);
132354    ELSE
132355       NULL;
132356 -- No business flow processing for business flow method of NONE.
132357    END IF;
132358 
132359    --
132360    -- call analytical criteria
132361    --
132362    
132363    --
132364    -- call description
132365    --
132366    
132367 xla_ae_lines_pkg.SetLineDescription(
132368    p_ae_header_id => l_ae_header_id
132369   ,p_description  => Description_1 (
132370      p_application_id         => p_application_id
132371    , p_ae_header_id           => l_ae_header_id 
132372 , p_source_1 => p_source_1
132373    )
132374 );
132375 
132376 
132377    --
132378    -- call ADRs
132379    -- Bug 4922099
132380    --
132381    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132382         (NVL(l_actual_upg_option, 'N') = 'O') OR
132383         (NVL(l_enc_upg_option, 'N') = 'O')
132384       )
132385    THEN
132386    NULL;
132387    --
132388    --
132389    
132390   l_ccid := AcctDerRule_30(
132391            p_application_id           => p_application_id
132392          , p_ae_header_id             => l_ae_header_id 
132393 , p_source_15 => p_source_15
132394 , p_source_15_meaning => p_source_15_meaning
132395 , p_source_20 => p_source_20
132396 , p_source_21 => p_source_21
132397 , p_source_22 => p_source_22
132398 , p_source_22_meaning => p_source_22_meaning
132399 , p_source_23 => p_source_23
132400 , p_source_30 => p_source_30
132401 , p_source_47 => p_source_47
132402 , p_source_47_meaning => p_source_47_meaning
132403          , x_transaction_coa_id       => l_adr_transaction_coa_id
132404          , x_accounting_coa_id        => l_adr_accounting_coa_id
132405          , x_value_type_code          => l_adr_value_type_code
132406          , p_side                     => 'NA'
132407    );
132408 
132409    xla_ae_lines_pkg.set_ccid(
132410     p_code_combination_id          => l_ccid
132411   , p_value_type_code              => l_adr_value_type_code
132412   , p_transaction_coa_id           => l_adr_transaction_coa_id
132413   , p_accounting_coa_id            => l_adr_accounting_coa_id
132414   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132415   , p_adr_type_code                => 'S'
132416   , p_component_type               => l_component_type
132417   , p_component_code               => l_component_code
132418   , p_component_type_code          => l_component_type_code
132419   , p_component_appl_id            => l_component_appl_id
132420   , p_amb_context_code             => l_amb_context_code
132421   , p_side                         => 'NA'
132422   );
132423 
132424 
132425    l_segment := AcctDerRule_8(
132426            p_application_id           => p_application_id
132427          , p_ae_header_id             => l_ae_header_id 
132428 , p_source_15 => p_source_15
132429 , p_source_15_meaning => p_source_15_meaning
132430 , p_source_20 => p_source_20
132431 , p_source_21 => p_source_21
132432 , p_source_22 => p_source_22
132433 , p_source_22_meaning => p_source_22_meaning
132434 , p_source_23 => p_source_23
132435          , x_transaction_coa_id       => l_adr_transaction_coa_id
132436          , x_accounting_coa_id        => l_adr_accounting_coa_id
132437          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132438          , x_flex_value_set_id        => l_adr_flex_value_set_id
132439          , x_value_type_code          => l_adr_value_type_code
132440          , x_value_combination_id     => l_adr_value_combination_id
132441          , x_value_segment_code       => l_adr_value_segment_code
132445 
132442          , p_side                     => 'NA'
132443          , p_override_seg_flag        => 'Y'
132444    );
132446    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132447 
132448       xla_ae_lines_pkg.set_segment(
132449           p_to_segment_code         => 'GL_ACCOUNT'
132450         , p_segment_value           => l_segment
132451         , p_from_segment_code       => l_adr_value_segment_code
132452         , p_from_combination_id     => l_adr_value_combination_id
132453         , p_value_type_code         => l_adr_value_type_code
132454         , p_transaction_coa_id      => l_adr_transaction_coa_id
132455         , p_accounting_coa_id       => l_adr_accounting_coa_id
132456         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132457         , p_flex_value_set_id       => l_adr_flex_value_set_id
132458         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132459         , p_adr_type_code           => 'S'
132460         , p_component_type          => l_component_type
132461         , p_component_code          => l_component_code
132462         , p_component_type_code     => l_component_type_code
132463         , p_component_appl_id       => l_component_appl_id
132464         , p_amb_context_code        => l_amb_context_code
132465         , p_entity_code             => 'AP_INVOICES'
132466         , p_event_class_code        => 'PREPAYMENTS'
132467         , p_side                    => 'NA'
132468         );
132469 
132470   END IF;
132471 
132472    l_segment := AcctDerRule_23(
132473            p_application_id           => p_application_id
132474          , p_ae_header_id             => l_ae_header_id 
132475 , p_source_15 => p_source_15
132476 , p_source_15_meaning => p_source_15_meaning
132477 , p_source_22 => p_source_22
132478 , p_source_22_meaning => p_source_22_meaning
132479 , p_source_30 => p_source_30
132480          , x_transaction_coa_id       => l_adr_transaction_coa_id
132481          , x_accounting_coa_id        => l_adr_accounting_coa_id
132482          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132483          , x_flex_value_set_id        => l_adr_flex_value_set_id
132484          , x_value_type_code          => l_adr_value_type_code
132485          , x_value_combination_id     => l_adr_value_combination_id
132486          , x_value_segment_code       => l_adr_value_segment_code
132487          , p_side                     => 'NA'
132488          , p_override_seg_flag        => 'Y'
132489    );
132490 
132491    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132492 
132493       xla_ae_lines_pkg.set_segment(
132494           p_to_segment_code         => 'GL_BALANCING'
132495         , p_segment_value           => l_segment
132496         , p_from_segment_code       => l_adr_value_segment_code
132497         , p_from_combination_id     => l_adr_value_combination_id
132498         , p_value_type_code         => l_adr_value_type_code
132499         , p_transaction_coa_id      => l_adr_transaction_coa_id
132500         , p_accounting_coa_id       => l_adr_accounting_coa_id
132501         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132502         , p_flex_value_set_id       => l_adr_flex_value_set_id
132503         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132504         , p_adr_type_code           => 'S'
132505         , p_component_type          => l_component_type
132506         , p_component_code          => l_component_code
132507         , p_component_type_code     => l_component_type_code
132508         , p_component_appl_id       => l_component_appl_id
132509         , p_amb_context_code        => l_amb_context_code
132510         , p_entity_code             => 'AP_INVOICES'
132511         , p_event_class_code        => 'PREPAYMENTS'
132512         , p_side                    => 'NA'
132513         );
132514 
132515   END IF;
132516 
132517    --
132518    --
132519    END IF;
132520    --
132521    -- Bug 4922099
132522    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
132523           (NVL(l_enc_upg_option, 'N') = 'O')
132524         ) AND
132525         (l_bflow_method_code = 'PRIOR_ENTRY')
132526       )
132527    THEN
132528       IF
132529       --
132530       1 = 2
132531       --
132532       THEN
132533       xla_accounting_err_pkg.build_message
132534                                     (p_appli_s_name            => 'XLA'
132535                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132536                                     ,p_token_1                 => 'LINE_NUMBER'
132537                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
132538                                     ,p_token_2                 => 'LINE_TYPE_NAME'
132539                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
132540                                                                              l_component_type
132541                                                                             ,l_component_code
132542                                                                             ,l_component_type_code
132543                                                                             ,l_component_appl_id
132544                                                                             ,l_amb_context_code
132545                                                                             ,l_entity_code
132546                                                                             ,l_event_class_code
132547                                                                            )
132551                                                                           ,p_lookup_code    => l_component_type_code
132548                                     ,p_token_3                 => 'OWNER'
132549                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
132550                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
132552                                                                          )
132553                                     ,p_token_4                 => 'PRODUCT_NAME'
132554                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
132555                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
132556                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
132557                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
132558                                     ,p_ae_header_id            =>  NULL
132559                                        );
132560 
132561         IF (C_LEVEL_ERROR>= g_log_level) THEN
132562                  trace
132563                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132564                       ,p_level    => C_LEVEL_ERROR
132565                       ,p_module   => l_log_module);
132566         END IF;
132567       END IF;
132568    END IF;
132569    --
132570    --
132571    ------------------------------------------------------------------------------------------------
132572    -- 4219869 Business Flow
132573    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132574    -- Prior Entry.  Currently, the following code is always generated.
132575    ------------------------------------------------------------------------------------------------
132576    XLA_AE_LINES_PKG.ValidateCurrentLine;
132577 
132578    ------------------------------------------------------------------------------------
132579    -- 4219869 Business Flow
132580    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132581    ------------------------------------------------------------------------------------
132582    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132583 
132584    ----------------------------------------------------------------------------------
132585    -- 4219869 Business Flow
132586    -- Update journal entry status -- Need to generate this within IF <condition>
132587    ----------------------------------------------------------------------------------
132588    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132589          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132590          ,p_balance_type_code => l_balance_type_code
132591          );
132592 
132593    -------------------------------------------------------------------------------------------
132594    -- 4262811 - Generate the Accrual Reversal lines
132595    -------------------------------------------------------------------------------------------
132596    BEGIN
132597       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132598                               (g_array_event(p_event_id).array_value_num('header_index'));
132599       IF l_acc_rev_flag IS NULL THEN
132600          l_acc_rev_flag := 'N';
132601       END IF;
132602    EXCEPTION
132603       WHEN OTHERS THEN
132604          l_acc_rev_flag := 'N';
132605    END;
132606    --
132607    IF (l_acc_rev_flag = 'Y') THEN
132608 
132609        -- 4645092  ------------------------------------------------------------------------------
132610        -- To allow MPA report to determine if it should generate report process
132611        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132612        ------------------------------------------------------------------------------------------
132613 
132614        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132615        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132616    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132617    -- call ADRs
132618    -- Bug 4922099
132619    --
132620    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132621         (NVL(l_actual_upg_option, 'N') = 'O') OR
132622         (NVL(l_enc_upg_option, 'N') = 'O')
132623       )
132624    THEN
132625    NULL;
132626    --
132627    --
132628    
132629   l_ccid := AcctDerRule_30(
132630            p_application_id           => p_application_id
132631          , p_ae_header_id             => l_ae_header_id 
132632 , p_source_15 => p_source_15
132633 , p_source_15_meaning => p_source_15_meaning
132634 , p_source_20 => p_source_20
132635 , p_source_21 => p_source_21
132636 , p_source_22 => p_source_22
132637 , p_source_22_meaning => p_source_22_meaning
132638 , p_source_23 => p_source_23
132639 , p_source_30 => p_source_30
132640 , p_source_47 => p_source_47
132641 , p_source_47_meaning => p_source_47_meaning
132642          , x_transaction_coa_id       => l_adr_transaction_coa_id
132643          , x_accounting_coa_id        => l_adr_accounting_coa_id
132644          , x_value_type_code          => l_adr_value_type_code
132645          , p_side                     => 'NA'
132646    );
132647 
132648    xla_ae_lines_pkg.set_ccid(
132649     p_code_combination_id          => l_ccid
132650   , p_value_type_code              => l_adr_value_type_code
132651   , p_transaction_coa_id           => l_adr_transaction_coa_id
132652   , p_accounting_coa_id            => l_adr_accounting_coa_id
132653   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132654   , p_adr_type_code                => 'S'
132658   , p_component_appl_id            => l_component_appl_id
132655   , p_component_type               => l_component_type
132656   , p_component_code               => l_component_code
132657   , p_component_type_code          => l_component_type_code
132659   , p_amb_context_code             => l_amb_context_code
132660   , p_side                         => 'NA'
132661   );
132662 
132663 
132664    l_segment := AcctDerRule_8(
132665            p_application_id           => p_application_id
132666          , p_ae_header_id             => l_ae_header_id 
132667 , p_source_15 => p_source_15
132668 , p_source_15_meaning => p_source_15_meaning
132669 , p_source_20 => p_source_20
132670 , p_source_21 => p_source_21
132671 , p_source_22 => p_source_22
132672 , p_source_22_meaning => p_source_22_meaning
132673 , p_source_23 => p_source_23
132674          , x_transaction_coa_id       => l_adr_transaction_coa_id
132675          , x_accounting_coa_id        => l_adr_accounting_coa_id
132676          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132677          , x_flex_value_set_id        => l_adr_flex_value_set_id
132678          , x_value_type_code          => l_adr_value_type_code
132679          , x_value_combination_id     => l_adr_value_combination_id
132680          , x_value_segment_code       => l_adr_value_segment_code
132681          , p_side                     => 'NA'
132682          , p_override_seg_flag        => 'Y'
132683    );
132684 
132685    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132686 
132687       xla_ae_lines_pkg.set_segment(
132688           p_to_segment_code         => 'GL_ACCOUNT'
132689         , p_segment_value           => l_segment
132690         , p_from_segment_code       => l_adr_value_segment_code
132691         , p_from_combination_id     => l_adr_value_combination_id
132692         , p_value_type_code         => l_adr_value_type_code
132693         , p_transaction_coa_id      => l_adr_transaction_coa_id
132694         , p_accounting_coa_id       => l_adr_accounting_coa_id
132695         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132696         , p_flex_value_set_id       => l_adr_flex_value_set_id
132697         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132698         , p_adr_type_code           => 'S'
132699         , p_component_type          => l_component_type
132700         , p_component_code          => l_component_code
132701         , p_component_type_code     => l_component_type_code
132702         , p_component_appl_id       => l_component_appl_id
132703         , p_amb_context_code        => l_amb_context_code
132704         , p_entity_code             => 'AP_INVOICES'
132705         , p_event_class_code        => 'PREPAYMENTS'
132706         , p_side                    => 'NA'
132707         );
132708 
132709   END IF;
132710 
132711    l_segment := AcctDerRule_23(
132712            p_application_id           => p_application_id
132713          , p_ae_header_id             => l_ae_header_id 
132714 , p_source_15 => p_source_15
132715 , p_source_15_meaning => p_source_15_meaning
132716 , p_source_22 => p_source_22
132717 , p_source_22_meaning => p_source_22_meaning
132718 , p_source_30 => p_source_30
132719          , x_transaction_coa_id       => l_adr_transaction_coa_id
132720          , x_accounting_coa_id        => l_adr_accounting_coa_id
132721          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132722          , x_flex_value_set_id        => l_adr_flex_value_set_id
132723          , x_value_type_code          => l_adr_value_type_code
132724          , x_value_combination_id     => l_adr_value_combination_id
132725          , x_value_segment_code       => l_adr_value_segment_code
132726          , p_side                     => 'NA'
132727          , p_override_seg_flag        => 'Y'
132728    );
132729 
132730    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132731 
132732       xla_ae_lines_pkg.set_segment(
132733           p_to_segment_code         => 'GL_BALANCING'
132734         , p_segment_value           => l_segment
132735         , p_from_segment_code       => l_adr_value_segment_code
132736         , p_from_combination_id     => l_adr_value_combination_id
132737         , p_value_type_code         => l_adr_value_type_code
132738         , p_transaction_coa_id      => l_adr_transaction_coa_id
132739         , p_accounting_coa_id       => l_adr_accounting_coa_id
132740         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132741         , p_flex_value_set_id       => l_adr_flex_value_set_id
132742         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132743         , p_adr_type_code           => 'S'
132744         , p_component_type          => l_component_type
132745         , p_component_code          => l_component_code
132746         , p_component_type_code     => l_component_type_code
132747         , p_component_appl_id       => l_component_appl_id
132748         , p_amb_context_code        => l_amb_context_code
132749         , p_entity_code             => 'AP_INVOICES'
132750         , p_event_class_code        => 'PREPAYMENTS'
132751         , p_side                    => 'NA'
132752         );
132753 
132754   END IF;
132755 
132756    --
132757    --
132758    END IF;
132759 
132760        --
132761        -- Update the line information that should be overwritten
132762        --
132763        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132764                                          p_header_num   => 1);
132765        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132766 
132770           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132767        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132768 
132769        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132771        END IF;
132772 
132773       --
132774       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132775       --
132776       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132777           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132778       ELSE
132779           ---------------------------------------------------------------------------------------------------
132780           -- 4262811a Switch Sign
132781           ---------------------------------------------------------------------------------------------------
132782           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132783           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132784                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132785           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132786                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132787           -- 5132302
132788           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132789                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132790 
132791       END IF;
132792 
132793       -- 4955764
132794       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132796 
132797 
132798       XLA_AE_LINES_PKG.ValidateCurrentLine;
132799       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132800 
132801       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132802                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132803                ,p_balance_type_code => l_balance_type_code);
132804 
132805    END IF;
132806 
132807    -----------------------------------------------------------------------------------------
132808    -- 4262811 Multiperiod Accounting
132809    -----------------------------------------------------------------------------------------
132810      -- No MPA option is assigned.
132811 
132812 
132813 END IF;
132814 END IF;
132815 --
132816 
132817 --
132818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132819    trace
132820       (p_msg      => 'END of AcctLineType_211'
132821       ,p_level    => C_LEVEL_PROCEDURE
132822       ,p_module   => l_log_module);
132823 END IF;
132824 --
132825 EXCEPTION
132826   WHEN xla_exceptions_pkg.application_exception THEN
132827       RAISE;
132828   WHEN OTHERS THEN
132829        xla_exceptions_pkg.raise_message
132830            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_211');
132831 END AcctLineType_211;
132832 --
132833 
132834 ---------------------------------------
132835 --
132836 -- PRIVATE FUNCTION
132837 --         AcctLineType_212
132838 --
132839 ---------------------------------------
132840 PROCEDURE AcctLineType_212 (
132841   p_application_id        IN NUMBER
132842  ,p_event_id              IN NUMBER
132843  ,p_calculate_acctd_flag  IN VARCHAR2
132844  ,p_calculate_g_l_flag    IN VARCHAR2
132845  ,p_actual_flag           IN OUT VARCHAR2
132846  ,p_balance_type_code     OUT VARCHAR2
132847  ,p_gain_or_loss_ref      OUT VARCHAR2
132848  
132849 --Invoice Distribution Description
132850  , p_source_1            IN VARCHAR2
132851 --Invoice Distribution Ledger Amount
132852  , p_source_21            IN NUMBER
132853 --Invoice Distribution Account
132854  , p_source_30            IN NUMBER
132855 --Invoice Distribution Type
132856  , p_source_33            IN VARCHAR2
132857  , p_source_33_meaning    IN VARCHAR2
132858 --Accounting Reversal Indicator
132859  , p_source_52            IN VARCHAR2
132860 --Distribution Link Type
132861  , p_source_54            IN VARCHAR2
132862 --Allocation to Main Distribution Identifier
132863  , p_source_56            IN NUMBER
132864 --Invoice Identifier
132865  , p_source_57            IN NUMBER
132866 --Invoice Distribution Identifier
132867  , p_source_63            IN NUMBER
132868 --Payables Encumbrance Upgrade Credit Account
132869  , p_source_64            IN NUMBER
132870 --Payables Encumbrance Upgrade Credit Amount
132871  , p_source_65            IN NUMBER
132872 --Invoice Currency Code
132873  , p_source_66            IN VARCHAR2
132874 --Payables Encumbrance Upgrade Credit Base Amount
132875  , p_source_67            IN NUMBER
132876 --Payables Encumbrance Upgrade Debit Account
132877  , p_source_68            IN NUMBER
132878 --Payables Encumbrance Upgrade Debit Amount
132879  , p_source_69            IN NUMBER
132880 --Payables Encumbrance Upgrade Debit Base Amount
132881  , p_source_70            IN NUMBER
132882 --Payables Encumbrance Upgrade Option
132883  , p_source_71            IN VARCHAR2
132884 --Invoice Distribution Amount
132885  , p_source_72            IN NUMBER
132886 --Deferred Accounting End Date
132887  , p_source_76            IN DATE
132891  , p_source_78            IN DATE
132888 --Deferred Accounting Option
132889  , p_source_77            IN VARCHAR2
132890 --Deferred Accounting Start Date
132892 --Override Accounted Amount Indicator
132893  , p_source_79            IN VARCHAR2
132894  , p_source_79_meaning    IN VARCHAR2
132895 --Invoice Supplier Identifier
132896  , p_source_80            IN NUMBER
132897 --Invoice Supplier Site Identifier
132898  , p_source_81            IN NUMBER
132899 --Third Party Type
132900  , p_source_82            IN VARCHAR2
132901 --Parent Reversal Identifier
132902  , p_source_83            IN NUMBER
132903 --Invoice Distribution Statistical Amount
132904  , p_source_84            IN NUMBER
132905 --Invoice Distribution Tax Line Identifier
132906  , p_source_85            IN NUMBER
132907 --Invoice Distribution Tax Distribution Identifier from Tax
132908  , p_source_86            IN NUMBER
132909 --Invoice Distribution Summary Tax Line Identifier
132910  , p_source_87            IN NUMBER
132911 --Payables Upgrade Credit Encumbrance Type Identifier
132912  , p_source_88            IN NUMBER
132913 --Payables Upgrade Debit Encumbrance Type Identifier
132914  , p_source_89            IN NUMBER
132915 --Business Flow Accounts Payable Application Identifier
132916  , p_source_90            IN NUMBER
132917 --Business Flow Invoice Distribution Type
132918  , p_source_91            IN VARCHAR2
132919 --Business Flow Invoice Entity Code
132920  , p_source_92            IN VARCHAR2
132921 --Business Flow Invoice Distribution Identifier
132922  , p_source_93            IN NUMBER
132923 --Business Flow Invoice Identifier
132924  , p_source_94            IN NUMBER
132925 --Accrue on Receipt Option
132926  , p_source_95            IN VARCHAR2
132927  , p_source_95_meaning    IN VARCHAR2
132928 --Invoice Exchange Date
132929  , p_source_136            IN DATE
132930 --Invoice Exchange Rate
132931  , p_source_137            IN NUMBER
132932 --Invoice Exchange Rate Type
132933  , p_source_138            IN VARCHAR2
132934 )
132935 IS
132936 
132937 l_component_type              VARCHAR2(80);
132938 l_component_code              VARCHAR2(30);
132939 l_component_type_code         VARCHAR2(1);
132940 l_component_appl_id           INTEGER;
132941 l_amb_context_code            VARCHAR2(30);
132942 l_entity_code                 VARCHAR2(30);
132943 l_event_class_code            VARCHAR2(30);
132944 l_ae_header_id                NUMBER;
132945 l_event_type_code             VARCHAR2(30);
132946 l_line_definition_code        VARCHAR2(30);
132947 l_line_definition_owner_code  VARCHAR2(1);
132948 --
132949 -- adr variables
132950 l_segment                     VARCHAR2(30);
132951 l_ccid                        NUMBER;
132952 l_adr_transaction_coa_id      NUMBER;
132953 l_adr_accounting_coa_id       NUMBER;
132954 l_adr_flexfield_segment_code  VARCHAR2(30);
132955 l_adr_flex_value_set_id       NUMBER;
132956 l_adr_value_type_code         VARCHAR2(30);
132957 l_adr_value_combination_id    NUMBER;
132958 l_adr_value_segment_code      VARCHAR2(30);
132959 
132960 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
132961 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
132962 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
132963 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
132964 
132965 -- 4262811 Variables ------------------------------------------------------------------------------------------
132966 l_entered_amt_idx             NUMBER;
132967 l_accted_amt_idx              NUMBER;
132968 l_acc_rev_flag                VARCHAR2(1);
132969 l_accrual_line_num            NUMBER;
132970 l_tmp_amt                     NUMBER;
132971 l_acc_rev_natural_side_code   VARCHAR2(1);
132972 
132973 l_num_entries                 NUMBER;
132974 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
132975 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
132976 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
132977 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
132978 l_recog_line_1                NUMBER;
132979 l_recog_line_2                NUMBER;
132980 
132981 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
132982 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
132983 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
132984 
132985 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
132986 
132987 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
132988 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
132989 
132990 ---------------------------------------------------------------------------------------------------------------
132991 
132992 
132993 --
132994 -- bulk performance
132995 --
132996 l_balance_type_code           VARCHAR2(1);
132997 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
132998 l_log_module                  VARCHAR2(240);
132999 
133000 --
133001 -- Upgrade strategy
133002 --
133003 l_actual_upg_option           VARCHAR2(1);
133004 l_enc_upg_option           VARCHAR2(1);
133005 
133006 --
133007 BEGIN
133008 --
133009 IF g_log_enabled THEN
133010       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_212';
133011 END IF;
133012 --
133013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133014 
133015       trace
133019 
133016          (p_msg      => 'BEGIN of AcctLineType_212'
133017          ,p_level    => C_LEVEL_PROCEDURE
133018          ,p_module   => l_log_module);
133020 END IF;
133021 --
133022 l_component_type             := 'AMB_JLT';
133023 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM';
133024 l_component_type_code        := 'S';
133025 l_component_appl_id          :=  200;
133026 l_amb_context_code           := 'DEFAULT';
133027 l_entity_code                := 'AP_INVOICES';
133028 l_event_class_code           := 'CREDIT MEMOS';
133029 l_event_type_code            := 'CREDIT MEMOS_ALL';
133030 l_line_definition_owner_code := 'S';
133031 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
133032 --
133033 l_balance_type_code          := 'A';
133034 l_segment                     := NULL;
133035 l_ccid                        := NULL;
133036 l_adr_transaction_coa_id      := NULL;
133037 l_adr_accounting_coa_id       := NULL;
133038 l_adr_flexfield_segment_code  := NULL;
133039 l_adr_flex_value_set_id       := NULL;
133040 l_adr_value_type_code         := NULL;
133041 l_adr_value_combination_id    := NULL;
133042 l_adr_value_segment_code      := NULL;
133043 
133044 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133045 l_bflow_class_code           := '';    -- 4219869 Business Flow
133046 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133047 l_budgetary_control_flag     := 'N';
133048 
133049 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133050 l_bflow_applied_to_amt       := NULL; -- 5132302
133051 l_entered_amt_idx            := NULL;          -- 4262811
133052 l_accted_amt_idx             := NULL;          -- 4262811
133053 l_acc_rev_flag               := NULL;          -- 4262811
133054 l_accrual_line_num           := NULL;          -- 4262811
133055 l_tmp_amt                    := NULL;          -- 4262811
133056 --
133057  
133058 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133059     l_balance_type_code <> 'B' THEN
133060 IF NVL(p_source_33,'
133061 ') =  'TIPV' AND 
133062 NVL(p_source_95,'
133063 ') =  'Y'
133064  THEN 
133065 
133066    --
133067    XLA_AE_LINES_PKG.SetNewLine;
133068 
133069    p_balance_type_code          := l_balance_type_code;
133070    -- set the flag so later we will know whether the gain loss line needs to be created
133071    
133072    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133073      p_actual_flag :='A';
133074    END IF;
133075 
133076    --
133077    -- bulk performance
133078    --
133079    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133080                                       p_header_num   => 0); -- 4262811
133081    --
133082    -- set accounting line options
133083    --
133084    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133085            p_natural_side_code          => 'D'
133086          , p_gain_or_loss_flag          => 'N'
133087          , p_gl_transfer_mode_code      => 'S'
133088          , p_acct_entry_type_code       => 'A'
133089          , p_switch_side_flag           => 'Y'
133090          , p_merge_duplicate_code       => 'A'
133091          );
133092    --
133093    l_acc_rev_natural_side_code := 'C';  -- 4262811
133094    -- 
133095    --
133096    -- set accounting line type info
133097    --
133098    xla_ae_lines_pkg.SetAcctLineType
133099       (p_component_type             => l_component_type
133100       ,p_event_type_code            => l_event_type_code
133101       ,p_line_definition_owner_code => l_line_definition_owner_code
133102       ,p_line_definition_code       => l_line_definition_code
133103       ,p_accounting_line_code       => l_component_code
133104       ,p_accounting_line_type_code  => l_component_type_code
133105       ,p_accounting_line_appl_id    => l_component_appl_id
133106       ,p_amb_context_code           => l_amb_context_code
133107       ,p_entity_code                => l_entity_code
133108       ,p_event_class_code           => l_event_class_code);
133109    --
133110    -- set accounting class
133111    --
133112    xla_ae_lines_pkg.SetAcctClass(
133113            p_accounting_class_code  => 'TIPV'
133114          , p_ae_header_id           => l_ae_header_id
133115          );
133116 
133117    --
133118    -- set rounding class
133119    --
133120    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133121                       'TIPV';
133122 
133123    --
133124    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133125    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133126    --
133127    -- bulk performance
133128    --
133129    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133130 
133131    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133132       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133133 
133134    -- 4955764
133135    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133136       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133137 
133138    -- 4458381 Public Sector Enh
133139    
133140    --
133141    -- set accounting attributes for the line type
133142    --
133143    l_entered_amt_idx := 23;
133144    l_accted_amt_idx  := 28;
133145    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133149    l_rec_acct_attrs.array_num_value(2)  := 
133146    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133147    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
133148    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133150 xla_ae_sources_pkg.GetSystemSourceNum(
133151    p_source_code           => 'XLA_EVENT_APPL_ID'
133152  , p_source_type_code      => 'Y'
133153  , p_source_application_id =>  602
133154 );
133155    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133156    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
133157    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133158    l_rec_acct_attrs.array_char_value(4)  := 
133159 xla_ae_sources_pkg.GetSystemSourceChar(
133160    p_source_code           => 'XLA_ENTITY_CODE'
133161  , p_source_type_code      => 'Y'
133162  , p_source_application_id =>  602
133163 );
133164    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133165    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
133166    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133167    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
133168    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133169    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
133170    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133171    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
133172    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133173    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
133174    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133175    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
133176    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133177    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
133178    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133179    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
133180    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133181    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
133182    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133183    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
133184    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133185    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
133186    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133187    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
133188    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133189    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
133190    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133191    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
133192    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133193    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
133194    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133195    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
133196    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133197    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
133198    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133199    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
133200    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133201    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
133202    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133203    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
133204    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
133205    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
133206    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
133207    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
133208    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
133209    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
133210    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
133211    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
133212    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
133213    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
133214    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
133215    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
133216    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
133217    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
133218    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
133219    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
133220    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
133221    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
133222    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
133223    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
133224    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
133225    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
133226    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
133227    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
133228    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
133229    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
133230    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
133231    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
133232    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
133233    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
133237    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
133234    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
133235    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
133236    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
133238    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
133239    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
133240    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
133241    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
133242 
133243    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
133244    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
133245 
133246    ---------------------------------------------------------------------------------------------------------------
133247    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
133248    ---------------------------------------------------------------------------------------------------------------
133249    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
133250 
133251    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133252    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133253 
133254    IF xla_accounting_cache_pkg.GetValueChar
133255          (p_source_code         => 'LEDGER_CATEGORY_CODE'
133256          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
133257    AND l_bflow_method_code = 'PRIOR_ENTRY'
133258 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
133259    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
133260          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
133261        )
133262    THEN
133263          xla_ae_lines_pkg.BflowUpgEntry
133264            (p_business_method_code    => l_bflow_method_code
133265            ,p_business_class_code     => l_bflow_class_code
133266            ,p_balance_type            => l_balance_type_code);
133267    ELSE
133268       NULL;
133269 -- No business flow processing for business flow method of NONE.
133270    END IF;
133271 
133272    --
133273    -- call analytical criteria
133274    --
133275    
133276    --
133277    -- call description
133278    --
133279    
133280 xla_ae_lines_pkg.SetLineDescription(
133281    p_ae_header_id => l_ae_header_id
133282   ,p_description  => Description_1 (
133283      p_application_id         => p_application_id
133284    , p_ae_header_id           => l_ae_header_id 
133285 , p_source_1 => p_source_1
133286    )
133287 );
133288 
133289 
133290    --
133291    -- call ADRs
133292    -- Bug 4922099
133293    --
133294    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133295         (NVL(l_actual_upg_option, 'N') = 'O') OR
133296         (NVL(l_enc_upg_option, 'N') = 'O')
133297       )
133298    THEN
133299    NULL;
133300    --
133301    --
133302    
133303   l_ccid := AcctDerRule_33(
133304            p_application_id           => p_application_id
133305          , p_ae_header_id             => l_ae_header_id 
133306 , p_source_30 => p_source_30
133307          , x_transaction_coa_id       => l_adr_transaction_coa_id
133308          , x_accounting_coa_id        => l_adr_accounting_coa_id
133309          , x_value_type_code          => l_adr_value_type_code
133310          , p_side                     => 'NA'
133311    );
133312 
133313    xla_ae_lines_pkg.set_ccid(
133314     p_code_combination_id          => l_ccid
133315   , p_value_type_code              => l_adr_value_type_code
133316   , p_transaction_coa_id           => l_adr_transaction_coa_id
133317   , p_accounting_coa_id            => l_adr_accounting_coa_id
133318   , p_adr_code                     => 'AP_INVOICE_DIST'
133319   , p_adr_type_code                => 'S'
133320   , p_component_type               => l_component_type
133321   , p_component_code               => l_component_code
133322   , p_component_type_code          => l_component_type_code
133323   , p_component_appl_id            => l_component_appl_id
133324   , p_amb_context_code             => l_amb_context_code
133325   , p_side                         => 'NA'
133326   );
133327 
133328 
133329    --
133330    --
133331    END IF;
133332    --
133333    -- Bug 4922099
133334    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
133335           (NVL(l_enc_upg_option, 'N') = 'O')
133336         ) AND
133337         (l_bflow_method_code = 'PRIOR_ENTRY')
133338       )
133339    THEN
133340       IF
133341       --
133342       1 = 2
133343       --
133344       THEN
133345       xla_accounting_err_pkg.build_message
133346                                     (p_appli_s_name            => 'XLA'
133347                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133348                                     ,p_token_1                 => 'LINE_NUMBER'
133349                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
133350                                     ,p_token_2                 => 'LINE_TYPE_NAME'
133351                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
133352                                                                              l_component_type
133353                                                                             ,l_component_code
133357                                                                             ,l_entity_code
133354                                                                             ,l_component_type_code
133355                                                                             ,l_component_appl_id
133356                                                                             ,l_amb_context_code
133358                                                                             ,l_event_class_code
133359                                                                            )
133360                                     ,p_token_3                 => 'OWNER'
133361                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
133362                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
133363                                                                           ,p_lookup_code    => l_component_type_code
133364                                                                          )
133365                                     ,p_token_4                 => 'PRODUCT_NAME'
133366                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
133367                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
133368                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
133369                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
133370                                     ,p_ae_header_id            =>  NULL
133371                                        );
133372 
133373         IF (C_LEVEL_ERROR>= g_log_level) THEN
133374                  trace
133375                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133376                       ,p_level    => C_LEVEL_ERROR
133377                       ,p_module   => l_log_module);
133378         END IF;
133379       END IF;
133380    END IF;
133381    --
133382    --
133383    ------------------------------------------------------------------------------------------------
133384    -- 4219869 Business Flow
133385    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
133386    -- Prior Entry.  Currently, the following code is always generated.
133387    ------------------------------------------------------------------------------------------------
133388    XLA_AE_LINES_PKG.ValidateCurrentLine;
133389 
133390    ------------------------------------------------------------------------------------
133391    -- 4219869 Business Flow
133392    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
133393    ------------------------------------------------------------------------------------
133394    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133395 
133396    ----------------------------------------------------------------------------------
133397    -- 4219869 Business Flow
133398    -- Update journal entry status -- Need to generate this within IF <condition>
133399    ----------------------------------------------------------------------------------
133400    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133401          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
133402          ,p_balance_type_code => l_balance_type_code
133403          );
133404 
133405    -------------------------------------------------------------------------------------------
133406    -- 4262811 - Generate the Accrual Reversal lines
133407    -------------------------------------------------------------------------------------------
133408    BEGIN
133409       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
133410                               (g_array_event(p_event_id).array_value_num('header_index'));
133411       IF l_acc_rev_flag IS NULL THEN
133412          l_acc_rev_flag := 'N';
133413       END IF;
133414    EXCEPTION
133415       WHEN OTHERS THEN
133416          l_acc_rev_flag := 'N';
133417    END;
133418    --
133419    IF (l_acc_rev_flag = 'Y') THEN
133420 
133421        -- 4645092  ------------------------------------------------------------------------------
133422        -- To allow MPA report to determine if it should generate report process
133423        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
133424        ------------------------------------------------------------------------------------------
133425 
133426        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
133427        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
133428    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
133429    -- call ADRs
133430    -- Bug 4922099
133431    --
133432    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133433         (NVL(l_actual_upg_option, 'N') = 'O') OR
133434         (NVL(l_enc_upg_option, 'N') = 'O')
133435       )
133436    THEN
133437    NULL;
133438    --
133439    --
133440    
133441   l_ccid := AcctDerRule_33(
133442            p_application_id           => p_application_id
133443          , p_ae_header_id             => l_ae_header_id 
133444 , p_source_30 => p_source_30
133445          , x_transaction_coa_id       => l_adr_transaction_coa_id
133446          , x_accounting_coa_id        => l_adr_accounting_coa_id
133447          , x_value_type_code          => l_adr_value_type_code
133448          , p_side                     => 'NA'
133449    );
133450 
133451    xla_ae_lines_pkg.set_ccid(
133452     p_code_combination_id          => l_ccid
133453   , p_value_type_code              => l_adr_value_type_code
133457   , p_adr_type_code                => 'S'
133454   , p_transaction_coa_id           => l_adr_transaction_coa_id
133455   , p_accounting_coa_id            => l_adr_accounting_coa_id
133456   , p_adr_code                     => 'AP_INVOICE_DIST'
133458   , p_component_type               => l_component_type
133459   , p_component_code               => l_component_code
133460   , p_component_type_code          => l_component_type_code
133461   , p_component_appl_id            => l_component_appl_id
133462   , p_amb_context_code             => l_amb_context_code
133463   , p_side                         => 'NA'
133464   );
133465 
133466 
133467    --
133468    --
133469    END IF;
133470 
133471        --
133472        -- Update the line information that should be overwritten
133473        --
133474        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
133475                                          p_header_num   => 1);
133476        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
133477 
133478        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
133479 
133480        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
133481           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
133482        END IF;
133483 
133484       --
133485       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
133486       --
133487       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
133488           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
133489       ELSE
133490           ---------------------------------------------------------------------------------------------------
133491           -- 4262811a Switch Sign
133492           ---------------------------------------------------------------------------------------------------
133493           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
133494           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133495                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133496           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133497                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133498           -- 5132302
133499           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
133500                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133501 
133502       END IF;
133503 
133504       -- 4955764
133505       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133506       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
133507 
133508 
133509       XLA_AE_LINES_PKG.ValidateCurrentLine;
133510       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133511 
133512       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133513                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
133514                ,p_balance_type_code => l_balance_type_code);
133515 
133516    END IF;
133517 
133518    -----------------------------------------------------------------------------------------
133519    -- 4262811 Multiperiod Accounting
133520    -----------------------------------------------------------------------------------------
133521      -- No MPA option is assigned.
133522 
133523 
133524 END IF;
133525 END IF;
133526 --
133527 
133528 --
133529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133530    trace
133531       (p_msg      => 'END of AcctLineType_212'
133532       ,p_level    => C_LEVEL_PROCEDURE
133533       ,p_module   => l_log_module);
133534 END IF;
133535 --
133536 EXCEPTION
133537   WHEN xla_exceptions_pkg.application_exception THEN
133538       RAISE;
133539   WHEN OTHERS THEN
133540        xla_exceptions_pkg.raise_message
133541            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_212');
133542 END AcctLineType_212;
133543 --
133544 
133545 ---------------------------------------
133546 --
133547 -- PRIVATE FUNCTION
133548 --         AcctLineType_213
133549 --
133550 ---------------------------------------
133551 PROCEDURE AcctLineType_213 (
133552   p_application_id        IN NUMBER
133553  ,p_event_id              IN NUMBER
133554  ,p_calculate_acctd_flag  IN VARCHAR2
133555  ,p_calculate_g_l_flag    IN VARCHAR2
133556  ,p_actual_flag           IN OUT VARCHAR2
133557  ,p_balance_type_code     OUT VARCHAR2
133558  ,p_gain_or_loss_ref      OUT VARCHAR2
133559  
133560 --Invoice Distribution Description
133561  , p_source_1            IN VARCHAR2
133562 --Invoice Distribution Ledger Amount
133563  , p_source_21            IN NUMBER
133564 --Invoice Distribution Account
133565  , p_source_30            IN NUMBER
133566 --Invoice Distribution Type
133567  , p_source_33            IN VARCHAR2
133568  , p_source_33_meaning    IN VARCHAR2
133569 --Accounting Reversal Indicator
133570  , p_source_52            IN VARCHAR2
133571 --Distribution Link Type
133572  , p_source_54            IN VARCHAR2
133573 --Allocation to Main Distribution Identifier
133574  , p_source_56            IN NUMBER
133578  , p_source_63            IN NUMBER
133575 --Invoice Identifier
133576  , p_source_57            IN NUMBER
133577 --Invoice Distribution Identifier
133579 --Payables Encumbrance Upgrade Credit Account
133580  , p_source_64            IN NUMBER
133581 --Payables Encumbrance Upgrade Credit Amount
133582  , p_source_65            IN NUMBER
133583 --Invoice Currency Code
133584  , p_source_66            IN VARCHAR2
133585 --Payables Encumbrance Upgrade Credit Base Amount
133586  , p_source_67            IN NUMBER
133587 --Payables Encumbrance Upgrade Debit Account
133588  , p_source_68            IN NUMBER
133589 --Payables Encumbrance Upgrade Debit Amount
133590  , p_source_69            IN NUMBER
133591 --Payables Encumbrance Upgrade Debit Base Amount
133592  , p_source_70            IN NUMBER
133593 --Payables Encumbrance Upgrade Option
133594  , p_source_71            IN VARCHAR2
133595 --Invoice Distribution Amount
133596  , p_source_72            IN NUMBER
133597 --Deferred Accounting End Date
133598  , p_source_76            IN DATE
133599 --Deferred Accounting Option
133600  , p_source_77            IN VARCHAR2
133601 --Deferred Accounting Start Date
133602  , p_source_78            IN DATE
133603 --Override Accounted Amount Indicator
133604  , p_source_79            IN VARCHAR2
133605  , p_source_79_meaning    IN VARCHAR2
133606 --Invoice Supplier Identifier
133607  , p_source_80            IN NUMBER
133608 --Invoice Supplier Site Identifier
133609  , p_source_81            IN NUMBER
133610 --Third Party Type
133611  , p_source_82            IN VARCHAR2
133612 --Parent Reversal Identifier
133613  , p_source_83            IN NUMBER
133614 --Invoice Distribution Tax Line Identifier
133615  , p_source_85            IN NUMBER
133616 --Invoice Distribution Tax Distribution Identifier from Tax
133617  , p_source_86            IN NUMBER
133618 --Invoice Distribution Summary Tax Line Identifier
133619  , p_source_87            IN NUMBER
133620 --Payables Upgrade Credit Encumbrance Type Identifier
133621  , p_source_88            IN NUMBER
133622 --Payables Upgrade Debit Encumbrance Type Identifier
133623  , p_source_89            IN NUMBER
133624 --Business Flow Accounts Payable Application Identifier
133625  , p_source_90            IN NUMBER
133626 --Business Flow Invoice Distribution Type
133627  , p_source_91            IN VARCHAR2
133628 --Business Flow Invoice Entity Code
133629  , p_source_92            IN VARCHAR2
133630 --Business Flow Invoice Distribution Identifier
133631  , p_source_93            IN NUMBER
133632 --Business Flow Invoice Identifier
133633  , p_source_94            IN NUMBER
133634 --Accrue on Receipt Option
133635  , p_source_95            IN VARCHAR2
133636  , p_source_95_meaning    IN VARCHAR2
133637 --Invoice Exchange Date
133638  , p_source_136            IN DATE
133639 --Invoice Exchange Rate
133640  , p_source_137            IN NUMBER
133641 --Invoice Exchange Rate Type
133642  , p_source_138            IN VARCHAR2
133643 )
133644 IS
133645 
133646 l_component_type              VARCHAR2(80);
133647 l_component_code              VARCHAR2(30);
133648 l_component_type_code         VARCHAR2(1);
133649 l_component_appl_id           INTEGER;
133650 l_amb_context_code            VARCHAR2(30);
133651 l_entity_code                 VARCHAR2(30);
133652 l_event_class_code            VARCHAR2(30);
133653 l_ae_header_id                NUMBER;
133654 l_event_type_code             VARCHAR2(30);
133655 l_line_definition_code        VARCHAR2(30);
133656 l_line_definition_owner_code  VARCHAR2(1);
133657 --
133658 -- adr variables
133659 l_segment                     VARCHAR2(30);
133660 l_ccid                        NUMBER;
133661 l_adr_transaction_coa_id      NUMBER;
133662 l_adr_accounting_coa_id       NUMBER;
133663 l_adr_flexfield_segment_code  VARCHAR2(30);
133664 l_adr_flex_value_set_id       NUMBER;
133665 l_adr_value_type_code         VARCHAR2(30);
133666 l_adr_value_combination_id    NUMBER;
133667 l_adr_value_segment_code      VARCHAR2(30);
133668 
133669 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133670 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133671 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133672 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133673 
133674 -- 4262811 Variables ------------------------------------------------------------------------------------------
133675 l_entered_amt_idx             NUMBER;
133676 l_accted_amt_idx              NUMBER;
133677 l_acc_rev_flag                VARCHAR2(1);
133678 l_accrual_line_num            NUMBER;
133679 l_tmp_amt                     NUMBER;
133680 l_acc_rev_natural_side_code   VARCHAR2(1);
133681 
133682 l_num_entries                 NUMBER;
133683 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133684 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133685 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133686 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133687 l_recog_line_1                NUMBER;
133688 l_recog_line_2                NUMBER;
133689 
133690 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133691 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133692 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133693 
133694 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133695 
133699 ---------------------------------------------------------------------------------------------------------------
133696 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133697 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133698 
133700 
133701 
133702 --
133703 -- bulk performance
133704 --
133705 l_balance_type_code           VARCHAR2(1);
133706 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133707 l_log_module                  VARCHAR2(240);
133708 
133709 --
133710 -- Upgrade strategy
133711 --
133712 l_actual_upg_option           VARCHAR2(1);
133713 l_enc_upg_option           VARCHAR2(1);
133714 
133715 --
133716 BEGIN
133717 --
133718 IF g_log_enabled THEN
133719       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_213';
133720 END IF;
133721 --
133722 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133723 
133724       trace
133725          (p_msg      => 'BEGIN of AcctLineType_213'
133726          ,p_level    => C_LEVEL_PROCEDURE
133727          ,p_module   => l_log_module);
133728 
133729 END IF;
133730 --
133731 l_component_type             := 'AMB_JLT';
133732 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM';
133733 l_component_type_code        := 'S';
133734 l_component_appl_id          :=  200;
133735 l_amb_context_code           := 'DEFAULT';
133736 l_entity_code                := 'AP_INVOICES';
133737 l_event_class_code           := 'DEBIT MEMOS';
133738 l_event_type_code            := 'DEBIT MEMOS_ALL';
133739 l_line_definition_owner_code := 'S';
133740 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
133741 --
133742 l_balance_type_code          := 'A';
133743 l_segment                     := NULL;
133744 l_ccid                        := NULL;
133745 l_adr_transaction_coa_id      := NULL;
133746 l_adr_accounting_coa_id       := NULL;
133747 l_adr_flexfield_segment_code  := NULL;
133748 l_adr_flex_value_set_id       := NULL;
133749 l_adr_value_type_code         := NULL;
133750 l_adr_value_combination_id    := NULL;
133751 l_adr_value_segment_code      := NULL;
133752 
133753 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133754 l_bflow_class_code           := '';    -- 4219869 Business Flow
133755 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133756 l_budgetary_control_flag     := 'N';
133757 
133758 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133759 l_bflow_applied_to_amt       := NULL; -- 5132302
133760 l_entered_amt_idx            := NULL;          -- 4262811
133761 l_accted_amt_idx             := NULL;          -- 4262811
133762 l_acc_rev_flag               := NULL;          -- 4262811
133763 l_accrual_line_num           := NULL;          -- 4262811
133764 l_tmp_amt                    := NULL;          -- 4262811
133765 --
133766  
133767 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133768     l_balance_type_code <> 'B' THEN
133769 IF NVL(p_source_33,'
133770 ') =  'TIPV' AND 
133771 NVL(p_source_95,'
133772 ') =  'Y'
133773  THEN 
133774 
133775    --
133776    XLA_AE_LINES_PKG.SetNewLine;
133777 
133778    p_balance_type_code          := l_balance_type_code;
133779    -- set the flag so later we will know whether the gain loss line needs to be created
133780    
133781    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133782      p_actual_flag :='A';
133783    END IF;
133784 
133785    --
133786    -- bulk performance
133787    --
133788    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133789                                       p_header_num   => 0); -- 4262811
133790    --
133791    -- set accounting line options
133792    --
133793    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133794            p_natural_side_code          => 'D'
133795          , p_gain_or_loss_flag          => 'N'
133796          , p_gl_transfer_mode_code      => 'S'
133797          , p_acct_entry_type_code       => 'A'
133798          , p_switch_side_flag           => 'Y'
133799          , p_merge_duplicate_code       => 'A'
133800          );
133801    --
133802    l_acc_rev_natural_side_code := 'C';  -- 4262811
133803    -- 
133804    --
133805    -- set accounting line type info
133806    --
133807    xla_ae_lines_pkg.SetAcctLineType
133808       (p_component_type             => l_component_type
133809       ,p_event_type_code            => l_event_type_code
133810       ,p_line_definition_owner_code => l_line_definition_owner_code
133811       ,p_line_definition_code       => l_line_definition_code
133812       ,p_accounting_line_code       => l_component_code
133813       ,p_accounting_line_type_code  => l_component_type_code
133814       ,p_accounting_line_appl_id    => l_component_appl_id
133815       ,p_amb_context_code           => l_amb_context_code
133816       ,p_entity_code                => l_entity_code
133817       ,p_event_class_code           => l_event_class_code);
133818    --
133819    -- set accounting class
133820    --
133821    xla_ae_lines_pkg.SetAcctClass(
133822            p_accounting_class_code  => 'TIPV'
133823          , p_ae_header_id           => l_ae_header_id
133824          );
133825 
133826    --
133827    -- set rounding class
133828    --
133829    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133830                       'TIPV';
133831 
133832    --
133836    -- bulk performance
133833    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133834    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133835    --
133837    --
133838    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133839 
133840    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133841       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133842 
133843    -- 4955764
133844    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133845       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133846 
133847    -- 4458381 Public Sector Enh
133848    
133849    --
133850    -- set accounting attributes for the line type
133851    --
133852    l_entered_amt_idx := 23;
133853    l_accted_amt_idx  := 28;
133854    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133855    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133856    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
133857    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133858    l_rec_acct_attrs.array_num_value(2)  := 
133859 xla_ae_sources_pkg.GetSystemSourceNum(
133860    p_source_code           => 'XLA_EVENT_APPL_ID'
133861  , p_source_type_code      => 'Y'
133862  , p_source_application_id =>  602
133863 );
133864    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133865    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
133866    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133867    l_rec_acct_attrs.array_char_value(4)  := 
133868 xla_ae_sources_pkg.GetSystemSourceChar(
133869    p_source_code           => 'XLA_ENTITY_CODE'
133870  , p_source_type_code      => 'Y'
133871  , p_source_application_id =>  602
133872 );
133873    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133874    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
133875    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133876    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
133877    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133878    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
133879    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133880    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
133881    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133882    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
133883    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133884    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
133885    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133886    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
133887    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133888    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
133889    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133890    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
133891    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133892    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
133893    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133894    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
133895    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133896    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
133897    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133898    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
133899    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133900    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
133901    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133902    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
133903    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133904    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
133905    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133906    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
133907    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133908    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
133909    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133910    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
133911    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133912    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
133913    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
133914    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
133915    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
133916    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
133917    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
133918    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
133919    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
133920    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
133921    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
133922    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
133923    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
133924    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
133925    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
133926    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
133930    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
133927    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
133928    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
133929    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
133931    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
133932    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
133933    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
133934    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
133935    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
133936    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
133937    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
133938    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
133939    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
133940    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
133941    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
133942    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
133943    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
133944    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
133945    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
133946    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
133947    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
133948    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
133949 
133950    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
133951    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
133952 
133953    ---------------------------------------------------------------------------------------------------------------
133954    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
133955    ---------------------------------------------------------------------------------------------------------------
133956    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
133957 
133958    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133959    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133960 
133961    IF xla_accounting_cache_pkg.GetValueChar
133962          (p_source_code         => 'LEDGER_CATEGORY_CODE'
133963          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
133964    AND l_bflow_method_code = 'PRIOR_ENTRY'
133965 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
133966    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
133967          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
133968        )
133969    THEN
133970          xla_ae_lines_pkg.BflowUpgEntry
133971            (p_business_method_code    => l_bflow_method_code
133972            ,p_business_class_code     => l_bflow_class_code
133973            ,p_balance_type            => l_balance_type_code);
133974    ELSE
133975       NULL;
133976 -- No business flow processing for business flow method of NONE.
133977    END IF;
133978 
133979    --
133980    -- call analytical criteria
133981    --
133982    
133983    --
133984    -- call description
133985    --
133986    
133987 xla_ae_lines_pkg.SetLineDescription(
133988    p_ae_header_id => l_ae_header_id
133989   ,p_description  => Description_1 (
133990      p_application_id         => p_application_id
133991    , p_ae_header_id           => l_ae_header_id 
133992 , p_source_1 => p_source_1
133993    )
133994 );
133995 
133996 
133997    --
133998    -- call ADRs
133999    -- Bug 4922099
134000    --
134001    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134002         (NVL(l_actual_upg_option, 'N') = 'O') OR
134003         (NVL(l_enc_upg_option, 'N') = 'O')
134004       )
134005    THEN
134006    NULL;
134007    --
134008    --
134009    
134010   l_ccid := AcctDerRule_33(
134011            p_application_id           => p_application_id
134012          , p_ae_header_id             => l_ae_header_id 
134013 , p_source_30 => p_source_30
134014          , x_transaction_coa_id       => l_adr_transaction_coa_id
134015          , x_accounting_coa_id        => l_adr_accounting_coa_id
134016          , x_value_type_code          => l_adr_value_type_code
134017          , p_side                     => 'NA'
134018    );
134019 
134020    xla_ae_lines_pkg.set_ccid(
134021     p_code_combination_id          => l_ccid
134022   , p_value_type_code              => l_adr_value_type_code
134023   , p_transaction_coa_id           => l_adr_transaction_coa_id
134024   , p_accounting_coa_id            => l_adr_accounting_coa_id
134025   , p_adr_code                     => 'AP_INVOICE_DIST'
134026   , p_adr_type_code                => 'S'
134027   , p_component_type               => l_component_type
134028   , p_component_code               => l_component_code
134029   , p_component_type_code          => l_component_type_code
134030   , p_component_appl_id            => l_component_appl_id
134031   , p_amb_context_code             => l_amb_context_code
134032   , p_side                         => 'NA'
134033   );
134034 
134035 
134036    --
134037    --
134038    END IF;
134039    --
134040    -- Bug 4922099
134041    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134042           (NVL(l_enc_upg_option, 'N') = 'O')
134043         ) AND
134044         (l_bflow_method_code = 'PRIOR_ENTRY')
134045       )
134049       1 = 2
134046    THEN
134047       IF
134048       --
134050       --
134051       THEN
134052       xla_accounting_err_pkg.build_message
134053                                     (p_appli_s_name            => 'XLA'
134054                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134055                                     ,p_token_1                 => 'LINE_NUMBER'
134056                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134057                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134058                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134059                                                                              l_component_type
134060                                                                             ,l_component_code
134061                                                                             ,l_component_type_code
134062                                                                             ,l_component_appl_id
134063                                                                             ,l_amb_context_code
134064                                                                             ,l_entity_code
134065                                                                             ,l_event_class_code
134066                                                                            )
134067                                     ,p_token_3                 => 'OWNER'
134068                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134069                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134070                                                                           ,p_lookup_code    => l_component_type_code
134071                                                                          )
134072                                     ,p_token_4                 => 'PRODUCT_NAME'
134073                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134074                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134075                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134076                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134077                                     ,p_ae_header_id            =>  NULL
134078                                        );
134079 
134080         IF (C_LEVEL_ERROR>= g_log_level) THEN
134081                  trace
134082                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134083                       ,p_level    => C_LEVEL_ERROR
134084                       ,p_module   => l_log_module);
134085         END IF;
134086       END IF;
134087    END IF;
134088    --
134089    --
134090    ------------------------------------------------------------------------------------------------
134091    -- 4219869 Business Flow
134092    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134093    -- Prior Entry.  Currently, the following code is always generated.
134094    ------------------------------------------------------------------------------------------------
134095    XLA_AE_LINES_PKG.ValidateCurrentLine;
134096 
134097    ------------------------------------------------------------------------------------
134098    -- 4219869 Business Flow
134099    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134100    ------------------------------------------------------------------------------------
134101    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134102 
134103    ----------------------------------------------------------------------------------
134104    -- 4219869 Business Flow
134105    -- Update journal entry status -- Need to generate this within IF <condition>
134106    ----------------------------------------------------------------------------------
134107    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134108          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134109          ,p_balance_type_code => l_balance_type_code
134110          );
134111 
134112    -------------------------------------------------------------------------------------------
134113    -- 4262811 - Generate the Accrual Reversal lines
134114    -------------------------------------------------------------------------------------------
134115    BEGIN
134116       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134117                               (g_array_event(p_event_id).array_value_num('header_index'));
134118       IF l_acc_rev_flag IS NULL THEN
134119          l_acc_rev_flag := 'N';
134120       END IF;
134121    EXCEPTION
134122       WHEN OTHERS THEN
134123          l_acc_rev_flag := 'N';
134124    END;
134125    --
134126    IF (l_acc_rev_flag = 'Y') THEN
134127 
134128        -- 4645092  ------------------------------------------------------------------------------
134129        -- To allow MPA report to determine if it should generate report process
134130        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134131        ------------------------------------------------------------------------------------------
134132 
134133        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134134        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134135    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134136    -- call ADRs
134137    -- Bug 4922099
134138    --
134142       )
134139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134140         (NVL(l_actual_upg_option, 'N') = 'O') OR
134141         (NVL(l_enc_upg_option, 'N') = 'O')
134143    THEN
134144    NULL;
134145    --
134146    --
134147    
134148   l_ccid := AcctDerRule_33(
134149            p_application_id           => p_application_id
134150          , p_ae_header_id             => l_ae_header_id 
134151 , p_source_30 => p_source_30
134152          , x_transaction_coa_id       => l_adr_transaction_coa_id
134153          , x_accounting_coa_id        => l_adr_accounting_coa_id
134154          , x_value_type_code          => l_adr_value_type_code
134155          , p_side                     => 'NA'
134156    );
134157 
134158    xla_ae_lines_pkg.set_ccid(
134159     p_code_combination_id          => l_ccid
134160   , p_value_type_code              => l_adr_value_type_code
134161   , p_transaction_coa_id           => l_adr_transaction_coa_id
134162   , p_accounting_coa_id            => l_adr_accounting_coa_id
134163   , p_adr_code                     => 'AP_INVOICE_DIST'
134164   , p_adr_type_code                => 'S'
134165   , p_component_type               => l_component_type
134166   , p_component_code               => l_component_code
134167   , p_component_type_code          => l_component_type_code
134168   , p_component_appl_id            => l_component_appl_id
134169   , p_amb_context_code             => l_amb_context_code
134170   , p_side                         => 'NA'
134171   );
134172 
134173 
134174    --
134175    --
134176    END IF;
134177 
134178        --
134179        -- Update the line information that should be overwritten
134180        --
134181        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134182                                          p_header_num   => 1);
134183        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134184 
134185        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134186 
134187        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134188           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134189        END IF;
134190 
134191       --
134192       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134193       --
134194       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134195           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134196       ELSE
134197           ---------------------------------------------------------------------------------------------------
134198           -- 4262811a Switch Sign
134199           ---------------------------------------------------------------------------------------------------
134200           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134201           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134202                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134203           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134204                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134205           -- 5132302
134206           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134207                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134208 
134209       END IF;
134210 
134211       -- 4955764
134212       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134213       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134214 
134215 
134216       XLA_AE_LINES_PKG.ValidateCurrentLine;
134217       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134218 
134219       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134220                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134221                ,p_balance_type_code => l_balance_type_code);
134222 
134223    END IF;
134224 
134225    -----------------------------------------------------------------------------------------
134226    -- 4262811 Multiperiod Accounting
134227    -----------------------------------------------------------------------------------------
134228      -- No MPA option is assigned.
134229 
134230 
134231 END IF;
134232 END IF;
134233 --
134234 
134235 --
134236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134237    trace
134238       (p_msg      => 'END of AcctLineType_213'
134239       ,p_level    => C_LEVEL_PROCEDURE
134240       ,p_module   => l_log_module);
134241 END IF;
134242 --
134243 EXCEPTION
134244   WHEN xla_exceptions_pkg.application_exception THEN
134245       RAISE;
134246   WHEN OTHERS THEN
134247        xla_exceptions_pkg.raise_message
134248            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_213');
134249 END AcctLineType_213;
134250 --
134251 
134252 ---------------------------------------
134253 --
134254 -- PRIVATE FUNCTION
134255 --         AcctLineType_214
134256 --
134257 ---------------------------------------
134258 PROCEDURE AcctLineType_214 (
134259   p_application_id        IN NUMBER
134260  ,p_event_id              IN NUMBER
134264  ,p_balance_type_code     OUT VARCHAR2
134261  ,p_calculate_acctd_flag  IN VARCHAR2
134262  ,p_calculate_g_l_flag    IN VARCHAR2
134263  ,p_actual_flag           IN OUT VARCHAR2
134265  ,p_gain_or_loss_ref      OUT VARCHAR2
134266  
134267 --Invoice Distribution Description
134268  , p_source_1            IN VARCHAR2
134269 --Invoice Distribution Ledger Amount
134270  , p_source_21            IN NUMBER
134271 --Invoice Distribution Account
134272  , p_source_30            IN NUMBER
134273 --Invoice Distribution Type
134274  , p_source_33            IN VARCHAR2
134275  , p_source_33_meaning    IN VARCHAR2
134276 --Accounting Reversal Indicator
134277  , p_source_52            IN VARCHAR2
134278 --Distribution Link Type
134279  , p_source_54            IN VARCHAR2
134280 --Allocation to Main Distribution Identifier
134281  , p_source_56            IN NUMBER
134282 --Invoice Identifier
134283  , p_source_57            IN NUMBER
134284 --Invoice Distribution Identifier
134285  , p_source_63            IN NUMBER
134286 --Payables Encumbrance Upgrade Credit Account
134287  , p_source_64            IN NUMBER
134288 --Payables Encumbrance Upgrade Credit Amount
134289  , p_source_65            IN NUMBER
134290 --Invoice Currency Code
134291  , p_source_66            IN VARCHAR2
134292 --Payables Encumbrance Upgrade Credit Base Amount
134293  , p_source_67            IN NUMBER
134294 --Payables Encumbrance Upgrade Debit Account
134295  , p_source_68            IN NUMBER
134296 --Payables Encumbrance Upgrade Debit Amount
134297  , p_source_69            IN NUMBER
134298 --Payables Encumbrance Upgrade Debit Base Amount
134299  , p_source_70            IN NUMBER
134300 --Payables Encumbrance Upgrade Option
134301  , p_source_71            IN VARCHAR2
134302 --Invoice Distribution Amount
134303  , p_source_72            IN NUMBER
134304 --Deferred Accounting End Date
134305  , p_source_76            IN DATE
134306 --Deferred Accounting Option
134307  , p_source_77            IN VARCHAR2
134308 --Deferred Accounting Start Date
134309  , p_source_78            IN DATE
134310 --Override Accounted Amount Indicator
134311  , p_source_79            IN VARCHAR2
134312  , p_source_79_meaning    IN VARCHAR2
134313 --Invoice Supplier Identifier
134314  , p_source_80            IN NUMBER
134315 --Invoice Supplier Site Identifier
134316  , p_source_81            IN NUMBER
134317 --Third Party Type
134318  , p_source_82            IN VARCHAR2
134319 --Parent Reversal Identifier
134320  , p_source_83            IN NUMBER
134321 --Invoice Distribution Statistical Amount
134322  , p_source_84            IN NUMBER
134323 --Invoice Distribution Tax Line Identifier
134324  , p_source_85            IN NUMBER
134325 --Invoice Distribution Tax Distribution Identifier from Tax
134326  , p_source_86            IN NUMBER
134327 --Invoice Distribution Summary Tax Line Identifier
134328  , p_source_87            IN NUMBER
134329 --Payables Upgrade Credit Encumbrance Type Identifier
134330  , p_source_88            IN NUMBER
134331 --Payables Upgrade Debit Encumbrance Type Identifier
134332  , p_source_89            IN NUMBER
134333 --Business Flow Accounts Payable Application Identifier
134334  , p_source_90            IN NUMBER
134335 --Business Flow Invoice Distribution Type
134336  , p_source_91            IN VARCHAR2
134337 --Business Flow Invoice Entity Code
134338  , p_source_92            IN VARCHAR2
134339 --Business Flow Invoice Distribution Identifier
134340  , p_source_93            IN NUMBER
134341 --Business Flow Invoice Identifier
134342  , p_source_94            IN NUMBER
134343 --Accrue on Receipt Option
134344  , p_source_95            IN VARCHAR2
134345  , p_source_95_meaning    IN VARCHAR2
134346 --Invoice Exchange Date
134347  , p_source_136            IN DATE
134348 --Invoice Exchange Rate
134349  , p_source_137            IN NUMBER
134350 --Invoice Exchange Rate Type
134351  , p_source_138            IN VARCHAR2
134352 )
134353 IS
134354 
134355 l_component_type              VARCHAR2(80);
134356 l_component_code              VARCHAR2(30);
134357 l_component_type_code         VARCHAR2(1);
134358 l_component_appl_id           INTEGER;
134359 l_amb_context_code            VARCHAR2(30);
134360 l_entity_code                 VARCHAR2(30);
134361 l_event_class_code            VARCHAR2(30);
134362 l_ae_header_id                NUMBER;
134363 l_event_type_code             VARCHAR2(30);
134364 l_line_definition_code        VARCHAR2(30);
134365 l_line_definition_owner_code  VARCHAR2(1);
134366 --
134367 -- adr variables
134368 l_segment                     VARCHAR2(30);
134369 l_ccid                        NUMBER;
134370 l_adr_transaction_coa_id      NUMBER;
134371 l_adr_accounting_coa_id       NUMBER;
134372 l_adr_flexfield_segment_code  VARCHAR2(30);
134373 l_adr_flex_value_set_id       NUMBER;
134374 l_adr_value_type_code         VARCHAR2(30);
134375 l_adr_value_combination_id    NUMBER;
134376 l_adr_value_segment_code      VARCHAR2(30);
134377 
134378 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
134379 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
134380 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
134381 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
134382 
134383 -- 4262811 Variables ------------------------------------------------------------------------------------------
134384 l_entered_amt_idx             NUMBER;
134385 l_accted_amt_idx              NUMBER;
134386 l_acc_rev_flag                VARCHAR2(1);
134390 
134387 l_accrual_line_num            NUMBER;
134388 l_tmp_amt                     NUMBER;
134389 l_acc_rev_natural_side_code   VARCHAR2(1);
134391 l_num_entries                 NUMBER;
134392 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
134393 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
134394 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
134395 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
134396 l_recog_line_1                NUMBER;
134397 l_recog_line_2                NUMBER;
134398 
134399 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
134400 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
134401 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
134402 
134403 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
134404 
134405 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
134406 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
134407 
134408 ---------------------------------------------------------------------------------------------------------------
134409 
134410 
134411 --
134412 -- bulk performance
134413 --
134414 l_balance_type_code           VARCHAR2(1);
134415 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
134416 l_log_module                  VARCHAR2(240);
134417 
134418 --
134419 -- Upgrade strategy
134420 --
134421 l_actual_upg_option           VARCHAR2(1);
134422 l_enc_upg_option           VARCHAR2(1);
134423 
134424 --
134425 BEGIN
134426 --
134427 IF g_log_enabled THEN
134428       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_214';
134429 END IF;
134430 --
134431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134432 
134433       trace
134434          (p_msg      => 'BEGIN of AcctLineType_214'
134435          ,p_level    => C_LEVEL_PROCEDURE
134436          ,p_module   => l_log_module);
134437 
134438 END IF;
134439 --
134440 l_component_type             := 'AMB_JLT';
134441 l_component_code             := 'AP_TAX_INV_PRICE_VAR_INV';
134442 l_component_type_code        := 'S';
134443 l_component_appl_id          :=  200;
134444 l_amb_context_code           := 'DEFAULT';
134445 l_entity_code                := 'AP_INVOICES';
134446 l_event_class_code           := 'INVOICES';
134447 l_event_type_code            := 'INVOICES_ALL';
134448 l_line_definition_owner_code := 'S';
134449 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
134450 --
134451 l_balance_type_code          := 'A';
134452 l_segment                     := NULL;
134453 l_ccid                        := NULL;
134454 l_adr_transaction_coa_id      := NULL;
134455 l_adr_accounting_coa_id       := NULL;
134456 l_adr_flexfield_segment_code  := NULL;
134457 l_adr_flex_value_set_id       := NULL;
134458 l_adr_value_type_code         := NULL;
134459 l_adr_value_combination_id    := NULL;
134460 l_adr_value_segment_code      := NULL;
134461 
134462 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
134463 l_bflow_class_code           := '';    -- 4219869 Business Flow
134464 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
134465 l_budgetary_control_flag     := 'N';
134466 
134467 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
134468 l_bflow_applied_to_amt       := NULL; -- 5132302
134469 l_entered_amt_idx            := NULL;          -- 4262811
134470 l_accted_amt_idx             := NULL;          -- 4262811
134471 l_acc_rev_flag               := NULL;          -- 4262811
134472 l_accrual_line_num           := NULL;          -- 4262811
134473 l_tmp_amt                    := NULL;          -- 4262811
134474 --
134475  
134476 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
134477     l_balance_type_code <> 'B' THEN
134478 IF NVL(p_source_33,'
134479 ') =  'TIPV' AND 
134480 NVL(p_source_95,'
134481 ') =  'Y'
134482  THEN 
134483 
134484    --
134485    XLA_AE_LINES_PKG.SetNewLine;
134486 
134487    p_balance_type_code          := l_balance_type_code;
134488    -- set the flag so later we will know whether the gain loss line needs to be created
134489    
134490    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
134491      p_actual_flag :='A';
134492    END IF;
134493 
134494    --
134495    -- bulk performance
134496    --
134497    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
134498                                       p_header_num   => 0); -- 4262811
134499    --
134500    -- set accounting line options
134501    --
134502    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
134503            p_natural_side_code          => 'D'
134504          , p_gain_or_loss_flag          => 'N'
134505          , p_gl_transfer_mode_code      => 'S'
134506          , p_acct_entry_type_code       => 'A'
134507          , p_switch_side_flag           => 'Y'
134508          , p_merge_duplicate_code       => 'A'
134509          );
134510    --
134511    l_acc_rev_natural_side_code := 'C';  -- 4262811
134512    -- 
134513    --
134514    -- set accounting line type info
134515    --
134516    xla_ae_lines_pkg.SetAcctLineType
134517       (p_component_type             => l_component_type
134518       ,p_event_type_code            => l_event_type_code
134522       ,p_accounting_line_type_code  => l_component_type_code
134519       ,p_line_definition_owner_code => l_line_definition_owner_code
134520       ,p_line_definition_code       => l_line_definition_code
134521       ,p_accounting_line_code       => l_component_code
134523       ,p_accounting_line_appl_id    => l_component_appl_id
134524       ,p_amb_context_code           => l_amb_context_code
134525       ,p_entity_code                => l_entity_code
134526       ,p_event_class_code           => l_event_class_code);
134527    --
134528    -- set accounting class
134529    --
134530    xla_ae_lines_pkg.SetAcctClass(
134531            p_accounting_class_code  => 'TIPV'
134532          , p_ae_header_id           => l_ae_header_id
134533          );
134534 
134535    --
134536    -- set rounding class
134537    --
134538    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
134539                       'TIPV';
134540 
134541    --
134542    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
134543    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
134544    --
134545    -- bulk performance
134546    --
134547    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
134548 
134549    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
134550       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
134551 
134552    -- 4955764
134553    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134554       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
134555 
134556    -- 4458381 Public Sector Enh
134557    
134558    --
134559    -- set accounting attributes for the line type
134560    --
134561    l_entered_amt_idx := 24;
134562    l_accted_amt_idx  := 29;
134563    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
134564    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
134565    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
134566    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
134567    l_rec_acct_attrs.array_num_value(2)  := 
134568 xla_ae_sources_pkg.GetSystemSourceNum(
134569    p_source_code           => 'XLA_EVENT_APPL_ID'
134570  , p_source_type_code      => 'Y'
134571  , p_source_application_id =>  602
134572 );
134573    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
134574    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
134575    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
134576    l_rec_acct_attrs.array_char_value(4)  := 
134577 xla_ae_sources_pkg.GetSystemSourceChar(
134578    p_source_code           => 'XLA_ENTITY_CODE'
134579  , p_source_type_code      => 'Y'
134580  , p_source_application_id =>  602
134581 );
134582    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
134583    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
134584    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
134585    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
134586    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
134587    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
134588    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
134589    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
134590    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
134591    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
134592    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
134593    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
134594    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
134595    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
134596    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
134597    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
134598    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
134599    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
134600    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
134601    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
134602    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
134603    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
134604    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
134605    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
134606    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
134607    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
134608    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
134609    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
134610    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
134611    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
134612    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
134613    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
134614    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
134615    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
134616    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
134617    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
134618    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
134619    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
134620    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
134621    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
134625    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
134622    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
134623    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
134624    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
134626    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
134627    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
134628    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
134629    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
134630    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
134631    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
134632    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
134633    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
134634    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
134635    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
134636    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
134637    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
134638    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
134639    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
134640    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
134641    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
134642    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
134643    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
134644    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
134645    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
134646    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
134647    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
134648    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
134649    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
134650    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
134651    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
134652    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
134653    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
134654    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
134655    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
134656    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
134657    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
134658    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
134659    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
134660    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
134661    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
134662 
134663    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134664    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134665 
134666    ---------------------------------------------------------------------------------------------------------------
134667    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134668    ---------------------------------------------------------------------------------------------------------------
134669    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134670 
134671    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134672    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134673 
134674    IF xla_accounting_cache_pkg.GetValueChar
134675          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134676          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134677    AND l_bflow_method_code = 'PRIOR_ENTRY'
134678 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134679    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134680          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134681        )
134682    THEN
134683          xla_ae_lines_pkg.BflowUpgEntry
134684            (p_business_method_code    => l_bflow_method_code
134685            ,p_business_class_code     => l_bflow_class_code
134686            ,p_balance_type            => l_balance_type_code);
134687    ELSE
134688       NULL;
134689 -- No business flow processing for business flow method of NONE.
134690    END IF;
134691 
134692    --
134693    -- call analytical criteria
134694    --
134695    
134696    --
134697    -- call description
134698    --
134699    
134700 xla_ae_lines_pkg.SetLineDescription(
134701    p_ae_header_id => l_ae_header_id
134702   ,p_description  => Description_1 (
134703      p_application_id         => p_application_id
134704    , p_ae_header_id           => l_ae_header_id 
134705 , p_source_1 => p_source_1
134706    )
134707 );
134708 
134709 
134710    --
134711    -- call ADRs
134712    -- Bug 4922099
134713    --
134714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134715         (NVL(l_actual_upg_option, 'N') = 'O') OR
134716         (NVL(l_enc_upg_option, 'N') = 'O')
134717       )
134718    THEN
134719    NULL;
134720    --
134721    --
134722    
134723   l_ccid := AcctDerRule_33(
134724            p_application_id           => p_application_id
134725          , p_ae_header_id             => l_ae_header_id 
134726 , p_source_30 => p_source_30
134727          , x_transaction_coa_id       => l_adr_transaction_coa_id
134728          , x_accounting_coa_id        => l_adr_accounting_coa_id
134732 
134729          , x_value_type_code          => l_adr_value_type_code
134730          , p_side                     => 'NA'
134731    );
134733    xla_ae_lines_pkg.set_ccid(
134734     p_code_combination_id          => l_ccid
134735   , p_value_type_code              => l_adr_value_type_code
134736   , p_transaction_coa_id           => l_adr_transaction_coa_id
134737   , p_accounting_coa_id            => l_adr_accounting_coa_id
134738   , p_adr_code                     => 'AP_INVOICE_DIST'
134739   , p_adr_type_code                => 'S'
134740   , p_component_type               => l_component_type
134741   , p_component_code               => l_component_code
134742   , p_component_type_code          => l_component_type_code
134743   , p_component_appl_id            => l_component_appl_id
134744   , p_amb_context_code             => l_amb_context_code
134745   , p_side                         => 'NA'
134746   );
134747 
134748 
134749    --
134750    --
134751    END IF;
134752    --
134753    -- Bug 4922099
134754    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134755           (NVL(l_enc_upg_option, 'N') = 'O')
134756         ) AND
134757         (l_bflow_method_code = 'PRIOR_ENTRY')
134758       )
134759    THEN
134760       IF
134761       --
134762       1 = 2
134763       --
134764       THEN
134765       xla_accounting_err_pkg.build_message
134766                                     (p_appli_s_name            => 'XLA'
134767                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134768                                     ,p_token_1                 => 'LINE_NUMBER'
134769                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134770                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134771                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134772                                                                              l_component_type
134773                                                                             ,l_component_code
134774                                                                             ,l_component_type_code
134775                                                                             ,l_component_appl_id
134776                                                                             ,l_amb_context_code
134777                                                                             ,l_entity_code
134778                                                                             ,l_event_class_code
134779                                                                            )
134780                                     ,p_token_3                 => 'OWNER'
134781                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134782                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134783                                                                           ,p_lookup_code    => l_component_type_code
134784                                                                          )
134785                                     ,p_token_4                 => 'PRODUCT_NAME'
134786                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134787                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134788                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134789                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134790                                     ,p_ae_header_id            =>  NULL
134791                                        );
134792 
134793         IF (C_LEVEL_ERROR>= g_log_level) THEN
134794                  trace
134795                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134796                       ,p_level    => C_LEVEL_ERROR
134797                       ,p_module   => l_log_module);
134798         END IF;
134799       END IF;
134800    END IF;
134801    --
134802    --
134803    ------------------------------------------------------------------------------------------------
134804    -- 4219869 Business Flow
134805    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134806    -- Prior Entry.  Currently, the following code is always generated.
134807    ------------------------------------------------------------------------------------------------
134808    XLA_AE_LINES_PKG.ValidateCurrentLine;
134809 
134810    ------------------------------------------------------------------------------------
134811    -- 4219869 Business Flow
134812    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134813    ------------------------------------------------------------------------------------
134814    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134815 
134816    ----------------------------------------------------------------------------------
134817    -- 4219869 Business Flow
134818    -- Update journal entry status -- Need to generate this within IF <condition>
134819    ----------------------------------------------------------------------------------
134820    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134821          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134822          ,p_balance_type_code => l_balance_type_code
134823          );
134824 
134825    -------------------------------------------------------------------------------------------
134829       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134826    -- 4262811 - Generate the Accrual Reversal lines
134827    -------------------------------------------------------------------------------------------
134828    BEGIN
134830                               (g_array_event(p_event_id).array_value_num('header_index'));
134831       IF l_acc_rev_flag IS NULL THEN
134832          l_acc_rev_flag := 'N';
134833       END IF;
134834    EXCEPTION
134835       WHEN OTHERS THEN
134836          l_acc_rev_flag := 'N';
134837    END;
134838    --
134839    IF (l_acc_rev_flag = 'Y') THEN
134840 
134841        -- 4645092  ------------------------------------------------------------------------------
134842        -- To allow MPA report to determine if it should generate report process
134843        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134844        ------------------------------------------------------------------------------------------
134845 
134846        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134847        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134848    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134849    -- call ADRs
134850    -- Bug 4922099
134851    --
134852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134853         (NVL(l_actual_upg_option, 'N') = 'O') OR
134854         (NVL(l_enc_upg_option, 'N') = 'O')
134855       )
134856    THEN
134857    NULL;
134858    --
134859    --
134860    
134861   l_ccid := AcctDerRule_33(
134862            p_application_id           => p_application_id
134863          , p_ae_header_id             => l_ae_header_id 
134864 , p_source_30 => p_source_30
134865          , x_transaction_coa_id       => l_adr_transaction_coa_id
134866          , x_accounting_coa_id        => l_adr_accounting_coa_id
134867          , x_value_type_code          => l_adr_value_type_code
134868          , p_side                     => 'NA'
134869    );
134870 
134871    xla_ae_lines_pkg.set_ccid(
134872     p_code_combination_id          => l_ccid
134873   , p_value_type_code              => l_adr_value_type_code
134874   , p_transaction_coa_id           => l_adr_transaction_coa_id
134875   , p_accounting_coa_id            => l_adr_accounting_coa_id
134876   , p_adr_code                     => 'AP_INVOICE_DIST'
134877   , p_adr_type_code                => 'S'
134878   , p_component_type               => l_component_type
134879   , p_component_code               => l_component_code
134880   , p_component_type_code          => l_component_type_code
134881   , p_component_appl_id            => l_component_appl_id
134882   , p_amb_context_code             => l_amb_context_code
134883   , p_side                         => 'NA'
134884   );
134885 
134886 
134887    --
134888    --
134889    END IF;
134890 
134891        --
134892        -- Update the line information that should be overwritten
134893        --
134894        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134895                                          p_header_num   => 1);
134896        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134897 
134898        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134899 
134900        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134901           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134902        END IF;
134903 
134904       --
134905       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134906       --
134907       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134908           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134909       ELSE
134910           ---------------------------------------------------------------------------------------------------
134911           -- 4262811a Switch Sign
134912           ---------------------------------------------------------------------------------------------------
134913           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134914           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134915                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134916           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134917                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134918           -- 5132302
134919           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134920                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134921 
134922       END IF;
134923 
134924       -- 4955764
134925       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134926       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134927 
134928 
134929       XLA_AE_LINES_PKG.ValidateCurrentLine;
134930       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134931 
134932       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134933                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134934                ,p_balance_type_code => l_balance_type_code);
134935 
134936    END IF;
134937 
134938    -----------------------------------------------------------------------------------------
134942 
134939    -- 4262811 Multiperiod Accounting
134940    -----------------------------------------------------------------------------------------
134941      -- No MPA option is assigned.
134943 
134944 END IF;
134945 END IF;
134946 --
134947 
134948 --
134949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134950    trace
134951       (p_msg      => 'END of AcctLineType_214'
134952       ,p_level    => C_LEVEL_PROCEDURE
134953       ,p_module   => l_log_module);
134954 END IF;
134955 --
134956 EXCEPTION
134957   WHEN xla_exceptions_pkg.application_exception THEN
134958       RAISE;
134959   WHEN OTHERS THEN
134960        xla_exceptions_pkg.raise_message
134961            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_214');
134962 END AcctLineType_214;
134963 --
134964 
134965 ---------------------------------------
134966 --
134967 -- PRIVATE FUNCTION
134968 --         AcctLineType_215
134969 --
134970 ---------------------------------------
134971 PROCEDURE AcctLineType_215 (
134972   p_application_id        IN NUMBER
134973  ,p_event_id              IN NUMBER
134974  ,p_calculate_acctd_flag  IN VARCHAR2
134975  ,p_calculate_g_l_flag    IN VARCHAR2
134976  ,p_actual_flag           IN OUT VARCHAR2
134977  ,p_balance_type_code     OUT VARCHAR2
134978  ,p_gain_or_loss_ref      OUT VARCHAR2
134979  
134980 --Invoice Distribution Description
134981  , p_source_1            IN VARCHAR2
134982 --Invoice Distribution Ledger Amount
134983  , p_source_21            IN NUMBER
134984 --Invoice Distribution Account
134985  , p_source_30            IN NUMBER
134986 --Invoice Distribution Type
134987  , p_source_33            IN VARCHAR2
134988  , p_source_33_meaning    IN VARCHAR2
134989 --Accounting Reversal Indicator
134990  , p_source_52            IN VARCHAR2
134991 --Distribution Link Type
134992  , p_source_54            IN VARCHAR2
134993 --Allocation to Main Distribution Identifier
134994  , p_source_56            IN NUMBER
134995 --Invoice Identifier
134996  , p_source_57            IN NUMBER
134997 --Invoice Distribution Identifier
134998  , p_source_63            IN NUMBER
134999 --Payables Encumbrance Upgrade Credit Account
135000  , p_source_64            IN NUMBER
135001 --Payables Encumbrance Upgrade Credit Amount
135002  , p_source_65            IN NUMBER
135003 --Invoice Currency Code
135004  , p_source_66            IN VARCHAR2
135005 --Payables Encumbrance Upgrade Credit Base Amount
135006  , p_source_67            IN NUMBER
135007 --Payables Encumbrance Upgrade Debit Account
135008  , p_source_68            IN NUMBER
135009 --Payables Encumbrance Upgrade Debit Amount
135010  , p_source_69            IN NUMBER
135011 --Payables Encumbrance Upgrade Debit Base Amount
135012  , p_source_70            IN NUMBER
135013 --Payables Encumbrance Upgrade Option
135014  , p_source_71            IN VARCHAR2
135015 --Invoice Distribution Amount
135016  , p_source_72            IN NUMBER
135017 --Deferred Accounting End Date
135018  , p_source_76            IN DATE
135019 --Deferred Accounting Option
135020  , p_source_77            IN VARCHAR2
135021 --Deferred Accounting Start Date
135022  , p_source_78            IN DATE
135023 --Override Accounted Amount Indicator
135024  , p_source_79            IN VARCHAR2
135025  , p_source_79_meaning    IN VARCHAR2
135026 --Invoice Supplier Identifier
135027  , p_source_80            IN NUMBER
135028 --Invoice Supplier Site Identifier
135029  , p_source_81            IN NUMBER
135030 --Third Party Type
135031  , p_source_82            IN VARCHAR2
135032 --Parent Reversal Identifier
135033  , p_source_83            IN NUMBER
135034 --Invoice Distribution Statistical Amount
135035  , p_source_84            IN NUMBER
135036 --Invoice Distribution Tax Line Identifier
135037  , p_source_85            IN NUMBER
135038 --Invoice Distribution Tax Distribution Identifier from Tax
135039  , p_source_86            IN NUMBER
135040 --Invoice Distribution Summary Tax Line Identifier
135041  , p_source_87            IN NUMBER
135042 --Payables Upgrade Credit Encumbrance Type Identifier
135043  , p_source_88            IN NUMBER
135044 --Payables Upgrade Debit Encumbrance Type Identifier
135045  , p_source_89            IN NUMBER
135046 --Business Flow Accounts Payable Application Identifier
135047  , p_source_90            IN NUMBER
135048 --Business Flow Invoice Distribution Type
135049  , p_source_91            IN VARCHAR2
135050 --Business Flow Invoice Entity Code
135051  , p_source_92            IN VARCHAR2
135052 --Business Flow Invoice Distribution Identifier
135053  , p_source_93            IN NUMBER
135054 --Business Flow Invoice Identifier
135055  , p_source_94            IN NUMBER
135056 --Accrue on Receipt Option
135057  , p_source_95            IN VARCHAR2
135058  , p_source_95_meaning    IN VARCHAR2
135059 --Invoice Exchange Date
135060  , p_source_136            IN DATE
135061 --Invoice Exchange Rate
135062  , p_source_137            IN NUMBER
135063 --Invoice Exchange Rate Type
135064  , p_source_138            IN VARCHAR2
135065 )
135066 IS
135067 
135068 l_component_type              VARCHAR2(80);
135069 l_component_code              VARCHAR2(30);
135070 l_component_type_code         VARCHAR2(1);
135071 l_component_appl_id           INTEGER;
135072 l_amb_context_code            VARCHAR2(30);
135073 l_entity_code                 VARCHAR2(30);
135074 l_event_class_code            VARCHAR2(30);
135075 l_ae_header_id                NUMBER;
135079 --
135076 l_event_type_code             VARCHAR2(30);
135077 l_line_definition_code        VARCHAR2(30);
135078 l_line_definition_owner_code  VARCHAR2(1);
135080 -- adr variables
135081 l_segment                     VARCHAR2(30);
135082 l_ccid                        NUMBER;
135083 l_adr_transaction_coa_id      NUMBER;
135084 l_adr_accounting_coa_id       NUMBER;
135085 l_adr_flexfield_segment_code  VARCHAR2(30);
135086 l_adr_flex_value_set_id       NUMBER;
135087 l_adr_value_type_code         VARCHAR2(30);
135088 l_adr_value_combination_id    NUMBER;
135089 l_adr_value_segment_code      VARCHAR2(30);
135090 
135091 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135092 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135093 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135094 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135095 
135096 -- 4262811 Variables ------------------------------------------------------------------------------------------
135097 l_entered_amt_idx             NUMBER;
135098 l_accted_amt_idx              NUMBER;
135099 l_acc_rev_flag                VARCHAR2(1);
135100 l_accrual_line_num            NUMBER;
135101 l_tmp_amt                     NUMBER;
135102 l_acc_rev_natural_side_code   VARCHAR2(1);
135103 
135104 l_num_entries                 NUMBER;
135105 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135106 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135107 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135108 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135109 l_recog_line_1                NUMBER;
135110 l_recog_line_2                NUMBER;
135111 
135112 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135113 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135114 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135115 
135116 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135117 
135118 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135119 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135120 
135121 ---------------------------------------------------------------------------------------------------------------
135122 
135123 
135124 --
135125 -- bulk performance
135126 --
135127 l_balance_type_code           VARCHAR2(1);
135128 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135129 l_log_module                  VARCHAR2(240);
135130 
135131 --
135132 -- Upgrade strategy
135133 --
135134 l_actual_upg_option           VARCHAR2(1);
135135 l_enc_upg_option           VARCHAR2(1);
135136 
135137 --
135138 BEGIN
135139 --
135140 IF g_log_enabled THEN
135141       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_215';
135142 END IF;
135143 --
135144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135145 
135146       trace
135147          (p_msg      => 'BEGIN of AcctLineType_215'
135148          ,p_level    => C_LEVEL_PROCEDURE
135149          ,p_module   => l_log_module);
135150 
135151 END IF;
135152 --
135153 l_component_type             := 'AMB_JLT';
135154 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PREPAY';
135155 l_component_type_code        := 'S';
135156 l_component_appl_id          :=  200;
135157 l_amb_context_code           := 'DEFAULT';
135158 l_entity_code                := 'AP_INVOICES';
135159 l_event_class_code           := 'PREPAYMENTS';
135160 l_event_type_code            := 'PREPAYMENTS_ALL';
135161 l_line_definition_owner_code := 'S';
135162 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
135163 --
135164 l_balance_type_code          := 'A';
135165 l_segment                     := NULL;
135166 l_ccid                        := NULL;
135167 l_adr_transaction_coa_id      := NULL;
135168 l_adr_accounting_coa_id       := NULL;
135169 l_adr_flexfield_segment_code  := NULL;
135170 l_adr_flex_value_set_id       := NULL;
135171 l_adr_value_type_code         := NULL;
135172 l_adr_value_combination_id    := NULL;
135173 l_adr_value_segment_code      := NULL;
135174 
135175 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
135176 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
135177 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135178 l_budgetary_control_flag     := 'N';
135179 
135180 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135181 l_bflow_applied_to_amt       := NULL; -- 5132302
135182 l_entered_amt_idx            := NULL;          -- 4262811
135183 l_accted_amt_idx             := NULL;          -- 4262811
135184 l_acc_rev_flag               := NULL;          -- 4262811
135185 l_accrual_line_num           := NULL;          -- 4262811
135186 l_tmp_amt                    := NULL;          -- 4262811
135187 --
135188  
135189 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135190     l_balance_type_code <> 'B' THEN
135191 IF NVL(p_source_33,'
135192 ') =  'TIPV' AND 
135193 NVL(p_source_95,'
135194 ') =  'Y'
135195  THEN 
135196 
135197    --
135198    XLA_AE_LINES_PKG.SetNewLine;
135199 
135200    p_balance_type_code          := l_balance_type_code;
135201    -- set the flag so later we will know whether the gain loss line needs to be created
135202    
135206 
135203    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135204      p_actual_flag :='A';
135205    END IF;
135207    --
135208    -- bulk performance
135209    --
135210    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135211                                       p_header_num   => 0); -- 4262811
135212    --
135213    -- set accounting line options
135214    --
135215    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135216            p_natural_side_code          => 'D'
135217          , p_gain_or_loss_flag          => 'N'
135218          , p_gl_transfer_mode_code      => 'S'
135219          , p_acct_entry_type_code       => 'A'
135220          , p_switch_side_flag           => 'Y'
135221          , p_merge_duplicate_code       => 'A'
135222          );
135223    --
135224    l_acc_rev_natural_side_code := 'C';  -- 4262811
135225    -- 
135226    --
135227    -- set accounting line type info
135228    --
135229    xla_ae_lines_pkg.SetAcctLineType
135230       (p_component_type             => l_component_type
135231       ,p_event_type_code            => l_event_type_code
135232       ,p_line_definition_owner_code => l_line_definition_owner_code
135233       ,p_line_definition_code       => l_line_definition_code
135234       ,p_accounting_line_code       => l_component_code
135235       ,p_accounting_line_type_code  => l_component_type_code
135236       ,p_accounting_line_appl_id    => l_component_appl_id
135237       ,p_amb_context_code           => l_amb_context_code
135238       ,p_entity_code                => l_entity_code
135239       ,p_event_class_code           => l_event_class_code);
135240    --
135241    -- set accounting class
135242    --
135243    xla_ae_lines_pkg.SetAcctClass(
135244            p_accounting_class_code  => 'TIPV'
135245          , p_ae_header_id           => l_ae_header_id
135246          );
135247 
135248    --
135249    -- set rounding class
135250    --
135251    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135252                       'TIPV';
135253 
135254    --
135255    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135256    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135257    --
135258    -- bulk performance
135259    --
135260    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135261 
135262    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135263       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135264 
135265    -- 4955764
135266    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135268 
135269    -- 4458381 Public Sector Enh
135270    
135271    --
135272    -- set accounting attributes for the line type
135273    --
135274    l_entered_amt_idx := 23;
135275    l_accted_amt_idx  := 28;
135276    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
135277    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135278    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
135279    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135280    l_rec_acct_attrs.array_num_value(2)  := 
135281 xla_ae_sources_pkg.GetSystemSourceNum(
135282    p_source_code           => 'XLA_EVENT_APPL_ID'
135283  , p_source_type_code      => 'Y'
135284  , p_source_application_id =>  602
135285 );
135286    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135287    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
135288    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135289    l_rec_acct_attrs.array_char_value(4)  := 
135290 xla_ae_sources_pkg.GetSystemSourceChar(
135291    p_source_code           => 'XLA_ENTITY_CODE'
135292  , p_source_type_code      => 'Y'
135293  , p_source_application_id =>  602
135294 );
135295    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135296    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
135297    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135298    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
135299    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
135300    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
135301    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135302    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
135303    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
135304    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
135305    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
135306    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
135307    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135308    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
135309    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
135310    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
135311    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
135312    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
135313    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
135314    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
135315    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
135319    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
135316    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
135317    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
135318    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
135320    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
135321    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
135322    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
135323    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
135324    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
135325    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
135326    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
135327    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
135328    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
135329    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
135330    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
135331    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
135332    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
135333    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
135334    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
135335    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
135336    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
135337    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
135338    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
135339    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
135340    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
135341    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
135342    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
135343    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
135344    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
135345    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
135346    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
135347    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
135348    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
135349    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
135350    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
135351    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
135352    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
135353    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
135354    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
135355    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
135356    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
135357    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
135358    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
135359    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
135360    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
135361    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
135362    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
135363    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
135364    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
135365    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
135366    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
135367    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
135368    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
135369    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
135370    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
135371    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
135372    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
135373 
135374    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
135375    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
135376 
135377    ---------------------------------------------------------------------------------------------------------------
135378    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
135379    ---------------------------------------------------------------------------------------------------------------
135380    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
135381 
135382    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135383    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135384 
135385    IF xla_accounting_cache_pkg.GetValueChar
135386          (p_source_code         => 'LEDGER_CATEGORY_CODE'
135387          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
135388    AND l_bflow_method_code = 'PRIOR_ENTRY'
135389 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
135390    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
135391          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
135392        )
135393    THEN
135394          xla_ae_lines_pkg.BflowUpgEntry
135395            (p_business_method_code    => l_bflow_method_code
135396            ,p_business_class_code     => l_bflow_class_code
135397            ,p_balance_type            => l_balance_type_code);
135398    ELSE
135399       NULL;
135400 -- No business flow processing for business flow method of NONE.
135401    END IF;
135402 
135403    --
135404    -- call analytical criteria
135405    --
135406    
135407    --
135408    -- call description
135409    --
135413   ,p_description  => Description_1 (
135410    
135411 xla_ae_lines_pkg.SetLineDescription(
135412    p_ae_header_id => l_ae_header_id
135414      p_application_id         => p_application_id
135415    , p_ae_header_id           => l_ae_header_id 
135416 , p_source_1 => p_source_1
135417    )
135418 );
135419 
135420 
135421    --
135422    -- call ADRs
135423    -- Bug 4922099
135424    --
135425    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135426         (NVL(l_actual_upg_option, 'N') = 'O') OR
135427         (NVL(l_enc_upg_option, 'N') = 'O')
135428       )
135429    THEN
135430    NULL;
135431    --
135432    --
135433    
135434   l_ccid := AcctDerRule_33(
135435            p_application_id           => p_application_id
135436          , p_ae_header_id             => l_ae_header_id 
135437 , p_source_30 => p_source_30
135438          , x_transaction_coa_id       => l_adr_transaction_coa_id
135439          , x_accounting_coa_id        => l_adr_accounting_coa_id
135440          , x_value_type_code          => l_adr_value_type_code
135441          , p_side                     => 'NA'
135442    );
135443 
135444    xla_ae_lines_pkg.set_ccid(
135445     p_code_combination_id          => l_ccid
135446   , p_value_type_code              => l_adr_value_type_code
135447   , p_transaction_coa_id           => l_adr_transaction_coa_id
135448   , p_accounting_coa_id            => l_adr_accounting_coa_id
135449   , p_adr_code                     => 'AP_INVOICE_DIST'
135450   , p_adr_type_code                => 'S'
135451   , p_component_type               => l_component_type
135452   , p_component_code               => l_component_code
135453   , p_component_type_code          => l_component_type_code
135454   , p_component_appl_id            => l_component_appl_id
135455   , p_amb_context_code             => l_amb_context_code
135456   , p_side                         => 'NA'
135457   );
135458 
135459 
135460    --
135461    --
135462    END IF;
135463    --
135464    -- Bug 4922099
135465    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
135466           (NVL(l_enc_upg_option, 'N') = 'O')
135467         ) AND
135468         (l_bflow_method_code = 'PRIOR_ENTRY')
135469       )
135470    THEN
135471       IF
135472       --
135473       1 = 2
135474       --
135475       THEN
135476       xla_accounting_err_pkg.build_message
135477                                     (p_appli_s_name            => 'XLA'
135478                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135479                                     ,p_token_1                 => 'LINE_NUMBER'
135480                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
135481                                     ,p_token_2                 => 'LINE_TYPE_NAME'
135482                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
135483                                                                              l_component_type
135484                                                                             ,l_component_code
135485                                                                             ,l_component_type_code
135486                                                                             ,l_component_appl_id
135487                                                                             ,l_amb_context_code
135488                                                                             ,l_entity_code
135489                                                                             ,l_event_class_code
135490                                                                            )
135491                                     ,p_token_3                 => 'OWNER'
135492                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
135493                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
135494                                                                           ,p_lookup_code    => l_component_type_code
135495                                                                          )
135496                                     ,p_token_4                 => 'PRODUCT_NAME'
135497                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
135498                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
135499                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
135500                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
135501                                     ,p_ae_header_id            =>  NULL
135502                                        );
135503 
135504         IF (C_LEVEL_ERROR>= g_log_level) THEN
135505                  trace
135506                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135507                       ,p_level    => C_LEVEL_ERROR
135508                       ,p_module   => l_log_module);
135509         END IF;
135510       END IF;
135511    END IF;
135512    --
135513    --
135514    ------------------------------------------------------------------------------------------------
135515    -- 4219869 Business Flow
135516    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
135517    -- Prior Entry.  Currently, the following code is always generated.
135518    ------------------------------------------------------------------------------------------------
135522    -- 4219869 Business Flow
135519    XLA_AE_LINES_PKG.ValidateCurrentLine;
135520 
135521    ------------------------------------------------------------------------------------
135523    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
135524    ------------------------------------------------------------------------------------
135525    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135526 
135527    ----------------------------------------------------------------------------------
135528    -- 4219869 Business Flow
135529    -- Update journal entry status -- Need to generate this within IF <condition>
135530    ----------------------------------------------------------------------------------
135531    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135532          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
135533          ,p_balance_type_code => l_balance_type_code
135534          );
135535 
135536    -------------------------------------------------------------------------------------------
135537    -- 4262811 - Generate the Accrual Reversal lines
135538    -------------------------------------------------------------------------------------------
135539    BEGIN
135540       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
135541                               (g_array_event(p_event_id).array_value_num('header_index'));
135542       IF l_acc_rev_flag IS NULL THEN
135543          l_acc_rev_flag := 'N';
135544       END IF;
135545    EXCEPTION
135546       WHEN OTHERS THEN
135547          l_acc_rev_flag := 'N';
135548    END;
135549    --
135550    IF (l_acc_rev_flag = 'Y') THEN
135551 
135552        -- 4645092  ------------------------------------------------------------------------------
135553        -- To allow MPA report to determine if it should generate report process
135554        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
135555        ------------------------------------------------------------------------------------------
135556 
135557        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
135558        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
135559    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
135560    -- call ADRs
135561    -- Bug 4922099
135562    --
135563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135564         (NVL(l_actual_upg_option, 'N') = 'O') OR
135565         (NVL(l_enc_upg_option, 'N') = 'O')
135566       )
135567    THEN
135568    NULL;
135569    --
135570    --
135571    
135572   l_ccid := AcctDerRule_33(
135573            p_application_id           => p_application_id
135574          , p_ae_header_id             => l_ae_header_id 
135575 , p_source_30 => p_source_30
135576          , x_transaction_coa_id       => l_adr_transaction_coa_id
135577          , x_accounting_coa_id        => l_adr_accounting_coa_id
135578          , x_value_type_code          => l_adr_value_type_code
135579          , p_side                     => 'NA'
135580    );
135581 
135582    xla_ae_lines_pkg.set_ccid(
135583     p_code_combination_id          => l_ccid
135584   , p_value_type_code              => l_adr_value_type_code
135585   , p_transaction_coa_id           => l_adr_transaction_coa_id
135586   , p_accounting_coa_id            => l_adr_accounting_coa_id
135587   , p_adr_code                     => 'AP_INVOICE_DIST'
135588   , p_adr_type_code                => 'S'
135589   , p_component_type               => l_component_type
135590   , p_component_code               => l_component_code
135591   , p_component_type_code          => l_component_type_code
135592   , p_component_appl_id            => l_component_appl_id
135593   , p_amb_context_code             => l_amb_context_code
135594   , p_side                         => 'NA'
135595   );
135596 
135597 
135598    --
135599    --
135600    END IF;
135601 
135602        --
135603        -- Update the line information that should be overwritten
135604        --
135605        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
135606                                          p_header_num   => 1);
135607        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
135608 
135609        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
135610 
135611        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
135612           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
135613        END IF;
135614 
135615       --
135616       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
135617       --
135618       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
135619           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
135620       ELSE
135621           ---------------------------------------------------------------------------------------------------
135622           -- 4262811a Switch Sign
135623           ---------------------------------------------------------------------------------------------------
135624           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
135625           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135626                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135627           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135631                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135628                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135629           -- 5132302
135630           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
135632 
135633       END IF;
135634 
135635       -- 4955764
135636       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135637       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
135638 
135639 
135640       XLA_AE_LINES_PKG.ValidateCurrentLine;
135641       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135642 
135643       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135644                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
135645                ,p_balance_type_code => l_balance_type_code);
135646 
135647    END IF;
135648 
135649    -----------------------------------------------------------------------------------------
135650    -- 4262811 Multiperiod Accounting
135651    -----------------------------------------------------------------------------------------
135652      -- No MPA option is assigned.
135653 
135654 
135655 END IF;
135656 END IF;
135657 --
135658 
135659 --
135660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135661    trace
135662       (p_msg      => 'END of AcctLineType_215'
135663       ,p_level    => C_LEVEL_PROCEDURE
135664       ,p_module   => l_log_module);
135665 END IF;
135666 --
135667 EXCEPTION
135668   WHEN xla_exceptions_pkg.application_exception THEN
135669       RAISE;
135670   WHEN OTHERS THEN
135671        xla_exceptions_pkg.raise_message
135672            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_215');
135673 END AcctLineType_215;
135674 --
135675 
135676 ---------------------------------------
135677 --
135678 -- PRIVATE FUNCTION
135679 --         AcctLineType_216
135680 --
135681 ---------------------------------------
135682 PROCEDURE AcctLineType_216 (
135683   p_application_id        IN NUMBER
135684  ,p_event_id              IN NUMBER
135685  ,p_calculate_acctd_flag  IN VARCHAR2
135686  ,p_calculate_g_l_flag    IN VARCHAR2
135687  ,p_actual_flag           IN OUT VARCHAR2
135688  ,p_balance_type_code     OUT VARCHAR2
135689  ,p_gain_or_loss_ref      OUT VARCHAR2
135690  
135691 --Invoice Distribution Description
135692  , p_source_1            IN VARCHAR2
135693 --Invoice Distribution Ledger Amount
135694  , p_source_21            IN NUMBER
135695 --Invoice Distribution Account
135696  , p_source_30            IN NUMBER
135697 --Invoice Distribution Type
135698  , p_source_33            IN VARCHAR2
135699  , p_source_33_meaning    IN VARCHAR2
135700 --Accounting Reversal Indicator
135701  , p_source_52            IN VARCHAR2
135702 --Distribution Link Type
135703  , p_source_54            IN VARCHAR2
135704 --Allocation to Main Distribution Identifier
135705  , p_source_56            IN NUMBER
135706 --Invoice Identifier
135707  , p_source_57            IN NUMBER
135708 --Invoice Distribution Identifier
135709  , p_source_63            IN NUMBER
135710 --Payables Encumbrance Upgrade Credit Account
135711  , p_source_64            IN NUMBER
135712 --Payables Encumbrance Upgrade Credit Amount
135713  , p_source_65            IN NUMBER
135714 --Invoice Currency Code
135715  , p_source_66            IN VARCHAR2
135716 --Payables Encumbrance Upgrade Credit Base Amount
135717  , p_source_67            IN NUMBER
135718 --Payables Encumbrance Upgrade Debit Account
135719  , p_source_68            IN NUMBER
135720 --Payables Encumbrance Upgrade Debit Amount
135721  , p_source_69            IN NUMBER
135722 --Payables Encumbrance Upgrade Debit Base Amount
135723  , p_source_70            IN NUMBER
135724 --Payables Encumbrance Upgrade Option
135725  , p_source_71            IN VARCHAR2
135726 --Invoice Distribution Amount
135727  , p_source_72            IN NUMBER
135728 --Deferred Accounting End Date
135729  , p_source_76            IN DATE
135730 --Deferred Accounting Option
135731  , p_source_77            IN VARCHAR2
135732 --Deferred Accounting Start Date
135733  , p_source_78            IN DATE
135734 --Override Accounted Amount Indicator
135735  , p_source_79            IN VARCHAR2
135736  , p_source_79_meaning    IN VARCHAR2
135737 --Invoice Supplier Identifier
135738  , p_source_80            IN NUMBER
135739 --Invoice Supplier Site Identifier
135740  , p_source_81            IN NUMBER
135741 --Third Party Type
135742  , p_source_82            IN VARCHAR2
135743 --Parent Reversal Identifier
135744  , p_source_83            IN NUMBER
135745 --Invoice Distribution Statistical Amount
135746  , p_source_84            IN NUMBER
135747 --Invoice Distribution Tax Line Identifier
135748  , p_source_85            IN NUMBER
135749 --Invoice Distribution Tax Distribution Identifier from Tax
135750  , p_source_86            IN NUMBER
135751 --Invoice Distribution Summary Tax Line Identifier
135752  , p_source_87            IN NUMBER
135753 --Payables Upgrade Credit Encumbrance Type Identifier
135754  , p_source_88            IN NUMBER
135755 --Payables Upgrade Debit Encumbrance Type Identifier
135756  , p_source_89            IN NUMBER
135757 --Business Flow Accounts Payable Application Identifier
135758  , p_source_90            IN NUMBER
135759 --Business Flow Invoice Distribution Type
135760  , p_source_91            IN VARCHAR2
135764  , p_source_93            IN NUMBER
135761 --Business Flow Invoice Entity Code
135762  , p_source_92            IN VARCHAR2
135763 --Business Flow Invoice Distribution Identifier
135765 --Business Flow Invoice Identifier
135766  , p_source_94            IN NUMBER
135767 --Accrue on Receipt Option
135768  , p_source_95            IN VARCHAR2
135769  , p_source_95_meaning    IN VARCHAR2
135770 --Invoice Exchange Date
135771  , p_source_136            IN DATE
135772 --Invoice Exchange Rate
135773  , p_source_137            IN NUMBER
135774 --Invoice Exchange Rate Type
135775  , p_source_138            IN VARCHAR2
135776 )
135777 IS
135778 
135779 l_component_type              VARCHAR2(80);
135780 l_component_code              VARCHAR2(30);
135781 l_component_type_code         VARCHAR2(1);
135782 l_component_appl_id           INTEGER;
135783 l_amb_context_code            VARCHAR2(30);
135784 l_entity_code                 VARCHAR2(30);
135785 l_event_class_code            VARCHAR2(30);
135786 l_ae_header_id                NUMBER;
135787 l_event_type_code             VARCHAR2(30);
135788 l_line_definition_code        VARCHAR2(30);
135789 l_line_definition_owner_code  VARCHAR2(1);
135790 --
135791 -- adr variables
135792 l_segment                     VARCHAR2(30);
135793 l_ccid                        NUMBER;
135794 l_adr_transaction_coa_id      NUMBER;
135795 l_adr_accounting_coa_id       NUMBER;
135796 l_adr_flexfield_segment_code  VARCHAR2(30);
135797 l_adr_flex_value_set_id       NUMBER;
135798 l_adr_value_type_code         VARCHAR2(30);
135799 l_adr_value_combination_id    NUMBER;
135800 l_adr_value_segment_code      VARCHAR2(30);
135801 
135802 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135803 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135804 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135805 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135806 
135807 -- 4262811 Variables ------------------------------------------------------------------------------------------
135808 l_entered_amt_idx             NUMBER;
135809 l_accted_amt_idx              NUMBER;
135810 l_acc_rev_flag                VARCHAR2(1);
135811 l_accrual_line_num            NUMBER;
135812 l_tmp_amt                     NUMBER;
135813 l_acc_rev_natural_side_code   VARCHAR2(1);
135814 
135815 l_num_entries                 NUMBER;
135816 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135817 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135818 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135819 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135820 l_recog_line_1                NUMBER;
135821 l_recog_line_2                NUMBER;
135822 
135823 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135824 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135825 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135826 
135827 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135828 
135829 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135830 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135831 
135832 ---------------------------------------------------------------------------------------------------------------
135833 
135834 
135835 --
135836 -- bulk performance
135837 --
135838 l_balance_type_code           VARCHAR2(1);
135839 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135840 l_log_module                  VARCHAR2(240);
135841 
135842 --
135843 -- Upgrade strategy
135844 --
135845 l_actual_upg_option           VARCHAR2(1);
135846 l_enc_upg_option           VARCHAR2(1);
135847 
135848 --
135849 BEGIN
135850 --
135851 IF g_log_enabled THEN
135852       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_216';
135853 END IF;
135854 --
135855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135856 
135857       trace
135858          (p_msg      => 'BEGIN of AcctLineType_216'
135859          ,p_level    => C_LEVEL_PROCEDURE
135860          ,p_module   => l_log_module);
135861 
135862 END IF;
135863 --
135864 l_component_type             := 'AMB_JLT';
135865 l_component_code             := 'AP_TAX_RATE_VAR_CM';
135866 l_component_type_code        := 'S';
135867 l_component_appl_id          :=  200;
135868 l_amb_context_code           := 'DEFAULT';
135869 l_entity_code                := 'AP_INVOICES';
135870 l_event_class_code           := 'CREDIT MEMOS';
135871 l_event_type_code            := 'CREDIT MEMOS_ALL';
135872 l_line_definition_owner_code := 'S';
135873 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
135874 --
135875 l_balance_type_code          := 'A';
135876 l_segment                     := NULL;
135877 l_ccid                        := NULL;
135878 l_adr_transaction_coa_id      := NULL;
135879 l_adr_accounting_coa_id       := NULL;
135880 l_adr_flexfield_segment_code  := NULL;
135881 l_adr_flex_value_set_id       := NULL;
135882 l_adr_value_type_code         := NULL;
135883 l_adr_value_combination_id    := NULL;
135884 l_adr_value_segment_code      := NULL;
135885 
135886 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
135887 l_bflow_class_code           := '';    -- 4219869 Business Flow
135888 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135892 l_bflow_applied_to_amt       := NULL; -- 5132302
135889 l_budgetary_control_flag     := 'N';
135890 
135891 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135893 l_entered_amt_idx            := NULL;          -- 4262811
135894 l_accted_amt_idx             := NULL;          -- 4262811
135895 l_acc_rev_flag               := NULL;          -- 4262811
135896 l_accrual_line_num           := NULL;          -- 4262811
135897 l_tmp_amt                    := NULL;          -- 4262811
135898 --
135899  
135900 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135901     l_balance_type_code <> 'B' THEN
135902 IF NVL(p_source_33,'
135903 ') =  'TRV' AND 
135904 NVL(p_source_95,'
135905 ') =  'Y'
135906  THEN 
135907 
135908    --
135909    XLA_AE_LINES_PKG.SetNewLine;
135910 
135911    p_balance_type_code          := l_balance_type_code;
135912    -- set the flag so later we will know whether the gain loss line needs to be created
135913    
135914    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135915      p_actual_flag :='A';
135916    END IF;
135917 
135918    --
135919    -- bulk performance
135920    --
135921    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135922                                       p_header_num   => 0); -- 4262811
135923    --
135924    -- set accounting line options
135925    --
135926    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135927            p_natural_side_code          => 'D'
135928          , p_gain_or_loss_flag          => 'N'
135929          , p_gl_transfer_mode_code      => 'S'
135930          , p_acct_entry_type_code       => 'A'
135931          , p_switch_side_flag           => 'Y'
135932          , p_merge_duplicate_code       => 'A'
135933          );
135934    --
135935    l_acc_rev_natural_side_code := 'C';  -- 4262811
135936    -- 
135937    --
135938    -- set accounting line type info
135939    --
135940    xla_ae_lines_pkg.SetAcctLineType
135941       (p_component_type             => l_component_type
135942       ,p_event_type_code            => l_event_type_code
135943       ,p_line_definition_owner_code => l_line_definition_owner_code
135944       ,p_line_definition_code       => l_line_definition_code
135945       ,p_accounting_line_code       => l_component_code
135946       ,p_accounting_line_type_code  => l_component_type_code
135947       ,p_accounting_line_appl_id    => l_component_appl_id
135948       ,p_amb_context_code           => l_amb_context_code
135949       ,p_entity_code                => l_entity_code
135950       ,p_event_class_code           => l_event_class_code);
135951    --
135952    -- set accounting class
135953    --
135954    xla_ae_lines_pkg.SetAcctClass(
135955            p_accounting_class_code  => 'TRV'
135956          , p_ae_header_id           => l_ae_header_id
135957          );
135958 
135959    --
135960    -- set rounding class
135961    --
135962    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135963                       'TRV';
135964 
135965    --
135966    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135967    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135968    --
135969    -- bulk performance
135970    --
135971    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135972 
135973    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135974       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135975 
135976    -- 4955764
135977    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135978       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135979 
135980    -- 4458381 Public Sector Enh
135981    
135982    --
135983    -- set accounting attributes for the line type
135984    --
135985    l_entered_amt_idx := 23;
135986    l_accted_amt_idx  := 28;
135987    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
135988    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135989    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
135990    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135991    l_rec_acct_attrs.array_num_value(2)  := 
135992 xla_ae_sources_pkg.GetSystemSourceNum(
135993    p_source_code           => 'XLA_EVENT_APPL_ID'
135994  , p_source_type_code      => 'Y'
135995  , p_source_application_id =>  602
135996 );
135997    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135998    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
135999    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136000    l_rec_acct_attrs.array_char_value(4)  := 
136001 xla_ae_sources_pkg.GetSystemSourceChar(
136002    p_source_code           => 'XLA_ENTITY_CODE'
136003  , p_source_type_code      => 'Y'
136004  , p_source_application_id =>  602
136005 );
136006    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136007    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
136008    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136009    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
136010    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136014    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136011    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
136012    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136013    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
136015    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
136016    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136017    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
136018    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136019    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
136020    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136021    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
136022    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136023    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
136024    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136025    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
136026    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136027    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
136028    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136029    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
136030    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136031    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
136032    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136033    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
136034    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136035    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
136036    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136037    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
136038    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136039    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
136040    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136041    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
136042    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136043    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
136044    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136045    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
136046    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136047    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
136048    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136049    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
136050    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136051    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
136052    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136053    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
136054    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136055    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
136056    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136057    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
136058    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136059    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
136060    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136061    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
136062    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136063    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
136064    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136065    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
136066    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136067    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
136068    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136069    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
136070    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136071    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
136072    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
136073    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
136074    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
136075    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
136076    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
136077    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
136078    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
136079    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
136080    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
136081    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
136082    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
136083    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
136084 
136085    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136086    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136087 
136088    ---------------------------------------------------------------------------------------------------------------
136089    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136090    ---------------------------------------------------------------------------------------------------------------
136091    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136092 
136093    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136097          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136094    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136095 
136096    IF xla_accounting_cache_pkg.GetValueChar
136098          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136099    AND l_bflow_method_code = 'PRIOR_ENTRY'
136100 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136101    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136102          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136103        )
136104    THEN
136105          xla_ae_lines_pkg.BflowUpgEntry
136106            (p_business_method_code    => l_bflow_method_code
136107            ,p_business_class_code     => l_bflow_class_code
136108            ,p_balance_type            => l_balance_type_code);
136109    ELSE
136110       NULL;
136111 -- No business flow processing for business flow method of NONE.
136112    END IF;
136113 
136114    --
136115    -- call analytical criteria
136116    --
136117    
136118    --
136119    -- call description
136120    --
136121    
136122 xla_ae_lines_pkg.SetLineDescription(
136123    p_ae_header_id => l_ae_header_id
136124   ,p_description  => Description_1 (
136125      p_application_id         => p_application_id
136126    , p_ae_header_id           => l_ae_header_id 
136127 , p_source_1 => p_source_1
136128    )
136129 );
136130 
136131 
136132    --
136133    -- call ADRs
136134    -- Bug 4922099
136135    --
136136    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136137         (NVL(l_actual_upg_option, 'N') = 'O') OR
136138         (NVL(l_enc_upg_option, 'N') = 'O')
136139       )
136140    THEN
136141    NULL;
136142    --
136143    --
136144    
136145   l_ccid := AcctDerRule_33(
136146            p_application_id           => p_application_id
136147          , p_ae_header_id             => l_ae_header_id 
136148 , p_source_30 => p_source_30
136149          , x_transaction_coa_id       => l_adr_transaction_coa_id
136150          , x_accounting_coa_id        => l_adr_accounting_coa_id
136151          , x_value_type_code          => l_adr_value_type_code
136152          , p_side                     => 'NA'
136153    );
136154 
136155    xla_ae_lines_pkg.set_ccid(
136156     p_code_combination_id          => l_ccid
136157   , p_value_type_code              => l_adr_value_type_code
136158   , p_transaction_coa_id           => l_adr_transaction_coa_id
136159   , p_accounting_coa_id            => l_adr_accounting_coa_id
136160   , p_adr_code                     => 'AP_INVOICE_DIST'
136161   , p_adr_type_code                => 'S'
136162   , p_component_type               => l_component_type
136163   , p_component_code               => l_component_code
136164   , p_component_type_code          => l_component_type_code
136165   , p_component_appl_id            => l_component_appl_id
136166   , p_amb_context_code             => l_amb_context_code
136167   , p_side                         => 'NA'
136168   );
136169 
136170 
136171    --
136172    --
136173    END IF;
136174    --
136175    -- Bug 4922099
136176    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136177           (NVL(l_enc_upg_option, 'N') = 'O')
136178         ) AND
136179         (l_bflow_method_code = 'PRIOR_ENTRY')
136180       )
136181    THEN
136182       IF
136183       --
136184       1 = 2
136185       --
136186       THEN
136187       xla_accounting_err_pkg.build_message
136188                                     (p_appli_s_name            => 'XLA'
136189                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136190                                     ,p_token_1                 => 'LINE_NUMBER'
136191                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136192                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136193                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136194                                                                              l_component_type
136195                                                                             ,l_component_code
136196                                                                             ,l_component_type_code
136197                                                                             ,l_component_appl_id
136198                                                                             ,l_amb_context_code
136199                                                                             ,l_entity_code
136200                                                                             ,l_event_class_code
136201                                                                            )
136202                                     ,p_token_3                 => 'OWNER'
136203                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136204                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136205                                                                           ,p_lookup_code    => l_component_type_code
136206                                                                          )
136207                                     ,p_token_4                 => 'PRODUCT_NAME'
136208                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136209                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136210                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136214 
136211                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136212                                     ,p_ae_header_id            =>  NULL
136213                                        );
136215         IF (C_LEVEL_ERROR>= g_log_level) THEN
136216                  trace
136217                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136218                       ,p_level    => C_LEVEL_ERROR
136219                       ,p_module   => l_log_module);
136220         END IF;
136221       END IF;
136222    END IF;
136223    --
136224    --
136225    ------------------------------------------------------------------------------------------------
136226    -- 4219869 Business Flow
136227    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136228    -- Prior Entry.  Currently, the following code is always generated.
136229    ------------------------------------------------------------------------------------------------
136230    XLA_AE_LINES_PKG.ValidateCurrentLine;
136231 
136232    ------------------------------------------------------------------------------------
136233    -- 4219869 Business Flow
136234    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136235    ------------------------------------------------------------------------------------
136236    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136237 
136238    ----------------------------------------------------------------------------------
136239    -- 4219869 Business Flow
136240    -- Update journal entry status -- Need to generate this within IF <condition>
136241    ----------------------------------------------------------------------------------
136242    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136243          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136244          ,p_balance_type_code => l_balance_type_code
136245          );
136246 
136247    -------------------------------------------------------------------------------------------
136248    -- 4262811 - Generate the Accrual Reversal lines
136249    -------------------------------------------------------------------------------------------
136250    BEGIN
136251       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136252                               (g_array_event(p_event_id).array_value_num('header_index'));
136253       IF l_acc_rev_flag IS NULL THEN
136254          l_acc_rev_flag := 'N';
136255       END IF;
136256    EXCEPTION
136257       WHEN OTHERS THEN
136258          l_acc_rev_flag := 'N';
136259    END;
136260    --
136261    IF (l_acc_rev_flag = 'Y') THEN
136262 
136263        -- 4645092  ------------------------------------------------------------------------------
136264        -- To allow MPA report to determine if it should generate report process
136265        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136266        ------------------------------------------------------------------------------------------
136267 
136268        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136269        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136270    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136271    -- call ADRs
136272    -- Bug 4922099
136273    --
136274    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136275         (NVL(l_actual_upg_option, 'N') = 'O') OR
136276         (NVL(l_enc_upg_option, 'N') = 'O')
136277       )
136278    THEN
136279    NULL;
136280    --
136281    --
136282    
136283   l_ccid := AcctDerRule_33(
136284            p_application_id           => p_application_id
136285          , p_ae_header_id             => l_ae_header_id 
136286 , p_source_30 => p_source_30
136287          , x_transaction_coa_id       => l_adr_transaction_coa_id
136288          , x_accounting_coa_id        => l_adr_accounting_coa_id
136289          , x_value_type_code          => l_adr_value_type_code
136290          , p_side                     => 'NA'
136291    );
136292 
136293    xla_ae_lines_pkg.set_ccid(
136294     p_code_combination_id          => l_ccid
136295   , p_value_type_code              => l_adr_value_type_code
136296   , p_transaction_coa_id           => l_adr_transaction_coa_id
136297   , p_accounting_coa_id            => l_adr_accounting_coa_id
136298   , p_adr_code                     => 'AP_INVOICE_DIST'
136299   , p_adr_type_code                => 'S'
136300   , p_component_type               => l_component_type
136301   , p_component_code               => l_component_code
136302   , p_component_type_code          => l_component_type_code
136303   , p_component_appl_id            => l_component_appl_id
136304   , p_amb_context_code             => l_amb_context_code
136305   , p_side                         => 'NA'
136306   );
136307 
136308 
136309    --
136310    --
136311    END IF;
136312 
136313        --
136314        -- Update the line information that should be overwritten
136315        --
136316        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136317                                          p_header_num   => 1);
136318        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136319 
136320        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136321 
136322        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136323           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136324        END IF;
136325 
136326       --
136330           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136327       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136328       --
136329       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136331       ELSE
136332           ---------------------------------------------------------------------------------------------------
136333           -- 4262811a Switch Sign
136334           ---------------------------------------------------------------------------------------------------
136335           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136336           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136337                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136338           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136339                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136340           -- 5132302
136341           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136342                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136343 
136344       END IF;
136345 
136346       -- 4955764
136347       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136348       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136349 
136350 
136351       XLA_AE_LINES_PKG.ValidateCurrentLine;
136352       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136353 
136354       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136355                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136356                ,p_balance_type_code => l_balance_type_code);
136357 
136358    END IF;
136359 
136360    -----------------------------------------------------------------------------------------
136361    -- 4262811 Multiperiod Accounting
136362    -----------------------------------------------------------------------------------------
136363      -- No MPA option is assigned.
136364 
136365 
136366 END IF;
136367 END IF;
136368 --
136369 
136370 --
136371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136372    trace
136373       (p_msg      => 'END of AcctLineType_216'
136374       ,p_level    => C_LEVEL_PROCEDURE
136375       ,p_module   => l_log_module);
136376 END IF;
136377 --
136378 EXCEPTION
136379   WHEN xla_exceptions_pkg.application_exception THEN
136380       RAISE;
136381   WHEN OTHERS THEN
136382        xla_exceptions_pkg.raise_message
136383            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_216');
136384 END AcctLineType_216;
136385 --
136386 
136387 ---------------------------------------
136388 --
136389 -- PRIVATE FUNCTION
136390 --         AcctLineType_217
136391 --
136392 ---------------------------------------
136393 PROCEDURE AcctLineType_217 (
136394   p_application_id        IN NUMBER
136395  ,p_event_id              IN NUMBER
136396  ,p_calculate_acctd_flag  IN VARCHAR2
136397  ,p_calculate_g_l_flag    IN VARCHAR2
136398  ,p_actual_flag           IN OUT VARCHAR2
136399  ,p_balance_type_code     OUT VARCHAR2
136400  ,p_gain_or_loss_ref      OUT VARCHAR2
136401  
136402 --Invoice Distribution Description
136403  , p_source_1            IN VARCHAR2
136404 --Invoice Distribution Ledger Amount
136405  , p_source_21            IN NUMBER
136406 --Invoice Distribution Account
136407  , p_source_30            IN NUMBER
136408 --Invoice Distribution Type
136409  , p_source_33            IN VARCHAR2
136410  , p_source_33_meaning    IN VARCHAR2
136411 --Accounting Reversal Indicator
136412  , p_source_52            IN VARCHAR2
136413 --Distribution Link Type
136414  , p_source_54            IN VARCHAR2
136415 --Allocation to Main Distribution Identifier
136416  , p_source_56            IN NUMBER
136417 --Invoice Identifier
136418  , p_source_57            IN NUMBER
136419 --Invoice Distribution Identifier
136420  , p_source_63            IN NUMBER
136421 --Payables Encumbrance Upgrade Credit Account
136422  , p_source_64            IN NUMBER
136423 --Payables Encumbrance Upgrade Credit Amount
136424  , p_source_65            IN NUMBER
136425 --Invoice Currency Code
136426  , p_source_66            IN VARCHAR2
136427 --Payables Encumbrance Upgrade Credit Base Amount
136428  , p_source_67            IN NUMBER
136429 --Payables Encumbrance Upgrade Debit Account
136430  , p_source_68            IN NUMBER
136431 --Payables Encumbrance Upgrade Debit Amount
136432  , p_source_69            IN NUMBER
136433 --Payables Encumbrance Upgrade Debit Base Amount
136434  , p_source_70            IN NUMBER
136435 --Payables Encumbrance Upgrade Option
136436  , p_source_71            IN VARCHAR2
136437 --Invoice Distribution Amount
136438  , p_source_72            IN NUMBER
136439 --Deferred Accounting End Date
136440  , p_source_76            IN DATE
136441 --Deferred Accounting Option
136442  , p_source_77            IN VARCHAR2
136443 --Deferred Accounting Start Date
136444  , p_source_78            IN DATE
136445 --Override Accounted Amount Indicator
136446  , p_source_79            IN VARCHAR2
136447  , p_source_79_meaning    IN VARCHAR2
136448 --Invoice Supplier Identifier
136449  , p_source_80            IN NUMBER
136453  , p_source_82            IN VARCHAR2
136450 --Invoice Supplier Site Identifier
136451  , p_source_81            IN NUMBER
136452 --Third Party Type
136454 --Parent Reversal Identifier
136455  , p_source_83            IN NUMBER
136456 --Invoice Distribution Tax Line Identifier
136457  , p_source_85            IN NUMBER
136458 --Invoice Distribution Tax Distribution Identifier from Tax
136459  , p_source_86            IN NUMBER
136460 --Invoice Distribution Summary Tax Line Identifier
136461  , p_source_87            IN NUMBER
136462 --Payables Upgrade Credit Encumbrance Type Identifier
136463  , p_source_88            IN NUMBER
136464 --Payables Upgrade Debit Encumbrance Type Identifier
136465  , p_source_89            IN NUMBER
136466 --Business Flow Accounts Payable Application Identifier
136467  , p_source_90            IN NUMBER
136468 --Business Flow Invoice Distribution Type
136469  , p_source_91            IN VARCHAR2
136470 --Business Flow Invoice Entity Code
136471  , p_source_92            IN VARCHAR2
136472 --Business Flow Invoice Distribution Identifier
136473  , p_source_93            IN NUMBER
136474 --Business Flow Invoice Identifier
136475  , p_source_94            IN NUMBER
136476 --Accrue on Receipt Option
136477  , p_source_95            IN VARCHAR2
136478  , p_source_95_meaning    IN VARCHAR2
136479 --Invoice Exchange Date
136480  , p_source_136            IN DATE
136481 --Invoice Exchange Rate
136482  , p_source_137            IN NUMBER
136483 --Invoice Exchange Rate Type
136484  , p_source_138            IN VARCHAR2
136485 )
136486 IS
136487 
136488 l_component_type              VARCHAR2(80);
136489 l_component_code              VARCHAR2(30);
136490 l_component_type_code         VARCHAR2(1);
136491 l_component_appl_id           INTEGER;
136492 l_amb_context_code            VARCHAR2(30);
136493 l_entity_code                 VARCHAR2(30);
136494 l_event_class_code            VARCHAR2(30);
136495 l_ae_header_id                NUMBER;
136496 l_event_type_code             VARCHAR2(30);
136497 l_line_definition_code        VARCHAR2(30);
136498 l_line_definition_owner_code  VARCHAR2(1);
136499 --
136500 -- adr variables
136501 l_segment                     VARCHAR2(30);
136502 l_ccid                        NUMBER;
136503 l_adr_transaction_coa_id      NUMBER;
136504 l_adr_accounting_coa_id       NUMBER;
136505 l_adr_flexfield_segment_code  VARCHAR2(30);
136506 l_adr_flex_value_set_id       NUMBER;
136507 l_adr_value_type_code         VARCHAR2(30);
136508 l_adr_value_combination_id    NUMBER;
136509 l_adr_value_segment_code      VARCHAR2(30);
136510 
136511 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
136512 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
136513 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
136514 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
136515 
136516 -- 4262811 Variables ------------------------------------------------------------------------------------------
136517 l_entered_amt_idx             NUMBER;
136518 l_accted_amt_idx              NUMBER;
136519 l_acc_rev_flag                VARCHAR2(1);
136520 l_accrual_line_num            NUMBER;
136521 l_tmp_amt                     NUMBER;
136522 l_acc_rev_natural_side_code   VARCHAR2(1);
136523 
136524 l_num_entries                 NUMBER;
136525 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
136526 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
136527 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
136528 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
136529 l_recog_line_1                NUMBER;
136530 l_recog_line_2                NUMBER;
136531 
136532 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
136533 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
136534 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
136535 
136536 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
136537 
136538 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
136539 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
136540 
136541 ---------------------------------------------------------------------------------------------------------------
136542 
136543 
136544 --
136545 -- bulk performance
136546 --
136547 l_balance_type_code           VARCHAR2(1);
136548 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
136549 l_log_module                  VARCHAR2(240);
136550 
136551 --
136552 -- Upgrade strategy
136553 --
136554 l_actual_upg_option           VARCHAR2(1);
136555 l_enc_upg_option           VARCHAR2(1);
136556 
136557 --
136558 BEGIN
136559 --
136560 IF g_log_enabled THEN
136561       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_217';
136562 END IF;
136563 --
136564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136565 
136566       trace
136567          (p_msg      => 'BEGIN of AcctLineType_217'
136568          ,p_level    => C_LEVEL_PROCEDURE
136569          ,p_module   => l_log_module);
136570 
136571 END IF;
136572 --
136573 l_component_type             := 'AMB_JLT';
136574 l_component_code             := 'AP_TAX_RATE_VAR_DM';
136575 l_component_type_code        := 'S';
136576 l_component_appl_id          :=  200;
136577 l_amb_context_code           := 'DEFAULT';
136581 l_line_definition_owner_code := 'S';
136578 l_entity_code                := 'AP_INVOICES';
136579 l_event_class_code           := 'DEBIT MEMOS';
136580 l_event_type_code            := 'DEBIT MEMOS_ALL';
136582 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
136583 --
136584 l_balance_type_code          := 'A';
136585 l_segment                     := NULL;
136586 l_ccid                        := NULL;
136587 l_adr_transaction_coa_id      := NULL;
136588 l_adr_accounting_coa_id       := NULL;
136589 l_adr_flexfield_segment_code  := NULL;
136590 l_adr_flex_value_set_id       := NULL;
136591 l_adr_value_type_code         := NULL;
136592 l_adr_value_combination_id    := NULL;
136593 l_adr_value_segment_code      := NULL;
136594 
136595 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
136596 l_bflow_class_code           := '';    -- 4219869 Business Flow
136597 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
136598 l_budgetary_control_flag     := 'N';
136599 
136600 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
136601 l_bflow_applied_to_amt       := NULL; -- 5132302
136602 l_entered_amt_idx            := NULL;          -- 4262811
136603 l_accted_amt_idx             := NULL;          -- 4262811
136604 l_acc_rev_flag               := NULL;          -- 4262811
136605 l_accrual_line_num           := NULL;          -- 4262811
136606 l_tmp_amt                    := NULL;          -- 4262811
136607 --
136608  
136609 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
136610     l_balance_type_code <> 'B' THEN
136611 IF NVL(p_source_33,'
136612 ') =  'TRV' AND 
136613 NVL(p_source_95,'
136614 ') =  'Y'
136615  THEN 
136616 
136617    --
136618    XLA_AE_LINES_PKG.SetNewLine;
136619 
136620    p_balance_type_code          := l_balance_type_code;
136621    -- set the flag so later we will know whether the gain loss line needs to be created
136622    
136623    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
136624      p_actual_flag :='A';
136625    END IF;
136626 
136627    --
136628    -- bulk performance
136629    --
136630    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
136631                                       p_header_num   => 0); -- 4262811
136632    --
136633    -- set accounting line options
136634    --
136635    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
136636            p_natural_side_code          => 'D'
136637          , p_gain_or_loss_flag          => 'N'
136638          , p_gl_transfer_mode_code      => 'S'
136639          , p_acct_entry_type_code       => 'A'
136640          , p_switch_side_flag           => 'Y'
136641          , p_merge_duplicate_code       => 'A'
136642          );
136643    --
136644    l_acc_rev_natural_side_code := 'C';  -- 4262811
136645    -- 
136646    --
136647    -- set accounting line type info
136648    --
136649    xla_ae_lines_pkg.SetAcctLineType
136650       (p_component_type             => l_component_type
136651       ,p_event_type_code            => l_event_type_code
136652       ,p_line_definition_owner_code => l_line_definition_owner_code
136653       ,p_line_definition_code       => l_line_definition_code
136654       ,p_accounting_line_code       => l_component_code
136655       ,p_accounting_line_type_code  => l_component_type_code
136656       ,p_accounting_line_appl_id    => l_component_appl_id
136657       ,p_amb_context_code           => l_amb_context_code
136658       ,p_entity_code                => l_entity_code
136659       ,p_event_class_code           => l_event_class_code);
136660    --
136661    -- set accounting class
136662    --
136663    xla_ae_lines_pkg.SetAcctClass(
136664            p_accounting_class_code  => 'TRV'
136665          , p_ae_header_id           => l_ae_header_id
136666          );
136667 
136668    --
136669    -- set rounding class
136670    --
136671    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
136672                       'TRV';
136673 
136674    --
136675    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
136676    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
136677    --
136678    -- bulk performance
136679    --
136680    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
136681 
136682    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
136683       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
136684 
136685    -- 4955764
136686    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136687       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
136688 
136689    -- 4458381 Public Sector Enh
136690    
136691    --
136692    -- set accounting attributes for the line type
136693    --
136694    l_entered_amt_idx := 23;
136695    l_accted_amt_idx  := 28;
136696    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
136697    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
136698    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
136699    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
136700    l_rec_acct_attrs.array_num_value(2)  := 
136701 xla_ae_sources_pkg.GetSystemSourceNum(
136702    p_source_code           => 'XLA_EVENT_APPL_ID'
136706    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
136703  , p_source_type_code      => 'Y'
136704  , p_source_application_id =>  602
136705 );
136707    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
136708    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136709    l_rec_acct_attrs.array_char_value(4)  := 
136710 xla_ae_sources_pkg.GetSystemSourceChar(
136711    p_source_code           => 'XLA_ENTITY_CODE'
136712  , p_source_type_code      => 'Y'
136713  , p_source_application_id =>  602
136714 );
136715    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136716    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
136717    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136718    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
136719    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136720    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
136721    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136722    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
136723    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136724    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
136725    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136726    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
136727    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136728    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
136729    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136730    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
136731    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136732    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
136733    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136734    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
136735    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136736    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
136737    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136738    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
136739    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136740    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
136741    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136742    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
136743    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136744    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
136745    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136746    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
136747    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136748    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
136749    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136750    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
136751    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136752    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
136753    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136754    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
136755    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136756    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
136757    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136758    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
136759    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136760    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
136761    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136762    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
136763    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136764    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
136765    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136766    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
136767    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136768    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
136769    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136770    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
136771    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136772    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
136773    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136774    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
136775    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136776    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
136777    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136778    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
136779    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136780    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
136781    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
136782    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
136783    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
136784    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
136785    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
136786    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
136787    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
136788    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
136789    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
136790    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
136791 
136795    ---------------------------------------------------------------------------------------------------------------
136792    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136793    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136794 
136796    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136797    ---------------------------------------------------------------------------------------------------------------
136798    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136799 
136800    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136801    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136802 
136803    IF xla_accounting_cache_pkg.GetValueChar
136804          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136805          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136806    AND l_bflow_method_code = 'PRIOR_ENTRY'
136807 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136808    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136809          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136810        )
136811    THEN
136812          xla_ae_lines_pkg.BflowUpgEntry
136813            (p_business_method_code    => l_bflow_method_code
136814            ,p_business_class_code     => l_bflow_class_code
136815            ,p_balance_type            => l_balance_type_code);
136816    ELSE
136817       NULL;
136818 -- No business flow processing for business flow method of NONE.
136819    END IF;
136820 
136821    --
136822    -- call analytical criteria
136823    --
136824    
136825    --
136826    -- call description
136827    --
136828    
136829 xla_ae_lines_pkg.SetLineDescription(
136830    p_ae_header_id => l_ae_header_id
136831   ,p_description  => Description_1 (
136832      p_application_id         => p_application_id
136833    , p_ae_header_id           => l_ae_header_id 
136834 , p_source_1 => p_source_1
136835    )
136836 );
136837 
136838 
136839    --
136840    -- call ADRs
136841    -- Bug 4922099
136842    --
136843    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136844         (NVL(l_actual_upg_option, 'N') = 'O') OR
136845         (NVL(l_enc_upg_option, 'N') = 'O')
136846       )
136847    THEN
136848    NULL;
136849    --
136850    --
136851    
136852   l_ccid := AcctDerRule_33(
136853            p_application_id           => p_application_id
136854          , p_ae_header_id             => l_ae_header_id 
136855 , p_source_30 => p_source_30
136856          , x_transaction_coa_id       => l_adr_transaction_coa_id
136857          , x_accounting_coa_id        => l_adr_accounting_coa_id
136858          , x_value_type_code          => l_adr_value_type_code
136859          , p_side                     => 'NA'
136860    );
136861 
136862    xla_ae_lines_pkg.set_ccid(
136863     p_code_combination_id          => l_ccid
136864   , p_value_type_code              => l_adr_value_type_code
136865   , p_transaction_coa_id           => l_adr_transaction_coa_id
136866   , p_accounting_coa_id            => l_adr_accounting_coa_id
136867   , p_adr_code                     => 'AP_INVOICE_DIST'
136868   , p_adr_type_code                => 'S'
136869   , p_component_type               => l_component_type
136870   , p_component_code               => l_component_code
136871   , p_component_type_code          => l_component_type_code
136872   , p_component_appl_id            => l_component_appl_id
136873   , p_amb_context_code             => l_amb_context_code
136874   , p_side                         => 'NA'
136875   );
136876 
136877 
136878    --
136879    --
136880    END IF;
136881    --
136882    -- Bug 4922099
136883    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136884           (NVL(l_enc_upg_option, 'N') = 'O')
136885         ) AND
136886         (l_bflow_method_code = 'PRIOR_ENTRY')
136887       )
136888    THEN
136889       IF
136890       --
136891       1 = 2
136892       --
136893       THEN
136894       xla_accounting_err_pkg.build_message
136895                                     (p_appli_s_name            => 'XLA'
136896                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136897                                     ,p_token_1                 => 'LINE_NUMBER'
136898                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136899                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136900                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136901                                                                              l_component_type
136902                                                                             ,l_component_code
136903                                                                             ,l_component_type_code
136904                                                                             ,l_component_appl_id
136905                                                                             ,l_amb_context_code
136906                                                                             ,l_entity_code
136907                                                                             ,l_event_class_code
136908                                                                            )
136912                                                                           ,p_lookup_code    => l_component_type_code
136909                                     ,p_token_3                 => 'OWNER'
136910                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136911                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136913                                                                          )
136914                                     ,p_token_4                 => 'PRODUCT_NAME'
136915                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136916                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136917                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136918                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136919                                     ,p_ae_header_id            =>  NULL
136920                                        );
136921 
136922         IF (C_LEVEL_ERROR>= g_log_level) THEN
136923                  trace
136924                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136925                       ,p_level    => C_LEVEL_ERROR
136926                       ,p_module   => l_log_module);
136927         END IF;
136928       END IF;
136929    END IF;
136930    --
136931    --
136932    ------------------------------------------------------------------------------------------------
136933    -- 4219869 Business Flow
136934    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136935    -- Prior Entry.  Currently, the following code is always generated.
136936    ------------------------------------------------------------------------------------------------
136937    XLA_AE_LINES_PKG.ValidateCurrentLine;
136938 
136939    ------------------------------------------------------------------------------------
136940    -- 4219869 Business Flow
136941    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136942    ------------------------------------------------------------------------------------
136943    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136944 
136945    ----------------------------------------------------------------------------------
136946    -- 4219869 Business Flow
136947    -- Update journal entry status -- Need to generate this within IF <condition>
136948    ----------------------------------------------------------------------------------
136949    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136950          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136951          ,p_balance_type_code => l_balance_type_code
136952          );
136953 
136954    -------------------------------------------------------------------------------------------
136955    -- 4262811 - Generate the Accrual Reversal lines
136956    -------------------------------------------------------------------------------------------
136957    BEGIN
136958       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136959                               (g_array_event(p_event_id).array_value_num('header_index'));
136960       IF l_acc_rev_flag IS NULL THEN
136961          l_acc_rev_flag := 'N';
136962       END IF;
136963    EXCEPTION
136964       WHEN OTHERS THEN
136965          l_acc_rev_flag := 'N';
136966    END;
136967    --
136968    IF (l_acc_rev_flag = 'Y') THEN
136969 
136970        -- 4645092  ------------------------------------------------------------------------------
136971        -- To allow MPA report to determine if it should generate report process
136972        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136973        ------------------------------------------------------------------------------------------
136974 
136975        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136976        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136977    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136978    -- call ADRs
136979    -- Bug 4922099
136980    --
136981    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136982         (NVL(l_actual_upg_option, 'N') = 'O') OR
136983         (NVL(l_enc_upg_option, 'N') = 'O')
136984       )
136985    THEN
136986    NULL;
136987    --
136988    --
136989    
136990   l_ccid := AcctDerRule_33(
136991            p_application_id           => p_application_id
136992          , p_ae_header_id             => l_ae_header_id 
136993 , p_source_30 => p_source_30
136994          , x_transaction_coa_id       => l_adr_transaction_coa_id
136995          , x_accounting_coa_id        => l_adr_accounting_coa_id
136996          , x_value_type_code          => l_adr_value_type_code
136997          , p_side                     => 'NA'
136998    );
136999 
137000    xla_ae_lines_pkg.set_ccid(
137001     p_code_combination_id          => l_ccid
137002   , p_value_type_code              => l_adr_value_type_code
137003   , p_transaction_coa_id           => l_adr_transaction_coa_id
137004   , p_accounting_coa_id            => l_adr_accounting_coa_id
137005   , p_adr_code                     => 'AP_INVOICE_DIST'
137006   , p_adr_type_code                => 'S'
137007   , p_component_type               => l_component_type
137008   , p_component_code               => l_component_code
137009   , p_component_type_code          => l_component_type_code
137010   , p_component_appl_id            => l_component_appl_id
137011   , p_amb_context_code             => l_amb_context_code
137015 
137012   , p_side                         => 'NA'
137013   );
137014 
137016    --
137017    --
137018    END IF;
137019 
137020        --
137021        -- Update the line information that should be overwritten
137022        --
137023        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137024                                          p_header_num   => 1);
137025        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137026 
137027        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137028 
137029        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137030           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137031        END IF;
137032 
137033       --
137034       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137035       --
137036       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137037           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137038       ELSE
137039           ---------------------------------------------------------------------------------------------------
137040           -- 4262811a Switch Sign
137041           ---------------------------------------------------------------------------------------------------
137042           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137043           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137044                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137045           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137046                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137047           -- 5132302
137048           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137049                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137050 
137051       END IF;
137052 
137053       -- 4955764
137054       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137055       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137056 
137057 
137058       XLA_AE_LINES_PKG.ValidateCurrentLine;
137059       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137060 
137061       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137062                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137063                ,p_balance_type_code => l_balance_type_code);
137064 
137065    END IF;
137066 
137067    -----------------------------------------------------------------------------------------
137068    -- 4262811 Multiperiod Accounting
137069    -----------------------------------------------------------------------------------------
137070      -- No MPA option is assigned.
137071 
137072 
137073 END IF;
137074 END IF;
137075 --
137076 
137077 --
137078 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137079    trace
137080       (p_msg      => 'END of AcctLineType_217'
137081       ,p_level    => C_LEVEL_PROCEDURE
137082       ,p_module   => l_log_module);
137083 END IF;
137084 --
137085 EXCEPTION
137086   WHEN xla_exceptions_pkg.application_exception THEN
137087       RAISE;
137088   WHEN OTHERS THEN
137089        xla_exceptions_pkg.raise_message
137090            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_217');
137091 END AcctLineType_217;
137092 --
137093 
137094 ---------------------------------------
137095 --
137096 -- PRIVATE FUNCTION
137097 --         AcctLineType_218
137098 --
137099 ---------------------------------------
137100 PROCEDURE AcctLineType_218 (
137101   p_application_id        IN NUMBER
137102  ,p_event_id              IN NUMBER
137103  ,p_calculate_acctd_flag  IN VARCHAR2
137104  ,p_calculate_g_l_flag    IN VARCHAR2
137105  ,p_actual_flag           IN OUT VARCHAR2
137106  ,p_balance_type_code     OUT VARCHAR2
137107  ,p_gain_or_loss_ref      OUT VARCHAR2
137108  
137109 --Invoice Distribution Description
137110  , p_source_1            IN VARCHAR2
137111 --Invoice Distribution Ledger Amount
137112  , p_source_21            IN NUMBER
137113 --Invoice Distribution Account
137114  , p_source_30            IN NUMBER
137115 --Invoice Distribution Type
137116  , p_source_33            IN VARCHAR2
137117  , p_source_33_meaning    IN VARCHAR2
137118 --Accounting Reversal Indicator
137119  , p_source_52            IN VARCHAR2
137120 --Distribution Link Type
137121  , p_source_54            IN VARCHAR2
137122 --Allocation to Main Distribution Identifier
137123  , p_source_56            IN NUMBER
137124 --Invoice Identifier
137125  , p_source_57            IN NUMBER
137126 --Invoice Distribution Identifier
137127  , p_source_63            IN NUMBER
137128 --Payables Encumbrance Upgrade Credit Account
137129  , p_source_64            IN NUMBER
137130 --Payables Encumbrance Upgrade Credit Amount
137131  , p_source_65            IN NUMBER
137132 --Invoice Currency Code
137133  , p_source_66            IN VARCHAR2
137134 --Payables Encumbrance Upgrade Credit Base Amount
137135  , p_source_67            IN NUMBER
137139  , p_source_69            IN NUMBER
137136 --Payables Encumbrance Upgrade Debit Account
137137  , p_source_68            IN NUMBER
137138 --Payables Encumbrance Upgrade Debit Amount
137140 --Payables Encumbrance Upgrade Debit Base Amount
137141  , p_source_70            IN NUMBER
137142 --Payables Encumbrance Upgrade Option
137143  , p_source_71            IN VARCHAR2
137144 --Invoice Distribution Amount
137145  , p_source_72            IN NUMBER
137146 --Deferred Accounting End Date
137147  , p_source_76            IN DATE
137148 --Deferred Accounting Option
137149  , p_source_77            IN VARCHAR2
137150 --Deferred Accounting Start Date
137151  , p_source_78            IN DATE
137152 --Override Accounted Amount Indicator
137153  , p_source_79            IN VARCHAR2
137154  , p_source_79_meaning    IN VARCHAR2
137155 --Invoice Supplier Identifier
137156  , p_source_80            IN NUMBER
137157 --Invoice Supplier Site Identifier
137158  , p_source_81            IN NUMBER
137159 --Third Party Type
137160  , p_source_82            IN VARCHAR2
137161 --Parent Reversal Identifier
137162  , p_source_83            IN NUMBER
137163 --Invoice Distribution Statistical Amount
137164  , p_source_84            IN NUMBER
137165 --Invoice Distribution Tax Line Identifier
137166  , p_source_85            IN NUMBER
137167 --Invoice Distribution Tax Distribution Identifier from Tax
137168  , p_source_86            IN NUMBER
137169 --Invoice Distribution Summary Tax Line Identifier
137170  , p_source_87            IN NUMBER
137171 --Payables Upgrade Credit Encumbrance Type Identifier
137172  , p_source_88            IN NUMBER
137173 --Payables Upgrade Debit Encumbrance Type Identifier
137174  , p_source_89            IN NUMBER
137175 --Business Flow Accounts Payable Application Identifier
137176  , p_source_90            IN NUMBER
137177 --Business Flow Invoice Distribution Type
137178  , p_source_91            IN VARCHAR2
137179 --Business Flow Invoice Entity Code
137180  , p_source_92            IN VARCHAR2
137181 --Business Flow Invoice Distribution Identifier
137182  , p_source_93            IN NUMBER
137183 --Business Flow Invoice Identifier
137184  , p_source_94            IN NUMBER
137185 --Accrue on Receipt Option
137186  , p_source_95            IN VARCHAR2
137187  , p_source_95_meaning    IN VARCHAR2
137188 --Invoice Exchange Date
137189  , p_source_136            IN DATE
137190 --Invoice Exchange Rate
137191  , p_source_137            IN NUMBER
137192 --Invoice Exchange Rate Type
137193  , p_source_138            IN VARCHAR2
137194 )
137195 IS
137196 
137197 l_component_type              VARCHAR2(80);
137198 l_component_code              VARCHAR2(30);
137199 l_component_type_code         VARCHAR2(1);
137200 l_component_appl_id           INTEGER;
137201 l_amb_context_code            VARCHAR2(30);
137202 l_entity_code                 VARCHAR2(30);
137203 l_event_class_code            VARCHAR2(30);
137204 l_ae_header_id                NUMBER;
137205 l_event_type_code             VARCHAR2(30);
137206 l_line_definition_code        VARCHAR2(30);
137207 l_line_definition_owner_code  VARCHAR2(1);
137208 --
137209 -- adr variables
137210 l_segment                     VARCHAR2(30);
137211 l_ccid                        NUMBER;
137212 l_adr_transaction_coa_id      NUMBER;
137213 l_adr_accounting_coa_id       NUMBER;
137214 l_adr_flexfield_segment_code  VARCHAR2(30);
137215 l_adr_flex_value_set_id       NUMBER;
137216 l_adr_value_type_code         VARCHAR2(30);
137217 l_adr_value_combination_id    NUMBER;
137218 l_adr_value_segment_code      VARCHAR2(30);
137219 
137220 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137221 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137222 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137223 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137224 
137225 -- 4262811 Variables ------------------------------------------------------------------------------------------
137226 l_entered_amt_idx             NUMBER;
137227 l_accted_amt_idx              NUMBER;
137228 l_acc_rev_flag                VARCHAR2(1);
137229 l_accrual_line_num            NUMBER;
137230 l_tmp_amt                     NUMBER;
137231 l_acc_rev_natural_side_code   VARCHAR2(1);
137232 
137233 l_num_entries                 NUMBER;
137234 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137235 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137236 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137237 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137238 l_recog_line_1                NUMBER;
137239 l_recog_line_2                NUMBER;
137240 
137241 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137242 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137243 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137244 
137245 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137246 
137247 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137248 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137249 
137250 ---------------------------------------------------------------------------------------------------------------
137251 
137252 
137253 --
137254 -- bulk performance
137255 --
137256 l_balance_type_code           VARCHAR2(1);
137260 --
137257 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137258 l_log_module                  VARCHAR2(240);
137259 
137261 -- Upgrade strategy
137262 --
137263 l_actual_upg_option           VARCHAR2(1);
137264 l_enc_upg_option           VARCHAR2(1);
137265 
137266 --
137267 BEGIN
137268 --
137269 IF g_log_enabled THEN
137270       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_218';
137271 END IF;
137272 --
137273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137274 
137275       trace
137276          (p_msg      => 'BEGIN of AcctLineType_218'
137277          ,p_level    => C_LEVEL_PROCEDURE
137278          ,p_module   => l_log_module);
137279 
137280 END IF;
137281 --
137282 l_component_type             := 'AMB_JLT';
137283 l_component_code             := 'AP_TAX_RATE_VAR_INV';
137284 l_component_type_code        := 'S';
137285 l_component_appl_id          :=  200;
137286 l_amb_context_code           := 'DEFAULT';
137287 l_entity_code                := 'AP_INVOICES';
137288 l_event_class_code           := 'INVOICES';
137289 l_event_type_code            := 'INVOICES_ALL';
137290 l_line_definition_owner_code := 'S';
137291 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
137292 --
137293 l_balance_type_code          := 'A';
137294 l_segment                     := NULL;
137295 l_ccid                        := NULL;
137296 l_adr_transaction_coa_id      := NULL;
137297 l_adr_accounting_coa_id       := NULL;
137298 l_adr_flexfield_segment_code  := NULL;
137299 l_adr_flex_value_set_id       := NULL;
137300 l_adr_value_type_code         := NULL;
137301 l_adr_value_combination_id    := NULL;
137302 l_adr_value_segment_code      := NULL;
137303 
137304 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
137305 l_bflow_class_code           := '';    -- 4219869 Business Flow
137306 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
137307 l_budgetary_control_flag     := 'N';
137308 
137309 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
137310 l_bflow_applied_to_amt       := NULL; -- 5132302
137311 l_entered_amt_idx            := NULL;          -- 4262811
137312 l_accted_amt_idx             := NULL;          -- 4262811
137313 l_acc_rev_flag               := NULL;          -- 4262811
137314 l_accrual_line_num           := NULL;          -- 4262811
137315 l_tmp_amt                    := NULL;          -- 4262811
137316 --
137317  
137318 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
137319     l_balance_type_code <> 'B' THEN
137320 IF NVL(p_source_33,'
137321 ') =  'TRV' AND 
137322 NVL(p_source_95,'
137323 ') =  'Y'
137324  THEN 
137325 
137326    --
137327    XLA_AE_LINES_PKG.SetNewLine;
137328 
137329    p_balance_type_code          := l_balance_type_code;
137330    -- set the flag so later we will know whether the gain loss line needs to be created
137331    
137332    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
137333      p_actual_flag :='A';
137334    END IF;
137335 
137336    --
137337    -- bulk performance
137338    --
137339    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
137340                                       p_header_num   => 0); -- 4262811
137341    --
137342    -- set accounting line options
137343    --
137344    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
137345            p_natural_side_code          => 'D'
137346          , p_gain_or_loss_flag          => 'N'
137347          , p_gl_transfer_mode_code      => 'S'
137348          , p_acct_entry_type_code       => 'A'
137349          , p_switch_side_flag           => 'Y'
137350          , p_merge_duplicate_code       => 'A'
137351          );
137352    --
137353    l_acc_rev_natural_side_code := 'C';  -- 4262811
137354    -- 
137355    --
137356    -- set accounting line type info
137357    --
137358    xla_ae_lines_pkg.SetAcctLineType
137359       (p_component_type             => l_component_type
137360       ,p_event_type_code            => l_event_type_code
137361       ,p_line_definition_owner_code => l_line_definition_owner_code
137362       ,p_line_definition_code       => l_line_definition_code
137363       ,p_accounting_line_code       => l_component_code
137364       ,p_accounting_line_type_code  => l_component_type_code
137365       ,p_accounting_line_appl_id    => l_component_appl_id
137366       ,p_amb_context_code           => l_amb_context_code
137367       ,p_entity_code                => l_entity_code
137368       ,p_event_class_code           => l_event_class_code);
137369    --
137370    -- set accounting class
137371    --
137372    xla_ae_lines_pkg.SetAcctClass(
137373            p_accounting_class_code  => 'TRV'
137374          , p_ae_header_id           => l_ae_header_id
137375          );
137376 
137377    --
137378    -- set rounding class
137379    --
137380    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
137381                       'TRV';
137382 
137383    --
137384    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
137385    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
137386    --
137387    -- bulk performance
137388    --
137389    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
137390 
137391    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
137395    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137392       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
137393 
137394    -- 4955764
137396       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
137397 
137398    -- 4458381 Public Sector Enh
137399    
137400    --
137401    -- set accounting attributes for the line type
137402    --
137403    l_entered_amt_idx := 24;
137404    l_accted_amt_idx  := 29;
137405    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
137406    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
137407    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
137408    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
137409    l_rec_acct_attrs.array_num_value(2)  := 
137410 xla_ae_sources_pkg.GetSystemSourceNum(
137411    p_source_code           => 'XLA_EVENT_APPL_ID'
137412  , p_source_type_code      => 'Y'
137413  , p_source_application_id =>  602
137414 );
137415    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
137416    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
137417    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
137418    l_rec_acct_attrs.array_char_value(4)  := 
137419 xla_ae_sources_pkg.GetSystemSourceChar(
137420    p_source_code           => 'XLA_ENTITY_CODE'
137421  , p_source_type_code      => 'Y'
137422  , p_source_application_id =>  602
137423 );
137424    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
137425    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
137426    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
137427    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
137428    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
137429    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
137430    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
137431    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
137432    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
137433    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
137434    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
137435    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
137436    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
137437    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
137438    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
137439    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
137440    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
137441    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
137442    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
137443    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
137444    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
137445    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
137446    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
137447    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
137448    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
137449    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
137450    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
137451    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
137452    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
137453    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
137454    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
137455    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
137456    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
137457    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
137458    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
137459    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
137460    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
137461    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
137462    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
137463    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
137464    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
137465    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
137466    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
137467    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
137468    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
137469    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
137470    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
137471    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
137472    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
137473    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
137474    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
137475    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
137476    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
137477    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
137478    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
137479    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
137480    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
137481    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
137482    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
137483    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
137484    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
137488    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
137485    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
137486    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
137487    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
137489    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
137490    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
137491    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
137492    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
137493    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
137494    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
137495    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
137496    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
137497    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
137498    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
137499    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
137500    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
137501    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
137502    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
137503    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
137504 
137505    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
137506    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
137507 
137508    ---------------------------------------------------------------------------------------------------------------
137509    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
137510    ---------------------------------------------------------------------------------------------------------------
137511    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
137512 
137513    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137514    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137515 
137516    IF xla_accounting_cache_pkg.GetValueChar
137517          (p_source_code         => 'LEDGER_CATEGORY_CODE'
137518          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
137519    AND l_bflow_method_code = 'PRIOR_ENTRY'
137520 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
137521    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
137522          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
137523        )
137524    THEN
137525          xla_ae_lines_pkg.BflowUpgEntry
137526            (p_business_method_code    => l_bflow_method_code
137527            ,p_business_class_code     => l_bflow_class_code
137528            ,p_balance_type            => l_balance_type_code);
137529    ELSE
137530       NULL;
137531 -- No business flow processing for business flow method of NONE.
137532    END IF;
137533 
137534    --
137535    -- call analytical criteria
137536    --
137537    
137538    --
137539    -- call description
137540    --
137541    
137542 xla_ae_lines_pkg.SetLineDescription(
137543    p_ae_header_id => l_ae_header_id
137544   ,p_description  => Description_1 (
137545      p_application_id         => p_application_id
137546    , p_ae_header_id           => l_ae_header_id 
137547 , p_source_1 => p_source_1
137548    )
137549 );
137550 
137551 
137552    --
137553    -- call ADRs
137554    -- Bug 4922099
137555    --
137556    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137557         (NVL(l_actual_upg_option, 'N') = 'O') OR
137558         (NVL(l_enc_upg_option, 'N') = 'O')
137559       )
137560    THEN
137561    NULL;
137562    --
137563    --
137564    
137565   l_ccid := AcctDerRule_33(
137566            p_application_id           => p_application_id
137567          , p_ae_header_id             => l_ae_header_id 
137568 , p_source_30 => p_source_30
137569          , x_transaction_coa_id       => l_adr_transaction_coa_id
137570          , x_accounting_coa_id        => l_adr_accounting_coa_id
137571          , x_value_type_code          => l_adr_value_type_code
137572          , p_side                     => 'NA'
137573    );
137574 
137575    xla_ae_lines_pkg.set_ccid(
137576     p_code_combination_id          => l_ccid
137577   , p_value_type_code              => l_adr_value_type_code
137578   , p_transaction_coa_id           => l_adr_transaction_coa_id
137579   , p_accounting_coa_id            => l_adr_accounting_coa_id
137580   , p_adr_code                     => 'AP_INVOICE_DIST'
137581   , p_adr_type_code                => 'S'
137582   , p_component_type               => l_component_type
137583   , p_component_code               => l_component_code
137584   , p_component_type_code          => l_component_type_code
137585   , p_component_appl_id            => l_component_appl_id
137586   , p_amb_context_code             => l_amb_context_code
137587   , p_side                         => 'NA'
137588   );
137589 
137590 
137591    --
137592    --
137593    END IF;
137594    --
137595    -- Bug 4922099
137596    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
137597           (NVL(l_enc_upg_option, 'N') = 'O')
137598         ) AND
137599         (l_bflow_method_code = 'PRIOR_ENTRY')
137600       )
137601    THEN
137602       IF
137603       --
137604       1 = 2
137605       --
137606       THEN
137607       xla_accounting_err_pkg.build_message
137608                                     (p_appli_s_name            => 'XLA'
137612                                     ,p_token_2                 => 'LINE_TYPE_NAME'
137609                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137610                                     ,p_token_1                 => 'LINE_NUMBER'
137611                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
137613                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
137614                                                                              l_component_type
137615                                                                             ,l_component_code
137616                                                                             ,l_component_type_code
137617                                                                             ,l_component_appl_id
137618                                                                             ,l_amb_context_code
137619                                                                             ,l_entity_code
137620                                                                             ,l_event_class_code
137621                                                                            )
137622                                     ,p_token_3                 => 'OWNER'
137623                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
137624                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
137625                                                                           ,p_lookup_code    => l_component_type_code
137626                                                                          )
137627                                     ,p_token_4                 => 'PRODUCT_NAME'
137628                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
137629                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
137630                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
137631                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
137632                                     ,p_ae_header_id            =>  NULL
137633                                        );
137634 
137635         IF (C_LEVEL_ERROR>= g_log_level) THEN
137636                  trace
137637                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137638                       ,p_level    => C_LEVEL_ERROR
137639                       ,p_module   => l_log_module);
137640         END IF;
137641       END IF;
137642    END IF;
137643    --
137644    --
137645    ------------------------------------------------------------------------------------------------
137646    -- 4219869 Business Flow
137647    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
137648    -- Prior Entry.  Currently, the following code is always generated.
137649    ------------------------------------------------------------------------------------------------
137650    XLA_AE_LINES_PKG.ValidateCurrentLine;
137651 
137652    ------------------------------------------------------------------------------------
137653    -- 4219869 Business Flow
137654    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
137655    ------------------------------------------------------------------------------------
137656    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137657 
137658    ----------------------------------------------------------------------------------
137659    -- 4219869 Business Flow
137660    -- Update journal entry status -- Need to generate this within IF <condition>
137661    ----------------------------------------------------------------------------------
137662    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137663          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
137664          ,p_balance_type_code => l_balance_type_code
137665          );
137666 
137667    -------------------------------------------------------------------------------------------
137668    -- 4262811 - Generate the Accrual Reversal lines
137669    -------------------------------------------------------------------------------------------
137670    BEGIN
137671       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
137672                               (g_array_event(p_event_id).array_value_num('header_index'));
137673       IF l_acc_rev_flag IS NULL THEN
137674          l_acc_rev_flag := 'N';
137675       END IF;
137676    EXCEPTION
137677       WHEN OTHERS THEN
137678          l_acc_rev_flag := 'N';
137679    END;
137680    --
137681    IF (l_acc_rev_flag = 'Y') THEN
137682 
137683        -- 4645092  ------------------------------------------------------------------------------
137684        -- To allow MPA report to determine if it should generate report process
137685        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
137686        ------------------------------------------------------------------------------------------
137687 
137688        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
137689        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
137690    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
137691    -- call ADRs
137692    -- Bug 4922099
137693    --
137694    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137695         (NVL(l_actual_upg_option, 'N') = 'O') OR
137699    NULL;
137696         (NVL(l_enc_upg_option, 'N') = 'O')
137697       )
137698    THEN
137700    --
137701    --
137702    
137703   l_ccid := AcctDerRule_33(
137704            p_application_id           => p_application_id
137705          , p_ae_header_id             => l_ae_header_id 
137706 , p_source_30 => p_source_30
137707          , x_transaction_coa_id       => l_adr_transaction_coa_id
137708          , x_accounting_coa_id        => l_adr_accounting_coa_id
137709          , x_value_type_code          => l_adr_value_type_code
137710          , p_side                     => 'NA'
137711    );
137712 
137713    xla_ae_lines_pkg.set_ccid(
137714     p_code_combination_id          => l_ccid
137715   , p_value_type_code              => l_adr_value_type_code
137716   , p_transaction_coa_id           => l_adr_transaction_coa_id
137717   , p_accounting_coa_id            => l_adr_accounting_coa_id
137718   , p_adr_code                     => 'AP_INVOICE_DIST'
137719   , p_adr_type_code                => 'S'
137720   , p_component_type               => l_component_type
137721   , p_component_code               => l_component_code
137722   , p_component_type_code          => l_component_type_code
137723   , p_component_appl_id            => l_component_appl_id
137724   , p_amb_context_code             => l_amb_context_code
137725   , p_side                         => 'NA'
137726   );
137727 
137728 
137729    --
137730    --
137731    END IF;
137732 
137733        --
137734        -- Update the line information that should be overwritten
137735        --
137736        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137737                                          p_header_num   => 1);
137738        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137739 
137740        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137741 
137742        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137743           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137744        END IF;
137745 
137746       --
137747       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137748       --
137749       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137750           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137751       ELSE
137752           ---------------------------------------------------------------------------------------------------
137753           -- 4262811a Switch Sign
137754           ---------------------------------------------------------------------------------------------------
137755           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137756           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137757                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137758           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137759                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137760           -- 5132302
137761           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137762                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137763 
137764       END IF;
137765 
137766       -- 4955764
137767       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137768       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137769 
137770 
137771       XLA_AE_LINES_PKG.ValidateCurrentLine;
137772       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137773 
137774       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137775                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137776                ,p_balance_type_code => l_balance_type_code);
137777 
137778    END IF;
137779 
137780    -----------------------------------------------------------------------------------------
137781    -- 4262811 Multiperiod Accounting
137782    -----------------------------------------------------------------------------------------
137783      -- No MPA option is assigned.
137784 
137785 
137786 END IF;
137787 END IF;
137788 --
137789 
137790 --
137791 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137792    trace
137793       (p_msg      => 'END of AcctLineType_218'
137794       ,p_level    => C_LEVEL_PROCEDURE
137795       ,p_module   => l_log_module);
137796 END IF;
137797 --
137798 EXCEPTION
137799   WHEN xla_exceptions_pkg.application_exception THEN
137800       RAISE;
137801   WHEN OTHERS THEN
137802        xla_exceptions_pkg.raise_message
137803            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_218');
137804 END AcctLineType_218;
137805 --
137806 
137807 ---------------------------------------
137808 --
137809 -- PRIVATE FUNCTION
137810 --         AcctLineType_219
137811 --
137812 ---------------------------------------
137813 PROCEDURE AcctLineType_219 (
137814   p_application_id        IN NUMBER
137815  ,p_event_id              IN NUMBER
137816  ,p_calculate_acctd_flag  IN VARCHAR2
137817  ,p_calculate_g_l_flag    IN VARCHAR2
137821  
137818  ,p_actual_flag           IN OUT VARCHAR2
137819  ,p_balance_type_code     OUT VARCHAR2
137820  ,p_gain_or_loss_ref      OUT VARCHAR2
137822 --Invoice Distribution Description
137823  , p_source_1            IN VARCHAR2
137824 --Invoice Distribution Ledger Amount
137825  , p_source_21            IN NUMBER
137826 --Invoice Distribution Account
137827  , p_source_30            IN NUMBER
137828 --Invoice Distribution Type
137829  , p_source_33            IN VARCHAR2
137830  , p_source_33_meaning    IN VARCHAR2
137831 --Accounting Reversal Indicator
137832  , p_source_52            IN VARCHAR2
137833 --Distribution Link Type
137834  , p_source_54            IN VARCHAR2
137835 --Allocation to Main Distribution Identifier
137836  , p_source_56            IN NUMBER
137837 --Invoice Identifier
137838  , p_source_57            IN NUMBER
137839 --Invoice Distribution Identifier
137840  , p_source_63            IN NUMBER
137841 --Payables Encumbrance Upgrade Credit Account
137842  , p_source_64            IN NUMBER
137843 --Payables Encumbrance Upgrade Credit Amount
137844  , p_source_65            IN NUMBER
137845 --Invoice Currency Code
137846  , p_source_66            IN VARCHAR2
137847 --Payables Encumbrance Upgrade Credit Base Amount
137848  , p_source_67            IN NUMBER
137849 --Payables Encumbrance Upgrade Debit Account
137850  , p_source_68            IN NUMBER
137851 --Payables Encumbrance Upgrade Debit Amount
137852  , p_source_69            IN NUMBER
137853 --Payables Encumbrance Upgrade Debit Base Amount
137854  , p_source_70            IN NUMBER
137855 --Payables Encumbrance Upgrade Option
137856  , p_source_71            IN VARCHAR2
137857 --Invoice Distribution Amount
137858  , p_source_72            IN NUMBER
137859 --Deferred Accounting End Date
137860  , p_source_76            IN DATE
137861 --Deferred Accounting Option
137862  , p_source_77            IN VARCHAR2
137863 --Deferred Accounting Start Date
137864  , p_source_78            IN DATE
137865 --Override Accounted Amount Indicator
137866  , p_source_79            IN VARCHAR2
137867  , p_source_79_meaning    IN VARCHAR2
137868 --Invoice Supplier Identifier
137869  , p_source_80            IN NUMBER
137870 --Invoice Supplier Site Identifier
137871  , p_source_81            IN NUMBER
137872 --Third Party Type
137873  , p_source_82            IN VARCHAR2
137874 --Parent Reversal Identifier
137875  , p_source_83            IN NUMBER
137876 --Invoice Distribution Statistical Amount
137877  , p_source_84            IN NUMBER
137878 --Invoice Distribution Tax Line Identifier
137879  , p_source_85            IN NUMBER
137880 --Invoice Distribution Tax Distribution Identifier from Tax
137881  , p_source_86            IN NUMBER
137882 --Invoice Distribution Summary Tax Line Identifier
137883  , p_source_87            IN NUMBER
137884 --Payables Upgrade Credit Encumbrance Type Identifier
137885  , p_source_88            IN NUMBER
137886 --Payables Upgrade Debit Encumbrance Type Identifier
137887  , p_source_89            IN NUMBER
137888 --Business Flow Accounts Payable Application Identifier
137889  , p_source_90            IN NUMBER
137890 --Business Flow Invoice Distribution Type
137891  , p_source_91            IN VARCHAR2
137892 --Business Flow Invoice Entity Code
137893  , p_source_92            IN VARCHAR2
137894 --Business Flow Invoice Distribution Identifier
137895  , p_source_93            IN NUMBER
137896 --Business Flow Invoice Identifier
137897  , p_source_94            IN NUMBER
137898 --Accrue on Receipt Option
137899  , p_source_95            IN VARCHAR2
137900  , p_source_95_meaning    IN VARCHAR2
137901 --Invoice Exchange Date
137902  , p_source_136            IN DATE
137903 --Invoice Exchange Rate
137904  , p_source_137            IN NUMBER
137905 --Invoice Exchange Rate Type
137906  , p_source_138            IN VARCHAR2
137907 )
137908 IS
137909 
137910 l_component_type              VARCHAR2(80);
137911 l_component_code              VARCHAR2(30);
137912 l_component_type_code         VARCHAR2(1);
137913 l_component_appl_id           INTEGER;
137914 l_amb_context_code            VARCHAR2(30);
137915 l_entity_code                 VARCHAR2(30);
137916 l_event_class_code            VARCHAR2(30);
137917 l_ae_header_id                NUMBER;
137918 l_event_type_code             VARCHAR2(30);
137919 l_line_definition_code        VARCHAR2(30);
137920 l_line_definition_owner_code  VARCHAR2(1);
137921 --
137922 -- adr variables
137923 l_segment                     VARCHAR2(30);
137924 l_ccid                        NUMBER;
137925 l_adr_transaction_coa_id      NUMBER;
137926 l_adr_accounting_coa_id       NUMBER;
137927 l_adr_flexfield_segment_code  VARCHAR2(30);
137928 l_adr_flex_value_set_id       NUMBER;
137929 l_adr_value_type_code         VARCHAR2(30);
137930 l_adr_value_combination_id    NUMBER;
137931 l_adr_value_segment_code      VARCHAR2(30);
137932 
137933 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137934 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137935 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137936 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137937 
137938 -- 4262811 Variables ------------------------------------------------------------------------------------------
137939 l_entered_amt_idx             NUMBER;
137940 l_accted_amt_idx              NUMBER;
137941 l_acc_rev_flag                VARCHAR2(1);
137942 l_accrual_line_num            NUMBER;
137943 l_tmp_amt                     NUMBER;
137947 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137944 l_acc_rev_natural_side_code   VARCHAR2(1);
137945 
137946 l_num_entries                 NUMBER;
137948 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137949 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137950 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137951 l_recog_line_1                NUMBER;
137952 l_recog_line_2                NUMBER;
137953 
137954 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137955 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137956 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137957 
137958 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137959 
137960 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137961 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137962 
137963 ---------------------------------------------------------------------------------------------------------------
137964 
137965 
137966 --
137967 -- bulk performance
137968 --
137969 l_balance_type_code           VARCHAR2(1);
137970 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137971 l_log_module                  VARCHAR2(240);
137972 
137973 --
137974 -- Upgrade strategy
137975 --
137976 l_actual_upg_option           VARCHAR2(1);
137977 l_enc_upg_option           VARCHAR2(1);
137978 
137979 --
137980 BEGIN
137981 --
137982 IF g_log_enabled THEN
137983       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_219';
137984 END IF;
137985 --
137986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137987 
137988       trace
137989          (p_msg      => 'BEGIN of AcctLineType_219'
137990          ,p_level    => C_LEVEL_PROCEDURE
137991          ,p_module   => l_log_module);
137992 
137993 END IF;
137994 --
137995 l_component_type             := 'AMB_JLT';
137996 l_component_code             := 'AP_TAX_RATE_VAR_PREPAY';
137997 l_component_type_code        := 'S';
137998 l_component_appl_id          :=  200;
137999 l_amb_context_code           := 'DEFAULT';
138000 l_entity_code                := 'AP_INVOICES';
138001 l_event_class_code           := 'PREPAYMENTS';
138002 l_event_type_code            := 'PREPAYMENTS_ALL';
138003 l_line_definition_owner_code := 'S';
138004 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
138005 --
138006 l_balance_type_code          := 'A';
138007 l_segment                     := NULL;
138008 l_ccid                        := NULL;
138009 l_adr_transaction_coa_id      := NULL;
138010 l_adr_accounting_coa_id       := NULL;
138011 l_adr_flexfield_segment_code  := NULL;
138012 l_adr_flex_value_set_id       := NULL;
138013 l_adr_value_type_code         := NULL;
138014 l_adr_value_combination_id    := NULL;
138015 l_adr_value_segment_code      := NULL;
138016 
138017 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138018 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
138019 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138020 l_budgetary_control_flag     := 'N';
138021 
138022 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138023 l_bflow_applied_to_amt       := NULL; -- 5132302
138024 l_entered_amt_idx            := NULL;          -- 4262811
138025 l_accted_amt_idx             := NULL;          -- 4262811
138026 l_acc_rev_flag               := NULL;          -- 4262811
138027 l_accrual_line_num           := NULL;          -- 4262811
138028 l_tmp_amt                    := NULL;          -- 4262811
138029 --
138030  
138031 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138032     l_balance_type_code <> 'B' THEN
138033 IF NVL(p_source_33,'
138034 ') =  'TRV' AND 
138035 NVL(p_source_95,'
138036 ') =  'Y'
138037  THEN 
138038 
138039    --
138040    XLA_AE_LINES_PKG.SetNewLine;
138041 
138042    p_balance_type_code          := l_balance_type_code;
138043    -- set the flag so later we will know whether the gain loss line needs to be created
138044    
138045    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138046      p_actual_flag :='A';
138047    END IF;
138048 
138049    --
138050    -- bulk performance
138051    --
138052    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138053                                       p_header_num   => 0); -- 4262811
138054    --
138055    -- set accounting line options
138056    --
138057    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138058            p_natural_side_code          => 'D'
138059          , p_gain_or_loss_flag          => 'N'
138060          , p_gl_transfer_mode_code      => 'S'
138061          , p_acct_entry_type_code       => 'A'
138062          , p_switch_side_flag           => 'Y'
138063          , p_merge_duplicate_code       => 'A'
138064          );
138065    --
138066    l_acc_rev_natural_side_code := 'C';  -- 4262811
138067    -- 
138068    --
138069    -- set accounting line type info
138070    --
138071    xla_ae_lines_pkg.SetAcctLineType
138072       (p_component_type             => l_component_type
138073       ,p_event_type_code            => l_event_type_code
138074       ,p_line_definition_owner_code => l_line_definition_owner_code
138075       ,p_line_definition_code       => l_line_definition_code
138076       ,p_accounting_line_code       => l_component_code
138080       ,p_entity_code                => l_entity_code
138077       ,p_accounting_line_type_code  => l_component_type_code
138078       ,p_accounting_line_appl_id    => l_component_appl_id
138079       ,p_amb_context_code           => l_amb_context_code
138081       ,p_event_class_code           => l_event_class_code);
138082    --
138083    -- set accounting class
138084    --
138085    xla_ae_lines_pkg.SetAcctClass(
138086            p_accounting_class_code  => 'TRV'
138087          , p_ae_header_id           => l_ae_header_id
138088          );
138089 
138090    --
138091    -- set rounding class
138092    --
138093    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138094                       'TRV';
138095 
138096    --
138097    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138098    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138099    --
138100    -- bulk performance
138101    --
138102    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138103 
138104    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138105       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138106 
138107    -- 4955764
138108    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138109       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138110 
138111    -- 4458381 Public Sector Enh
138112    
138113    --
138114    -- set accounting attributes for the line type
138115    --
138116    l_entered_amt_idx := 23;
138117    l_accted_amt_idx  := 28;
138118    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
138119    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138120    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
138121    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
138122    l_rec_acct_attrs.array_num_value(2)  := 
138123 xla_ae_sources_pkg.GetSystemSourceNum(
138124    p_source_code           => 'XLA_EVENT_APPL_ID'
138125  , p_source_type_code      => 'Y'
138126  , p_source_application_id =>  602
138127 );
138128    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
138129    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
138130    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
138131    l_rec_acct_attrs.array_char_value(4)  := 
138132 xla_ae_sources_pkg.GetSystemSourceChar(
138133    p_source_code           => 'XLA_ENTITY_CODE'
138134  , p_source_type_code      => 'Y'
138135  , p_source_application_id =>  602
138136 );
138137    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
138138    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
138139    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
138140    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
138141    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
138142    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
138143    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138144    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
138145    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
138146    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
138147    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
138148    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
138149    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138150    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
138151    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
138152    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
138153    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
138154    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
138155    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
138156    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
138157    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
138158    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
138159    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
138160    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
138161    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
138162    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
138163    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
138164    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
138165    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
138166    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
138167    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
138168    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
138169    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
138170    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
138171    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
138172    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
138173    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
138174    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
138175    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
138176    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
138177    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
138178    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
138182    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
138179    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
138180    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
138181    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
138183    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
138184    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
138185    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
138186    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
138187    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
138188    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
138189    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
138190    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
138191    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
138192    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
138193    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
138194    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
138195    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
138196    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
138197    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
138198    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
138199    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
138200    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
138201    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
138202    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
138203    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
138204    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
138205    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
138206    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
138207    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
138208    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
138209    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
138210    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
138211    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
138212    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
138213    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
138214    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
138215 
138216    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138217    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138218 
138219    ---------------------------------------------------------------------------------------------------------------
138220    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138221    ---------------------------------------------------------------------------------------------------------------
138222    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138223 
138224    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138225    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138226 
138227    IF xla_accounting_cache_pkg.GetValueChar
138228          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138229          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138230    AND l_bflow_method_code = 'PRIOR_ENTRY'
138231 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138232    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138233          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138234        )
138235    THEN
138236          xla_ae_lines_pkg.BflowUpgEntry
138237            (p_business_method_code    => l_bflow_method_code
138238            ,p_business_class_code     => l_bflow_class_code
138239            ,p_balance_type            => l_balance_type_code);
138240    ELSE
138241       NULL;
138242 -- No business flow processing for business flow method of NONE.
138243    END IF;
138244 
138245    --
138246    -- call analytical criteria
138247    --
138248    
138249    --
138250    -- call description
138251    --
138252    
138253 xla_ae_lines_pkg.SetLineDescription(
138254    p_ae_header_id => l_ae_header_id
138255   ,p_description  => Description_1 (
138256      p_application_id         => p_application_id
138257    , p_ae_header_id           => l_ae_header_id 
138258 , p_source_1 => p_source_1
138259    )
138260 );
138261 
138262 
138263    --
138264    -- call ADRs
138265    -- Bug 4922099
138266    --
138267    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138268         (NVL(l_actual_upg_option, 'N') = 'O') OR
138269         (NVL(l_enc_upg_option, 'N') = 'O')
138270       )
138271    THEN
138272    NULL;
138273    --
138274    --
138275    
138276   l_ccid := AcctDerRule_33(
138277            p_application_id           => p_application_id
138278          , p_ae_header_id             => l_ae_header_id 
138279 , p_source_30 => p_source_30
138280          , x_transaction_coa_id       => l_adr_transaction_coa_id
138281          , x_accounting_coa_id        => l_adr_accounting_coa_id
138282          , x_value_type_code          => l_adr_value_type_code
138283          , p_side                     => 'NA'
138284    );
138285 
138286    xla_ae_lines_pkg.set_ccid(
138287     p_code_combination_id          => l_ccid
138288   , p_value_type_code              => l_adr_value_type_code
138292   , p_adr_type_code                => 'S'
138289   , p_transaction_coa_id           => l_adr_transaction_coa_id
138290   , p_accounting_coa_id            => l_adr_accounting_coa_id
138291   , p_adr_code                     => 'AP_INVOICE_DIST'
138293   , p_component_type               => l_component_type
138294   , p_component_code               => l_component_code
138295   , p_component_type_code          => l_component_type_code
138296   , p_component_appl_id            => l_component_appl_id
138297   , p_amb_context_code             => l_amb_context_code
138298   , p_side                         => 'NA'
138299   );
138300 
138301 
138302    --
138303    --
138304    END IF;
138305    --
138306    -- Bug 4922099
138307    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
138308           (NVL(l_enc_upg_option, 'N') = 'O')
138309         ) AND
138310         (l_bflow_method_code = 'PRIOR_ENTRY')
138311       )
138312    THEN
138313       IF
138314       --
138315       1 = 2
138316       --
138317       THEN
138318       xla_accounting_err_pkg.build_message
138319                                     (p_appli_s_name            => 'XLA'
138320                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138321                                     ,p_token_1                 => 'LINE_NUMBER'
138322                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
138323                                     ,p_token_2                 => 'LINE_TYPE_NAME'
138324                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
138325                                                                              l_component_type
138326                                                                             ,l_component_code
138327                                                                             ,l_component_type_code
138328                                                                             ,l_component_appl_id
138329                                                                             ,l_amb_context_code
138330                                                                             ,l_entity_code
138331                                                                             ,l_event_class_code
138332                                                                            )
138333                                     ,p_token_3                 => 'OWNER'
138334                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
138335                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
138336                                                                           ,p_lookup_code    => l_component_type_code
138337                                                                          )
138338                                     ,p_token_4                 => 'PRODUCT_NAME'
138339                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
138340                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
138341                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
138342                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
138343                                     ,p_ae_header_id            =>  NULL
138344                                        );
138345 
138346         IF (C_LEVEL_ERROR>= g_log_level) THEN
138347                  trace
138348                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138349                       ,p_level    => C_LEVEL_ERROR
138350                       ,p_module   => l_log_module);
138351         END IF;
138352       END IF;
138353    END IF;
138354    --
138355    --
138356    ------------------------------------------------------------------------------------------------
138357    -- 4219869 Business Flow
138358    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
138359    -- Prior Entry.  Currently, the following code is always generated.
138360    ------------------------------------------------------------------------------------------------
138361    XLA_AE_LINES_PKG.ValidateCurrentLine;
138362 
138363    ------------------------------------------------------------------------------------
138364    -- 4219869 Business Flow
138365    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
138366    ------------------------------------------------------------------------------------
138367    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138368 
138369    ----------------------------------------------------------------------------------
138370    -- 4219869 Business Flow
138371    -- Update journal entry status -- Need to generate this within IF <condition>
138372    ----------------------------------------------------------------------------------
138373    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138374          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
138375          ,p_balance_type_code => l_balance_type_code
138376          );
138377 
138378    -------------------------------------------------------------------------------------------
138379    -- 4262811 - Generate the Accrual Reversal lines
138380    -------------------------------------------------------------------------------------------
138381    BEGIN
138385          l_acc_rev_flag := 'N';
138382       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
138383                               (g_array_event(p_event_id).array_value_num('header_index'));
138384       IF l_acc_rev_flag IS NULL THEN
138386       END IF;
138387    EXCEPTION
138388       WHEN OTHERS THEN
138389          l_acc_rev_flag := 'N';
138390    END;
138391    --
138392    IF (l_acc_rev_flag = 'Y') THEN
138393 
138394        -- 4645092  ------------------------------------------------------------------------------
138395        -- To allow MPA report to determine if it should generate report process
138396        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
138397        ------------------------------------------------------------------------------------------
138398 
138399        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
138400        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
138401    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
138402    -- call ADRs
138403    -- Bug 4922099
138404    --
138405    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138406         (NVL(l_actual_upg_option, 'N') = 'O') OR
138407         (NVL(l_enc_upg_option, 'N') = 'O')
138408       )
138409    THEN
138410    NULL;
138411    --
138412    --
138413    
138414   l_ccid := AcctDerRule_33(
138415            p_application_id           => p_application_id
138416          , p_ae_header_id             => l_ae_header_id 
138417 , p_source_30 => p_source_30
138418          , x_transaction_coa_id       => l_adr_transaction_coa_id
138419          , x_accounting_coa_id        => l_adr_accounting_coa_id
138420          , x_value_type_code          => l_adr_value_type_code
138421          , p_side                     => 'NA'
138422    );
138423 
138424    xla_ae_lines_pkg.set_ccid(
138425     p_code_combination_id          => l_ccid
138426   , p_value_type_code              => l_adr_value_type_code
138427   , p_transaction_coa_id           => l_adr_transaction_coa_id
138428   , p_accounting_coa_id            => l_adr_accounting_coa_id
138429   , p_adr_code                     => 'AP_INVOICE_DIST'
138430   , p_adr_type_code                => 'S'
138431   , p_component_type               => l_component_type
138432   , p_component_code               => l_component_code
138433   , p_component_type_code          => l_component_type_code
138434   , p_component_appl_id            => l_component_appl_id
138435   , p_amb_context_code             => l_amb_context_code
138436   , p_side                         => 'NA'
138437   );
138438 
138439 
138440    --
138441    --
138442    END IF;
138443 
138444        --
138445        -- Update the line information that should be overwritten
138446        --
138447        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
138448                                          p_header_num   => 1);
138449        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
138450 
138451        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
138452 
138453        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
138454           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
138455        END IF;
138456 
138457       --
138458       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
138459       --
138460       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
138461           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
138462       ELSE
138463           ---------------------------------------------------------------------------------------------------
138464           -- 4262811a Switch Sign
138465           ---------------------------------------------------------------------------------------------------
138466           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
138467           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138468                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138469           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138470                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138471           -- 5132302
138472           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
138473                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138474 
138475       END IF;
138476 
138477       -- 4955764
138478       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138479       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
138480 
138481 
138482       XLA_AE_LINES_PKG.ValidateCurrentLine;
138483       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138484 
138485       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138486                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
138487                ,p_balance_type_code => l_balance_type_code);
138488 
138489    END IF;
138490 
138491    -----------------------------------------------------------------------------------------
138492    -- 4262811 Multiperiod Accounting
138496 
138493    -----------------------------------------------------------------------------------------
138494      -- No MPA option is assigned.
138495 
138497 END IF;
138498 END IF;
138499 --
138500 
138501 --
138502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138503    trace
138504       (p_msg      => 'END of AcctLineType_219'
138505       ,p_level    => C_LEVEL_PROCEDURE
138506       ,p_module   => l_log_module);
138507 END IF;
138508 --
138509 EXCEPTION
138510   WHEN xla_exceptions_pkg.application_exception THEN
138511       RAISE;
138512   WHEN OTHERS THEN
138513        xla_exceptions_pkg.raise_message
138514            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_219');
138515 END AcctLineType_219;
138516 --
138517 
138518 ---------------------------------------
138519 --
138520 -- PRIVATE FUNCTION
138521 --         AcctLineType_220
138522 --
138523 ---------------------------------------
138524 PROCEDURE AcctLineType_220 (
138525   p_application_id        IN NUMBER
138526  ,p_event_id              IN NUMBER
138527  ,p_calculate_acctd_flag  IN VARCHAR2
138528  ,p_calculate_g_l_flag    IN VARCHAR2
138529  ,p_actual_flag           IN OUT VARCHAR2
138530  ,p_balance_type_code     OUT VARCHAR2
138531  ,p_gain_or_loss_ref      OUT VARCHAR2
138532  
138533 --Payment Currency Code
138534  , p_source_13            IN VARCHAR2
138535 --Automatic Offsets Value
138536  , p_source_15            IN VARCHAR2
138537  , p_source_15_meaning    IN VARCHAR2
138538 --Invoice Distribution Account
138539  , p_source_30            IN NUMBER
138540 --Withholding Related Distribution Account
138541  , p_source_43            IN NUMBER
138542 --Accounting Reversal Indicator
138543  , p_source_52            IN VARCHAR2
138544 --Distribution Link Type
138545  , p_source_54            IN VARCHAR2
138546 --Override Accounted Amount Indicator
138547  , p_source_79            IN VARCHAR2
138548  , p_source_79_meaning    IN VARCHAR2
138549 --Third Party Type
138550  , p_source_82            IN VARCHAR2
138551 --Invoice Distribution Tax Line Identifier
138552  , p_source_85            IN NUMBER
138553 --Invoice Distribution Summary Tax Line Identifier
138554  , p_source_87            IN NUMBER
138555 --Business Flow Accounts Payable Application Identifier
138556  , p_source_90            IN NUMBER
138557 --When to Account for Payment Option
138558  , p_source_96            IN VARCHAR2
138559 --Payment Distribution Type
138560  , p_source_97            IN VARCHAR2
138561  , p_source_97_meaning    IN VARCHAR2
138562 --Payment Distribution Amount
138563  , p_source_98            IN NUMBER
138564 --Business Flow Payment Distribution Type
138565  , p_source_99            IN VARCHAR2
138566 --Business Flow Payment Entity Code
138567  , p_source_100            IN VARCHAR2
138568 --Business Flow Payment Distribution Identifier
138569  , p_source_101            IN NUMBER
138570 --Business Flow Payment Identifier
138571  , p_source_102            IN NUMBER
138572 --Payment Distribution Identifier
138573  , p_source_103            IN NUMBER
138574 --Payment Supplier Identifier
138575  , p_source_109            IN NUMBER
138576 --Payment Supplier Site Identifier
138577  , p_source_110            IN NUMBER
138578 --Payment Distribution Reversed Identifier
138579  , p_source_111            IN NUMBER
138580 --Payment Identifier
138581  , p_source_112            IN NUMBER
138582 --Payment Distribution (Invoice Rate) Ledger Amount
138583  , p_source_116            IN NUMBER
138584 --Invoice Exchange Date
138585  , p_source_136            IN DATE
138586 --Invoice Exchange Rate
138587  , p_source_137            IN NUMBER
138588 --Invoice Exchange Rate Type
138589  , p_source_138            IN VARCHAR2
138590 --Withholding at Payment Indicator
138591  , p_source_161            IN VARCHAR2
138592  , p_source_161_meaning    IN VARCHAR2
138593 )
138594 IS
138595 
138596 l_component_type              VARCHAR2(80);
138597 l_component_code              VARCHAR2(30);
138598 l_component_type_code         VARCHAR2(1);
138599 l_component_appl_id           INTEGER;
138600 l_amb_context_code            VARCHAR2(30);
138601 l_entity_code                 VARCHAR2(30);
138602 l_event_class_code            VARCHAR2(30);
138603 l_ae_header_id                NUMBER;
138604 l_event_type_code             VARCHAR2(30);
138605 l_line_definition_code        VARCHAR2(30);
138606 l_line_definition_owner_code  VARCHAR2(1);
138607 --
138608 -- adr variables
138609 l_segment                     VARCHAR2(30);
138610 l_ccid                        NUMBER;
138611 l_adr_transaction_coa_id      NUMBER;
138612 l_adr_accounting_coa_id       NUMBER;
138613 l_adr_flexfield_segment_code  VARCHAR2(30);
138614 l_adr_flex_value_set_id       NUMBER;
138615 l_adr_value_type_code         VARCHAR2(30);
138616 l_adr_value_combination_id    NUMBER;
138617 l_adr_value_segment_code      VARCHAR2(30);
138618 
138619 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
138620 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
138621 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
138622 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
138623 
138624 -- 4262811 Variables ------------------------------------------------------------------------------------------
138625 l_entered_amt_idx             NUMBER;
138626 l_accted_amt_idx              NUMBER;
138627 l_acc_rev_flag                VARCHAR2(1);
138628 l_accrual_line_num            NUMBER;
138632 l_num_entries                 NUMBER;
138629 l_tmp_amt                     NUMBER;
138630 l_acc_rev_natural_side_code   VARCHAR2(1);
138631 
138633 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138634 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138635 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138636 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138637 l_recog_line_1                NUMBER;
138638 l_recog_line_2                NUMBER;
138639 
138640 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138641 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138642 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138643 
138644 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138645 
138646 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138647 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138648 
138649 ---------------------------------------------------------------------------------------------------------------
138650 
138651 
138652 --
138653 -- bulk performance
138654 --
138655 l_balance_type_code           VARCHAR2(1);
138656 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138657 l_log_module                  VARCHAR2(240);
138658 
138659 --
138660 -- Upgrade strategy
138661 --
138662 l_actual_upg_option           VARCHAR2(1);
138663 l_enc_upg_option           VARCHAR2(1);
138664 
138665 --
138666 BEGIN
138667 --
138668 IF g_log_enabled THEN
138669       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_220';
138670 END IF;
138671 --
138672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138673 
138674       trace
138675          (p_msg      => 'BEGIN of AcctLineType_220'
138676          ,p_level    => C_LEVEL_PROCEDURE
138677          ,p_module   => l_log_module);
138678 
138679 END IF;
138680 --
138681 l_component_type             := 'AMB_JLT';
138682 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_CLEAR';
138683 l_component_type_code        := 'S';
138684 l_component_appl_id          :=  200;
138685 l_amb_context_code           := 'DEFAULT';
138686 l_entity_code                := 'AP_PAYMENTS';
138687 l_event_class_code           := 'RECONCILED PAYMENTS';
138688 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
138689 l_line_definition_owner_code := 'S';
138690 l_line_definition_code       := 'JA_CN_ACCRUAL_RECONCILED_PAY';
138691 --
138692 l_balance_type_code          := 'A';
138693 l_segment                     := NULL;
138694 l_ccid                        := NULL;
138695 l_adr_transaction_coa_id      := NULL;
138696 l_adr_accounting_coa_id       := NULL;
138697 l_adr_flexfield_segment_code  := NULL;
138698 l_adr_flex_value_set_id       := NULL;
138699 l_adr_value_type_code         := NULL;
138700 l_adr_value_combination_id    := NULL;
138701 l_adr_value_segment_code      := NULL;
138702 
138703 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138704 l_bflow_class_code           := '';    -- 4219869 Business Flow
138705 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138706 l_budgetary_control_flag     := 'N';
138707 
138708 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138709 l_bflow_applied_to_amt       := NULL; -- 5132302
138710 l_entered_amt_idx            := NULL;          -- 4262811
138711 l_accted_amt_idx             := NULL;          -- 4262811
138712 l_acc_rev_flag               := NULL;          -- 4262811
138713 l_accrual_line_num           := NULL;          -- 4262811
138714 l_tmp_amt                    := NULL;          -- 4262811
138715 --
138716  
138717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138718     l_balance_type_code <> 'B' THEN
138719 IF NVL(p_source_96,'
138720 ') =  'CLEAR_CLEAR' AND 
138721 NVL(p_source_97,'
138722 ') =  'AWT' AND 
138723 NVL(p_source_161,'
138724 ') =  'Y'
138725  THEN 
138726 
138727    --
138728    XLA_AE_LINES_PKG.SetNewLine;
138729 
138730    p_balance_type_code          := l_balance_type_code;
138731    -- set the flag so later we will know whether the gain loss line needs to be created
138732    
138733    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138734      p_actual_flag :='A';
138735    END IF;
138736 
138737    --
138738    -- bulk performance
138739    --
138740    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138741                                       p_header_num   => 0); -- 4262811
138742    --
138743    -- set accounting line options
138744    --
138745    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138746            p_natural_side_code          => 'C'
138747          , p_gain_or_loss_flag          => 'N'
138748          , p_gl_transfer_mode_code      => 'S'
138749          , p_acct_entry_type_code       => 'A'
138750          , p_switch_side_flag           => 'Y'
138751          , p_merge_duplicate_code       => 'A'
138752          );
138753    --
138754    l_acc_rev_natural_side_code := 'D';  -- 4262811
138755    -- 
138756    --
138757    -- set accounting line type info
138758    --
138759    xla_ae_lines_pkg.SetAcctLineType
138760       (p_component_type             => l_component_type
138761       ,p_event_type_code            => l_event_type_code
138765       ,p_accounting_line_type_code  => l_component_type_code
138762       ,p_line_definition_owner_code => l_line_definition_owner_code
138763       ,p_line_definition_code       => l_line_definition_code
138764       ,p_accounting_line_code       => l_component_code
138766       ,p_accounting_line_appl_id    => l_component_appl_id
138767       ,p_amb_context_code           => l_amb_context_code
138768       ,p_entity_code                => l_entity_code
138769       ,p_event_class_code           => l_event_class_code);
138770    --
138771    -- set accounting class
138772    --
138773    xla_ae_lines_pkg.SetAcctClass(
138774            p_accounting_class_code  => 'AWT'
138775          , p_ae_header_id           => l_ae_header_id
138776          );
138777 
138778    --
138779    -- set rounding class
138780    --
138781    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138782                       'AWT';
138783 
138784    --
138785    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138786    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138787    --
138788    -- bulk performance
138789    --
138790    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138791 
138792    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138793       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138794 
138795    -- 4955764
138796    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138798 
138799    -- 4458381 Public Sector Enh
138800    
138801    --
138802    -- set accounting attributes for the line type
138803    --
138804    l_entered_amt_idx := 10;
138805    l_accted_amt_idx  := 15;
138806    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
138807    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138808    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
138809    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
138810    l_rec_acct_attrs.array_num_value(2)  := p_source_98;
138811    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
138812    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
138813    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138814    l_rec_acct_attrs.array_char_value(4)  := p_source_99;
138815    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
138816    l_rec_acct_attrs.array_char_value(5)  := p_source_100;
138817    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
138818    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_101);
138819    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138820    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_102);
138821    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
138822    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
138823    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
138824    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
138825    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
138826    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
138827    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
138828    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
138829    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
138830    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
138831    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
138832    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
138833    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
138834    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
138835    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
138836    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
138837    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
138838    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
138839    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
138840    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
138841    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
138842    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
138843    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
138844    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
138845    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
138846    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
138847    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
138848    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
138849    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
138850    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
138851    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
138852    l_rec_acct_attrs.array_num_value(23)  := p_source_85;
138853    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
138854    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
138855 
138856    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138857    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138858 
138859    ---------------------------------------------------------------------------------------------------------------
138863 
138860    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138861    ---------------------------------------------------------------------------------------------------------------
138862    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138864    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138865    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138866 
138867    IF xla_accounting_cache_pkg.GetValueChar
138868          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138869          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138870    AND l_bflow_method_code = 'PRIOR_ENTRY'
138871 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138872    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138873          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138874        )
138875    THEN
138876          xla_ae_lines_pkg.BflowUpgEntry
138877            (p_business_method_code    => l_bflow_method_code
138878            ,p_business_class_code     => l_bflow_class_code
138879            ,p_balance_type            => l_balance_type_code);
138880    ELSE
138881       NULL;
138882 -- No business flow processing for business flow method of NONE.
138883    END IF;
138884 
138885    --
138886    -- call analytical criteria
138887    --
138888    
138889 
138890 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
138891 xla_ae_lines_pkg.SetAnalyticalCriteria(
138892    p_analytical_criterion_name    => 'Check Id'
138893  , p_analytical_criterion_owner   => 'S'
138894  , p_analytical_criterion_code    => 'CHECK_ID'
138895  , p_amb_context_code             => 'DEFAULT'
138896  , p_balancing_flag               => 'N'
138897  
138898  , p_analytical_detail_char_1    =>  NULL
138899  , p_analytical_detail_num_1     =>  p_source_112
138900  , p_analytical_detail_date_1    =>  NULL
138901 
138902  , p_ae_header_id                 => l_ae_header_id
138903 )
138904 ;
138905 --
138906 
138907    --
138908    -- call description
138909    --
138910    -- No description or it is inherited.
138911    --
138912    -- call ADRs
138913    -- Bug 4922099
138914    --
138915    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138916         (NVL(l_actual_upg_option, 'N') = 'O') OR
138917         (NVL(l_enc_upg_option, 'N') = 'O')
138918       )
138919    THEN
138920    NULL;
138921    --
138922    --
138923    
138924   l_ccid := AcctDerRule_45(
138925            p_application_id           => p_application_id
138926          , p_ae_header_id             => l_ae_header_id 
138927 , p_source_15 => p_source_15
138928 , p_source_15_meaning => p_source_15_meaning
138929 , p_source_30 => p_source_30
138930 , p_source_43 => p_source_43
138931          , x_transaction_coa_id       => l_adr_transaction_coa_id
138932          , x_accounting_coa_id        => l_adr_accounting_coa_id
138933          , x_value_type_code          => l_adr_value_type_code
138934          , p_side                     => 'NA'
138935    );
138936 
138937    xla_ae_lines_pkg.set_ccid(
138938     p_code_combination_id          => l_ccid
138939   , p_value_type_code              => l_adr_value_type_code
138940   , p_transaction_coa_id           => l_adr_transaction_coa_id
138941   , p_accounting_coa_id            => l_adr_accounting_coa_id
138942   , p_adr_code                     => 'AP_WH_DIST_ACCT'
138943   , p_adr_type_code                => 'S'
138944   , p_component_type               => l_component_type
138945   , p_component_code               => l_component_code
138946   , p_component_type_code          => l_component_type_code
138947   , p_component_appl_id            => l_component_appl_id
138948   , p_amb_context_code             => l_amb_context_code
138949   , p_side                         => 'NA'
138950   );
138951 
138952 
138953    l_segment := AcctDerRule_14(
138954            p_application_id           => p_application_id
138955          , p_ae_header_id             => l_ae_header_id 
138956 , p_source_15 => p_source_15
138957 , p_source_15_meaning => p_source_15_meaning
138958 , p_source_30 => p_source_30
138959          , x_transaction_coa_id       => l_adr_transaction_coa_id
138960          , x_accounting_coa_id        => l_adr_accounting_coa_id
138961          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
138962          , x_flex_value_set_id        => l_adr_flex_value_set_id
138963          , x_value_type_code          => l_adr_value_type_code
138964          , x_value_combination_id     => l_adr_value_combination_id
138965          , x_value_segment_code       => l_adr_value_segment_code
138966          , p_side                     => 'NA'
138967          , p_override_seg_flag        => 'Y'
138968    );
138969 
138970    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
138971 
138972       xla_ae_lines_pkg.set_segment(
138973           p_to_segment_code         => 'GL_ACCOUNT'
138974         , p_segment_value           => l_segment
138975         , p_from_segment_code       => l_adr_value_segment_code
138976         , p_from_combination_id     => l_adr_value_combination_id
138977         , p_value_type_code         => l_adr_value_type_code
138978         , p_transaction_coa_id      => l_adr_transaction_coa_id
138979         , p_accounting_coa_id       => l_adr_accounting_coa_id
138983         , p_adr_type_code           => 'S'
138980         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
138981         , p_flex_value_set_id       => l_adr_flex_value_set_id
138982         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
138984         , p_component_type          => l_component_type
138985         , p_component_code          => l_component_code
138986         , p_component_type_code     => l_component_type_code
138987         , p_component_appl_id       => l_component_appl_id
138988         , p_amb_context_code        => l_amb_context_code
138989         , p_entity_code             => 'AP_PAYMENTS'
138990         , p_event_class_code        => 'RECONCILED PAYMENTS'
138991         , p_side                    => 'NA'
138992         );
138993 
138994   END IF;
138995 
138996    l_segment := AcctDerRule_25(
138997            p_application_id           => p_application_id
138998          , p_ae_header_id             => l_ae_header_id 
138999 , p_source_15 => p_source_15
139000 , p_source_15_meaning => p_source_15_meaning
139001 , p_source_43 => p_source_43
139002          , x_transaction_coa_id       => l_adr_transaction_coa_id
139003          , x_accounting_coa_id        => l_adr_accounting_coa_id
139004          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139005          , x_flex_value_set_id        => l_adr_flex_value_set_id
139006          , x_value_type_code          => l_adr_value_type_code
139007          , x_value_combination_id     => l_adr_value_combination_id
139008          , x_value_segment_code       => l_adr_value_segment_code
139009          , p_side                     => 'NA'
139010          , p_override_seg_flag        => 'Y'
139011    );
139012 
139013    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139014 
139015       xla_ae_lines_pkg.set_segment(
139016           p_to_segment_code         => 'GL_BALANCING'
139017         , p_segment_value           => l_segment
139018         , p_from_segment_code       => l_adr_value_segment_code
139019         , p_from_combination_id     => l_adr_value_combination_id
139020         , p_value_type_code         => l_adr_value_type_code
139021         , p_transaction_coa_id      => l_adr_transaction_coa_id
139022         , p_accounting_coa_id       => l_adr_accounting_coa_id
139023         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139024         , p_flex_value_set_id       => l_adr_flex_value_set_id
139025         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
139026         , p_adr_type_code           => 'S'
139027         , p_component_type          => l_component_type
139028         , p_component_code          => l_component_code
139029         , p_component_type_code     => l_component_type_code
139030         , p_component_appl_id       => l_component_appl_id
139031         , p_amb_context_code        => l_amb_context_code
139032         , p_entity_code             => 'AP_PAYMENTS'
139033         , p_event_class_code        => 'RECONCILED PAYMENTS'
139034         , p_side                    => 'NA'
139035         );
139036 
139037   END IF;
139038 
139039    --
139040    --
139041    END IF;
139042    --
139043    -- Bug 4922099
139044    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
139045           (NVL(l_enc_upg_option, 'N') = 'O')
139046         ) AND
139047         (l_bflow_method_code = 'PRIOR_ENTRY')
139048       )
139049    THEN
139050       IF
139051       --
139052       1 = 2
139053       --
139054       THEN
139055       xla_accounting_err_pkg.build_message
139056                                     (p_appli_s_name            => 'XLA'
139057                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139058                                     ,p_token_1                 => 'LINE_NUMBER'
139059                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
139060                                     ,p_token_2                 => 'LINE_TYPE_NAME'
139061                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
139062                                                                              l_component_type
139063                                                                             ,l_component_code
139064                                                                             ,l_component_type_code
139065                                                                             ,l_component_appl_id
139066                                                                             ,l_amb_context_code
139067                                                                             ,l_entity_code
139068                                                                             ,l_event_class_code
139069                                                                            )
139070                                     ,p_token_3                 => 'OWNER'
139071                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
139072                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
139073                                                                           ,p_lookup_code    => l_component_type_code
139074                                                                          )
139075                                     ,p_token_4                 => 'PRODUCT_NAME'
139076                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
139080                                     ,p_ae_header_id            =>  NULL
139077                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
139078                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
139079                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
139081                                        );
139082 
139083         IF (C_LEVEL_ERROR>= g_log_level) THEN
139084                  trace
139085                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139086                       ,p_level    => C_LEVEL_ERROR
139087                       ,p_module   => l_log_module);
139088         END IF;
139089       END IF;
139090    END IF;
139091    --
139092    --
139093    ------------------------------------------------------------------------------------------------
139094    -- 4219869 Business Flow
139095    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
139096    -- Prior Entry.  Currently, the following code is always generated.
139097    ------------------------------------------------------------------------------------------------
139098    XLA_AE_LINES_PKG.ValidateCurrentLine;
139099 
139100    ------------------------------------------------------------------------------------
139101    -- 4219869 Business Flow
139102    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
139103    ------------------------------------------------------------------------------------
139104    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139105 
139106    ----------------------------------------------------------------------------------
139107    -- 4219869 Business Flow
139108    -- Update journal entry status -- Need to generate this within IF <condition>
139109    ----------------------------------------------------------------------------------
139110    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139111          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
139112          ,p_balance_type_code => l_balance_type_code
139113          );
139114 
139115    -------------------------------------------------------------------------------------------
139116    -- 4262811 - Generate the Accrual Reversal lines
139117    -------------------------------------------------------------------------------------------
139118    BEGIN
139119       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
139120                               (g_array_event(p_event_id).array_value_num('header_index'));
139121       IF l_acc_rev_flag IS NULL THEN
139122          l_acc_rev_flag := 'N';
139123       END IF;
139124    EXCEPTION
139125       WHEN OTHERS THEN
139126          l_acc_rev_flag := 'N';
139127    END;
139128    --
139129    IF (l_acc_rev_flag = 'Y') THEN
139130 
139131        -- 4645092  ------------------------------------------------------------------------------
139132        -- To allow MPA report to determine if it should generate report process
139133        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
139134        ------------------------------------------------------------------------------------------
139135 
139136        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
139137        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
139138    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
139139    -- call ADRs
139140    -- Bug 4922099
139141    --
139142    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139143         (NVL(l_actual_upg_option, 'N') = 'O') OR
139144         (NVL(l_enc_upg_option, 'N') = 'O')
139145       )
139146    THEN
139147    NULL;
139148    --
139149    --
139150    
139151   l_ccid := AcctDerRule_45(
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_30 => p_source_30
139157 , p_source_43 => p_source_43
139158          , x_transaction_coa_id       => l_adr_transaction_coa_id
139159          , x_accounting_coa_id        => l_adr_accounting_coa_id
139160          , x_value_type_code          => l_adr_value_type_code
139161          , p_side                     => 'NA'
139162    );
139163 
139164    xla_ae_lines_pkg.set_ccid(
139165     p_code_combination_id          => l_ccid
139166   , p_value_type_code              => l_adr_value_type_code
139167   , p_transaction_coa_id           => l_adr_transaction_coa_id
139168   , p_accounting_coa_id            => l_adr_accounting_coa_id
139169   , p_adr_code                     => 'AP_WH_DIST_ACCT'
139170   , p_adr_type_code                => 'S'
139171   , p_component_type               => l_component_type
139172   , p_component_code               => l_component_code
139173   , p_component_type_code          => l_component_type_code
139174   , p_component_appl_id            => l_component_appl_id
139175   , p_amb_context_code             => l_amb_context_code
139176   , p_side                         => 'NA'
139177   );
139178 
139179 
139180    l_segment := AcctDerRule_14(
139181            p_application_id           => p_application_id
139182          , p_ae_header_id             => l_ae_header_id 
139183 , p_source_15 => p_source_15
139184 , p_source_15_meaning => p_source_15_meaning
139185 , p_source_30 => p_source_30
139186          , x_transaction_coa_id       => l_adr_transaction_coa_id
139190          , x_value_type_code          => l_adr_value_type_code
139187          , x_accounting_coa_id        => l_adr_accounting_coa_id
139188          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139189          , x_flex_value_set_id        => l_adr_flex_value_set_id
139191          , x_value_combination_id     => l_adr_value_combination_id
139192          , x_value_segment_code       => l_adr_value_segment_code
139193          , p_side                     => 'NA'
139194          , p_override_seg_flag        => 'Y'
139195    );
139196 
139197    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139198 
139199       xla_ae_lines_pkg.set_segment(
139200           p_to_segment_code         => 'GL_ACCOUNT'
139201         , p_segment_value           => l_segment
139202         , p_from_segment_code       => l_adr_value_segment_code
139203         , p_from_combination_id     => l_adr_value_combination_id
139204         , p_value_type_code         => l_adr_value_type_code
139205         , p_transaction_coa_id      => l_adr_transaction_coa_id
139206         , p_accounting_coa_id       => l_adr_accounting_coa_id
139207         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139208         , p_flex_value_set_id       => l_adr_flex_value_set_id
139209         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
139210         , p_adr_type_code           => 'S'
139211         , p_component_type          => l_component_type
139212         , p_component_code          => l_component_code
139213         , p_component_type_code     => l_component_type_code
139214         , p_component_appl_id       => l_component_appl_id
139215         , p_amb_context_code        => l_amb_context_code
139216         , p_entity_code             => 'AP_PAYMENTS'
139217         , p_event_class_code        => 'RECONCILED PAYMENTS'
139218         , p_side                    => 'NA'
139219         );
139220 
139221   END IF;
139222 
139223    l_segment := AcctDerRule_25(
139224            p_application_id           => p_application_id
139225          , p_ae_header_id             => l_ae_header_id 
139226 , p_source_15 => p_source_15
139227 , p_source_15_meaning => p_source_15_meaning
139228 , p_source_43 => p_source_43
139229          , x_transaction_coa_id       => l_adr_transaction_coa_id
139230          , x_accounting_coa_id        => l_adr_accounting_coa_id
139231          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139232          , x_flex_value_set_id        => l_adr_flex_value_set_id
139233          , x_value_type_code          => l_adr_value_type_code
139234          , x_value_combination_id     => l_adr_value_combination_id
139235          , x_value_segment_code       => l_adr_value_segment_code
139236          , p_side                     => 'NA'
139237          , p_override_seg_flag        => 'Y'
139238    );
139239 
139240    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139241 
139242       xla_ae_lines_pkg.set_segment(
139243           p_to_segment_code         => 'GL_BALANCING'
139244         , p_segment_value           => l_segment
139245         , p_from_segment_code       => l_adr_value_segment_code
139246         , p_from_combination_id     => l_adr_value_combination_id
139247         , p_value_type_code         => l_adr_value_type_code
139248         , p_transaction_coa_id      => l_adr_transaction_coa_id
139249         , p_accounting_coa_id       => l_adr_accounting_coa_id
139250         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139251         , p_flex_value_set_id       => l_adr_flex_value_set_id
139252         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
139253         , p_adr_type_code           => 'S'
139254         , p_component_type          => l_component_type
139255         , p_component_code          => l_component_code
139256         , p_component_type_code     => l_component_type_code
139257         , p_component_appl_id       => l_component_appl_id
139258         , p_amb_context_code        => l_amb_context_code
139259         , p_entity_code             => 'AP_PAYMENTS'
139260         , p_event_class_code        => 'RECONCILED PAYMENTS'
139261         , p_side                    => 'NA'
139262         );
139263 
139264   END IF;
139265 
139266    --
139267    --
139268    END IF;
139269 
139270        --
139271        -- Update the line information that should be overwritten
139272        --
139273        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
139274                                          p_header_num   => 1);
139275        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
139276 
139277        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
139278 
139279        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
139280           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
139281        END IF;
139282 
139283       --
139284       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
139285       --
139286       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
139287           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
139288       ELSE
139289           ---------------------------------------------------------------------------------------------------
139290           -- 4262811a Switch Sign
139291           ---------------------------------------------------------------------------------------------------
139295           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139292           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
139293           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139294                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139296                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139297           -- 5132302
139298           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
139299                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139300 
139301       END IF;
139302 
139303       -- 4955764
139304       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139305       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
139306 
139307 
139308       XLA_AE_LINES_PKG.ValidateCurrentLine;
139309       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139310 
139311       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139312                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
139313                ,p_balance_type_code => l_balance_type_code);
139314 
139315    END IF;
139316 
139317    -----------------------------------------------------------------------------------------
139318    -- 4262811 Multiperiod Accounting
139319    -----------------------------------------------------------------------------------------
139320      -- No MPA option is assigned.
139321 
139322 
139323 END IF;
139324 END IF;
139325 --
139326 
139327 --
139328 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139329    trace
139330       (p_msg      => 'END of AcctLineType_220'
139331       ,p_level    => C_LEVEL_PROCEDURE
139332       ,p_module   => l_log_module);
139333 END IF;
139334 --
139335 EXCEPTION
139336   WHEN xla_exceptions_pkg.application_exception THEN
139337       RAISE;
139338   WHEN OTHERS THEN
139339        xla_exceptions_pkg.raise_message
139340            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_220');
139341 END AcctLineType_220;
139342 --
139343 
139344 ---------------------------------------
139345 --
139346 -- PRIVATE FUNCTION
139347 --         AcctLineType_221
139348 --
139349 ---------------------------------------
139350 PROCEDURE AcctLineType_221 (
139351   p_application_id        IN NUMBER
139352  ,p_event_id              IN NUMBER
139353  ,p_calculate_acctd_flag  IN VARCHAR2
139354  ,p_calculate_g_l_flag    IN VARCHAR2
139355  ,p_actual_flag           IN OUT VARCHAR2
139356  ,p_balance_type_code     OUT VARCHAR2
139357  ,p_gain_or_loss_ref      OUT VARCHAR2
139358  
139359 --Payment Currency Code
139360  , p_source_13            IN VARCHAR2
139361 --Automatic Offsets Value
139362  , p_source_15            IN VARCHAR2
139363  , p_source_15_meaning    IN VARCHAR2
139364 --Invoice Distribution Account
139365  , p_source_30            IN NUMBER
139366 --Withholding Related Distribution Account
139367  , p_source_43            IN NUMBER
139368 --Accounting Reversal Indicator
139369  , p_source_52            IN VARCHAR2
139370 --Distribution Link Type
139371  , p_source_54            IN VARCHAR2
139372 --Override Accounted Amount Indicator
139373  , p_source_79            IN VARCHAR2
139374  , p_source_79_meaning    IN VARCHAR2
139375 --Third Party Type
139376  , p_source_82            IN VARCHAR2
139377 --Invoice Distribution Tax Line Identifier
139378  , p_source_85            IN NUMBER
139379 --Invoice Distribution Tax Distribution Identifier from Tax
139380  , p_source_86            IN NUMBER
139381 --Invoice Distribution Summary Tax Line Identifier
139382  , p_source_87            IN NUMBER
139383 --Business Flow Accounts Payable Application Identifier
139384  , p_source_90            IN NUMBER
139385 --Business Flow Invoice Distribution Type
139386  , p_source_91            IN VARCHAR2
139387 --Business Flow Invoice Entity Code
139388  , p_source_92            IN VARCHAR2
139389 --Business Flow Invoice Distribution Identifier
139390  , p_source_93            IN NUMBER
139391 --Business Flow Invoice Identifier
139392  , p_source_94            IN NUMBER
139393 --When to Account for Payment Option
139394  , p_source_96            IN VARCHAR2
139395 --Payment Distribution Type
139396  , p_source_97            IN VARCHAR2
139397  , p_source_97_meaning    IN VARCHAR2
139398 --Payment Distribution Amount
139399  , p_source_98            IN NUMBER
139400 --Payment Distribution Identifier
139401  , p_source_103            IN NUMBER
139402 --Payment Supplier Identifier
139403  , p_source_109            IN NUMBER
139404 --Payment Supplier Site Identifier
139405  , p_source_110            IN NUMBER
139406 --Payment Distribution Reversed Identifier
139407  , p_source_111            IN NUMBER
139408 --Payment Identifier
139409  , p_source_112            IN NUMBER
139410 --Payment Distribution (Invoice Rate) Ledger Amount
139411  , p_source_116            IN NUMBER
139412 --Payment Type
139413  , p_source_122            IN VARCHAR2
139414  , p_source_122_meaning    IN VARCHAR2
139415 --Payment Processing Type
139416  , p_source_123            IN VARCHAR2
139417 --Invoice Distribution Amount of the Payment Distribution
139418  , p_source_124            IN NUMBER
139419 --Invoice Exchange Date
139423 --Invoice Exchange Rate Type
139420  , p_source_136            IN DATE
139421 --Invoice Exchange Rate
139422  , p_source_137            IN NUMBER
139424  , p_source_138            IN VARCHAR2
139425 --Withholding at Payment Indicator
139426  , p_source_161            IN VARCHAR2
139427  , p_source_161_meaning    IN VARCHAR2
139428 )
139429 IS
139430 
139431 l_component_type              VARCHAR2(80);
139432 l_component_code              VARCHAR2(30);
139433 l_component_type_code         VARCHAR2(1);
139434 l_component_appl_id           INTEGER;
139435 l_amb_context_code            VARCHAR2(30);
139436 l_entity_code                 VARCHAR2(30);
139437 l_event_class_code            VARCHAR2(30);
139438 l_ae_header_id                NUMBER;
139439 l_event_type_code             VARCHAR2(30);
139440 l_line_definition_code        VARCHAR2(30);
139441 l_line_definition_owner_code  VARCHAR2(1);
139442 --
139443 -- adr variables
139444 l_segment                     VARCHAR2(30);
139445 l_ccid                        NUMBER;
139446 l_adr_transaction_coa_id      NUMBER;
139447 l_adr_accounting_coa_id       NUMBER;
139448 l_adr_flexfield_segment_code  VARCHAR2(30);
139449 l_adr_flex_value_set_id       NUMBER;
139450 l_adr_value_type_code         VARCHAR2(30);
139451 l_adr_value_combination_id    NUMBER;
139452 l_adr_value_segment_code      VARCHAR2(30);
139453 
139454 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
139455 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
139456 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
139457 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
139458 
139459 -- 4262811 Variables ------------------------------------------------------------------------------------------
139460 l_entered_amt_idx             NUMBER;
139461 l_accted_amt_idx              NUMBER;
139462 l_acc_rev_flag                VARCHAR2(1);
139463 l_accrual_line_num            NUMBER;
139464 l_tmp_amt                     NUMBER;
139465 l_acc_rev_natural_side_code   VARCHAR2(1);
139466 
139467 l_num_entries                 NUMBER;
139468 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
139469 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
139470 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
139471 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
139472 l_recog_line_1                NUMBER;
139473 l_recog_line_2                NUMBER;
139474 
139475 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
139476 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
139477 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
139478 
139479 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
139480 
139481 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
139482 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
139483 
139484 ---------------------------------------------------------------------------------------------------------------
139485 
139486 
139487 --
139488 -- bulk performance
139489 --
139490 l_balance_type_code           VARCHAR2(1);
139491 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
139492 l_log_module                  VARCHAR2(240);
139493 
139494 --
139495 -- Upgrade strategy
139496 --
139497 l_actual_upg_option           VARCHAR2(1);
139498 l_enc_upg_option           VARCHAR2(1);
139499 
139500 --
139501 BEGIN
139502 --
139503 IF g_log_enabled THEN
139504       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_221';
139505 END IF;
139506 --
139507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139508 
139509       trace
139510          (p_msg      => 'BEGIN of AcctLineType_221'
139511          ,p_level    => C_LEVEL_PROCEDURE
139512          ,p_module   => l_log_module);
139513 
139514 END IF;
139515 --
139516 l_component_type             := 'AMB_JLT';
139517 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_PMT';
139518 l_component_type_code        := 'S';
139519 l_component_appl_id          :=  200;
139520 l_amb_context_code           := 'DEFAULT';
139521 l_entity_code                := 'AP_PAYMENTS';
139522 l_event_class_code           := 'PAYMENTS';
139523 l_event_type_code            := 'PAYMENTS_ALL';
139524 l_line_definition_owner_code := 'S';
139525 l_line_definition_code       := 'JA_CN_ACCRUAL_PAYMENTS_ALL';
139526 --
139527 l_balance_type_code          := 'A';
139528 l_segment                     := NULL;
139529 l_ccid                        := NULL;
139530 l_adr_transaction_coa_id      := NULL;
139531 l_adr_accounting_coa_id       := NULL;
139532 l_adr_flexfield_segment_code  := NULL;
139533 l_adr_flex_value_set_id       := NULL;
139534 l_adr_value_type_code         := NULL;
139535 l_adr_value_combination_id    := NULL;
139536 l_adr_value_segment_code      := NULL;
139537 
139538 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
139539 l_bflow_class_code           := '';    -- 4219869 Business Flow
139540 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
139541 l_budgetary_control_flag     := 'N';
139542 
139543 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
139544 l_bflow_applied_to_amt       := NULL; -- 5132302
139545 l_entered_amt_idx            := NULL;          -- 4262811
139546 l_accted_amt_idx             := NULL;          -- 4262811
139550 --
139547 l_acc_rev_flag               := NULL;          -- 4262811
139548 l_accrual_line_num           := NULL;          -- 4262811
139549 l_tmp_amt                    := NULL;          -- 4262811
139551  
139552 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
139553     l_balance_type_code <> 'B' THEN
139554 IF NVL(p_source_96,'
139555 ') <>  'CLEAR_CLEAR' AND 
139556 NVL(p_source_97,'
139557 ') =  'AWT' AND 
139558 NVL(p_source_161,'
139559 ') =  'Y' AND 
139560 NVL(p_source_122,'
139561 ') <>  'R' AND 
139562 NVL(p_source_123,'
139563 ') <>  'PAYMENTCARD'
139564  THEN 
139565 
139566    --
139567    XLA_AE_LINES_PKG.SetNewLine;
139568 
139569    p_balance_type_code          := l_balance_type_code;
139570    -- set the flag so later we will know whether the gain loss line needs to be created
139571    
139572    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
139573      p_actual_flag :='A';
139574    END IF;
139575 
139576    --
139577    -- bulk performance
139578    --
139579    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
139580                                       p_header_num   => 0); -- 4262811
139581    --
139582    -- set accounting line options
139583    --
139584    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
139585            p_natural_side_code          => 'C'
139586          , p_gain_or_loss_flag          => 'N'
139587          , p_gl_transfer_mode_code      => 'S'
139588          , p_acct_entry_type_code       => 'A'
139589          , p_switch_side_flag           => 'Y'
139590          , p_merge_duplicate_code       => 'A'
139591          );
139592    --
139593    l_acc_rev_natural_side_code := 'D';  -- 4262811
139594    -- 
139595    --
139596    -- set accounting line type info
139597    --
139598    xla_ae_lines_pkg.SetAcctLineType
139599       (p_component_type             => l_component_type
139600       ,p_event_type_code            => l_event_type_code
139601       ,p_line_definition_owner_code => l_line_definition_owner_code
139602       ,p_line_definition_code       => l_line_definition_code
139603       ,p_accounting_line_code       => l_component_code
139604       ,p_accounting_line_type_code  => l_component_type_code
139605       ,p_accounting_line_appl_id    => l_component_appl_id
139606       ,p_amb_context_code           => l_amb_context_code
139607       ,p_entity_code                => l_entity_code
139608       ,p_event_class_code           => l_event_class_code);
139609    --
139610    -- set accounting class
139611    --
139612    xla_ae_lines_pkg.SetAcctClass(
139613            p_accounting_class_code  => 'AWT'
139614          , p_ae_header_id           => l_ae_header_id
139615          );
139616 
139617    --
139618    -- set rounding class
139619    --
139620    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
139621                       'AWT';
139622 
139623    --
139624    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
139625    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
139626    --
139627    -- bulk performance
139628    --
139629    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
139630 
139631    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
139632       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
139633 
139634    -- 4955764
139635    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139636       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
139637 
139638    -- 4458381 Public Sector Enh
139639    
139640    --
139641    -- set accounting attributes for the line type
139642    --
139643    l_entered_amt_idx := 10;
139644    l_accted_amt_idx  := 15;
139645    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
139646    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
139647    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
139648    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
139649    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
139650    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
139651    l_rec_acct_attrs.array_num_value(3)  := p_source_90;
139652    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
139653    l_rec_acct_attrs.array_char_value(4)  := p_source_91;
139654    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
139655    l_rec_acct_attrs.array_char_value(5)  := p_source_92;
139656    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
139657    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_93);
139658    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
139659    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_94);
139660    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
139661    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_103);
139662    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
139663    l_rec_acct_attrs.array_char_value(9)  := p_source_54;
139664    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
139665    l_rec_acct_attrs.array_num_value(10)  := p_source_98;
139666    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
139670    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
139667    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
139668    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
139669    l_rec_acct_attrs.array_date_value(12)  := p_source_136;
139671    l_rec_acct_attrs.array_num_value(13)  := p_source_137;
139672    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
139673    l_rec_acct_attrs.array_char_value(14)  := p_source_138;
139674    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
139675    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
139676    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
139677    l_rec_acct_attrs.array_char_value(16)  := p_source_79;
139678    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
139679    l_rec_acct_attrs.array_num_value(17)  := p_source_109;
139680    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
139681    l_rec_acct_attrs.array_num_value(18)  := p_source_110;
139682    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
139683    l_rec_acct_attrs.array_char_value(19)  := p_source_82;
139684    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
139685    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_111);
139686    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
139687    l_rec_acct_attrs.array_char_value(21)  := p_source_54;
139688    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
139689    l_rec_acct_attrs.array_num_value(22)  := p_source_85;
139690    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
139691    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
139692    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
139693    l_rec_acct_attrs.array_num_value(24)  := p_source_87;
139694 
139695    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
139696    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
139697 
139698    ---------------------------------------------------------------------------------------------------------------
139699    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
139700    ---------------------------------------------------------------------------------------------------------------
139701    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
139702 
139703    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139704    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139705 
139706    IF xla_accounting_cache_pkg.GetValueChar
139707          (p_source_code         => 'LEDGER_CATEGORY_CODE'
139708          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
139709    AND l_bflow_method_code = 'PRIOR_ENTRY'
139710 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
139711    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
139712          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
139713        )
139714    THEN
139715          xla_ae_lines_pkg.BflowUpgEntry
139716            (p_business_method_code    => l_bflow_method_code
139717            ,p_business_class_code     => l_bflow_class_code
139718            ,p_balance_type            => l_balance_type_code);
139719    ELSE
139720       NULL;
139721 -- No business flow processing for business flow method of NONE.
139722    END IF;
139723 
139724    --
139725    -- call analytical criteria
139726    --
139727    
139728 
139729 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
139730 xla_ae_lines_pkg.SetAnalyticalCriteria(
139731    p_analytical_criterion_name    => 'Check Id'
139732  , p_analytical_criterion_owner   => 'S'
139733  , p_analytical_criterion_code    => 'CHECK_ID'
139734  , p_amb_context_code             => 'DEFAULT'
139735  , p_balancing_flag               => 'N'
139736  
139737  , p_analytical_detail_char_1    =>  NULL
139738  , p_analytical_detail_num_1     =>  p_source_112
139739  , p_analytical_detail_date_1    =>  NULL
139740 
139741  , p_ae_header_id                 => l_ae_header_id
139742 )
139743 ;
139744 --
139745 
139746    --
139747    -- call description
139748    --
139749    -- No description or it is inherited.
139750    --
139751    -- call ADRs
139752    -- Bug 4922099
139753    --
139754    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139755         (NVL(l_actual_upg_option, 'N') = 'O') OR
139756         (NVL(l_enc_upg_option, 'N') = 'O')
139757       )
139758    THEN
139759    NULL;
139760    --
139761    --
139762    
139763   l_ccid := AcctDerRule_45(
139764            p_application_id           => p_application_id
139765          , p_ae_header_id             => l_ae_header_id 
139766 , p_source_15 => p_source_15
139767 , p_source_15_meaning => p_source_15_meaning
139768 , p_source_30 => p_source_30
139769 , p_source_43 => p_source_43
139770          , x_transaction_coa_id       => l_adr_transaction_coa_id
139771          , x_accounting_coa_id        => l_adr_accounting_coa_id
139772          , x_value_type_code          => l_adr_value_type_code
139773          , p_side                     => 'NA'
139774    );
139775 
139776    xla_ae_lines_pkg.set_ccid(
139777     p_code_combination_id          => l_ccid
139778   , p_value_type_code              => l_adr_value_type_code
139779   , p_transaction_coa_id           => l_adr_transaction_coa_id
139783   , p_component_type               => l_component_type
139780   , p_accounting_coa_id            => l_adr_accounting_coa_id
139781   , p_adr_code                     => 'AP_WH_DIST_ACCT'
139782   , p_adr_type_code                => 'S'
139784   , p_component_code               => l_component_code
139785   , p_component_type_code          => l_component_type_code
139786   , p_component_appl_id            => l_component_appl_id
139787   , p_amb_context_code             => l_amb_context_code
139788   , p_side                         => 'NA'
139789   );
139790 
139791 
139792    l_segment := AcctDerRule_14(
139793            p_application_id           => p_application_id
139794          , p_ae_header_id             => l_ae_header_id 
139795 , p_source_15 => p_source_15
139796 , p_source_15_meaning => p_source_15_meaning
139797 , p_source_30 => p_source_30
139798          , x_transaction_coa_id       => l_adr_transaction_coa_id
139799          , x_accounting_coa_id        => l_adr_accounting_coa_id
139800          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139801          , x_flex_value_set_id        => l_adr_flex_value_set_id
139802          , x_value_type_code          => l_adr_value_type_code
139803          , x_value_combination_id     => l_adr_value_combination_id
139804          , x_value_segment_code       => l_adr_value_segment_code
139805          , p_side                     => 'NA'
139806          , p_override_seg_flag        => 'Y'
139807    );
139808 
139809    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139810 
139811       xla_ae_lines_pkg.set_segment(
139812           p_to_segment_code         => 'GL_ACCOUNT'
139813         , p_segment_value           => l_segment
139814         , p_from_segment_code       => l_adr_value_segment_code
139815         , p_from_combination_id     => l_adr_value_combination_id
139816         , p_value_type_code         => l_adr_value_type_code
139817         , p_transaction_coa_id      => l_adr_transaction_coa_id
139818         , p_accounting_coa_id       => l_adr_accounting_coa_id
139819         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139820         , p_flex_value_set_id       => l_adr_flex_value_set_id
139821         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
139822         , p_adr_type_code           => 'S'
139823         , p_component_type          => l_component_type
139824         , p_component_code          => l_component_code
139825         , p_component_type_code     => l_component_type_code
139826         , p_component_appl_id       => l_component_appl_id
139827         , p_amb_context_code        => l_amb_context_code
139828         , p_entity_code             => 'AP_PAYMENTS'
139829         , p_event_class_code        => 'PAYMENTS'
139830         , p_side                    => 'NA'
139831         );
139832 
139833   END IF;
139834 
139835    l_segment := AcctDerRule_25(
139836            p_application_id           => p_application_id
139837          , p_ae_header_id             => l_ae_header_id 
139838 , p_source_15 => p_source_15
139839 , p_source_15_meaning => p_source_15_meaning
139840 , p_source_43 => p_source_43
139841          , x_transaction_coa_id       => l_adr_transaction_coa_id
139842          , x_accounting_coa_id        => l_adr_accounting_coa_id
139843          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139844          , x_flex_value_set_id        => l_adr_flex_value_set_id
139845          , x_value_type_code          => l_adr_value_type_code
139846          , x_value_combination_id     => l_adr_value_combination_id
139847          , x_value_segment_code       => l_adr_value_segment_code
139848          , p_side                     => 'NA'
139849          , p_override_seg_flag        => 'Y'
139850    );
139851 
139852    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139853 
139854       xla_ae_lines_pkg.set_segment(
139855           p_to_segment_code         => 'GL_BALANCING'
139856         , p_segment_value           => l_segment
139857         , p_from_segment_code       => l_adr_value_segment_code
139858         , p_from_combination_id     => l_adr_value_combination_id
139859         , p_value_type_code         => l_adr_value_type_code
139860         , p_transaction_coa_id      => l_adr_transaction_coa_id
139861         , p_accounting_coa_id       => l_adr_accounting_coa_id
139862         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139863         , p_flex_value_set_id       => l_adr_flex_value_set_id
139864         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
139865         , p_adr_type_code           => 'S'
139866         , p_component_type          => l_component_type
139867         , p_component_code          => l_component_code
139868         , p_component_type_code     => l_component_type_code
139869         , p_component_appl_id       => l_component_appl_id
139870         , p_amb_context_code        => l_amb_context_code
139871         , p_entity_code             => 'AP_PAYMENTS'
139872         , p_event_class_code        => 'PAYMENTS'
139873         , p_side                    => 'NA'
139874         );
139875 
139876   END IF;
139877 
139878    --
139879    --
139880    END IF;
139881    --
139882    -- Bug 4922099
139883    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
139884           (NVL(l_enc_upg_option, 'N') = 'O')
139885         ) AND
139886         (l_bflow_method_code = 'PRIOR_ENTRY')
139887       )
139888    THEN
139889       IF
139890       --
139891       1 = 2
139892       --
139893       THEN
139894       xla_accounting_err_pkg.build_message
139898                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
139895                                     (p_appli_s_name            => 'XLA'
139896                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139897                                     ,p_token_1                 => 'LINE_NUMBER'
139899                                     ,p_token_2                 => 'LINE_TYPE_NAME'
139900                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
139901                                                                              l_component_type
139902                                                                             ,l_component_code
139903                                                                             ,l_component_type_code
139904                                                                             ,l_component_appl_id
139905                                                                             ,l_amb_context_code
139906                                                                             ,l_entity_code
139907                                                                             ,l_event_class_code
139908                                                                            )
139909                                     ,p_token_3                 => 'OWNER'
139910                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
139911                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
139912                                                                           ,p_lookup_code    => l_component_type_code
139913                                                                          )
139914                                     ,p_token_4                 => 'PRODUCT_NAME'
139915                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
139916                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
139917                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
139918                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
139919                                     ,p_ae_header_id            =>  NULL
139920                                        );
139921 
139922         IF (C_LEVEL_ERROR>= g_log_level) THEN
139923                  trace
139924                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139925                       ,p_level    => C_LEVEL_ERROR
139926                       ,p_module   => l_log_module);
139927         END IF;
139928       END IF;
139929    END IF;
139930    --
139931    --
139932    ------------------------------------------------------------------------------------------------
139933    -- 4219869 Business Flow
139934    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
139935    -- Prior Entry.  Currently, the following code is always generated.
139936    ------------------------------------------------------------------------------------------------
139937    XLA_AE_LINES_PKG.ValidateCurrentLine;
139938 
139939    ------------------------------------------------------------------------------------
139940    -- 4219869 Business Flow
139941    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
139942    ------------------------------------------------------------------------------------
139943    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139944 
139945    ----------------------------------------------------------------------------------
139946    -- 4219869 Business Flow
139947    -- Update journal entry status -- Need to generate this within IF <condition>
139948    ----------------------------------------------------------------------------------
139949    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139950          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
139951          ,p_balance_type_code => l_balance_type_code
139952          );
139953 
139954    -------------------------------------------------------------------------------------------
139955    -- 4262811 - Generate the Accrual Reversal lines
139956    -------------------------------------------------------------------------------------------
139957    BEGIN
139958       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
139959                               (g_array_event(p_event_id).array_value_num('header_index'));
139960       IF l_acc_rev_flag IS NULL THEN
139961          l_acc_rev_flag := 'N';
139962       END IF;
139963    EXCEPTION
139964       WHEN OTHERS THEN
139965          l_acc_rev_flag := 'N';
139966    END;
139967    --
139968    IF (l_acc_rev_flag = 'Y') THEN
139969 
139970        -- 4645092  ------------------------------------------------------------------------------
139971        -- To allow MPA report to determine if it should generate report process
139972        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
139973        ------------------------------------------------------------------------------------------
139974 
139975        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
139976        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
139977    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
139978    -- call ADRs
139979    -- Bug 4922099
139980    --
139981    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139982         (NVL(l_actual_upg_option, 'N') = 'O') OR
139986    NULL;
139983         (NVL(l_enc_upg_option, 'N') = 'O')
139984       )
139985    THEN
139987    --
139988    --
139989    
139990   l_ccid := AcctDerRule_45(
139991            p_application_id           => p_application_id
139992          , p_ae_header_id             => l_ae_header_id 
139993 , p_source_15 => p_source_15
139994 , p_source_15_meaning => p_source_15_meaning
139995 , p_source_30 => p_source_30
139996 , p_source_43 => p_source_43
139997          , x_transaction_coa_id       => l_adr_transaction_coa_id
139998          , x_accounting_coa_id        => l_adr_accounting_coa_id
139999          , x_value_type_code          => l_adr_value_type_code
140000          , p_side                     => 'NA'
140001    );
140002 
140003    xla_ae_lines_pkg.set_ccid(
140004     p_code_combination_id          => l_ccid
140005   , p_value_type_code              => l_adr_value_type_code
140006   , p_transaction_coa_id           => l_adr_transaction_coa_id
140007   , p_accounting_coa_id            => l_adr_accounting_coa_id
140008   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140009   , p_adr_type_code                => 'S'
140010   , p_component_type               => l_component_type
140011   , p_component_code               => l_component_code
140012   , p_component_type_code          => l_component_type_code
140013   , p_component_appl_id            => l_component_appl_id
140014   , p_amb_context_code             => l_amb_context_code
140015   , p_side                         => 'NA'
140016   );
140017 
140018 
140019    l_segment := AcctDerRule_14(
140020            p_application_id           => p_application_id
140021          , p_ae_header_id             => l_ae_header_id 
140022 , p_source_15 => p_source_15
140023 , p_source_15_meaning => p_source_15_meaning
140024 , p_source_30 => p_source_30
140025          , x_transaction_coa_id       => l_adr_transaction_coa_id
140026          , x_accounting_coa_id        => l_adr_accounting_coa_id
140027          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140028          , x_flex_value_set_id        => l_adr_flex_value_set_id
140029          , x_value_type_code          => l_adr_value_type_code
140030          , x_value_combination_id     => l_adr_value_combination_id
140031          , x_value_segment_code       => l_adr_value_segment_code
140032          , p_side                     => 'NA'
140033          , p_override_seg_flag        => 'Y'
140034    );
140035 
140036    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140037 
140038       xla_ae_lines_pkg.set_segment(
140039           p_to_segment_code         => 'GL_ACCOUNT'
140040         , p_segment_value           => l_segment
140041         , p_from_segment_code       => l_adr_value_segment_code
140042         , p_from_combination_id     => l_adr_value_combination_id
140043         , p_value_type_code         => l_adr_value_type_code
140044         , p_transaction_coa_id      => l_adr_transaction_coa_id
140045         , p_accounting_coa_id       => l_adr_accounting_coa_id
140046         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140047         , p_flex_value_set_id       => l_adr_flex_value_set_id
140048         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140049         , p_adr_type_code           => 'S'
140050         , p_component_type          => l_component_type
140051         , p_component_code          => l_component_code
140052         , p_component_type_code     => l_component_type_code
140053         , p_component_appl_id       => l_component_appl_id
140054         , p_amb_context_code        => l_amb_context_code
140055         , p_entity_code             => 'AP_PAYMENTS'
140056         , p_event_class_code        => 'PAYMENTS'
140057         , p_side                    => 'NA'
140058         );
140059 
140060   END IF;
140061 
140062    l_segment := AcctDerRule_25(
140063            p_application_id           => p_application_id
140064          , p_ae_header_id             => l_ae_header_id 
140065 , p_source_15 => p_source_15
140066 , p_source_15_meaning => p_source_15_meaning
140067 , p_source_43 => p_source_43
140068          , x_transaction_coa_id       => l_adr_transaction_coa_id
140069          , x_accounting_coa_id        => l_adr_accounting_coa_id
140070          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140071          , x_flex_value_set_id        => l_adr_flex_value_set_id
140072          , x_value_type_code          => l_adr_value_type_code
140073          , x_value_combination_id     => l_adr_value_combination_id
140074          , x_value_segment_code       => l_adr_value_segment_code
140075          , p_side                     => 'NA'
140076          , p_override_seg_flag        => 'Y'
140077    );
140078 
140079    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140080 
140081       xla_ae_lines_pkg.set_segment(
140082           p_to_segment_code         => 'GL_BALANCING'
140083         , p_segment_value           => l_segment
140084         , p_from_segment_code       => l_adr_value_segment_code
140085         , p_from_combination_id     => l_adr_value_combination_id
140086         , p_value_type_code         => l_adr_value_type_code
140087         , p_transaction_coa_id      => l_adr_transaction_coa_id
140088         , p_accounting_coa_id       => l_adr_accounting_coa_id
140089         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140090         , p_flex_value_set_id       => l_adr_flex_value_set_id
140091         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140092         , p_adr_type_code           => 'S'
140096         , p_component_appl_id       => l_component_appl_id
140093         , p_component_type          => l_component_type
140094         , p_component_code          => l_component_code
140095         , p_component_type_code     => l_component_type_code
140097         , p_amb_context_code        => l_amb_context_code
140098         , p_entity_code             => 'AP_PAYMENTS'
140099         , p_event_class_code        => 'PAYMENTS'
140100         , p_side                    => 'NA'
140101         );
140102 
140103   END IF;
140104 
140105    --
140106    --
140107    END IF;
140108 
140109        --
140110        -- Update the line information that should be overwritten
140111        --
140112        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
140113                                          p_header_num   => 1);
140114        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
140115 
140116        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
140117 
140118        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
140119           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
140120        END IF;
140121 
140122       --
140123       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
140124       --
140125       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
140126           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
140127       ELSE
140128           ---------------------------------------------------------------------------------------------------
140129           -- 4262811a Switch Sign
140130           ---------------------------------------------------------------------------------------------------
140131           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
140132           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140133                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140134           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140135                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140136           -- 5132302
140137           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
140138                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140139 
140140       END IF;
140141 
140142       -- 4955764
140143       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140144       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
140145 
140146 
140147       XLA_AE_LINES_PKG.ValidateCurrentLine;
140148       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140149 
140150       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140151                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
140152                ,p_balance_type_code => l_balance_type_code);
140153 
140154    END IF;
140155 
140156    -----------------------------------------------------------------------------------------
140157    -- 4262811 Multiperiod Accounting
140158    -----------------------------------------------------------------------------------------
140159      -- No MPA option is assigned.
140160 
140161 
140162 END IF;
140163 END IF;
140164 --
140165 
140166 --
140167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140168    trace
140169       (p_msg      => 'END of AcctLineType_221'
140170       ,p_level    => C_LEVEL_PROCEDURE
140171       ,p_module   => l_log_module);
140172 END IF;
140173 --
140174 EXCEPTION
140175   WHEN xla_exceptions_pkg.application_exception THEN
140176       RAISE;
140177   WHEN OTHERS THEN
140178        xla_exceptions_pkg.raise_message
140179            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_221');
140180 END AcctLineType_221;
140181 --
140182 
140183 ---------------------------------------
140184 --
140185 -- PRIVATE FUNCTION
140186 --         AcctLineType_222
140187 --
140188 ---------------------------------------
140189 PROCEDURE AcctLineType_222 (
140190   p_application_id        IN NUMBER
140191  ,p_event_id              IN NUMBER
140192  ,p_calculate_acctd_flag  IN VARCHAR2
140193  ,p_calculate_g_l_flag    IN VARCHAR2
140194  ,p_actual_flag           IN OUT VARCHAR2
140195  ,p_balance_type_code     OUT VARCHAR2
140196  ,p_gain_or_loss_ref      OUT VARCHAR2
140197  
140198 --Invoice Distribution Description
140199  , p_source_1            IN VARCHAR2
140200 --Automatic Offsets Value
140201  , p_source_15            IN VARCHAR2
140202  , p_source_15_meaning    IN VARCHAR2
140203 --Invoice Distribution Ledger Amount
140204  , p_source_21            IN NUMBER
140205 --Invoice Distribution Account
140206  , p_source_30            IN NUMBER
140207 --Invoice Distribution Type
140208  , p_source_33            IN VARCHAR2
140209  , p_source_33_meaning    IN VARCHAR2
140210 --Withholding Related Distribution Account
140211  , p_source_43            IN NUMBER
140212 --Accounting Reversal Indicator
140213  , p_source_52            IN VARCHAR2
140217  , p_source_56            IN NUMBER
140214 --Distribution Link Type
140215  , p_source_54            IN VARCHAR2
140216 --Allocation to Main Distribution Identifier
140218 --Invoice Identifier
140219  , p_source_57            IN NUMBER
140220 --Invoice Distribution Identifier
140221  , p_source_63            IN NUMBER
140222 --Payables Encumbrance Upgrade Credit Account
140223  , p_source_64            IN NUMBER
140224 --Payables Encumbrance Upgrade Credit Amount
140225  , p_source_65            IN NUMBER
140226 --Invoice Currency Code
140227  , p_source_66            IN VARCHAR2
140228 --Payables Encumbrance Upgrade Credit Base Amount
140229  , p_source_67            IN NUMBER
140230 --Payables Encumbrance Upgrade Debit Account
140231  , p_source_68            IN NUMBER
140232 --Payables Encumbrance Upgrade Debit Amount
140233  , p_source_69            IN NUMBER
140234 --Payables Encumbrance Upgrade Debit Base Amount
140235  , p_source_70            IN NUMBER
140236 --Payables Encumbrance Upgrade Option
140237  , p_source_71            IN VARCHAR2
140238 --Invoice Distribution Amount
140239  , p_source_72            IN NUMBER
140240 --Deferred Accounting End Date
140241  , p_source_76            IN DATE
140242 --Deferred Accounting Option
140243  , p_source_77            IN VARCHAR2
140244 --Deferred Accounting Start Date
140245  , p_source_78            IN DATE
140246 --Override Accounted Amount Indicator
140247  , p_source_79            IN VARCHAR2
140248  , p_source_79_meaning    IN VARCHAR2
140249 --Invoice Supplier Identifier
140250  , p_source_80            IN NUMBER
140251 --Invoice Supplier Site Identifier
140252  , p_source_81            IN NUMBER
140253 --Third Party Type
140254  , p_source_82            IN VARCHAR2
140255 --Parent Reversal Identifier
140256  , p_source_83            IN NUMBER
140257 --Invoice Distribution Statistical Amount
140258  , p_source_84            IN NUMBER
140259 --Invoice Distribution Tax Line Identifier
140260  , p_source_85            IN NUMBER
140261 --Invoice Distribution Tax Distribution Identifier from Tax
140262  , p_source_86            IN NUMBER
140263 --Invoice Distribution Summary Tax Line Identifier
140264  , p_source_87            IN NUMBER
140265 --Payables Upgrade Credit Encumbrance Type Identifier
140266  , p_source_88            IN NUMBER
140267 --Payables Upgrade Debit Encumbrance Type Identifier
140268  , p_source_89            IN NUMBER
140269 --Business Flow Accounts Payable Application Identifier
140270  , p_source_90            IN NUMBER
140271 --Business Flow Invoice Distribution Type
140272  , p_source_91            IN VARCHAR2
140273 --Business Flow Invoice Entity Code
140274  , p_source_92            IN VARCHAR2
140275 --Business Flow Invoice Distribution Identifier
140276  , p_source_93            IN NUMBER
140277 --Business Flow Invoice Identifier
140278  , p_source_94            IN NUMBER
140279 --Invoice Exchange Date
140280  , p_source_136            IN DATE
140281 --Invoice Exchange Rate
140282  , p_source_137            IN NUMBER
140283 --Invoice Exchange Rate Type
140284  , p_source_138            IN VARCHAR2
140285 )
140286 IS
140287 
140288 l_component_type              VARCHAR2(80);
140289 l_component_code              VARCHAR2(30);
140290 l_component_type_code         VARCHAR2(1);
140291 l_component_appl_id           INTEGER;
140292 l_amb_context_code            VARCHAR2(30);
140293 l_entity_code                 VARCHAR2(30);
140294 l_event_class_code            VARCHAR2(30);
140295 l_ae_header_id                NUMBER;
140296 l_event_type_code             VARCHAR2(30);
140297 l_line_definition_code        VARCHAR2(30);
140298 l_line_definition_owner_code  VARCHAR2(1);
140299 --
140300 -- adr variables
140301 l_segment                     VARCHAR2(30);
140302 l_ccid                        NUMBER;
140303 l_adr_transaction_coa_id      NUMBER;
140304 l_adr_accounting_coa_id       NUMBER;
140305 l_adr_flexfield_segment_code  VARCHAR2(30);
140306 l_adr_flex_value_set_id       NUMBER;
140307 l_adr_value_type_code         VARCHAR2(30);
140308 l_adr_value_combination_id    NUMBER;
140309 l_adr_value_segment_code      VARCHAR2(30);
140310 
140311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
140312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
140313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
140314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
140315 
140316 -- 4262811 Variables ------------------------------------------------------------------------------------------
140317 l_entered_amt_idx             NUMBER;
140318 l_accted_amt_idx              NUMBER;
140319 l_acc_rev_flag                VARCHAR2(1);
140320 l_accrual_line_num            NUMBER;
140321 l_tmp_amt                     NUMBER;
140322 l_acc_rev_natural_side_code   VARCHAR2(1);
140323 
140324 l_num_entries                 NUMBER;
140325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
140326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
140327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
140328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
140329 l_recog_line_1                NUMBER;
140330 l_recog_line_2                NUMBER;
140331 
140332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
140333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
140337 
140334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
140335 
140336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
140338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
140339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
140340 
140341 ---------------------------------------------------------------------------------------------------------------
140342 
140343 
140344 --
140345 -- bulk performance
140346 --
140347 l_balance_type_code           VARCHAR2(1);
140348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
140349 l_log_module                  VARCHAR2(240);
140350 
140351 --
140352 -- Upgrade strategy
140353 --
140354 l_actual_upg_option           VARCHAR2(1);
140355 l_enc_upg_option           VARCHAR2(1);
140356 
140357 --
140358 BEGIN
140359 --
140360 IF g_log_enabled THEN
140361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_222';
140362 END IF;
140363 --
140364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140365 
140366       trace
140367          (p_msg      => 'BEGIN of AcctLineType_222'
140368          ,p_level    => C_LEVEL_PROCEDURE
140369          ,p_module   => l_log_module);
140370 
140371 END IF;
140372 --
140373 l_component_type             := 'AMB_JLT';
140374 l_component_code             := 'AP_WITHHOLD_TAX_CM';
140375 l_component_type_code        := 'S';
140376 l_component_appl_id          :=  200;
140377 l_amb_context_code           := 'DEFAULT';
140378 l_entity_code                := 'AP_INVOICES';
140379 l_event_class_code           := 'CREDIT MEMOS';
140380 l_event_type_code            := 'CREDIT MEMOS_ALL';
140381 l_line_definition_owner_code := 'S';
140382 l_line_definition_code       := 'JA_CN_ACCRUAL_CREDIT_MEMOS_ALL';
140383 --
140384 l_balance_type_code          := 'A';
140385 l_segment                     := NULL;
140386 l_ccid                        := NULL;
140387 l_adr_transaction_coa_id      := NULL;
140388 l_adr_accounting_coa_id       := NULL;
140389 l_adr_flexfield_segment_code  := NULL;
140390 l_adr_flex_value_set_id       := NULL;
140391 l_adr_value_type_code         := NULL;
140392 l_adr_value_combination_id    := NULL;
140393 l_adr_value_segment_code      := NULL;
140394 
140395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
140396 l_bflow_class_code           := '';    -- 4219869 Business Flow
140397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
140398 l_budgetary_control_flag     := 'N';
140399 
140400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
140401 l_bflow_applied_to_amt       := NULL; -- 5132302
140402 l_entered_amt_idx            := NULL;          -- 4262811
140403 l_accted_amt_idx             := NULL;          -- 4262811
140404 l_acc_rev_flag               := NULL;          -- 4262811
140405 l_accrual_line_num           := NULL;          -- 4262811
140406 l_tmp_amt                    := NULL;          -- 4262811
140407 --
140408  
140409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
140410     l_balance_type_code <> 'B' THEN
140411 IF NVL(p_source_33,'
140412 ') =  'AWT'
140413  THEN 
140414 
140415    --
140416    XLA_AE_LINES_PKG.SetNewLine;
140417 
140418    p_balance_type_code          := l_balance_type_code;
140419    -- set the flag so later we will know whether the gain loss line needs to be created
140420    
140421    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
140422      p_actual_flag :='A';
140423    END IF;
140424 
140425    --
140426    -- bulk performance
140427    --
140428    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
140429                                       p_header_num   => 0); -- 4262811
140430    --
140431    -- set accounting line options
140432    --
140433    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
140434            p_natural_side_code          => 'D'
140435          , p_gain_or_loss_flag          => 'N'
140436          , p_gl_transfer_mode_code      => 'S'
140437          , p_acct_entry_type_code       => 'A'
140438          , p_switch_side_flag           => 'Y'
140439          , p_merge_duplicate_code       => 'A'
140440          );
140441    --
140442    l_acc_rev_natural_side_code := 'C';  -- 4262811
140443    -- 
140444    --
140445    -- set accounting line type info
140446    --
140447    xla_ae_lines_pkg.SetAcctLineType
140448       (p_component_type             => l_component_type
140449       ,p_event_type_code            => l_event_type_code
140450       ,p_line_definition_owner_code => l_line_definition_owner_code
140451       ,p_line_definition_code       => l_line_definition_code
140452       ,p_accounting_line_code       => l_component_code
140453       ,p_accounting_line_type_code  => l_component_type_code
140454       ,p_accounting_line_appl_id    => l_component_appl_id
140455       ,p_amb_context_code           => l_amb_context_code
140456       ,p_entity_code                => l_entity_code
140457       ,p_event_class_code           => l_event_class_code);
140458    --
140459    -- set accounting class
140460    --
140461    xla_ae_lines_pkg.SetAcctClass(
140462            p_accounting_class_code  => 'AWT'
140463          , p_ae_header_id           => l_ae_header_id
140464          );
140465 
140466    --
140467    -- set rounding class
140471 
140468    --
140469    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
140470                       'AWT';
140472    --
140473    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
140474    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
140475    --
140476    -- bulk performance
140477    --
140478    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
140479 
140480    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
140481       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
140482 
140483    -- 4955764
140484    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140485       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
140486 
140487    -- 4458381 Public Sector Enh
140488    
140489    --
140490    -- set accounting attributes for the line type
140491    --
140492    l_entered_amt_idx := 23;
140493    l_accted_amt_idx  := 28;
140494    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
140495    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
140496    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
140497    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
140498    l_rec_acct_attrs.array_num_value(2)  := 
140499 xla_ae_sources_pkg.GetSystemSourceNum(
140500    p_source_code           => 'XLA_EVENT_APPL_ID'
140501  , p_source_type_code      => 'Y'
140502  , p_source_application_id =>  602
140503 );
140504    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
140505    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
140506    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
140507    l_rec_acct_attrs.array_char_value(4)  := 
140508 xla_ae_sources_pkg.GetSystemSourceChar(
140509    p_source_code           => 'XLA_ENTITY_CODE'
140510  , p_source_type_code      => 'Y'
140511  , p_source_application_id =>  602
140512 );
140513    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
140514    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
140515    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
140516    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
140517    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
140518    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
140519    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
140520    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
140521    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
140522    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
140523    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
140524    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
140525    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
140526    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
140527    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
140528    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
140529    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
140530    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
140531    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
140532    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
140533    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
140534    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
140535    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
140536    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
140537    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
140538    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
140539    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
140540    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
140541    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
140542    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
140543    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
140544    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
140545    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
140546    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
140547    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
140548    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
140549    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
140550    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
140551    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
140552    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
140553    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
140554    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
140555    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
140556    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
140557    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
140558    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
140559    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
140560    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
140561    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
140562    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
140566    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
140563    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
140564    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
140565    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
140567    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
140568    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
140569    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
140570    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
140571    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
140572    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
140573    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
140574    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
140575    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
140576    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
140577    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
140578    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
140579    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
140580    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
140581    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
140582    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
140583    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
140584    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
140585    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
140586    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
140587    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
140588    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
140589    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
140590    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
140591 
140592    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140593    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140594 
140595    ---------------------------------------------------------------------------------------------------------------
140596    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140597    ---------------------------------------------------------------------------------------------------------------
140598    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140599 
140600    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140601    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140602 
140603    IF xla_accounting_cache_pkg.GetValueChar
140604          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140605          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140606    AND l_bflow_method_code = 'PRIOR_ENTRY'
140607 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140608    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140609          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140610        )
140611    THEN
140612          xla_ae_lines_pkg.BflowUpgEntry
140613            (p_business_method_code    => l_bflow_method_code
140614            ,p_business_class_code     => l_bflow_class_code
140615            ,p_balance_type            => l_balance_type_code);
140616    ELSE
140617       NULL;
140618 -- No business flow processing for business flow method of NONE.
140619    END IF;
140620 
140621    --
140622    -- call analytical criteria
140623    --
140624    
140625    --
140626    -- call description
140627    --
140628    
140629 xla_ae_lines_pkg.SetLineDescription(
140630    p_ae_header_id => l_ae_header_id
140631   ,p_description  => Description_1 (
140632      p_application_id         => p_application_id
140633    , p_ae_header_id           => l_ae_header_id 
140634 , p_source_1 => p_source_1
140635    )
140636 );
140637 
140638 
140639    --
140640    -- call ADRs
140641    -- Bug 4922099
140642    --
140643    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140644         (NVL(l_actual_upg_option, 'N') = 'O') OR
140645         (NVL(l_enc_upg_option, 'N') = 'O')
140646       )
140647    THEN
140648    NULL;
140649    --
140650    --
140651    
140652   l_ccid := AcctDerRule_45(
140653            p_application_id           => p_application_id
140654          , p_ae_header_id             => l_ae_header_id 
140655 , p_source_15 => p_source_15
140656 , p_source_15_meaning => p_source_15_meaning
140657 , p_source_30 => p_source_30
140658 , p_source_43 => p_source_43
140659          , x_transaction_coa_id       => l_adr_transaction_coa_id
140660          , x_accounting_coa_id        => l_adr_accounting_coa_id
140661          , x_value_type_code          => l_adr_value_type_code
140662          , p_side                     => 'NA'
140663    );
140664 
140665    xla_ae_lines_pkg.set_ccid(
140666     p_code_combination_id          => l_ccid
140667   , p_value_type_code              => l_adr_value_type_code
140668   , p_transaction_coa_id           => l_adr_transaction_coa_id
140669   , p_accounting_coa_id            => l_adr_accounting_coa_id
140670   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140671   , p_adr_type_code                => 'S'
140672   , p_component_type               => l_component_type
140673   , p_component_code               => l_component_code
140677   , p_side                         => 'NA'
140674   , p_component_type_code          => l_component_type_code
140675   , p_component_appl_id            => l_component_appl_id
140676   , p_amb_context_code             => l_amb_context_code
140678   );
140679 
140680 
140681    l_segment := AcctDerRule_14(
140682            p_application_id           => p_application_id
140683          , p_ae_header_id             => l_ae_header_id 
140684 , p_source_15 => p_source_15
140685 , p_source_15_meaning => p_source_15_meaning
140686 , p_source_30 => p_source_30
140687          , x_transaction_coa_id       => l_adr_transaction_coa_id
140688          , x_accounting_coa_id        => l_adr_accounting_coa_id
140689          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140690          , x_flex_value_set_id        => l_adr_flex_value_set_id
140691          , x_value_type_code          => l_adr_value_type_code
140692          , x_value_combination_id     => l_adr_value_combination_id
140693          , x_value_segment_code       => l_adr_value_segment_code
140694          , p_side                     => 'NA'
140695          , p_override_seg_flag        => 'Y'
140696    );
140697 
140698    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140699 
140700       xla_ae_lines_pkg.set_segment(
140701           p_to_segment_code         => 'GL_ACCOUNT'
140702         , p_segment_value           => l_segment
140703         , p_from_segment_code       => l_adr_value_segment_code
140704         , p_from_combination_id     => l_adr_value_combination_id
140705         , p_value_type_code         => l_adr_value_type_code
140706         , p_transaction_coa_id      => l_adr_transaction_coa_id
140707         , p_accounting_coa_id       => l_adr_accounting_coa_id
140708         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140709         , p_flex_value_set_id       => l_adr_flex_value_set_id
140710         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140711         , p_adr_type_code           => 'S'
140712         , p_component_type          => l_component_type
140713         , p_component_code          => l_component_code
140714         , p_component_type_code     => l_component_type_code
140715         , p_component_appl_id       => l_component_appl_id
140716         , p_amb_context_code        => l_amb_context_code
140717         , p_entity_code             => 'AP_INVOICES'
140718         , p_event_class_code        => 'CREDIT MEMOS'
140719         , p_side                    => 'NA'
140720         );
140721 
140722   END IF;
140723 
140724    l_segment := AcctDerRule_25(
140725            p_application_id           => p_application_id
140726          , p_ae_header_id             => l_ae_header_id 
140727 , p_source_15 => p_source_15
140728 , p_source_15_meaning => p_source_15_meaning
140729 , p_source_43 => p_source_43
140730          , x_transaction_coa_id       => l_adr_transaction_coa_id
140731          , x_accounting_coa_id        => l_adr_accounting_coa_id
140732          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140733          , x_flex_value_set_id        => l_adr_flex_value_set_id
140734          , x_value_type_code          => l_adr_value_type_code
140735          , x_value_combination_id     => l_adr_value_combination_id
140736          , x_value_segment_code       => l_adr_value_segment_code
140737          , p_side                     => 'NA'
140738          , p_override_seg_flag        => 'Y'
140739    );
140740 
140741    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140742 
140743       xla_ae_lines_pkg.set_segment(
140744           p_to_segment_code         => 'GL_BALANCING'
140745         , p_segment_value           => l_segment
140746         , p_from_segment_code       => l_adr_value_segment_code
140747         , p_from_combination_id     => l_adr_value_combination_id
140748         , p_value_type_code         => l_adr_value_type_code
140749         , p_transaction_coa_id      => l_adr_transaction_coa_id
140750         , p_accounting_coa_id       => l_adr_accounting_coa_id
140751         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140752         , p_flex_value_set_id       => l_adr_flex_value_set_id
140753         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140754         , p_adr_type_code           => 'S'
140755         , p_component_type          => l_component_type
140756         , p_component_code          => l_component_code
140757         , p_component_type_code     => l_component_type_code
140758         , p_component_appl_id       => l_component_appl_id
140759         , p_amb_context_code        => l_amb_context_code
140760         , p_entity_code             => 'AP_INVOICES'
140761         , p_event_class_code        => 'CREDIT MEMOS'
140762         , p_side                    => 'NA'
140763         );
140764 
140765   END IF;
140766 
140767    --
140768    --
140769    END IF;
140770    --
140771    -- Bug 4922099
140772    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140773           (NVL(l_enc_upg_option, 'N') = 'O')
140774         ) AND
140775         (l_bflow_method_code = 'PRIOR_ENTRY')
140776       )
140777    THEN
140778       IF
140779       --
140780       1 = 2
140781       --
140782       THEN
140783       xla_accounting_err_pkg.build_message
140784                                     (p_appli_s_name            => 'XLA'
140785                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140786                                     ,p_token_1                 => 'LINE_NUMBER'
140790                                                                              l_component_type
140787                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140788                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140789                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140791                                                                             ,l_component_code
140792                                                                             ,l_component_type_code
140793                                                                             ,l_component_appl_id
140794                                                                             ,l_amb_context_code
140795                                                                             ,l_entity_code
140796                                                                             ,l_event_class_code
140797                                                                            )
140798                                     ,p_token_3                 => 'OWNER'
140799                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140800                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140801                                                                           ,p_lookup_code    => l_component_type_code
140802                                                                          )
140803                                     ,p_token_4                 => 'PRODUCT_NAME'
140804                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140805                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140806                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140807                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140808                                     ,p_ae_header_id            =>  NULL
140809                                        );
140810 
140811         IF (C_LEVEL_ERROR>= g_log_level) THEN
140812                  trace
140813                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140814                       ,p_level    => C_LEVEL_ERROR
140815                       ,p_module   => l_log_module);
140816         END IF;
140817       END IF;
140818    END IF;
140819    --
140820    --
140821    ------------------------------------------------------------------------------------------------
140822    -- 4219869 Business Flow
140823    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140824    -- Prior Entry.  Currently, the following code is always generated.
140825    ------------------------------------------------------------------------------------------------
140826    XLA_AE_LINES_PKG.ValidateCurrentLine;
140827 
140828    ------------------------------------------------------------------------------------
140829    -- 4219869 Business Flow
140830    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140831    ------------------------------------------------------------------------------------
140832    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140833 
140834    ----------------------------------------------------------------------------------
140835    -- 4219869 Business Flow
140836    -- Update journal entry status -- Need to generate this within IF <condition>
140837    ----------------------------------------------------------------------------------
140838    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140839          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140840          ,p_balance_type_code => l_balance_type_code
140841          );
140842 
140843    -------------------------------------------------------------------------------------------
140844    -- 4262811 - Generate the Accrual Reversal lines
140845    -------------------------------------------------------------------------------------------
140846    BEGIN
140847       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140848                               (g_array_event(p_event_id).array_value_num('header_index'));
140849       IF l_acc_rev_flag IS NULL THEN
140850          l_acc_rev_flag := 'N';
140851       END IF;
140852    EXCEPTION
140853       WHEN OTHERS THEN
140854          l_acc_rev_flag := 'N';
140855    END;
140856    --
140857    IF (l_acc_rev_flag = 'Y') THEN
140858 
140859        -- 4645092  ------------------------------------------------------------------------------
140860        -- To allow MPA report to determine if it should generate report process
140861        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140862        ------------------------------------------------------------------------------------------
140863 
140864        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
140865        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
140866    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
140867    -- call ADRs
140868    -- Bug 4922099
140869    --
140870    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140871         (NVL(l_actual_upg_option, 'N') = 'O') OR
140872         (NVL(l_enc_upg_option, 'N') = 'O')
140873       )
140874    THEN
140875    NULL;
140876    --
140877    --
140878    
140879   l_ccid := AcctDerRule_45(
140880            p_application_id           => p_application_id
140884 , p_source_30 => p_source_30
140881          , p_ae_header_id             => l_ae_header_id 
140882 , p_source_15 => p_source_15
140883 , p_source_15_meaning => p_source_15_meaning
140885 , p_source_43 => p_source_43
140886          , x_transaction_coa_id       => l_adr_transaction_coa_id
140887          , x_accounting_coa_id        => l_adr_accounting_coa_id
140888          , x_value_type_code          => l_adr_value_type_code
140889          , p_side                     => 'NA'
140890    );
140891 
140892    xla_ae_lines_pkg.set_ccid(
140893     p_code_combination_id          => l_ccid
140894   , p_value_type_code              => l_adr_value_type_code
140895   , p_transaction_coa_id           => l_adr_transaction_coa_id
140896   , p_accounting_coa_id            => l_adr_accounting_coa_id
140897   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140898   , p_adr_type_code                => 'S'
140899   , p_component_type               => l_component_type
140900   , p_component_code               => l_component_code
140901   , p_component_type_code          => l_component_type_code
140902   , p_component_appl_id            => l_component_appl_id
140903   , p_amb_context_code             => l_amb_context_code
140904   , p_side                         => 'NA'
140905   );
140906 
140907 
140908    l_segment := AcctDerRule_14(
140909            p_application_id           => p_application_id
140910          , p_ae_header_id             => l_ae_header_id 
140911 , p_source_15 => p_source_15
140912 , p_source_15_meaning => p_source_15_meaning
140913 , p_source_30 => p_source_30
140914          , x_transaction_coa_id       => l_adr_transaction_coa_id
140915          , x_accounting_coa_id        => l_adr_accounting_coa_id
140916          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140917          , x_flex_value_set_id        => l_adr_flex_value_set_id
140918          , x_value_type_code          => l_adr_value_type_code
140919          , x_value_combination_id     => l_adr_value_combination_id
140920          , x_value_segment_code       => l_adr_value_segment_code
140921          , p_side                     => 'NA'
140922          , p_override_seg_flag        => 'Y'
140923    );
140924 
140925    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140926 
140927       xla_ae_lines_pkg.set_segment(
140928           p_to_segment_code         => 'GL_ACCOUNT'
140929         , p_segment_value           => l_segment
140930         , p_from_segment_code       => l_adr_value_segment_code
140931         , p_from_combination_id     => l_adr_value_combination_id
140932         , p_value_type_code         => l_adr_value_type_code
140933         , p_transaction_coa_id      => l_adr_transaction_coa_id
140934         , p_accounting_coa_id       => l_adr_accounting_coa_id
140935         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140936         , p_flex_value_set_id       => l_adr_flex_value_set_id
140937         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140938         , p_adr_type_code           => 'S'
140939         , p_component_type          => l_component_type
140940         , p_component_code          => l_component_code
140941         , p_component_type_code     => l_component_type_code
140942         , p_component_appl_id       => l_component_appl_id
140943         , p_amb_context_code        => l_amb_context_code
140944         , p_entity_code             => 'AP_INVOICES'
140945         , p_event_class_code        => 'CREDIT MEMOS'
140946         , p_side                    => 'NA'
140947         );
140948 
140949   END IF;
140950 
140951    l_segment := AcctDerRule_25(
140952            p_application_id           => p_application_id
140953          , p_ae_header_id             => l_ae_header_id 
140954 , p_source_15 => p_source_15
140955 , p_source_15_meaning => p_source_15_meaning
140956 , p_source_43 => p_source_43
140957          , x_transaction_coa_id       => l_adr_transaction_coa_id
140958          , x_accounting_coa_id        => l_adr_accounting_coa_id
140959          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140960          , x_flex_value_set_id        => l_adr_flex_value_set_id
140961          , x_value_type_code          => l_adr_value_type_code
140962          , x_value_combination_id     => l_adr_value_combination_id
140963          , x_value_segment_code       => l_adr_value_segment_code
140964          , p_side                     => 'NA'
140965          , p_override_seg_flag        => 'Y'
140966    );
140967 
140968    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140969 
140970       xla_ae_lines_pkg.set_segment(
140971           p_to_segment_code         => 'GL_BALANCING'
140972         , p_segment_value           => l_segment
140973         , p_from_segment_code       => l_adr_value_segment_code
140974         , p_from_combination_id     => l_adr_value_combination_id
140975         , p_value_type_code         => l_adr_value_type_code
140976         , p_transaction_coa_id      => l_adr_transaction_coa_id
140977         , p_accounting_coa_id       => l_adr_accounting_coa_id
140978         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140979         , p_flex_value_set_id       => l_adr_flex_value_set_id
140980         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140981         , p_adr_type_code           => 'S'
140982         , p_component_type          => l_component_type
140983         , p_component_code          => l_component_code
140984         , p_component_type_code     => l_component_type_code
140985         , p_component_appl_id       => l_component_appl_id
140986         , p_amb_context_code        => l_amb_context_code
140990         );
140987         , p_entity_code             => 'AP_INVOICES'
140988         , p_event_class_code        => 'CREDIT MEMOS'
140989         , p_side                    => 'NA'
140991 
140992   END IF;
140993 
140994    --
140995    --
140996    END IF;
140997 
140998        --
140999        -- Update the line information that should be overwritten
141000        --
141001        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
141002                                          p_header_num   => 1);
141003        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
141004 
141005        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
141006 
141007        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
141008           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
141009        END IF;
141010 
141011       --
141012       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
141013       --
141014       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
141015           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
141016       ELSE
141017           ---------------------------------------------------------------------------------------------------
141018           -- 4262811a Switch Sign
141019           ---------------------------------------------------------------------------------------------------
141020           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
141021           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141022                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141023           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141024                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141025           -- 5132302
141026           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
141027                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141028 
141029       END IF;
141030 
141031       -- 4955764
141032       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141033       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
141034 
141035 
141036       XLA_AE_LINES_PKG.ValidateCurrentLine;
141037       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141038 
141039       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141040                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
141041                ,p_balance_type_code => l_balance_type_code);
141042 
141043    END IF;
141044 
141045    -----------------------------------------------------------------------------------------
141046    -- 4262811 Multiperiod Accounting
141047    -----------------------------------------------------------------------------------------
141048      -- No MPA option is assigned.
141049 
141050 
141051 END IF;
141052 END IF;
141053 --
141054 
141055 --
141056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141057    trace
141058       (p_msg      => 'END of AcctLineType_222'
141059       ,p_level    => C_LEVEL_PROCEDURE
141060       ,p_module   => l_log_module);
141061 END IF;
141062 --
141063 EXCEPTION
141064   WHEN xla_exceptions_pkg.application_exception THEN
141065       RAISE;
141066   WHEN OTHERS THEN
141067        xla_exceptions_pkg.raise_message
141068            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_222');
141069 END AcctLineType_222;
141070 --
141071 
141072 ---------------------------------------
141073 --
141074 -- PRIVATE FUNCTION
141075 --         AcctLineType_223
141076 --
141077 ---------------------------------------
141078 PROCEDURE AcctLineType_223 (
141079   p_application_id        IN NUMBER
141080  ,p_event_id              IN NUMBER
141081  ,p_calculate_acctd_flag  IN VARCHAR2
141082  ,p_calculate_g_l_flag    IN VARCHAR2
141083  ,p_actual_flag           IN OUT VARCHAR2
141084  ,p_balance_type_code     OUT VARCHAR2
141085  ,p_gain_or_loss_ref      OUT VARCHAR2
141086  
141087 --Invoice Distribution Description
141088  , p_source_1            IN VARCHAR2
141089 --Automatic Offsets Value
141090  , p_source_15            IN VARCHAR2
141091  , p_source_15_meaning    IN VARCHAR2
141092 --Invoice Distribution Ledger Amount
141093  , p_source_21            IN NUMBER
141094 --Invoice Distribution Account
141095  , p_source_30            IN NUMBER
141096 --Invoice Distribution Type
141097  , p_source_33            IN VARCHAR2
141098  , p_source_33_meaning    IN VARCHAR2
141099 --Withholding Related Distribution Account
141100  , p_source_43            IN NUMBER
141101 --Accounting Reversal Indicator
141102  , p_source_52            IN VARCHAR2
141103 --Distribution Link Type
141104  , p_source_54            IN VARCHAR2
141105 --Allocation to Main Distribution Identifier
141106  , p_source_56            IN NUMBER
141107 --Invoice Identifier
141108  , p_source_57            IN NUMBER
141109 --Invoice Distribution Identifier
141110  , p_source_63            IN NUMBER
141114  , p_source_65            IN NUMBER
141111 --Payables Encumbrance Upgrade Credit Account
141112  , p_source_64            IN NUMBER
141113 --Payables Encumbrance Upgrade Credit Amount
141115 --Invoice Currency Code
141116  , p_source_66            IN VARCHAR2
141117 --Payables Encumbrance Upgrade Credit Base Amount
141118  , p_source_67            IN NUMBER
141119 --Payables Encumbrance Upgrade Debit Account
141120  , p_source_68            IN NUMBER
141121 --Payables Encumbrance Upgrade Debit Amount
141122  , p_source_69            IN NUMBER
141123 --Payables Encumbrance Upgrade Debit Base Amount
141124  , p_source_70            IN NUMBER
141125 --Payables Encumbrance Upgrade Option
141126  , p_source_71            IN VARCHAR2
141127 --Invoice Distribution Amount
141128  , p_source_72            IN NUMBER
141129 --Deferred Accounting End Date
141130  , p_source_76            IN DATE
141131 --Deferred Accounting Option
141132  , p_source_77            IN VARCHAR2
141133 --Deferred Accounting Start Date
141134  , p_source_78            IN DATE
141135 --Override Accounted Amount Indicator
141136  , p_source_79            IN VARCHAR2
141137  , p_source_79_meaning    IN VARCHAR2
141138 --Invoice Supplier Identifier
141139  , p_source_80            IN NUMBER
141140 --Invoice Supplier Site Identifier
141141  , p_source_81            IN NUMBER
141142 --Third Party Type
141143  , p_source_82            IN VARCHAR2
141144 --Parent Reversal Identifier
141145  , p_source_83            IN NUMBER
141146 --Invoice Distribution Tax Line Identifier
141147  , p_source_85            IN NUMBER
141148 --Invoice Distribution Tax Distribution Identifier from Tax
141149  , p_source_86            IN NUMBER
141150 --Invoice Distribution Summary Tax Line Identifier
141151  , p_source_87            IN NUMBER
141152 --Payables Upgrade Credit Encumbrance Type Identifier
141153  , p_source_88            IN NUMBER
141154 --Payables Upgrade Debit Encumbrance Type Identifier
141155  , p_source_89            IN NUMBER
141156 --Business Flow Accounts Payable Application Identifier
141157  , p_source_90            IN NUMBER
141158 --Business Flow Invoice Distribution Type
141159  , p_source_91            IN VARCHAR2
141160 --Business Flow Invoice Entity Code
141161  , p_source_92            IN VARCHAR2
141162 --Business Flow Invoice Distribution Identifier
141163  , p_source_93            IN NUMBER
141164 --Business Flow Invoice Identifier
141165  , p_source_94            IN NUMBER
141166 --Invoice Exchange Date
141167  , p_source_136            IN DATE
141168 --Invoice Exchange Rate
141169  , p_source_137            IN NUMBER
141170 --Invoice Exchange Rate Type
141171  , p_source_138            IN VARCHAR2
141172 )
141173 IS
141174 
141175 l_component_type              VARCHAR2(80);
141176 l_component_code              VARCHAR2(30);
141177 l_component_type_code         VARCHAR2(1);
141178 l_component_appl_id           INTEGER;
141179 l_amb_context_code            VARCHAR2(30);
141180 l_entity_code                 VARCHAR2(30);
141181 l_event_class_code            VARCHAR2(30);
141182 l_ae_header_id                NUMBER;
141183 l_event_type_code             VARCHAR2(30);
141184 l_line_definition_code        VARCHAR2(30);
141185 l_line_definition_owner_code  VARCHAR2(1);
141186 --
141187 -- adr variables
141188 l_segment                     VARCHAR2(30);
141189 l_ccid                        NUMBER;
141190 l_adr_transaction_coa_id      NUMBER;
141191 l_adr_accounting_coa_id       NUMBER;
141192 l_adr_flexfield_segment_code  VARCHAR2(30);
141193 l_adr_flex_value_set_id       NUMBER;
141194 l_adr_value_type_code         VARCHAR2(30);
141195 l_adr_value_combination_id    NUMBER;
141196 l_adr_value_segment_code      VARCHAR2(30);
141197 
141198 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
141199 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
141200 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
141201 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
141202 
141203 -- 4262811 Variables ------------------------------------------------------------------------------------------
141204 l_entered_amt_idx             NUMBER;
141205 l_accted_amt_idx              NUMBER;
141206 l_acc_rev_flag                VARCHAR2(1);
141207 l_accrual_line_num            NUMBER;
141208 l_tmp_amt                     NUMBER;
141209 l_acc_rev_natural_side_code   VARCHAR2(1);
141210 
141211 l_num_entries                 NUMBER;
141212 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
141213 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
141214 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
141215 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
141216 l_recog_line_1                NUMBER;
141217 l_recog_line_2                NUMBER;
141218 
141219 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
141220 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
141221 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
141222 
141223 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
141224 
141225 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
141226 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
141227 
141228 ---------------------------------------------------------------------------------------------------------------
141229 
141230 
141234 l_balance_type_code           VARCHAR2(1);
141231 --
141232 -- bulk performance
141233 --
141235 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
141236 l_log_module                  VARCHAR2(240);
141237 
141238 --
141239 -- Upgrade strategy
141240 --
141241 l_actual_upg_option           VARCHAR2(1);
141242 l_enc_upg_option           VARCHAR2(1);
141243 
141244 --
141245 BEGIN
141246 --
141247 IF g_log_enabled THEN
141248       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_223';
141249 END IF;
141250 --
141251 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141252 
141253       trace
141254          (p_msg      => 'BEGIN of AcctLineType_223'
141255          ,p_level    => C_LEVEL_PROCEDURE
141256          ,p_module   => l_log_module);
141257 
141258 END IF;
141259 --
141260 l_component_type             := 'AMB_JLT';
141261 l_component_code             := 'AP_WITHHOLD_TAX_DM';
141262 l_component_type_code        := 'S';
141263 l_component_appl_id          :=  200;
141264 l_amb_context_code           := 'DEFAULT';
141265 l_entity_code                := 'AP_INVOICES';
141266 l_event_class_code           := 'DEBIT MEMOS';
141267 l_event_type_code            := 'DEBIT MEMOS_ALL';
141268 l_line_definition_owner_code := 'S';
141269 l_line_definition_code       := 'JA_CN_ACCRUAL_DEBIT_MEMOS_ALL';
141270 --
141271 l_balance_type_code          := 'A';
141272 l_segment                     := NULL;
141273 l_ccid                        := NULL;
141274 l_adr_transaction_coa_id      := NULL;
141275 l_adr_accounting_coa_id       := NULL;
141276 l_adr_flexfield_segment_code  := NULL;
141277 l_adr_flex_value_set_id       := NULL;
141278 l_adr_value_type_code         := NULL;
141279 l_adr_value_combination_id    := NULL;
141280 l_adr_value_segment_code      := NULL;
141281 
141282 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
141283 l_bflow_class_code           := '';    -- 4219869 Business Flow
141284 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
141285 l_budgetary_control_flag     := 'N';
141286 
141287 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
141288 l_bflow_applied_to_amt       := NULL; -- 5132302
141289 l_entered_amt_idx            := NULL;          -- 4262811
141290 l_accted_amt_idx             := NULL;          -- 4262811
141291 l_acc_rev_flag               := NULL;          -- 4262811
141292 l_accrual_line_num           := NULL;          -- 4262811
141293 l_tmp_amt                    := NULL;          -- 4262811
141294 --
141295  
141296 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
141297     l_balance_type_code <> 'B' THEN
141298 IF NVL(p_source_33,'
141299 ') =  'AWT'
141300  THEN 
141301 
141302    --
141303    XLA_AE_LINES_PKG.SetNewLine;
141304 
141305    p_balance_type_code          := l_balance_type_code;
141306    -- set the flag so later we will know whether the gain loss line needs to be created
141307    
141308    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
141309      p_actual_flag :='A';
141310    END IF;
141311 
141312    --
141313    -- bulk performance
141314    --
141315    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
141316                                       p_header_num   => 0); -- 4262811
141317    --
141318    -- set accounting line options
141319    --
141320    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
141321            p_natural_side_code          => 'D'
141322          , p_gain_or_loss_flag          => 'N'
141323          , p_gl_transfer_mode_code      => 'S'
141324          , p_acct_entry_type_code       => 'A'
141325          , p_switch_side_flag           => 'Y'
141326          , p_merge_duplicate_code       => 'A'
141327          );
141328    --
141329    l_acc_rev_natural_side_code := 'C';  -- 4262811
141330    -- 
141331    --
141332    -- set accounting line type info
141333    --
141334    xla_ae_lines_pkg.SetAcctLineType
141335       (p_component_type             => l_component_type
141336       ,p_event_type_code            => l_event_type_code
141337       ,p_line_definition_owner_code => l_line_definition_owner_code
141338       ,p_line_definition_code       => l_line_definition_code
141339       ,p_accounting_line_code       => l_component_code
141340       ,p_accounting_line_type_code  => l_component_type_code
141341       ,p_accounting_line_appl_id    => l_component_appl_id
141342       ,p_amb_context_code           => l_amb_context_code
141343       ,p_entity_code                => l_entity_code
141344       ,p_event_class_code           => l_event_class_code);
141345    --
141346    -- set accounting class
141347    --
141348    xla_ae_lines_pkg.SetAcctClass(
141349            p_accounting_class_code  => 'AWT'
141350          , p_ae_header_id           => l_ae_header_id
141351          );
141352 
141353    --
141354    -- set rounding class
141355    --
141356    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
141357                       'AWT';
141358 
141359    --
141360    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
141361    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
141362    --
141363    -- bulk performance
141364    --
141365    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
141369 
141366 
141367    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
141368       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
141370    -- 4955764
141371    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141372       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
141373 
141374    -- 4458381 Public Sector Enh
141375    
141376    --
141377    -- set accounting attributes for the line type
141378    --
141379    l_entered_amt_idx := 23;
141380    l_accted_amt_idx  := 28;
141381    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
141382    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
141383    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
141384    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
141385    l_rec_acct_attrs.array_num_value(2)  := 
141386 xla_ae_sources_pkg.GetSystemSourceNum(
141387    p_source_code           => 'XLA_EVENT_APPL_ID'
141388  , p_source_type_code      => 'Y'
141389  , p_source_application_id =>  602
141390 );
141391    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
141392    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
141393    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
141394    l_rec_acct_attrs.array_char_value(4)  := 
141395 xla_ae_sources_pkg.GetSystemSourceChar(
141396    p_source_code           => 'XLA_ENTITY_CODE'
141397  , p_source_type_code      => 'Y'
141398  , p_source_application_id =>  602
141399 );
141400    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
141401    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
141402    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
141403    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
141404    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
141405    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
141406    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
141407    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
141408    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
141409    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
141410    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
141411    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
141412    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
141413    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
141414    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
141415    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
141416    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
141417    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
141418    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
141419    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
141420    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
141421    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
141422    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
141423    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
141424    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
141425    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
141426    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
141427    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
141428    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
141429    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
141430    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
141431    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
141432    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
141433    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
141434    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
141435    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
141436    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
141437    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
141438    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
141439    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
141440    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
141441    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
141442    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
141443    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
141444    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
141445    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
141446    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
141447    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
141448    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
141449    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
141450    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
141451    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
141452    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
141453    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
141454    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
141455    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
141456    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
141457    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
141458    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
141462    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
141459    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
141460    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
141461    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
141463    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
141464    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
141465    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
141466    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
141467    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
141468    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
141469    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
141470    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
141471    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
141472    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
141473    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
141474    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
141475    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
141476 
141477    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
141478    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
141479 
141480    ---------------------------------------------------------------------------------------------------------------
141481    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
141482    ---------------------------------------------------------------------------------------------------------------
141483    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
141484 
141485    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141486    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141487 
141488    IF xla_accounting_cache_pkg.GetValueChar
141489          (p_source_code         => 'LEDGER_CATEGORY_CODE'
141490          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
141491    AND l_bflow_method_code = 'PRIOR_ENTRY'
141492 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
141493    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
141494          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
141495        )
141496    THEN
141497          xla_ae_lines_pkg.BflowUpgEntry
141498            (p_business_method_code    => l_bflow_method_code
141499            ,p_business_class_code     => l_bflow_class_code
141500            ,p_balance_type            => l_balance_type_code);
141501    ELSE
141502       NULL;
141503 -- No business flow processing for business flow method of NONE.
141504    END IF;
141505 
141506    --
141507    -- call analytical criteria
141508    --
141509    
141510    --
141511    -- call description
141512    --
141513    
141514 xla_ae_lines_pkg.SetLineDescription(
141515    p_ae_header_id => l_ae_header_id
141516   ,p_description  => Description_1 (
141517      p_application_id         => p_application_id
141518    , p_ae_header_id           => l_ae_header_id 
141519 , p_source_1 => p_source_1
141520    )
141521 );
141522 
141523 
141524    --
141525    -- call ADRs
141526    -- Bug 4922099
141527    --
141528    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141529         (NVL(l_actual_upg_option, 'N') = 'O') OR
141530         (NVL(l_enc_upg_option, 'N') = 'O')
141531       )
141532    THEN
141533    NULL;
141534    --
141535    --
141536    
141537   l_ccid := AcctDerRule_45(
141538            p_application_id           => p_application_id
141539          , p_ae_header_id             => l_ae_header_id 
141540 , p_source_15 => p_source_15
141541 , p_source_15_meaning => p_source_15_meaning
141542 , p_source_30 => p_source_30
141543 , p_source_43 => p_source_43
141544          , x_transaction_coa_id       => l_adr_transaction_coa_id
141545          , x_accounting_coa_id        => l_adr_accounting_coa_id
141546          , x_value_type_code          => l_adr_value_type_code
141547          , p_side                     => 'NA'
141548    );
141549 
141550    xla_ae_lines_pkg.set_ccid(
141551     p_code_combination_id          => l_ccid
141552   , p_value_type_code              => l_adr_value_type_code
141553   , p_transaction_coa_id           => l_adr_transaction_coa_id
141554   , p_accounting_coa_id            => l_adr_accounting_coa_id
141555   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141556   , p_adr_type_code                => 'S'
141557   , p_component_type               => l_component_type
141558   , p_component_code               => l_component_code
141559   , p_component_type_code          => l_component_type_code
141560   , p_component_appl_id            => l_component_appl_id
141561   , p_amb_context_code             => l_amb_context_code
141562   , p_side                         => 'NA'
141563   );
141564 
141565 
141566    l_segment := AcctDerRule_14(
141567            p_application_id           => p_application_id
141568          , p_ae_header_id             => l_ae_header_id 
141569 , p_source_15 => p_source_15
141570 , p_source_15_meaning => p_source_15_meaning
141571 , p_source_30 => p_source_30
141572          , x_transaction_coa_id       => l_adr_transaction_coa_id
141573          , x_accounting_coa_id        => l_adr_accounting_coa_id
141577          , x_value_combination_id     => l_adr_value_combination_id
141574          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141575          , x_flex_value_set_id        => l_adr_flex_value_set_id
141576          , x_value_type_code          => l_adr_value_type_code
141578          , x_value_segment_code       => l_adr_value_segment_code
141579          , p_side                     => 'NA'
141580          , p_override_seg_flag        => 'Y'
141581    );
141582 
141583    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141584 
141585       xla_ae_lines_pkg.set_segment(
141586           p_to_segment_code         => 'GL_ACCOUNT'
141587         , p_segment_value           => l_segment
141588         , p_from_segment_code       => l_adr_value_segment_code
141589         , p_from_combination_id     => l_adr_value_combination_id
141590         , p_value_type_code         => l_adr_value_type_code
141591         , p_transaction_coa_id      => l_adr_transaction_coa_id
141592         , p_accounting_coa_id       => l_adr_accounting_coa_id
141593         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141594         , p_flex_value_set_id       => l_adr_flex_value_set_id
141595         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141596         , p_adr_type_code           => 'S'
141597         , p_component_type          => l_component_type
141598         , p_component_code          => l_component_code
141599         , p_component_type_code     => l_component_type_code
141600         , p_component_appl_id       => l_component_appl_id
141601         , p_amb_context_code        => l_amb_context_code
141602         , p_entity_code             => 'AP_INVOICES'
141603         , p_event_class_code        => 'DEBIT MEMOS'
141604         , p_side                    => 'NA'
141605         );
141606 
141607   END IF;
141608 
141609    l_segment := AcctDerRule_25(
141610            p_application_id           => p_application_id
141611          , p_ae_header_id             => l_ae_header_id 
141612 , p_source_15 => p_source_15
141613 , p_source_15_meaning => p_source_15_meaning
141614 , p_source_43 => p_source_43
141615          , x_transaction_coa_id       => l_adr_transaction_coa_id
141616          , x_accounting_coa_id        => l_adr_accounting_coa_id
141617          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141618          , x_flex_value_set_id        => l_adr_flex_value_set_id
141619          , x_value_type_code          => l_adr_value_type_code
141620          , x_value_combination_id     => l_adr_value_combination_id
141621          , x_value_segment_code       => l_adr_value_segment_code
141622          , p_side                     => 'NA'
141623          , p_override_seg_flag        => 'Y'
141624    );
141625 
141626    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141627 
141628       xla_ae_lines_pkg.set_segment(
141629           p_to_segment_code         => 'GL_BALANCING'
141630         , p_segment_value           => l_segment
141631         , p_from_segment_code       => l_adr_value_segment_code
141632         , p_from_combination_id     => l_adr_value_combination_id
141633         , p_value_type_code         => l_adr_value_type_code
141634         , p_transaction_coa_id      => l_adr_transaction_coa_id
141635         , p_accounting_coa_id       => l_adr_accounting_coa_id
141636         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141637         , p_flex_value_set_id       => l_adr_flex_value_set_id
141638         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141639         , p_adr_type_code           => 'S'
141640         , p_component_type          => l_component_type
141641         , p_component_code          => l_component_code
141642         , p_component_type_code     => l_component_type_code
141643         , p_component_appl_id       => l_component_appl_id
141644         , p_amb_context_code        => l_amb_context_code
141645         , p_entity_code             => 'AP_INVOICES'
141646         , p_event_class_code        => 'DEBIT MEMOS'
141647         , p_side                    => 'NA'
141648         );
141649 
141650   END IF;
141651 
141652    --
141653    --
141654    END IF;
141655    --
141656    -- Bug 4922099
141657    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
141658           (NVL(l_enc_upg_option, 'N') = 'O')
141659         ) AND
141660         (l_bflow_method_code = 'PRIOR_ENTRY')
141661       )
141662    THEN
141663       IF
141664       --
141665       1 = 2
141666       --
141667       THEN
141668       xla_accounting_err_pkg.build_message
141669                                     (p_appli_s_name            => 'XLA'
141670                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141671                                     ,p_token_1                 => 'LINE_NUMBER'
141672                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
141673                                     ,p_token_2                 => 'LINE_TYPE_NAME'
141674                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
141675                                                                              l_component_type
141676                                                                             ,l_component_code
141677                                                                             ,l_component_type_code
141678                                                                             ,l_component_appl_id
141679                                                                             ,l_amb_context_code
141683                                     ,p_token_3                 => 'OWNER'
141680                                                                             ,l_entity_code
141681                                                                             ,l_event_class_code
141682                                                                            )
141684                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
141685                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
141686                                                                           ,p_lookup_code    => l_component_type_code
141687                                                                          )
141688                                     ,p_token_4                 => 'PRODUCT_NAME'
141689                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
141690                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
141691                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
141692                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
141693                                     ,p_ae_header_id            =>  NULL
141694                                        );
141695 
141696         IF (C_LEVEL_ERROR>= g_log_level) THEN
141697                  trace
141698                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141699                       ,p_level    => C_LEVEL_ERROR
141700                       ,p_module   => l_log_module);
141701         END IF;
141702       END IF;
141703    END IF;
141704    --
141705    --
141706    ------------------------------------------------------------------------------------------------
141707    -- 4219869 Business Flow
141708    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
141709    -- Prior Entry.  Currently, the following code is always generated.
141710    ------------------------------------------------------------------------------------------------
141711    XLA_AE_LINES_PKG.ValidateCurrentLine;
141712 
141713    ------------------------------------------------------------------------------------
141714    -- 4219869 Business Flow
141715    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
141716    ------------------------------------------------------------------------------------
141717    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141718 
141719    ----------------------------------------------------------------------------------
141720    -- 4219869 Business Flow
141721    -- Update journal entry status -- Need to generate this within IF <condition>
141722    ----------------------------------------------------------------------------------
141723    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141724          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
141725          ,p_balance_type_code => l_balance_type_code
141726          );
141727 
141728    -------------------------------------------------------------------------------------------
141729    -- 4262811 - Generate the Accrual Reversal lines
141730    -------------------------------------------------------------------------------------------
141731    BEGIN
141732       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
141733                               (g_array_event(p_event_id).array_value_num('header_index'));
141734       IF l_acc_rev_flag IS NULL THEN
141735          l_acc_rev_flag := 'N';
141736       END IF;
141737    EXCEPTION
141738       WHEN OTHERS THEN
141739          l_acc_rev_flag := 'N';
141740    END;
141741    --
141742    IF (l_acc_rev_flag = 'Y') THEN
141743 
141744        -- 4645092  ------------------------------------------------------------------------------
141745        -- To allow MPA report to determine if it should generate report process
141746        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
141747        ------------------------------------------------------------------------------------------
141748 
141749        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
141750        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
141751    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
141752    -- call ADRs
141753    -- Bug 4922099
141754    --
141755    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141756         (NVL(l_actual_upg_option, 'N') = 'O') OR
141757         (NVL(l_enc_upg_option, 'N') = 'O')
141758       )
141759    THEN
141760    NULL;
141761    --
141762    --
141763    
141764   l_ccid := AcctDerRule_45(
141765            p_application_id           => p_application_id
141766          , p_ae_header_id             => l_ae_header_id 
141767 , p_source_15 => p_source_15
141768 , p_source_15_meaning => p_source_15_meaning
141769 , p_source_30 => p_source_30
141770 , p_source_43 => p_source_43
141771          , x_transaction_coa_id       => l_adr_transaction_coa_id
141772          , x_accounting_coa_id        => l_adr_accounting_coa_id
141773          , x_value_type_code          => l_adr_value_type_code
141774          , p_side                     => 'NA'
141775    );
141776 
141777    xla_ae_lines_pkg.set_ccid(
141778     p_code_combination_id          => l_ccid
141779   , p_value_type_code              => l_adr_value_type_code
141780   , p_transaction_coa_id           => l_adr_transaction_coa_id
141784   , p_component_type               => l_component_type
141781   , p_accounting_coa_id            => l_adr_accounting_coa_id
141782   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141783   , p_adr_type_code                => 'S'
141785   , p_component_code               => l_component_code
141786   , p_component_type_code          => l_component_type_code
141787   , p_component_appl_id            => l_component_appl_id
141788   , p_amb_context_code             => l_amb_context_code
141789   , p_side                         => 'NA'
141790   );
141791 
141792 
141793    l_segment := AcctDerRule_14(
141794            p_application_id           => p_application_id
141795          , p_ae_header_id             => l_ae_header_id 
141796 , p_source_15 => p_source_15
141797 , p_source_15_meaning => p_source_15_meaning
141798 , p_source_30 => p_source_30
141799          , x_transaction_coa_id       => l_adr_transaction_coa_id
141800          , x_accounting_coa_id        => l_adr_accounting_coa_id
141801          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141802          , x_flex_value_set_id        => l_adr_flex_value_set_id
141803          , x_value_type_code          => l_adr_value_type_code
141804          , x_value_combination_id     => l_adr_value_combination_id
141805          , x_value_segment_code       => l_adr_value_segment_code
141806          , p_side                     => 'NA'
141807          , p_override_seg_flag        => 'Y'
141808    );
141809 
141810    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141811 
141812       xla_ae_lines_pkg.set_segment(
141813           p_to_segment_code         => 'GL_ACCOUNT'
141814         , p_segment_value           => l_segment
141815         , p_from_segment_code       => l_adr_value_segment_code
141816         , p_from_combination_id     => l_adr_value_combination_id
141817         , p_value_type_code         => l_adr_value_type_code
141818         , p_transaction_coa_id      => l_adr_transaction_coa_id
141819         , p_accounting_coa_id       => l_adr_accounting_coa_id
141820         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141821         , p_flex_value_set_id       => l_adr_flex_value_set_id
141822         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141823         , p_adr_type_code           => 'S'
141824         , p_component_type          => l_component_type
141825         , p_component_code          => l_component_code
141826         , p_component_type_code     => l_component_type_code
141827         , p_component_appl_id       => l_component_appl_id
141828         , p_amb_context_code        => l_amb_context_code
141829         , p_entity_code             => 'AP_INVOICES'
141830         , p_event_class_code        => 'DEBIT MEMOS'
141831         , p_side                    => 'NA'
141832         );
141833 
141834   END IF;
141835 
141836    l_segment := AcctDerRule_25(
141837            p_application_id           => p_application_id
141838          , p_ae_header_id             => l_ae_header_id 
141839 , p_source_15 => p_source_15
141840 , p_source_15_meaning => p_source_15_meaning
141841 , p_source_43 => p_source_43
141842          , x_transaction_coa_id       => l_adr_transaction_coa_id
141843          , x_accounting_coa_id        => l_adr_accounting_coa_id
141844          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141845          , x_flex_value_set_id        => l_adr_flex_value_set_id
141846          , x_value_type_code          => l_adr_value_type_code
141847          , x_value_combination_id     => l_adr_value_combination_id
141848          , x_value_segment_code       => l_adr_value_segment_code
141849          , p_side                     => 'NA'
141850          , p_override_seg_flag        => 'Y'
141851    );
141852 
141853    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141854 
141855       xla_ae_lines_pkg.set_segment(
141856           p_to_segment_code         => 'GL_BALANCING'
141857         , p_segment_value           => l_segment
141858         , p_from_segment_code       => l_adr_value_segment_code
141859         , p_from_combination_id     => l_adr_value_combination_id
141860         , p_value_type_code         => l_adr_value_type_code
141861         , p_transaction_coa_id      => l_adr_transaction_coa_id
141862         , p_accounting_coa_id       => l_adr_accounting_coa_id
141863         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141864         , p_flex_value_set_id       => l_adr_flex_value_set_id
141865         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141866         , p_adr_type_code           => 'S'
141867         , p_component_type          => l_component_type
141868         , p_component_code          => l_component_code
141869         , p_component_type_code     => l_component_type_code
141870         , p_component_appl_id       => l_component_appl_id
141871         , p_amb_context_code        => l_amb_context_code
141872         , p_entity_code             => 'AP_INVOICES'
141873         , p_event_class_code        => 'DEBIT MEMOS'
141874         , p_side                    => 'NA'
141875         );
141876 
141877   END IF;
141878 
141879    --
141880    --
141881    END IF;
141882 
141883        --
141884        -- Update the line information that should be overwritten
141885        --
141886        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
141887                                          p_header_num   => 1);
141888        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
141889 
141893           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
141890        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
141891 
141892        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
141894        END IF;
141895 
141896       --
141897       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
141898       --
141899       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
141900           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
141901       ELSE
141902           ---------------------------------------------------------------------------------------------------
141903           -- 4262811a Switch Sign
141904           ---------------------------------------------------------------------------------------------------
141905           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
141906           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141907                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141908           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141909                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141910           -- 5132302
141911           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
141912                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141913 
141914       END IF;
141915 
141916       -- 4955764
141917       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141918       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
141919 
141920 
141921       XLA_AE_LINES_PKG.ValidateCurrentLine;
141922       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141923 
141924       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141925                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
141926                ,p_balance_type_code => l_balance_type_code);
141927 
141928    END IF;
141929 
141930    -----------------------------------------------------------------------------------------
141931    -- 4262811 Multiperiod Accounting
141932    -----------------------------------------------------------------------------------------
141933      -- No MPA option is assigned.
141934 
141935 
141936 END IF;
141937 END IF;
141938 --
141939 
141940 --
141941 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141942    trace
141943       (p_msg      => 'END of AcctLineType_223'
141944       ,p_level    => C_LEVEL_PROCEDURE
141945       ,p_module   => l_log_module);
141946 END IF;
141947 --
141948 EXCEPTION
141949   WHEN xla_exceptions_pkg.application_exception THEN
141950       RAISE;
141951   WHEN OTHERS THEN
141952        xla_exceptions_pkg.raise_message
141953            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_223');
141954 END AcctLineType_223;
141955 --
141956 
141957 ---------------------------------------
141958 --
141959 -- PRIVATE FUNCTION
141960 --         AcctLineType_224
141961 --
141962 ---------------------------------------
141963 PROCEDURE AcctLineType_224 (
141964   p_application_id        IN NUMBER
141965  ,p_event_id              IN NUMBER
141966  ,p_calculate_acctd_flag  IN VARCHAR2
141967  ,p_calculate_g_l_flag    IN VARCHAR2
141968  ,p_actual_flag           IN OUT VARCHAR2
141969  ,p_balance_type_code     OUT VARCHAR2
141970  ,p_gain_or_loss_ref      OUT VARCHAR2
141971  
141972 --Invoice Distribution Description
141973  , p_source_1            IN VARCHAR2
141974 --Automatic Offsets Value
141975  , p_source_15            IN VARCHAR2
141976  , p_source_15_meaning    IN VARCHAR2
141977 --Invoice Distribution Ledger Amount
141978  , p_source_21            IN NUMBER
141979 --Invoice Distribution Account
141980  , p_source_30            IN NUMBER
141981 --Invoice Distribution Type
141982  , p_source_33            IN VARCHAR2
141983  , p_source_33_meaning    IN VARCHAR2
141984 --Withholding Related Distribution Account
141985  , p_source_43            IN NUMBER
141986 --Accounting Reversal Indicator
141987  , p_source_52            IN VARCHAR2
141988 --Distribution Link Type
141989  , p_source_54            IN VARCHAR2
141990 --Allocation to Main Distribution Identifier
141991  , p_source_56            IN NUMBER
141992 --Invoice Identifier
141993  , p_source_57            IN NUMBER
141994 --Invoice Distribution Identifier
141995  , p_source_63            IN NUMBER
141996 --Payables Encumbrance Upgrade Credit Account
141997  , p_source_64            IN NUMBER
141998 --Payables Encumbrance Upgrade Credit Amount
141999  , p_source_65            IN NUMBER
142000 --Invoice Currency Code
142001  , p_source_66            IN VARCHAR2
142002 --Payables Encumbrance Upgrade Credit Base Amount
142003  , p_source_67            IN NUMBER
142004 --Payables Encumbrance Upgrade Debit Account
142005  , p_source_68            IN NUMBER
142006 --Payables Encumbrance Upgrade Debit Amount
142007  , p_source_69            IN NUMBER
142008 --Payables Encumbrance Upgrade Debit Base Amount
142009  , p_source_70            IN NUMBER
142010 --Payables Encumbrance Upgrade Option
142014 --Deferred Accounting End Date
142011  , p_source_71            IN VARCHAR2
142012 --Invoice Distribution Amount
142013  , p_source_72            IN NUMBER
142015  , p_source_76            IN DATE
142016 --Deferred Accounting Option
142017  , p_source_77            IN VARCHAR2
142018 --Deferred Accounting Start Date
142019  , p_source_78            IN DATE
142020 --Override Accounted Amount Indicator
142021  , p_source_79            IN VARCHAR2
142022  , p_source_79_meaning    IN VARCHAR2
142023 --Invoice Supplier Identifier
142024  , p_source_80            IN NUMBER
142025 --Invoice Supplier Site Identifier
142026  , p_source_81            IN NUMBER
142027 --Third Party Type
142028  , p_source_82            IN VARCHAR2
142029 --Parent Reversal Identifier
142030  , p_source_83            IN NUMBER
142031 --Invoice Distribution Statistical Amount
142032  , p_source_84            IN NUMBER
142033 --Invoice Distribution Tax Line Identifier
142034  , p_source_85            IN NUMBER
142035 --Invoice Distribution Tax Distribution Identifier from Tax
142036  , p_source_86            IN NUMBER
142037 --Invoice Distribution Summary Tax Line Identifier
142038  , p_source_87            IN NUMBER
142039 --Payables Upgrade Credit Encumbrance Type Identifier
142040  , p_source_88            IN NUMBER
142041 --Payables Upgrade Debit Encumbrance Type Identifier
142042  , p_source_89            IN NUMBER
142043 --Business Flow Accounts Payable Application Identifier
142044  , p_source_90            IN NUMBER
142045 --Business Flow Invoice Distribution Type
142046  , p_source_91            IN VARCHAR2
142047 --Business Flow Invoice Entity Code
142048  , p_source_92            IN VARCHAR2
142049 --Business Flow Invoice Distribution Identifier
142050  , p_source_93            IN NUMBER
142051 --Business Flow Invoice Identifier
142052  , p_source_94            IN NUMBER
142053 --Invoice Exchange Date
142054  , p_source_136            IN DATE
142055 --Invoice Exchange Rate
142056  , p_source_137            IN NUMBER
142057 --Invoice Exchange Rate Type
142058  , p_source_138            IN VARCHAR2
142059 )
142060 IS
142061 
142062 l_component_type              VARCHAR2(80);
142063 l_component_code              VARCHAR2(30);
142064 l_component_type_code         VARCHAR2(1);
142065 l_component_appl_id           INTEGER;
142066 l_amb_context_code            VARCHAR2(30);
142067 l_entity_code                 VARCHAR2(30);
142068 l_event_class_code            VARCHAR2(30);
142069 l_ae_header_id                NUMBER;
142070 l_event_type_code             VARCHAR2(30);
142071 l_line_definition_code        VARCHAR2(30);
142072 l_line_definition_owner_code  VARCHAR2(1);
142073 --
142074 -- adr variables
142075 l_segment                     VARCHAR2(30);
142076 l_ccid                        NUMBER;
142077 l_adr_transaction_coa_id      NUMBER;
142078 l_adr_accounting_coa_id       NUMBER;
142079 l_adr_flexfield_segment_code  VARCHAR2(30);
142080 l_adr_flex_value_set_id       NUMBER;
142081 l_adr_value_type_code         VARCHAR2(30);
142082 l_adr_value_combination_id    NUMBER;
142083 l_adr_value_segment_code      VARCHAR2(30);
142084 
142085 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142086 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142087 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142088 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142089 
142090 -- 4262811 Variables ------------------------------------------------------------------------------------------
142091 l_entered_amt_idx             NUMBER;
142092 l_accted_amt_idx              NUMBER;
142093 l_acc_rev_flag                VARCHAR2(1);
142094 l_accrual_line_num            NUMBER;
142095 l_tmp_amt                     NUMBER;
142096 l_acc_rev_natural_side_code   VARCHAR2(1);
142097 
142098 l_num_entries                 NUMBER;
142099 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142100 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142101 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142102 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142103 l_recog_line_1                NUMBER;
142104 l_recog_line_2                NUMBER;
142105 
142106 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142107 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142108 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
142109 
142110 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
142111 
142112 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
142113 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
142114 
142115 ---------------------------------------------------------------------------------------------------------------
142116 
142117 
142118 --
142119 -- bulk performance
142120 --
142121 l_balance_type_code           VARCHAR2(1);
142122 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
142123 l_log_module                  VARCHAR2(240);
142124 
142125 --
142126 -- Upgrade strategy
142127 --
142128 l_actual_upg_option           VARCHAR2(1);
142129 l_enc_upg_option           VARCHAR2(1);
142130 
142131 --
142132 BEGIN
142133 --
142134 IF g_log_enabled THEN
142135       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_224';
142136 END IF;
142137 --
142141          (p_msg      => 'BEGIN of AcctLineType_224'
142138 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142139 
142140       trace
142142          ,p_level    => C_LEVEL_PROCEDURE
142143          ,p_module   => l_log_module);
142144 
142145 END IF;
142146 --
142147 l_component_type             := 'AMB_JLT';
142148 l_component_code             := 'AP_WITHHOLD_TAX_INV';
142149 l_component_type_code        := 'S';
142150 l_component_appl_id          :=  200;
142151 l_amb_context_code           := 'DEFAULT';
142152 l_entity_code                := 'AP_INVOICES';
142153 l_event_class_code           := 'INVOICES';
142154 l_event_type_code            := 'INVOICES_ALL';
142155 l_line_definition_owner_code := 'S';
142156 l_line_definition_code       := 'JA_CN_ACCRUAL_INVOICES_ALL';
142157 --
142158 l_balance_type_code          := 'A';
142159 l_segment                     := NULL;
142160 l_ccid                        := NULL;
142161 l_adr_transaction_coa_id      := NULL;
142162 l_adr_accounting_coa_id       := NULL;
142163 l_adr_flexfield_segment_code  := NULL;
142164 l_adr_flex_value_set_id       := NULL;
142165 l_adr_value_type_code         := NULL;
142166 l_adr_value_combination_id    := NULL;
142167 l_adr_value_segment_code      := NULL;
142168 
142169 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
142170 l_bflow_class_code           := '';    -- 4219869 Business Flow
142171 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
142172 l_budgetary_control_flag     := 'N';
142173 
142174 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
142175 l_bflow_applied_to_amt       := NULL; -- 5132302
142176 l_entered_amt_idx            := NULL;          -- 4262811
142177 l_accted_amt_idx             := NULL;          -- 4262811
142178 l_acc_rev_flag               := NULL;          -- 4262811
142179 l_accrual_line_num           := NULL;          -- 4262811
142180 l_tmp_amt                    := NULL;          -- 4262811
142181 --
142182  
142183 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
142184     l_balance_type_code <> 'B' THEN
142185 IF NVL(p_source_33,'
142186 ') =  'AWT'
142187  THEN 
142188 
142189    --
142190    XLA_AE_LINES_PKG.SetNewLine;
142191 
142192    p_balance_type_code          := l_balance_type_code;
142193    -- set the flag so later we will know whether the gain loss line needs to be created
142194    
142195    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
142196      p_actual_flag :='A';
142197    END IF;
142198 
142199    --
142200    -- bulk performance
142201    --
142202    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
142203                                       p_header_num   => 0); -- 4262811
142204    --
142205    -- set accounting line options
142206    --
142207    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
142208            p_natural_side_code          => 'D'
142209          , p_gain_or_loss_flag          => 'N'
142210          , p_gl_transfer_mode_code      => 'S'
142211          , p_acct_entry_type_code       => 'A'
142212          , p_switch_side_flag           => 'Y'
142213          , p_merge_duplicate_code       => 'A'
142214          );
142215    --
142216    l_acc_rev_natural_side_code := 'C';  -- 4262811
142217    -- 
142218    --
142219    -- set accounting line type info
142220    --
142221    xla_ae_lines_pkg.SetAcctLineType
142222       (p_component_type             => l_component_type
142223       ,p_event_type_code            => l_event_type_code
142224       ,p_line_definition_owner_code => l_line_definition_owner_code
142225       ,p_line_definition_code       => l_line_definition_code
142226       ,p_accounting_line_code       => l_component_code
142227       ,p_accounting_line_type_code  => l_component_type_code
142228       ,p_accounting_line_appl_id    => l_component_appl_id
142229       ,p_amb_context_code           => l_amb_context_code
142230       ,p_entity_code                => l_entity_code
142231       ,p_event_class_code           => l_event_class_code);
142232    --
142233    -- set accounting class
142234    --
142235    xla_ae_lines_pkg.SetAcctClass(
142236            p_accounting_class_code  => 'AWT'
142237          , p_ae_header_id           => l_ae_header_id
142238          );
142239 
142240    --
142241    -- set rounding class
142242    --
142243    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
142244                       'AWT';
142245 
142246    --
142247    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
142248    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
142249    --
142250    -- bulk performance
142251    --
142252    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
142253 
142254    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
142255       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
142256 
142257    -- 4955764
142258    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142259       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
142260 
142261    -- 4458381 Public Sector Enh
142262    
142263    --
142264    -- set accounting attributes for the line type
142265    --
142266    l_entered_amt_idx := 24;
142270    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
142267    l_accted_amt_idx  := 29;
142268    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
142269    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
142271    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
142272    l_rec_acct_attrs.array_num_value(2)  := 
142273 xla_ae_sources_pkg.GetSystemSourceNum(
142274    p_source_code           => 'XLA_EVENT_APPL_ID'
142275  , p_source_type_code      => 'Y'
142276  , p_source_application_id =>  602
142277 );
142278    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
142279    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
142280    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
142281    l_rec_acct_attrs.array_char_value(4)  := 
142282 xla_ae_sources_pkg.GetSystemSourceChar(
142283    p_source_code           => 'XLA_ENTITY_CODE'
142284  , p_source_type_code      => 'Y'
142285  , p_source_application_id =>  602
142286 );
142287    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
142288    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
142289    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
142290    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
142291    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
142292    l_rec_acct_attrs.array_num_value(7)  := p_source_72;
142293    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
142294    l_rec_acct_attrs.array_num_value(8)  := p_source_90;
142295    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
142296    l_rec_acct_attrs.array_char_value(9)  := p_source_91;
142297    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
142298    l_rec_acct_attrs.array_char_value(10)  := p_source_92;
142299    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
142300    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_93);
142301    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
142302    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_94);
142303    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
142304    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_63);
142305    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
142306    l_rec_acct_attrs.array_char_value(14)  := p_source_54;
142307    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
142308    l_rec_acct_attrs.array_num_value(15)  := p_source_64;
142309    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
142310    l_rec_acct_attrs.array_num_value(16)  := p_source_65;
142311    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
142312    l_rec_acct_attrs.array_char_value(17)  := p_source_66;
142313    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
142314    l_rec_acct_attrs.array_num_value(18)  := p_source_67;
142315    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
142316    l_rec_acct_attrs.array_num_value(19)  := p_source_68;
142317    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
142318    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
142319    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
142320    l_rec_acct_attrs.array_char_value(21)  := p_source_66;
142321    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
142322    l_rec_acct_attrs.array_num_value(22)  := p_source_70;
142323    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
142324    l_rec_acct_attrs.array_char_value(23)  := p_source_71;
142325    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
142326    l_rec_acct_attrs.array_num_value(24)  := p_source_72;
142327    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
142328    l_rec_acct_attrs.array_char_value(25)  := p_source_66;
142329    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
142330    l_rec_acct_attrs.array_date_value(26)  := p_source_136;
142331    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
142332    l_rec_acct_attrs.array_num_value(27)  := p_source_137;
142333    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
142334    l_rec_acct_attrs.array_char_value(28)  := p_source_138;
142335    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
142336    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
142337    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
142338    l_rec_acct_attrs.array_date_value(30)  := p_source_76;
142339    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
142340    l_rec_acct_attrs.array_char_value(31)  := p_source_77;
142341    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
142342    l_rec_acct_attrs.array_date_value(32)  := p_source_78;
142343    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
142344    l_rec_acct_attrs.array_char_value(33)  := p_source_79;
142345    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
142346    l_rec_acct_attrs.array_num_value(34)  := p_source_80;
142347    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
142348    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
142349    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
142350    l_rec_acct_attrs.array_char_value(36)  := p_source_82;
142351    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
142352    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_83);
142353    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
142357    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
142354    l_rec_acct_attrs.array_char_value(38)  := p_source_54;
142355    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
142356    l_rec_acct_attrs.array_num_value(39)  := p_source_84;
142358    l_rec_acct_attrs.array_num_value(40)  := p_source_85;
142359    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
142360    l_rec_acct_attrs.array_num_value(41)  := p_source_86;
142361    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
142362    l_rec_acct_attrs.array_num_value(42)  := p_source_87;
142363    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
142364    l_rec_acct_attrs.array_num_value(43)  := p_source_88;
142365    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
142366    l_rec_acct_attrs.array_num_value(44)  := p_source_89;
142367 
142368    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
142369    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
142370 
142371    ---------------------------------------------------------------------------------------------------------------
142372    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
142373    ---------------------------------------------------------------------------------------------------------------
142374    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
142375 
142376    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142377    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142378 
142379    IF xla_accounting_cache_pkg.GetValueChar
142380          (p_source_code         => 'LEDGER_CATEGORY_CODE'
142381          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
142382    AND l_bflow_method_code = 'PRIOR_ENTRY'
142383 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
142384    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
142385          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
142386        )
142387    THEN
142388          xla_ae_lines_pkg.BflowUpgEntry
142389            (p_business_method_code    => l_bflow_method_code
142390            ,p_business_class_code     => l_bflow_class_code
142391            ,p_balance_type            => l_balance_type_code);
142392    ELSE
142393       NULL;
142394 -- No business flow processing for business flow method of NONE.
142395    END IF;
142396 
142397    --
142398    -- call analytical criteria
142399    --
142400    
142401    --
142402    -- call description
142403    --
142404    
142405 xla_ae_lines_pkg.SetLineDescription(
142406    p_ae_header_id => l_ae_header_id
142407   ,p_description  => Description_1 (
142408      p_application_id         => p_application_id
142409    , p_ae_header_id           => l_ae_header_id 
142410 , p_source_1 => p_source_1
142411    )
142412 );
142413 
142414 
142415    --
142416    -- call ADRs
142417    -- Bug 4922099
142418    --
142419    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142420         (NVL(l_actual_upg_option, 'N') = 'O') OR
142421         (NVL(l_enc_upg_option, 'N') = 'O')
142422       )
142423    THEN
142424    NULL;
142425    --
142426    --
142427    
142428   l_ccid := AcctDerRule_45(
142429            p_application_id           => p_application_id
142430          , p_ae_header_id             => l_ae_header_id 
142431 , p_source_15 => p_source_15
142432 , p_source_15_meaning => p_source_15_meaning
142433 , p_source_30 => p_source_30
142434 , p_source_43 => p_source_43
142435          , x_transaction_coa_id       => l_adr_transaction_coa_id
142436          , x_accounting_coa_id        => l_adr_accounting_coa_id
142437          , x_value_type_code          => l_adr_value_type_code
142438          , p_side                     => 'NA'
142439    );
142440 
142441    xla_ae_lines_pkg.set_ccid(
142442     p_code_combination_id          => l_ccid
142443   , p_value_type_code              => l_adr_value_type_code
142444   , p_transaction_coa_id           => l_adr_transaction_coa_id
142445   , p_accounting_coa_id            => l_adr_accounting_coa_id
142446   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142447   , p_adr_type_code                => 'S'
142448   , p_component_type               => l_component_type
142449   , p_component_code               => l_component_code
142450   , p_component_type_code          => l_component_type_code
142451   , p_component_appl_id            => l_component_appl_id
142452   , p_amb_context_code             => l_amb_context_code
142453   , p_side                         => 'NA'
142454   );
142455 
142456 
142457    l_segment := AcctDerRule_14(
142458            p_application_id           => p_application_id
142459          , p_ae_header_id             => l_ae_header_id 
142460 , p_source_15 => p_source_15
142461 , p_source_15_meaning => p_source_15_meaning
142462 , p_source_30 => p_source_30
142463          , x_transaction_coa_id       => l_adr_transaction_coa_id
142464          , x_accounting_coa_id        => l_adr_accounting_coa_id
142465          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142466          , x_flex_value_set_id        => l_adr_flex_value_set_id
142467          , x_value_type_code          => l_adr_value_type_code
142468          , x_value_combination_id     => l_adr_value_combination_id
142472    );
142469          , x_value_segment_code       => l_adr_value_segment_code
142470          , p_side                     => 'NA'
142471          , p_override_seg_flag        => 'Y'
142473 
142474    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142475 
142476       xla_ae_lines_pkg.set_segment(
142477           p_to_segment_code         => 'GL_ACCOUNT'
142478         , p_segment_value           => l_segment
142479         , p_from_segment_code       => l_adr_value_segment_code
142480         , p_from_combination_id     => l_adr_value_combination_id
142481         , p_value_type_code         => l_adr_value_type_code
142482         , p_transaction_coa_id      => l_adr_transaction_coa_id
142483         , p_accounting_coa_id       => l_adr_accounting_coa_id
142484         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142485         , p_flex_value_set_id       => l_adr_flex_value_set_id
142486         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142487         , p_adr_type_code           => 'S'
142488         , p_component_type          => l_component_type
142489         , p_component_code          => l_component_code
142490         , p_component_type_code     => l_component_type_code
142491         , p_component_appl_id       => l_component_appl_id
142492         , p_amb_context_code        => l_amb_context_code
142493         , p_entity_code             => 'AP_INVOICES'
142494         , p_event_class_code        => 'INVOICES'
142495         , p_side                    => 'NA'
142496         );
142497 
142498   END IF;
142499 
142500    l_segment := AcctDerRule_25(
142501            p_application_id           => p_application_id
142502          , p_ae_header_id             => l_ae_header_id 
142503 , p_source_15 => p_source_15
142504 , p_source_15_meaning => p_source_15_meaning
142505 , p_source_43 => p_source_43
142506          , x_transaction_coa_id       => l_adr_transaction_coa_id
142507          , x_accounting_coa_id        => l_adr_accounting_coa_id
142508          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142509          , x_flex_value_set_id        => l_adr_flex_value_set_id
142510          , x_value_type_code          => l_adr_value_type_code
142511          , x_value_combination_id     => l_adr_value_combination_id
142512          , x_value_segment_code       => l_adr_value_segment_code
142513          , p_side                     => 'NA'
142514          , p_override_seg_flag        => 'Y'
142515    );
142516 
142517    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142518 
142519       xla_ae_lines_pkg.set_segment(
142520           p_to_segment_code         => 'GL_BALANCING'
142521         , p_segment_value           => l_segment
142522         , p_from_segment_code       => l_adr_value_segment_code
142523         , p_from_combination_id     => l_adr_value_combination_id
142524         , p_value_type_code         => l_adr_value_type_code
142525         , p_transaction_coa_id      => l_adr_transaction_coa_id
142526         , p_accounting_coa_id       => l_adr_accounting_coa_id
142527         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142528         , p_flex_value_set_id       => l_adr_flex_value_set_id
142529         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142530         , p_adr_type_code           => 'S'
142531         , p_component_type          => l_component_type
142532         , p_component_code          => l_component_code
142533         , p_component_type_code     => l_component_type_code
142534         , p_component_appl_id       => l_component_appl_id
142535         , p_amb_context_code        => l_amb_context_code
142536         , p_entity_code             => 'AP_INVOICES'
142537         , p_event_class_code        => 'INVOICES'
142538         , p_side                    => 'NA'
142539         );
142540 
142541   END IF;
142542 
142543    --
142544    --
142545    END IF;
142546    --
142547    -- Bug 4922099
142548    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142549           (NVL(l_enc_upg_option, 'N') = 'O')
142550         ) AND
142551         (l_bflow_method_code = 'PRIOR_ENTRY')
142552       )
142553    THEN
142554       IF
142555       --
142556       1 = 2
142557       --
142558       THEN
142559       xla_accounting_err_pkg.build_message
142560                                     (p_appli_s_name            => 'XLA'
142561                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142562                                     ,p_token_1                 => 'LINE_NUMBER'
142563                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142564                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142565                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142566                                                                              l_component_type
142567                                                                             ,l_component_code
142568                                                                             ,l_component_type_code
142569                                                                             ,l_component_appl_id
142570                                                                             ,l_amb_context_code
142571                                                                             ,l_entity_code
142572                                                                             ,l_event_class_code
142573                                                                            )
142577                                                                           ,p_lookup_code    => l_component_type_code
142574                                     ,p_token_3                 => 'OWNER'
142575                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142576                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142578                                                                          )
142579                                     ,p_token_4                 => 'PRODUCT_NAME'
142580                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142581                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142582                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142583                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142584                                     ,p_ae_header_id            =>  NULL
142585                                        );
142586 
142587         IF (C_LEVEL_ERROR>= g_log_level) THEN
142588                  trace
142589                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142590                       ,p_level    => C_LEVEL_ERROR
142591                       ,p_module   => l_log_module);
142592         END IF;
142593       END IF;
142594    END IF;
142595    --
142596    --
142597    ------------------------------------------------------------------------------------------------
142598    -- 4219869 Business Flow
142599    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142600    -- Prior Entry.  Currently, the following code is always generated.
142601    ------------------------------------------------------------------------------------------------
142602    XLA_AE_LINES_PKG.ValidateCurrentLine;
142603 
142604    ------------------------------------------------------------------------------------
142605    -- 4219869 Business Flow
142606    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142607    ------------------------------------------------------------------------------------
142608    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142609 
142610    ----------------------------------------------------------------------------------
142611    -- 4219869 Business Flow
142612    -- Update journal entry status -- Need to generate this within IF <condition>
142613    ----------------------------------------------------------------------------------
142614    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142615          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142616          ,p_balance_type_code => l_balance_type_code
142617          );
142618 
142619    -------------------------------------------------------------------------------------------
142620    -- 4262811 - Generate the Accrual Reversal lines
142621    -------------------------------------------------------------------------------------------
142622    BEGIN
142623       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142624                               (g_array_event(p_event_id).array_value_num('header_index'));
142625       IF l_acc_rev_flag IS NULL THEN
142626          l_acc_rev_flag := 'N';
142627       END IF;
142628    EXCEPTION
142629       WHEN OTHERS THEN
142630          l_acc_rev_flag := 'N';
142631    END;
142632    --
142633    IF (l_acc_rev_flag = 'Y') THEN
142634 
142635        -- 4645092  ------------------------------------------------------------------------------
142636        -- To allow MPA report to determine if it should generate report process
142637        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
142638        ------------------------------------------------------------------------------------------
142639 
142640        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
142641        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
142642    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
142643    -- call ADRs
142644    -- Bug 4922099
142645    --
142646    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142647         (NVL(l_actual_upg_option, 'N') = 'O') OR
142648         (NVL(l_enc_upg_option, 'N') = 'O')
142649       )
142650    THEN
142651    NULL;
142652    --
142653    --
142654    
142655   l_ccid := AcctDerRule_45(
142656            p_application_id           => p_application_id
142657          , p_ae_header_id             => l_ae_header_id 
142658 , p_source_15 => p_source_15
142659 , p_source_15_meaning => p_source_15_meaning
142660 , p_source_30 => p_source_30
142661 , p_source_43 => p_source_43
142662          , x_transaction_coa_id       => l_adr_transaction_coa_id
142663          , x_accounting_coa_id        => l_adr_accounting_coa_id
142664          , x_value_type_code          => l_adr_value_type_code
142665          , p_side                     => 'NA'
142666    );
142667 
142668    xla_ae_lines_pkg.set_ccid(
142669     p_code_combination_id          => l_ccid
142670   , p_value_type_code              => l_adr_value_type_code
142671   , p_transaction_coa_id           => l_adr_transaction_coa_id
142672   , p_accounting_coa_id            => l_adr_accounting_coa_id
142673   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142674   , p_adr_type_code                => 'S'
142675   , p_component_type               => l_component_type
142676   , p_component_code               => l_component_code
142680   , p_side                         => 'NA'
142677   , p_component_type_code          => l_component_type_code
142678   , p_component_appl_id            => l_component_appl_id
142679   , p_amb_context_code             => l_amb_context_code
142681   );
142682 
142683 
142684    l_segment := AcctDerRule_14(
142685            p_application_id           => p_application_id
142686          , p_ae_header_id             => l_ae_header_id 
142687 , p_source_15 => p_source_15
142688 , p_source_15_meaning => p_source_15_meaning
142689 , p_source_30 => p_source_30
142690          , x_transaction_coa_id       => l_adr_transaction_coa_id
142691          , x_accounting_coa_id        => l_adr_accounting_coa_id
142692          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142693          , x_flex_value_set_id        => l_adr_flex_value_set_id
142694          , x_value_type_code          => l_adr_value_type_code
142695          , x_value_combination_id     => l_adr_value_combination_id
142696          , x_value_segment_code       => l_adr_value_segment_code
142697          , p_side                     => 'NA'
142698          , p_override_seg_flag        => 'Y'
142699    );
142700 
142701    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142702 
142703       xla_ae_lines_pkg.set_segment(
142704           p_to_segment_code         => 'GL_ACCOUNT'
142705         , p_segment_value           => l_segment
142706         , p_from_segment_code       => l_adr_value_segment_code
142707         , p_from_combination_id     => l_adr_value_combination_id
142708         , p_value_type_code         => l_adr_value_type_code
142709         , p_transaction_coa_id      => l_adr_transaction_coa_id
142710         , p_accounting_coa_id       => l_adr_accounting_coa_id
142711         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142712         , p_flex_value_set_id       => l_adr_flex_value_set_id
142713         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142714         , p_adr_type_code           => 'S'
142715         , p_component_type          => l_component_type
142716         , p_component_code          => l_component_code
142717         , p_component_type_code     => l_component_type_code
142718         , p_component_appl_id       => l_component_appl_id
142719         , p_amb_context_code        => l_amb_context_code
142720         , p_entity_code             => 'AP_INVOICES'
142721         , p_event_class_code        => 'INVOICES'
142722         , p_side                    => 'NA'
142723         );
142724 
142725   END IF;
142726 
142727    l_segment := AcctDerRule_25(
142728            p_application_id           => p_application_id
142729          , p_ae_header_id             => l_ae_header_id 
142730 , p_source_15 => p_source_15
142731 , p_source_15_meaning => p_source_15_meaning
142732 , p_source_43 => p_source_43
142733          , x_transaction_coa_id       => l_adr_transaction_coa_id
142734          , x_accounting_coa_id        => l_adr_accounting_coa_id
142735          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142736          , x_flex_value_set_id        => l_adr_flex_value_set_id
142737          , x_value_type_code          => l_adr_value_type_code
142738          , x_value_combination_id     => l_adr_value_combination_id
142739          , x_value_segment_code       => l_adr_value_segment_code
142740          , p_side                     => 'NA'
142741          , p_override_seg_flag        => 'Y'
142742    );
142743 
142744    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142745 
142746       xla_ae_lines_pkg.set_segment(
142747           p_to_segment_code         => 'GL_BALANCING'
142748         , p_segment_value           => l_segment
142749         , p_from_segment_code       => l_adr_value_segment_code
142750         , p_from_combination_id     => l_adr_value_combination_id
142751         , p_value_type_code         => l_adr_value_type_code
142752         , p_transaction_coa_id      => l_adr_transaction_coa_id
142753         , p_accounting_coa_id       => l_adr_accounting_coa_id
142754         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142755         , p_flex_value_set_id       => l_adr_flex_value_set_id
142756         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142757         , p_adr_type_code           => 'S'
142758         , p_component_type          => l_component_type
142759         , p_component_code          => l_component_code
142760         , p_component_type_code     => l_component_type_code
142761         , p_component_appl_id       => l_component_appl_id
142762         , p_amb_context_code        => l_amb_context_code
142763         , p_entity_code             => 'AP_INVOICES'
142764         , p_event_class_code        => 'INVOICES'
142765         , p_side                    => 'NA'
142766         );
142767 
142768   END IF;
142769 
142770    --
142771    --
142772    END IF;
142773 
142774        --
142775        -- Update the line information that should be overwritten
142776        --
142777        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142778                                          p_header_num   => 1);
142779        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142780 
142781        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142782 
142783        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142784           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142785        END IF;
142789       --
142786 
142787       --
142788       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142790       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142791           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142792       ELSE
142793           ---------------------------------------------------------------------------------------------------
142794           -- 4262811a Switch Sign
142795           ---------------------------------------------------------------------------------------------------
142796           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142797           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142798                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142799           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142800                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142801           -- 5132302
142802           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142803                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142804 
142805       END IF;
142806 
142807       -- 4955764
142808       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142809       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142810 
142811 
142812       XLA_AE_LINES_PKG.ValidateCurrentLine;
142813       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142814 
142815       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142816                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142817                ,p_balance_type_code => l_balance_type_code);
142818 
142819    END IF;
142820 
142821    -----------------------------------------------------------------------------------------
142822    -- 4262811 Multiperiod Accounting
142823    -----------------------------------------------------------------------------------------
142824      -- No MPA option is assigned.
142825 
142826 
142827 END IF;
142828 END IF;
142829 --
142830 
142831 --
142832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142833    trace
142834       (p_msg      => 'END of AcctLineType_224'
142835       ,p_level    => C_LEVEL_PROCEDURE
142836       ,p_module   => l_log_module);
142837 END IF;
142838 --
142839 EXCEPTION
142840   WHEN xla_exceptions_pkg.application_exception THEN
142841       RAISE;
142842   WHEN OTHERS THEN
142843        xla_exceptions_pkg.raise_message
142844            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_224');
142845 END AcctLineType_224;
142846 --
142847 
142848 ---------------------------------------
142849 --
142850 -- PRIVATE FUNCTION
142851 --         AcctLineType_225
142852 --
142853 ---------------------------------------
142854 PROCEDURE AcctLineType_225 (
142855   p_application_id        IN NUMBER
142856  ,p_event_id              IN NUMBER
142857  ,p_calculate_acctd_flag  IN VARCHAR2
142858  ,p_calculate_g_l_flag    IN VARCHAR2
142859  ,p_actual_flag           IN OUT VARCHAR2
142860  ,p_balance_type_code     OUT VARCHAR2
142861  ,p_gain_or_loss_ref      OUT VARCHAR2
142862  
142863 --Invoice Distribution Description
142864  , p_source_1            IN VARCHAR2
142865 --Automatic Offsets Value
142866  , p_source_15            IN VARCHAR2
142867  , p_source_15_meaning    IN VARCHAR2
142868 --Invoice Distribution Ledger Amount
142869  , p_source_21            IN NUMBER
142870 --Invoice Distribution Account
142871  , p_source_30            IN NUMBER
142872 --Invoice Distribution Type
142873  , p_source_33            IN VARCHAR2
142874  , p_source_33_meaning    IN VARCHAR2
142875 --Withholding Related Distribution Account
142876  , p_source_43            IN NUMBER
142877 --Accounting Reversal Indicator
142878  , p_source_52            IN VARCHAR2
142879 --Distribution Link Type
142880  , p_source_54            IN VARCHAR2
142881 --Allocation to Main Distribution Identifier
142882  , p_source_56            IN NUMBER
142883 --Invoice Identifier
142884  , p_source_57            IN NUMBER
142885 --Invoice Distribution Identifier
142886  , p_source_63            IN NUMBER
142887 --Payables Encumbrance Upgrade Credit Account
142888  , p_source_64            IN NUMBER
142889 --Payables Encumbrance Upgrade Credit Amount
142890  , p_source_65            IN NUMBER
142891 --Invoice Currency Code
142892  , p_source_66            IN VARCHAR2
142893 --Payables Encumbrance Upgrade Credit Base Amount
142894  , p_source_67            IN NUMBER
142895 --Payables Encumbrance Upgrade Debit Account
142896  , p_source_68            IN NUMBER
142897 --Payables Encumbrance Upgrade Debit Amount
142898  , p_source_69            IN NUMBER
142899 --Payables Encumbrance Upgrade Debit Base Amount
142900  , p_source_70            IN NUMBER
142901 --Payables Encumbrance Upgrade Option
142902  , p_source_71            IN VARCHAR2
142903 --Invoice Distribution Amount
142904  , p_source_72            IN NUMBER
142905 --Deferred Accounting End Date
142906  , p_source_76            IN DATE
142907 --Deferred Accounting Option
142908  , p_source_77            IN VARCHAR2
142912  , p_source_79            IN VARCHAR2
142909 --Deferred Accounting Start Date
142910  , p_source_78            IN DATE
142911 --Override Accounted Amount Indicator
142913  , p_source_79_meaning    IN VARCHAR2
142914 --Invoice Supplier Identifier
142915  , p_source_80            IN NUMBER
142916 --Invoice Supplier Site Identifier
142917  , p_source_81            IN NUMBER
142918 --Third Party Type
142919  , p_source_82            IN VARCHAR2
142920 --Parent Reversal Identifier
142921  , p_source_83            IN NUMBER
142922 --Invoice Distribution Statistical Amount
142923  , p_source_84            IN NUMBER
142924 --Invoice Distribution Tax Line Identifier
142925  , p_source_85            IN NUMBER
142926 --Invoice Distribution Tax Distribution Identifier from Tax
142927  , p_source_86            IN NUMBER
142928 --Invoice Distribution Summary Tax Line Identifier
142929  , p_source_87            IN NUMBER
142930 --Payables Upgrade Credit Encumbrance Type Identifier
142931  , p_source_88            IN NUMBER
142932 --Payables Upgrade Debit Encumbrance Type Identifier
142933  , p_source_89            IN NUMBER
142934 --Business Flow Accounts Payable Application Identifier
142935  , p_source_90            IN NUMBER
142936 --Business Flow Invoice Distribution Type
142937  , p_source_91            IN VARCHAR2
142938 --Business Flow Invoice Entity Code
142939  , p_source_92            IN VARCHAR2
142940 --Business Flow Invoice Distribution Identifier
142941  , p_source_93            IN NUMBER
142942 --Business Flow Invoice Identifier
142943  , p_source_94            IN NUMBER
142944 --Invoice Exchange Date
142945  , p_source_136            IN DATE
142946 --Invoice Exchange Rate
142947  , p_source_137            IN NUMBER
142948 --Invoice Exchange Rate Type
142949  , p_source_138            IN VARCHAR2
142950 )
142951 IS
142952 
142953 l_component_type              VARCHAR2(80);
142954 l_component_code              VARCHAR2(30);
142955 l_component_type_code         VARCHAR2(1);
142956 l_component_appl_id           INTEGER;
142957 l_amb_context_code            VARCHAR2(30);
142958 l_entity_code                 VARCHAR2(30);
142959 l_event_class_code            VARCHAR2(30);
142960 l_ae_header_id                NUMBER;
142961 l_event_type_code             VARCHAR2(30);
142962 l_line_definition_code        VARCHAR2(30);
142963 l_line_definition_owner_code  VARCHAR2(1);
142964 --
142965 -- adr variables
142966 l_segment                     VARCHAR2(30);
142967 l_ccid                        NUMBER;
142968 l_adr_transaction_coa_id      NUMBER;
142969 l_adr_accounting_coa_id       NUMBER;
142970 l_adr_flexfield_segment_code  VARCHAR2(30);
142971 l_adr_flex_value_set_id       NUMBER;
142972 l_adr_value_type_code         VARCHAR2(30);
142973 l_adr_value_combination_id    NUMBER;
142974 l_adr_value_segment_code      VARCHAR2(30);
142975 
142976 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142977 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142978 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142979 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142980 
142981 -- 4262811 Variables ------------------------------------------------------------------------------------------
142982 l_entered_amt_idx             NUMBER;
142983 l_accted_amt_idx              NUMBER;
142984 l_acc_rev_flag                VARCHAR2(1);
142985 l_accrual_line_num            NUMBER;
142986 l_tmp_amt                     NUMBER;
142987 l_acc_rev_natural_side_code   VARCHAR2(1);
142988 
142989 l_num_entries                 NUMBER;
142990 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142991 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142992 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142993 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142994 l_recog_line_1                NUMBER;
142995 l_recog_line_2                NUMBER;
142996 
142997 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142998 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142999 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
143000 
143001 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
143002 
143003 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
143004 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
143005 
143006 ---------------------------------------------------------------------------------------------------------------
143007 
143008 
143009 --
143010 -- bulk performance
143011 --
143012 l_balance_type_code           VARCHAR2(1);
143013 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
143014 l_log_module                  VARCHAR2(240);
143015 
143016 --
143017 -- Upgrade strategy
143018 --
143019 l_actual_upg_option           VARCHAR2(1);
143020 l_enc_upg_option           VARCHAR2(1);
143021 
143022 --
143023 BEGIN
143024 --
143025 IF g_log_enabled THEN
143026       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_225';
143027 END IF;
143028 --
143029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143030 
143031       trace
143032          (p_msg      => 'BEGIN of AcctLineType_225'
143033          ,p_level    => C_LEVEL_PROCEDURE
143034          ,p_module   => l_log_module);
143035 
143036 END IF;
143037 --
143041 l_component_appl_id          :=  200;
143038 l_component_type             := 'AMB_JLT';
143039 l_component_code             := 'AP_WITHHOLD_TAX_PREPAY';
143040 l_component_type_code        := 'S';
143042 l_amb_context_code           := 'DEFAULT';
143043 l_entity_code                := 'AP_INVOICES';
143044 l_event_class_code           := 'PREPAYMENTS';
143045 l_event_type_code            := 'PREPAYMENTS_ALL';
143046 l_line_definition_owner_code := 'S';
143047 l_line_definition_code       := 'JA_CN_ACCRUAL_PREPAYMENT';
143048 --
143049 l_balance_type_code          := 'A';
143050 l_segment                     := NULL;
143051 l_ccid                        := NULL;
143052 l_adr_transaction_coa_id      := NULL;
143053 l_adr_accounting_coa_id       := NULL;
143054 l_adr_flexfield_segment_code  := NULL;
143055 l_adr_flex_value_set_id       := NULL;
143056 l_adr_value_type_code         := NULL;
143057 l_adr_value_combination_id    := NULL;
143058 l_adr_value_segment_code      := NULL;
143059 
143060 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
143061 l_bflow_class_code           := '';    -- 4219869 Business Flow
143062 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
143063 l_budgetary_control_flag     := 'N';
143064 
143065 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
143066 l_bflow_applied_to_amt       := NULL; -- 5132302
143067 l_entered_amt_idx            := NULL;          -- 4262811
143068 l_accted_amt_idx             := NULL;          -- 4262811
143069 l_acc_rev_flag               := NULL;          -- 4262811
143070 l_accrual_line_num           := NULL;          -- 4262811
143071 l_tmp_amt                    := NULL;          -- 4262811
143072 --
143073  
143074 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
143075     l_balance_type_code <> 'B' THEN
143076 IF NVL(p_source_33,'
143077 ') =  'AWT'
143078  THEN 
143079 
143080    --
143081    XLA_AE_LINES_PKG.SetNewLine;
143082 
143083    p_balance_type_code          := l_balance_type_code;
143084    -- set the flag so later we will know whether the gain loss line needs to be created
143085    
143086    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
143087      p_actual_flag :='A';
143088    END IF;
143089 
143090    --
143091    -- bulk performance
143092    --
143093    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
143094                                       p_header_num   => 0); -- 4262811
143095    --
143096    -- set accounting line options
143097    --
143098    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
143099            p_natural_side_code          => 'D'
143100          , p_gain_or_loss_flag          => 'N'
143101          , p_gl_transfer_mode_code      => 'S'
143102          , p_acct_entry_type_code       => 'A'
143103          , p_switch_side_flag           => 'Y'
143104          , p_merge_duplicate_code       => 'A'
143105          );
143106    --
143107    l_acc_rev_natural_side_code := 'C';  -- 4262811
143108    -- 
143109    --
143110    -- set accounting line type info
143111    --
143112    xla_ae_lines_pkg.SetAcctLineType
143113       (p_component_type             => l_component_type
143114       ,p_event_type_code            => l_event_type_code
143115       ,p_line_definition_owner_code => l_line_definition_owner_code
143116       ,p_line_definition_code       => l_line_definition_code
143117       ,p_accounting_line_code       => l_component_code
143118       ,p_accounting_line_type_code  => l_component_type_code
143119       ,p_accounting_line_appl_id    => l_component_appl_id
143120       ,p_amb_context_code           => l_amb_context_code
143121       ,p_entity_code                => l_entity_code
143122       ,p_event_class_code           => l_event_class_code);
143123    --
143124    -- set accounting class
143125    --
143126    xla_ae_lines_pkg.SetAcctClass(
143127            p_accounting_class_code  => 'AWT'
143128          , p_ae_header_id           => l_ae_header_id
143129          );
143130 
143131    --
143132    -- set rounding class
143133    --
143134    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
143135                       'AWT';
143136 
143137    --
143138    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
143139    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
143140    --
143141    -- bulk performance
143142    --
143143    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
143144 
143145    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
143146       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
143147 
143148    -- 4955764
143149    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143150       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
143151 
143152    -- 4458381 Public Sector Enh
143153    
143154    --
143155    -- set accounting attributes for the line type
143156    --
143157    l_entered_amt_idx := 23;
143158    l_accted_amt_idx  := 28;
143159    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
143160    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
143161    l_rec_acct_attrs.array_char_value(1)  := p_source_52;
143165    p_source_code           => 'XLA_EVENT_APPL_ID'
143162    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
143163    l_rec_acct_attrs.array_num_value(2)  := 
143164 xla_ae_sources_pkg.GetSystemSourceNum(
143166  , p_source_type_code      => 'Y'
143167  , p_source_application_id =>  602
143168 );
143169    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
143170    l_rec_acct_attrs.array_char_value(3)  := p_source_54;
143171    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
143172    l_rec_acct_attrs.array_char_value(4)  := 
143173 xla_ae_sources_pkg.GetSystemSourceChar(
143174    p_source_code           => 'XLA_ENTITY_CODE'
143175  , p_source_type_code      => 'Y'
143176  , p_source_application_id =>  602
143177 );
143178    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
143179    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_56);
143180    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
143181    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_57);
143182    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
143183    l_rec_acct_attrs.array_num_value(7)  := p_source_90;
143184    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
143185    l_rec_acct_attrs.array_char_value(8)  := p_source_91;
143186    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
143187    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
143188    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
143189    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_93);
143190    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
143191    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
143192    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
143193    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
143194    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
143195    l_rec_acct_attrs.array_char_value(13)  := p_source_54;
143196    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
143197    l_rec_acct_attrs.array_num_value(14)  := p_source_64;
143198    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
143199    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
143200    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
143201    l_rec_acct_attrs.array_char_value(16)  := p_source_66;
143202    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
143203    l_rec_acct_attrs.array_num_value(17)  := p_source_67;
143204    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
143205    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
143206    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
143207    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
143208    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
143209    l_rec_acct_attrs.array_char_value(20)  := p_source_66;
143210    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
143211    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
143212    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
143213    l_rec_acct_attrs.array_char_value(22)  := p_source_71;
143214    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
143215    l_rec_acct_attrs.array_num_value(23)  := p_source_72;
143216    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
143217    l_rec_acct_attrs.array_char_value(24)  := p_source_66;
143218    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
143219    l_rec_acct_attrs.array_date_value(25)  := p_source_136;
143220    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
143221    l_rec_acct_attrs.array_num_value(26)  := p_source_137;
143222    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
143223    l_rec_acct_attrs.array_char_value(27)  := p_source_138;
143224    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
143225    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
143226    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
143227    l_rec_acct_attrs.array_date_value(29)  := p_source_76;
143228    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
143229    l_rec_acct_attrs.array_char_value(30)  := p_source_77;
143230    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
143231    l_rec_acct_attrs.array_date_value(31)  := p_source_78;
143232    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
143233    l_rec_acct_attrs.array_char_value(32)  := p_source_79;
143234    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
143235    l_rec_acct_attrs.array_num_value(33)  := p_source_80;
143236    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
143237    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
143238    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
143239    l_rec_acct_attrs.array_char_value(35)  := p_source_82;
143240    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
143241    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_83);
143242    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
143243    l_rec_acct_attrs.array_char_value(37)  := p_source_54;
143244    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
143245    l_rec_acct_attrs.array_num_value(38)  := p_source_84;
143246    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
143250    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
143247    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
143248    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
143249    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
143251    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
143252    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
143253    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
143254    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
143255    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
143256 
143257    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
143258    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
143259 
143260    ---------------------------------------------------------------------------------------------------------------
143261    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
143262    ---------------------------------------------------------------------------------------------------------------
143263    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
143264 
143265    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143266    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143267 
143268    IF xla_accounting_cache_pkg.GetValueChar
143269          (p_source_code         => 'LEDGER_CATEGORY_CODE'
143270          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
143271    AND l_bflow_method_code = 'PRIOR_ENTRY'
143272 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
143273    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
143274          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
143275        )
143276    THEN
143277          xla_ae_lines_pkg.BflowUpgEntry
143278            (p_business_method_code    => l_bflow_method_code
143279            ,p_business_class_code     => l_bflow_class_code
143280            ,p_balance_type            => l_balance_type_code);
143281    ELSE
143282       NULL;
143283 -- No business flow processing for business flow method of NONE.
143284    END IF;
143285 
143286    --
143287    -- call analytical criteria
143288    --
143289    
143290    --
143291    -- call description
143292    --
143293    
143294 xla_ae_lines_pkg.SetLineDescription(
143295    p_ae_header_id => l_ae_header_id
143296   ,p_description  => Description_1 (
143297      p_application_id         => p_application_id
143298    , p_ae_header_id           => l_ae_header_id 
143299 , p_source_1 => p_source_1
143300    )
143301 );
143302 
143303 
143304    --
143305    -- call ADRs
143306    -- Bug 4922099
143307    --
143308    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143309         (NVL(l_actual_upg_option, 'N') = 'O') OR
143310         (NVL(l_enc_upg_option, 'N') = 'O')
143311       )
143312    THEN
143313    NULL;
143314    --
143315    --
143316    
143317   l_ccid := AcctDerRule_45(
143318            p_application_id           => p_application_id
143319          , p_ae_header_id             => l_ae_header_id 
143320 , p_source_15 => p_source_15
143321 , p_source_15_meaning => p_source_15_meaning
143322 , p_source_30 => p_source_30
143323 , p_source_43 => p_source_43
143324          , x_transaction_coa_id       => l_adr_transaction_coa_id
143325          , x_accounting_coa_id        => l_adr_accounting_coa_id
143326          , x_value_type_code          => l_adr_value_type_code
143327          , p_side                     => 'NA'
143328    );
143329 
143330    xla_ae_lines_pkg.set_ccid(
143331     p_code_combination_id          => l_ccid
143332   , p_value_type_code              => l_adr_value_type_code
143333   , p_transaction_coa_id           => l_adr_transaction_coa_id
143334   , p_accounting_coa_id            => l_adr_accounting_coa_id
143335   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143336   , p_adr_type_code                => 'S'
143337   , p_component_type               => l_component_type
143338   , p_component_code               => l_component_code
143339   , p_component_type_code          => l_component_type_code
143340   , p_component_appl_id            => l_component_appl_id
143341   , p_amb_context_code             => l_amb_context_code
143342   , p_side                         => 'NA'
143343   );
143344 
143345 
143346    l_segment := AcctDerRule_14(
143347            p_application_id           => p_application_id
143348          , p_ae_header_id             => l_ae_header_id 
143349 , p_source_15 => p_source_15
143350 , p_source_15_meaning => p_source_15_meaning
143351 , p_source_30 => p_source_30
143352          , x_transaction_coa_id       => l_adr_transaction_coa_id
143353          , x_accounting_coa_id        => l_adr_accounting_coa_id
143354          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143355          , x_flex_value_set_id        => l_adr_flex_value_set_id
143356          , x_value_type_code          => l_adr_value_type_code
143357          , x_value_combination_id     => l_adr_value_combination_id
143358          , x_value_segment_code       => l_adr_value_segment_code
143359          , p_side                     => 'NA'
143360          , p_override_seg_flag        => 'Y'
143361    );
143362 
143363    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143364 
143368         , p_from_segment_code       => l_adr_value_segment_code
143365       xla_ae_lines_pkg.set_segment(
143366           p_to_segment_code         => 'GL_ACCOUNT'
143367         , p_segment_value           => l_segment
143369         , p_from_combination_id     => l_adr_value_combination_id
143370         , p_value_type_code         => l_adr_value_type_code
143371         , p_transaction_coa_id      => l_adr_transaction_coa_id
143372         , p_accounting_coa_id       => l_adr_accounting_coa_id
143373         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143374         , p_flex_value_set_id       => l_adr_flex_value_set_id
143375         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143376         , p_adr_type_code           => 'S'
143377         , p_component_type          => l_component_type
143378         , p_component_code          => l_component_code
143379         , p_component_type_code     => l_component_type_code
143380         , p_component_appl_id       => l_component_appl_id
143381         , p_amb_context_code        => l_amb_context_code
143382         , p_entity_code             => 'AP_INVOICES'
143383         , p_event_class_code        => 'PREPAYMENTS'
143384         , p_side                    => 'NA'
143385         );
143386 
143387   END IF;
143388 
143389    l_segment := AcctDerRule_25(
143390            p_application_id           => p_application_id
143391          , p_ae_header_id             => l_ae_header_id 
143392 , p_source_15 => p_source_15
143393 , p_source_15_meaning => p_source_15_meaning
143394 , p_source_43 => p_source_43
143395          , x_transaction_coa_id       => l_adr_transaction_coa_id
143396          , x_accounting_coa_id        => l_adr_accounting_coa_id
143397          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143398          , x_flex_value_set_id        => l_adr_flex_value_set_id
143399          , x_value_type_code          => l_adr_value_type_code
143400          , x_value_combination_id     => l_adr_value_combination_id
143401          , x_value_segment_code       => l_adr_value_segment_code
143402          , p_side                     => 'NA'
143403          , p_override_seg_flag        => 'Y'
143404    );
143405 
143406    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143407 
143408       xla_ae_lines_pkg.set_segment(
143409           p_to_segment_code         => 'GL_BALANCING'
143410         , p_segment_value           => l_segment
143411         , p_from_segment_code       => l_adr_value_segment_code
143412         , p_from_combination_id     => l_adr_value_combination_id
143413         , p_value_type_code         => l_adr_value_type_code
143414         , p_transaction_coa_id      => l_adr_transaction_coa_id
143415         , p_accounting_coa_id       => l_adr_accounting_coa_id
143416         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143417         , p_flex_value_set_id       => l_adr_flex_value_set_id
143418         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143419         , p_adr_type_code           => 'S'
143420         , p_component_type          => l_component_type
143421         , p_component_code          => l_component_code
143422         , p_component_type_code     => l_component_type_code
143423         , p_component_appl_id       => l_component_appl_id
143424         , p_amb_context_code        => l_amb_context_code
143425         , p_entity_code             => 'AP_INVOICES'
143426         , p_event_class_code        => 'PREPAYMENTS'
143427         , p_side                    => 'NA'
143428         );
143429 
143430   END IF;
143431 
143432    --
143433    --
143434    END IF;
143435    --
143436    -- Bug 4922099
143437    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
143438           (NVL(l_enc_upg_option, 'N') = 'O')
143439         ) AND
143440         (l_bflow_method_code = 'PRIOR_ENTRY')
143441       )
143442    THEN
143443       IF
143444       --
143445       1 = 2
143446       --
143447       THEN
143448       xla_accounting_err_pkg.build_message
143449                                     (p_appli_s_name            => 'XLA'
143450                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143451                                     ,p_token_1                 => 'LINE_NUMBER'
143452                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
143453                                     ,p_token_2                 => 'LINE_TYPE_NAME'
143454                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
143455                                                                              l_component_type
143456                                                                             ,l_component_code
143457                                                                             ,l_component_type_code
143458                                                                             ,l_component_appl_id
143459                                                                             ,l_amb_context_code
143460                                                                             ,l_entity_code
143461                                                                             ,l_event_class_code
143462                                                                            )
143463                                     ,p_token_3                 => 'OWNER'
143464                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
143465                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
143469                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
143466                                                                           ,p_lookup_code    => l_component_type_code
143467                                                                          )
143468                                     ,p_token_4                 => 'PRODUCT_NAME'
143470                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
143471                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
143472                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
143473                                     ,p_ae_header_id            =>  NULL
143474                                        );
143475 
143476         IF (C_LEVEL_ERROR>= g_log_level) THEN
143477                  trace
143478                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143479                       ,p_level    => C_LEVEL_ERROR
143480                       ,p_module   => l_log_module);
143481         END IF;
143482       END IF;
143483    END IF;
143484    --
143485    --
143486    ------------------------------------------------------------------------------------------------
143487    -- 4219869 Business Flow
143488    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
143489    -- Prior Entry.  Currently, the following code is always generated.
143490    ------------------------------------------------------------------------------------------------
143491    XLA_AE_LINES_PKG.ValidateCurrentLine;
143492 
143493    ------------------------------------------------------------------------------------
143494    -- 4219869 Business Flow
143495    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
143496    ------------------------------------------------------------------------------------
143497    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143498 
143499    ----------------------------------------------------------------------------------
143500    -- 4219869 Business Flow
143501    -- Update journal entry status -- Need to generate this within IF <condition>
143502    ----------------------------------------------------------------------------------
143503    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143504          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
143505          ,p_balance_type_code => l_balance_type_code
143506          );
143507 
143508    -------------------------------------------------------------------------------------------
143509    -- 4262811 - Generate the Accrual Reversal lines
143510    -------------------------------------------------------------------------------------------
143511    BEGIN
143512       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
143513                               (g_array_event(p_event_id).array_value_num('header_index'));
143514       IF l_acc_rev_flag IS NULL THEN
143515          l_acc_rev_flag := 'N';
143516       END IF;
143517    EXCEPTION
143518       WHEN OTHERS THEN
143519          l_acc_rev_flag := 'N';
143520    END;
143521    --
143522    IF (l_acc_rev_flag = 'Y') THEN
143523 
143524        -- 4645092  ------------------------------------------------------------------------------
143525        -- To allow MPA report to determine if it should generate report process
143526        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
143527        ------------------------------------------------------------------------------------------
143528 
143529        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
143530        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
143531    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
143532    -- call ADRs
143533    -- Bug 4922099
143534    --
143535    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143536         (NVL(l_actual_upg_option, 'N') = 'O') OR
143537         (NVL(l_enc_upg_option, 'N') = 'O')
143538       )
143539    THEN
143540    NULL;
143541    --
143542    --
143543    
143544   l_ccid := AcctDerRule_45(
143545            p_application_id           => p_application_id
143546          , p_ae_header_id             => l_ae_header_id 
143547 , p_source_15 => p_source_15
143548 , p_source_15_meaning => p_source_15_meaning
143549 , p_source_30 => p_source_30
143550 , p_source_43 => p_source_43
143551          , x_transaction_coa_id       => l_adr_transaction_coa_id
143552          , x_accounting_coa_id        => l_adr_accounting_coa_id
143553          , x_value_type_code          => l_adr_value_type_code
143554          , p_side                     => 'NA'
143555    );
143556 
143557    xla_ae_lines_pkg.set_ccid(
143558     p_code_combination_id          => l_ccid
143559   , p_value_type_code              => l_adr_value_type_code
143560   , p_transaction_coa_id           => l_adr_transaction_coa_id
143561   , p_accounting_coa_id            => l_adr_accounting_coa_id
143562   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143563   , p_adr_type_code                => 'S'
143564   , p_component_type               => l_component_type
143565   , p_component_code               => l_component_code
143566   , p_component_type_code          => l_component_type_code
143567   , p_component_appl_id            => l_component_appl_id
143568   , p_amb_context_code             => l_amb_context_code
143569   , p_side                         => 'NA'
143570   );
143571 
143572 
143576 , p_source_15 => p_source_15
143573    l_segment := AcctDerRule_14(
143574            p_application_id           => p_application_id
143575          , p_ae_header_id             => l_ae_header_id 
143577 , p_source_15_meaning => p_source_15_meaning
143578 , p_source_30 => p_source_30
143579          , x_transaction_coa_id       => l_adr_transaction_coa_id
143580          , x_accounting_coa_id        => l_adr_accounting_coa_id
143581          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143582          , x_flex_value_set_id        => l_adr_flex_value_set_id
143583          , x_value_type_code          => l_adr_value_type_code
143584          , x_value_combination_id     => l_adr_value_combination_id
143585          , x_value_segment_code       => l_adr_value_segment_code
143586          , p_side                     => 'NA'
143587          , p_override_seg_flag        => 'Y'
143588    );
143589 
143590    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143591 
143592       xla_ae_lines_pkg.set_segment(
143593           p_to_segment_code         => 'GL_ACCOUNT'
143594         , p_segment_value           => l_segment
143595         , p_from_segment_code       => l_adr_value_segment_code
143596         , p_from_combination_id     => l_adr_value_combination_id
143597         , p_value_type_code         => l_adr_value_type_code
143598         , p_transaction_coa_id      => l_adr_transaction_coa_id
143599         , p_accounting_coa_id       => l_adr_accounting_coa_id
143600         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143601         , p_flex_value_set_id       => l_adr_flex_value_set_id
143602         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143603         , p_adr_type_code           => 'S'
143604         , p_component_type          => l_component_type
143605         , p_component_code          => l_component_code
143606         , p_component_type_code     => l_component_type_code
143607         , p_component_appl_id       => l_component_appl_id
143608         , p_amb_context_code        => l_amb_context_code
143609         , p_entity_code             => 'AP_INVOICES'
143610         , p_event_class_code        => 'PREPAYMENTS'
143611         , p_side                    => 'NA'
143612         );
143613 
143614   END IF;
143615 
143616    l_segment := AcctDerRule_25(
143617            p_application_id           => p_application_id
143618          , p_ae_header_id             => l_ae_header_id 
143619 , p_source_15 => p_source_15
143620 , p_source_15_meaning => p_source_15_meaning
143621 , p_source_43 => p_source_43
143622          , x_transaction_coa_id       => l_adr_transaction_coa_id
143623          , x_accounting_coa_id        => l_adr_accounting_coa_id
143624          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143625          , x_flex_value_set_id        => l_adr_flex_value_set_id
143626          , x_value_type_code          => l_adr_value_type_code
143627          , x_value_combination_id     => l_adr_value_combination_id
143628          , x_value_segment_code       => l_adr_value_segment_code
143629          , p_side                     => 'NA'
143630          , p_override_seg_flag        => 'Y'
143631    );
143632 
143633    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143634 
143635       xla_ae_lines_pkg.set_segment(
143636           p_to_segment_code         => 'GL_BALANCING'
143637         , p_segment_value           => l_segment
143638         , p_from_segment_code       => l_adr_value_segment_code
143639         , p_from_combination_id     => l_adr_value_combination_id
143640         , p_value_type_code         => l_adr_value_type_code
143641         , p_transaction_coa_id      => l_adr_transaction_coa_id
143642         , p_accounting_coa_id       => l_adr_accounting_coa_id
143643         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143644         , p_flex_value_set_id       => l_adr_flex_value_set_id
143645         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143646         , p_adr_type_code           => 'S'
143647         , p_component_type          => l_component_type
143648         , p_component_code          => l_component_code
143649         , p_component_type_code     => l_component_type_code
143650         , p_component_appl_id       => l_component_appl_id
143651         , p_amb_context_code        => l_amb_context_code
143652         , p_entity_code             => 'AP_INVOICES'
143653         , p_event_class_code        => 'PREPAYMENTS'
143654         , p_side                    => 'NA'
143655         );
143656 
143657   END IF;
143658 
143659    --
143660    --
143661    END IF;
143662 
143663        --
143664        -- Update the line information that should be overwritten
143665        --
143666        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
143667                                          p_header_num   => 1);
143668        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
143669 
143670        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
143671 
143672        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
143673           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
143674        END IF;
143675 
143676       --
143677       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
143678       --
143679       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
143683           -- 4262811a Switch Sign
143680           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
143681       ELSE
143682           ---------------------------------------------------------------------------------------------------
143684           ---------------------------------------------------------------------------------------------------
143685           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
143686           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143687                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143688           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143689                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143690           -- 5132302
143691           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
143692                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143693 
143694       END IF;
143695 
143696       -- 4955764
143697       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143698       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
143699 
143700 
143701       XLA_AE_LINES_PKG.ValidateCurrentLine;
143702       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143703 
143704       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143705                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
143706                ,p_balance_type_code => l_balance_type_code);
143707 
143708    END IF;
143709 
143710    -----------------------------------------------------------------------------------------
143711    -- 4262811 Multiperiod Accounting
143712    -----------------------------------------------------------------------------------------
143713      -- No MPA option is assigned.
143714 
143715 
143716 END IF;
143717 END IF;
143718 --
143719 
143720 --
143721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143722    trace
143723       (p_msg      => 'END of AcctLineType_225'
143724       ,p_level    => C_LEVEL_PROCEDURE
143725       ,p_module   => l_log_module);
143726 END IF;
143727 --
143728 EXCEPTION
143729   WHEN xla_exceptions_pkg.application_exception THEN
143730       RAISE;
143731   WHEN OTHERS THEN
143732        xla_exceptions_pkg.raise_message
143733            (p_location => 'XLA_00200_AAD_S_000020_PKG.AcctLineType_225');
143734 END AcctLineType_225;
143735 --
143736 
143737 ---------------------------------------
143738 --
143739 -- PRIVATE PROCEDURE
143740 --         insert_sources_226
143741 --
143742 ----------------------------------------
143743 --
143744 PROCEDURE insert_sources_226(
143745                                 p_target_ledger_id       IN NUMBER
143746                               , p_language               IN VARCHAR2
143747                               , p_sla_ledger_id          IN NUMBER
143748                               , p_pad_start_date         IN DATE
143749                               , p_pad_end_date           IN DATE
143750                          )
143751 IS
143752 
143753 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
143754 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
143755 p_apps_owner                   VARCHAR2(30);
143756 l_log_module                   VARCHAR2(240);
143757 BEGIN
143758 IF g_log_enabled THEN
143759       l_log_module := C_DEFAULT_MODULE||'.insert_sources_226';
143760 END IF;
143761 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143762 
143763       trace
143764          (p_msg      => 'BEGIN of insert_sources_226'
143765          ,p_level    => C_LEVEL_PROCEDURE
143766          ,p_module   => l_log_module);
143767 
143768 END IF;
143769 
143770 -- select APPS owner
143771 SELECT oracle_username
143772   INTO p_apps_owner
143773   FROM fnd_oracle_userid
143774  WHERE read_only_flag = 'U'
143775 ;
143776 
143777 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
143778       trace
143779          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
143780                         ' - p_language = '||p_language||
143781                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
143782                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
143783                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
143784                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
143785          ,p_level    => C_LEVEL_STATEMENT
143786          ,p_module   => l_log_module);
143787 END IF;
143788 
143789 
143790 --
143791 INSERT INTO xla_diag_sources --hdr2
143792 (
143793         event_id
143794       , ledger_id
143795       , sla_ledger_id
143796       , description_language
143797       , object_name
143798       , object_type_code
143799       , line_number
143800       , source_application_id
143801       , source_type_code
143802       , source_code
143803       , source_value
143804       , source_meaning
143805       , created_by
143806       , creation_date
143807       , last_update_date
143808       , last_updated_by
143809       , last_update_login
143810       , program_update_date
143814 )
143811       , program_application_id
143812       , program_id
143813       , request_id
143815 SELECT
143816         event_id
143817       , p_target_ledger_id
143818       , p_sla_ledger_id
143819       , p_language
143820       , object_name
143821       , object_type_code
143822       , line_number
143823       , source_application_id
143824       , source_type_code
143825       , source_code
143826       , SUBSTR(source_value ,1,1996)
143827       , SUBSTR(source_meaning ,1,200)
143828       , xla_environment_pkg.g_Usr_Id
143829       , TRUNC(SYSDATE)
143830       , TRUNC(SYSDATE)
143831       , xla_environment_pkg.g_Usr_Id
143832       , xla_environment_pkg.g_Login_Id
143833       , TRUNC(SYSDATE)
143834       , xla_environment_pkg.g_Prog_Appl_Id
143835       , xla_environment_pkg.g_Prog_Id
143836       , xla_environment_pkg.g_Req_Id
143837   FROM (
143838        SELECT xet.event_id                  event_id
143839             , 0                          line_number
143840             , CASE r
143841                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143842                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143843                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143844                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143845                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143846                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143847                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143848                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143849                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143850                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143851                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143852                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143853                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143854                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143855                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143856                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143857                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143858                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143859                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143860                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143861                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143862                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143863                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143864                 
143865                ELSE null
143866               END                           object_name
143867             , CASE r
143868                 WHEN 1 THEN 'HEADER' 
143869                 WHEN 2 THEN 'HEADER' 
143870                 WHEN 3 THEN 'HEADER' 
143871                 WHEN 4 THEN 'HEADER' 
143872                 WHEN 5 THEN 'HEADER' 
143873                 WHEN 6 THEN 'HEADER' 
143874                 WHEN 7 THEN 'HEADER' 
143875                 WHEN 8 THEN 'HEADER' 
143876                 WHEN 9 THEN 'HEADER' 
143877                 WHEN 10 THEN 'HEADER' 
143878                 WHEN 11 THEN 'HEADER' 
143879                 WHEN 12 THEN 'HEADER' 
143880                 WHEN 13 THEN 'HEADER' 
143881                 WHEN 14 THEN 'HEADER' 
143882                 WHEN 15 THEN 'HEADER' 
143883                 WHEN 16 THEN 'HEADER' 
143884                 WHEN 17 THEN 'HEADER' 
143885                 WHEN 18 THEN 'HEADER' 
143886                 WHEN 19 THEN 'HEADER' 
143887                 WHEN 20 THEN 'HEADER' 
143888                 WHEN 21 THEN 'HEADER' 
143889                 WHEN 22 THEN 'HEADER' 
143890                 WHEN 23 THEN 'HEADER' 
143891                 
143892                 ELSE null
143893               END                           object_type_code
143894             , CASE r
143895                 WHEN 1 THEN '200' 
143896                 WHEN 2 THEN '200' 
143897                 WHEN 3 THEN '200' 
143898                 WHEN 4 THEN '200' 
143899                 WHEN 5 THEN '200' 
143900                 WHEN 6 THEN '200' 
143901                 WHEN 7 THEN '200' 
143902                 WHEN 8 THEN '200' 
143903                 WHEN 9 THEN '200' 
143904                 WHEN 10 THEN '200' 
143905                 WHEN 11 THEN '200' 
143906                 WHEN 12 THEN '200' 
143907                 WHEN 13 THEN '200' 
143908                 WHEN 14 THEN '200' 
143909                 WHEN 15 THEN '200' 
143910                 WHEN 16 THEN '200' 
143911                 WHEN 17 THEN '200' 
143912                 WHEN 18 THEN '200' 
143913                 WHEN 19 THEN '200' 
143914                 WHEN 20 THEN '200' 
143915                 WHEN 21 THEN '200' 
143916                 WHEN 22 THEN '200' 
143917                 WHEN 23 THEN '200' 
143918                 
143919                 ELSE null
143920               END                           source_application_id
143921             , 'S'             source_type_code
143922             , CASE r
143923                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
143924                 WHEN 2 THEN 'AI_INVOICE_DATE' 
143925                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
143926                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
143927                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
143928                 WHEN 6 THEN 'AI_DESCRIPTION' 
143929                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
143930                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
143931                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
143932                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
143933                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
143937                 WHEN 15 THEN 'AI_VENDOR_ID' 
143934                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
143935                 WHEN 13 THEN 'AI_INVOICE_ID' 
143936                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
143938                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
143939                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
143940                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
143941                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
143942                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
143943                 WHEN 21 THEN 'AI_SOURCE' 
143944                 WHEN 22 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
143945                 WHEN 23 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
143946                 
143947                 ELSE null
143948               END                           source_code
143949             , CASE r
143950                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
143951                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
143952                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
143953                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
143954                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
143955                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
143956                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
143957                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
143958                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
143959                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
143960                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
143961                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
143962                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
143963                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
143964                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
143965                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
143966                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
143967                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
143968                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
143969                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
143970                 WHEN 21 THEN TO_CHAR(h2.AI_SOURCE)
143971                 WHEN 22 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
143972                 WHEN 23 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
143973                 
143974                 ELSE null
143975               END                           source_value
143976             , CASE r
143977                 WHEN 7 THEN fvl15.meaning
143978                 WHEN 12 THEN fvl47.meaning
143979                 WHEN 22 THEN fvl164.meaning
143980                 
143981                 ELSE null
143982               END               source_meaning
143983          FROM xla_events_gt     xet  
143984       , AP_INVOICE_EXTRACT_HEADER_V  h2
143985       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
143986   , fnd_lookup_values    fvl15
143987   , fnd_lookup_values    fvl47
143988   , fnd_lookup_values    fvl164
143989              ,(select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
143990          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
143991            AND xet.event_class_code = C_EVENT_CLASS_CODE
143992               AND h2.event_id = xet.event_id
143993  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
143994   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
143995   AND fvl15.view_application_id(+) = 200
143996   AND fvl15.language(+)            = USERENV('LANG')
143997      AND fvl47.lookup_type(+)         = 'YES_NO'
143998   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
143999   AND fvl47.view_application_id(+) = 0
144000   AND fvl47.language(+)            = USERENV('LANG')
144001      AND fvl164.lookup_type(+)         = 'INVOICE TYPE'
144002   AND fvl164.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
144003   AND fvl164.view_application_id(+) = 200
144004   AND fvl164.language(+)            = USERENV('LANG')
144005   
144006 )
144007 ;
144008 --
144009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144010 
144011       trace
144012          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
144013          ,p_level    => C_LEVEL_STATEMENT
144014          ,p_module   => l_log_module);
144015 
144016 END IF;
144017 --
144018 
144019 
144020 
144021 --
144022 INSERT INTO xla_diag_sources  --line2
144023 (
144024         event_id
144025       , ledger_id
144026       , sla_ledger_id
144027       , description_language
144028       , object_name
144029       , object_type_code
144030       , line_number
144031       , source_application_id
144032       , source_type_code
144033       , source_code
144034       , source_value
144035       , source_meaning
144036       , created_by
144037       , creation_date
144041       , program_update_date
144038       , last_update_date
144039       , last_updated_by
144040       , last_update_login
144042       , program_application_id
144043       , program_id
144044       , request_id
144045 )
144046 SELECT  event_id
144047       , p_target_ledger_id
144048       , p_sla_ledger_id
144049       , p_language
144050       , object_name
144051       , object_type_code
144052       , line_number
144053       , source_application_id
144054       , source_type_code
144055       , source_code
144056       , SUBSTR(source_value,1,1996)
144057       , SUBSTR(source_meaning ,1,200)
144058       , xla_environment_pkg.g_Usr_Id
144059       , TRUNC(SYSDATE)
144060       , TRUNC(SYSDATE)
144061       , xla_environment_pkg.g_Usr_Id
144062       , xla_environment_pkg.g_Login_Id
144063       , TRUNC(SYSDATE)
144064       , xla_environment_pkg.g_Prog_Appl_Id
144065       , xla_environment_pkg.g_Prog_Id
144066       , xla_environment_pkg.g_Req_Id
144067   FROM (
144068        SELECT xet.event_id                  event_id
144069             , l1.line_number                 line_number
144070             , CASE r
144071                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144072                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144073                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144074                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144075                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144076                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144077                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144078                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144079                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144080                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144081                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144082                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144083                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144084                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144085                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144086                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144087                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144088                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144089                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144090                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144091                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144092                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144093                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144094                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144095                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144096                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144097                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144098                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144099                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144100                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144101                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144102                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144103                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144104                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144105                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144106                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
144107                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
144108                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144109                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144110                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144111                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144112                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144113                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144114                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144115                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144116                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144117                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144118                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144119                 
144120                ELSE null
144121               END                           object_name
144122             , CASE r
144123                 WHEN 1 THEN 'LINE' 
144124                 WHEN 2 THEN 'LINE' 
144125                 WHEN 3 THEN 'LINE' 
144126                 WHEN 4 THEN 'LINE' 
144127                 WHEN 5 THEN 'LINE' 
144128                 WHEN 6 THEN 'LINE' 
144129                 WHEN 7 THEN 'LINE' 
144130                 WHEN 8 THEN 'LINE' 
144131                 WHEN 9 THEN 'LINE' 
144132                 WHEN 10 THEN 'LINE' 
144133                 WHEN 11 THEN 'LINE' 
144134                 WHEN 12 THEN 'LINE' 
144135                 WHEN 13 THEN 'LINE' 
144136                 WHEN 14 THEN 'LINE' 
144137                 WHEN 15 THEN 'LINE' 
144138                 WHEN 16 THEN 'LINE' 
144139                 WHEN 17 THEN 'LINE' 
144140                 WHEN 18 THEN 'LINE' 
144141                 WHEN 19 THEN 'LINE' 
144142                 WHEN 20 THEN 'LINE' 
144143                 WHEN 21 THEN 'LINE' 
144144                 WHEN 22 THEN 'LINE' 
144145                 WHEN 23 THEN 'LINE' 
144146                 WHEN 24 THEN 'LINE' 
144147                 WHEN 25 THEN 'LINE' 
144148                 WHEN 26 THEN 'LINE' 
144149                 WHEN 27 THEN 'LINE' 
144150                 WHEN 28 THEN 'LINE' 
144151                 WHEN 29 THEN 'LINE' 
144152                 WHEN 30 THEN 'LINE' 
144153                 WHEN 31 THEN 'LINE' 
144154                 WHEN 32 THEN 'LINE' 
144155                 WHEN 33 THEN 'LINE' 
144156                 WHEN 34 THEN 'LINE' 
144157                 WHEN 35 THEN 'LINE' 
144158                 WHEN 36 THEN 'LINE' 
144159                 WHEN 37 THEN 'LINE' 
144163                 WHEN 41 THEN 'LINE' 
144160                 WHEN 38 THEN 'LINE' 
144161                 WHEN 39 THEN 'LINE' 
144162                 WHEN 40 THEN 'LINE' 
144164                 WHEN 42 THEN 'LINE' 
144165                 WHEN 43 THEN 'LINE' 
144166                 WHEN 44 THEN 'LINE' 
144167                 WHEN 45 THEN 'LINE' 
144168                 WHEN 46 THEN 'LINE' 
144169                 WHEN 47 THEN 'LINE' 
144170                 WHEN 48 THEN 'LINE' 
144171                 
144172                 ELSE null
144173               END                           object_type_code
144174             , CASE r
144175                 WHEN 1 THEN '200' 
144176                 WHEN 2 THEN '200' 
144177                 WHEN 3 THEN '200' 
144178                 WHEN 4 THEN '200' 
144179                 WHEN 5 THEN '200' 
144180                 WHEN 6 THEN '200' 
144181                 WHEN 7 THEN '200' 
144182                 WHEN 8 THEN '200' 
144183                 WHEN 9 THEN '200' 
144184                 WHEN 10 THEN '200' 
144185                 WHEN 11 THEN '200' 
144186                 WHEN 12 THEN '200' 
144187                 WHEN 13 THEN '200' 
144188                 WHEN 14 THEN '200' 
144189                 WHEN 15 THEN '200' 
144190                 WHEN 16 THEN '200' 
144191                 WHEN 17 THEN '200' 
144192                 WHEN 18 THEN '200' 
144193                 WHEN 19 THEN '200' 
144194                 WHEN 20 THEN '200' 
144195                 WHEN 21 THEN '200' 
144196                 WHEN 22 THEN '200' 
144197                 WHEN 23 THEN '200' 
144198                 WHEN 24 THEN '200' 
144199                 WHEN 25 THEN '200' 
144200                 WHEN 26 THEN '200' 
144201                 WHEN 27 THEN '200' 
144202                 WHEN 28 THEN '200' 
144203                 WHEN 29 THEN '200' 
144204                 WHEN 30 THEN '200' 
144205                 WHEN 31 THEN '200' 
144206                 WHEN 32 THEN '200' 
144207                 WHEN 33 THEN '200' 
144208                 WHEN 34 THEN '200' 
144209                 WHEN 35 THEN '200' 
144210                 WHEN 36 THEN '200' 
144211                 WHEN 37 THEN '200' 
144212                 WHEN 38 THEN '200' 
144213                 WHEN 39 THEN '200' 
144214                 WHEN 40 THEN '200' 
144215                 WHEN 41 THEN '200' 
144216                 WHEN 42 THEN '200' 
144217                 WHEN 43 THEN '200' 
144218                 WHEN 44 THEN '200' 
144219                 WHEN 45 THEN '200' 
144220                 WHEN 46 THEN '200' 
144221                 WHEN 47 THEN '200' 
144222                 WHEN 48 THEN '200' 
144223                 
144224                 ELSE null
144225               END                           source_application_id
144226             , 'S'             source_type_code
144227             , CASE r
144228                 WHEN 1 THEN 'AID_DESCRIPTION' 
144229                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
144230                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
144231                 WHEN 4 THEN 'AID_DIST_CCID' 
144232                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
144233                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
144234                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
144235                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
144236                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
144237                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
144238                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
144239                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
144240                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
144241                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
144242                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
144243                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
144244                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
144245                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
144246                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
144247                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
144248                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
144249                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
144250                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
144251                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
144252                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
144253                 WHEN 26 THEN 'AID_AMOUNT' 
144254                 WHEN 27 THEN 'POH_RATE_DATE' 
144255                 WHEN 28 THEN 'POH_RATE' 
144256                 WHEN 29 THEN 'POH_RATE_TYPE' 
144257                 WHEN 30 THEN 'DEFERRED_END_DATE' 
144258                 WHEN 31 THEN 'DEFERRED_OPTION' 
144259                 WHEN 32 THEN 'DEFERRED_START_DATE' 
144260                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
144261                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
144262                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
144263                 WHEN 36 THEN 'TAX_LINE_ID' 
144264                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
144265                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
144266                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
144267                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
144268                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
144269                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
144270                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
144271                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
144272                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
144273                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
144274                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
144275                 WHEN 48 THEN 'AID_PROJECT_ID' 
144276                 
144277                 ELSE null
144278               END                           source_code
144279             , CASE r
144280                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
144281                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
144282                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
144283                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
144287                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
144284                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
144285                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
144286                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
144288                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
144289                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
144290                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
144291                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
144292                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
144293                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
144294                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
144295                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
144296                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
144297                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
144298                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
144299                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
144300                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
144301                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
144302                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
144303                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
144304                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
144305                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
144306                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
144307                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
144308                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
144309                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
144310                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
144311                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
144312                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
144313                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
144314                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
144315                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
144316                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
144317                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
144318                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
144319                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
144320                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
144321                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
144322                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
144323                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
144324                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
144325                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
144326                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
144327                 WHEN 48 THEN TO_CHAR(l1.AID_PROJECT_ID)
144328                 
144329                 ELSE null
144330               END                           source_value
144331             , CASE r
144332                 WHEN 3 THEN fvl22.meaning
144333                 WHEN 5 THEN fvl33.meaning
144334                 WHEN 33 THEN fvl79.meaning
144335                 WHEN 46 THEN fvl95.meaning
144336                 WHEN 47 THEN fvl135.meaning
144337                 
144338                 ELSE null
144339               END               source_meaning
144340          FROM  xla_events_gt     xet  
144341         , AP_INVOICE_EXTRACT_DETAILS_V  l1
144342         , AP_PO_HEADERS_EXTRACT_V  l3
144343         , ZX_AP_DEF_TAX_EXTRACT_V  l5
144344         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
144345   , fnd_lookup_values    fvl22
144346   , fnd_lookup_values    fvl33
144347   , fnd_lookup_values    fvl79
144348   , fnd_lookup_values    fvl95
144349   , fnd_lookup_values    fvl135
144350             , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
144351         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
144352           AND xet.event_class_code = C_EVENT_CLASS_CODE
144353             AND l1.event_id          = xet.event_id
144354  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'
144355   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
144356   AND fvl22.view_application_id(+) = 201
144357   AND fvl22.language(+)            = USERENV('LANG')
144358      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
144359   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
144360   AND fvl33.view_application_id(+) = 200
144361   AND fvl33.language(+)            = USERENV('LANG')
144362      AND fvl79.lookup_type(+)         = 'YES_NO'
144363   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
144364   AND fvl79.view_application_id(+) = 0
144365   AND fvl79.language(+)            = USERENV('LANG')
144366      AND fvl95.lookup_type(+)         = 'YES_NO'
144367   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
144368   AND fvl95.view_application_id(+) = 0
144369   AND fvl95.language(+)            = USERENV('LANG')
144370      AND fvl135.lookup_type(+)         = 'YES_NO'
144371   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
144372   AND fvl135.view_application_id(+) = 0
144373   AND fvl135.language(+)            = USERENV('LANG')
144374   
144375 )
144376 ;
144377 --
144378 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144379 
144380       trace
144381          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
144382          ,p_level    => C_LEVEL_STATEMENT
144383          ,p_module   => l_log_module);
144384 
144385 END IF;
144386 
144387 
144388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144389       trace
144390          (p_msg      => 'END of insert_sources_226'
144391          ,p_level    => C_LEVEL_PROCEDURE
144392          ,p_module   => l_log_module);
144393 END IF;
144394 EXCEPTION
144395   WHEN xla_exceptions_pkg.application_exception THEN
144396       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
144400                ,p_module   => l_log_module);
144397             trace
144398                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
144399                ,p_level    => C_LEVEL_EXCEPTION
144401       END IF;
144402       RAISE;
144403   WHEN OTHERS THEN
144404       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
144405             trace
144406                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
144407                ,p_level    => C_LEVEL_EXCEPTION
144408                ,p_module   => l_log_module);
144409        END IF;
144410        xla_exceptions_pkg.raise_message
144411            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_226');
144412 END insert_sources_226;
144413 --
144414 
144415 ---------------------------------------
144416 --
144417 -- PRIVATE FUNCTION
144418 --         EventClass_226
144419 --
144420 ----------------------------------------
144421 --
144422 FUNCTION EventClass_226
144423        (p_application_id         IN NUMBER
144424        ,p_base_ledger_id         IN NUMBER
144425        ,p_target_ledger_id       IN NUMBER
144426        ,p_language               IN VARCHAR2
144427        ,p_currency_code          IN VARCHAR2
144428        ,p_sla_ledger_id          IN NUMBER
144429        ,p_pad_start_date         IN DATE
144430        ,p_pad_end_date           IN DATE
144431        ,p_primary_ledger_id      IN NUMBER)
144432 RETURN BOOLEAN IS
144433 --
144434 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
144435 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
144436 
144437 l_calculate_acctd_flag   VARCHAR2(1) :='N';
144438 l_calculate_g_l_flag     VARCHAR2(1) :='N';
144439 --
144440 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144441 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144442 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144443 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144444 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144445 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144446 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144447 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144448 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144449 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144450 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144451 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144452 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144453 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144454 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144455 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144456 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144457 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144458 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144459 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144460 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144461 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144462 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
144463 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144464 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
144465 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
144466 
144467 l_event_id                             NUMBER;
144468 l_previous_event_id                    NUMBER;
144469 l_first_event_id                       NUMBER;
144470 l_last_event_id                        NUMBER;
144471 
144472 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
144473 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
144474 --
144475 --
144476 l_result                    BOOLEAN := TRUE;
144477 l_rows                      NUMBER  := 1000;
144478 l_event_type_name           VARCHAR2(80) := 'All';
144479 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
144480 l_description               VARCHAR2(4000);
144481 l_transaction_reversal      NUMBER;
144482 l_ae_header_id              NUMBER;
144483 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
144484 l_log_module                VARCHAR2(240);
144485 --
144486 l_acct_reversal_source      VARCHAR2(30);
144487 l_trx_reversal_source       VARCHAR2(30);
144488 
144489 l_continue_with_lines       BOOLEAN := TRUE;
144490 --
144491 l_acc_rev_gl_date_source    DATE;                      -- 4262811
144492 --
144493 type t_array_event_id is table of number index by binary_integer;
144494 
144495 l_rec_array_event                    t_rec_array_event;
144496 l_null_rec_array_event               t_rec_array_event;
144497 l_array_ae_header_id                 xla_number_array_type;
144498 l_actual_flag                        VARCHAR2(1) := NULL;
144499 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
144500 l_balance_type_code                  VARCHAR2(1) :=NULL;
144501 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
144502 
144503 --
144504 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
144505 --
144506 
144507 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
144508 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
144509 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
144510 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
144514 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
144511 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
144512 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
144513 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
144515 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
144516 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
144517 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144518 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
144519 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
144520 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
144521 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
144522 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
144523 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
144524 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
144525 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
144526 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
144527 TYPE t_array_source_163 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_SOURCE%TYPE INDEX BY BINARY_INTEGER;
144528 TYPE t_array_source_164 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
144529 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
144530 
144531 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
144532 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144533 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144534 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
144535 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
144536 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
144537 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144538 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144539 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
144540 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
144541 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
144542 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144543 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
144544 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144545 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
144546 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144547 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
144548 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144549 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
144550 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
144551 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
144552 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
144553 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
144554 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
144555 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
144556 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144557 TYPE t_array_source_73 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
144558 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
144559 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
144560 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
144561 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
144562 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
144563 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
144564 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
144565 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144566 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
144567 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144571 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
144568 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
144569 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
144570 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
144572 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144573 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
144574 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144575 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
144576 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
144577 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
144578 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
144579 
144580 l_array_source_3              t_array_source_3;
144581 l_array_source_4              t_array_source_4;
144582 l_array_source_5              t_array_source_5;
144583 l_array_source_6              t_array_source_6;
144584 l_array_source_7              t_array_source_7;
144585 l_array_source_8              t_array_source_8;
144586 l_array_source_15              t_array_source_15;
144587 l_array_source_15_meaning      t_array_lookup_meaning;
144588 l_array_source_20              t_array_source_20;
144589 l_array_source_23              t_array_source_23;
144590 l_array_source_34              t_array_source_34;
144591 l_array_source_40              t_array_source_40;
144592 l_array_source_47              t_array_source_47;
144593 l_array_source_47_meaning      t_array_lookup_meaning;
144594 l_array_source_57              t_array_source_57;
144595 l_array_source_66              t_array_source_66;
144596 l_array_source_80              t_array_source_80;
144597 l_array_source_81              t_array_source_81;
144598 l_array_source_82              t_array_source_82;
144599 l_array_source_136              t_array_source_136;
144600 l_array_source_137              t_array_source_137;
144601 l_array_source_138              t_array_source_138;
144602 l_array_source_163              t_array_source_163;
144603 l_array_source_164              t_array_source_164;
144604 l_array_source_164_meaning      t_array_lookup_meaning;
144605 l_array_source_168              t_array_source_168;
144606 
144607 l_array_source_1      t_array_source_1;
144608 l_array_source_21      t_array_source_21;
144609 l_array_source_22      t_array_source_22;
144610 l_array_source_22_meaning      t_array_lookup_meaning;
144611 l_array_source_30      t_array_source_30;
144612 l_array_source_33      t_array_source_33;
144613 l_array_source_33_meaning      t_array_lookup_meaning;
144614 l_array_source_42      t_array_source_42;
144615 l_array_source_43      t_array_source_43;
144616 l_array_source_49      t_array_source_49;
144617 l_array_source_50      t_array_source_50;
144618 l_array_source_52      t_array_source_52;
144619 l_array_source_54      t_array_source_54;
144620 l_array_source_56      t_array_source_56;
144621 l_array_source_58      t_array_source_58;
144622 l_array_source_59      t_array_source_59;
144623 l_array_source_60      t_array_source_60;
144624 l_array_source_61      t_array_source_61;
144625 l_array_source_62      t_array_source_62;
144626 l_array_source_63      t_array_source_63;
144627 l_array_source_64      t_array_source_64;
144628 l_array_source_65      t_array_source_65;
144629 l_array_source_67      t_array_source_67;
144630 l_array_source_68      t_array_source_68;
144631 l_array_source_69      t_array_source_69;
144632 l_array_source_70      t_array_source_70;
144633 l_array_source_71      t_array_source_71;
144634 l_array_source_72      t_array_source_72;
144635 l_array_source_73      t_array_source_73;
144636 l_array_source_74      t_array_source_74;
144637 l_array_source_75      t_array_source_75;
144638 l_array_source_76      t_array_source_76;
144639 l_array_source_77      t_array_source_77;
144640 l_array_source_78      t_array_source_78;
144641 l_array_source_79      t_array_source_79;
144642 l_array_source_79_meaning      t_array_lookup_meaning;
144643 l_array_source_83      t_array_source_83;
144644 l_array_source_84      t_array_source_84;
144645 l_array_source_85      t_array_source_85;
144646 l_array_source_86      t_array_source_86;
144647 l_array_source_87      t_array_source_87;
144648 l_array_source_88      t_array_source_88;
144649 l_array_source_89      t_array_source_89;
144650 l_array_source_90      t_array_source_90;
144651 l_array_source_91      t_array_source_91;
144652 l_array_source_92      t_array_source_92;
144653 l_array_source_93      t_array_source_93;
144654 l_array_source_94      t_array_source_94;
144655 l_array_source_95      t_array_source_95;
144656 l_array_source_95_meaning      t_array_lookup_meaning;
144657 l_array_source_135      t_array_source_135;
144658 l_array_source_135_meaning      t_array_lookup_meaning;
144659 l_array_source_146      t_array_source_146;
144660 
144661 --
144662 CURSOR header_cur
144663 IS
144664 SELECT /*+ leading(xet) cardinality(xet,1) */
144665 -- Event Class Code: CREDIT MEMOS
144666     xet.entity_id
144667    ,xet.legal_entity_id
144668    ,xet.entity_code
144669    ,xet.transaction_number
144670    ,xet.event_id
144671    ,xet.event_class_code
144672    ,xet.event_type_code
144673    ,xet.event_number
144674    ,xet.event_date
144675    ,xet.transaction_date
144676    ,xet.reference_num_1
144677    ,xet.reference_num_2
144678    ,xet.reference_num_3
144679    ,xet.reference_num_4
144680    ,xet.reference_char_1
144681    ,xet.reference_char_2
144682    ,xet.reference_char_3
144683    ,xet.reference_char_4
144684    ,xet.reference_date_1
144688    ,xet.event_created_by
144685    ,xet.reference_date_2
144686    ,xet.reference_date_3
144687    ,xet.reference_date_4
144689    ,xet.budgetary_control_flag 
144690   , h2.INV_TRANSACTION_NUMBER    source_3
144691   , h2.AI_INVOICE_DATE    source_4
144692   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
144693   , h2.DOC_SEQUENCE_NAME    source_6
144694   , h2.INV_DOC_SEQUENCE_VALUE    source_7
144695   , h2.AI_DESCRIPTION    source_8
144696   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
144697   , fvl15.meaning   source_15_meaning
144698   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
144699   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
144700   , h2.AI_ACCTS_PAY_CCID    source_34
144701   , h4.FSP_RETAINAGE_ACCOUNT    source_40
144702   , h4.ASP_AUTO_OFFSET_FLAG    source_47
144703   , fvl47.meaning   source_47_meaning
144704   , h2.AI_INVOICE_ID    source_57
144705   , h2.AI_INVOICE_CURRENCY_CODE    source_66
144706   , h2.AI_VENDOR_ID    source_80
144707   , h2.AI_VENDOR_SITE_ID    source_81
144708   , h2.THIRD_PARTY_TYPE    source_82
144709   , h2.INV_EXCHANGE_DATE    source_136
144710   , h2.INV_EXCHANGE_RATE    source_137
144711   , h2.INV_EXCHANGE_RATE_TYPE    source_138
144712   , h2.AI_SOURCE    source_163
144713   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_164
144714   , fvl164.meaning   source_164_meaning
144715   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
144716   FROM xla_events_gt     xet 
144717   , AP_INVOICE_EXTRACT_HEADER_V  h2
144718   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
144719   , fnd_lookup_values    fvl15
144720   , fnd_lookup_values    fvl47
144721   , fnd_lookup_values    fvl164
144722  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
144723    and xet.event_class_code = C_EVENT_CLASS_CODE
144724    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
144725  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
144726   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
144727   AND fvl15.view_application_id(+) = 200
144728   AND fvl15.language(+)            = USERENV('LANG')
144729      AND fvl47.lookup_type(+)         = 'YES_NO'
144730   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
144731   AND fvl47.view_application_id(+) = 0
144732   AND fvl47.language(+)            = USERENV('LANG')
144733      AND fvl164.lookup_type(+)         = 'INVOICE TYPE'
144734   AND fvl164.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
144735   AND fvl164.view_application_id(+) = 200
144736   AND fvl164.language(+)            = USERENV('LANG')
144737   
144738  ORDER BY event_id
144739 ;
144740 
144741 
144742 --
144743 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
144744 IS
144745 SELECT  /*+ leading(xet) cardinality(xet,1) */
144746 -- Event Class Code: CREDIT MEMOS
144747     xet.entity_id
144748    ,xet.legal_entity_id
144749    ,xet.entity_code
144750    ,xet.transaction_number
144751    ,xet.event_id
144752    ,xet.event_class_code
144753    ,xet.event_type_code
144754    ,xet.event_number
144755    ,xet.event_date
144756    ,xet.transaction_date
144757    ,xet.reference_num_1
144758    ,xet.reference_num_2
144759    ,xet.reference_num_3
144760    ,xet.reference_num_4
144761    ,xet.reference_char_1
144762    ,xet.reference_char_2
144763    ,xet.reference_char_3
144764    ,xet.reference_char_4
144765    ,xet.reference_date_1
144766    ,xet.reference_date_2
144767    ,xet.reference_date_3
144768    ,xet.reference_date_4
144769    ,xet.event_created_by
144770    ,xet.budgetary_control_flag
144771  , l1.LINE_NUMBER  
144772   , l1.AID_DESCRIPTION    source_1
144773   , l1.INV_DIST_BASE_AMOUNT    source_21
144774   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
144775   , fvl22.meaning   source_22_meaning
144776   , l1.AID_DIST_CCID    source_30
144777   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
144778   , fvl33.meaning   source_33_meaning
144779   , l1.AID_RET_RELATED_DIST_CCID    source_42
144780   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
144781   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_49
144782   , l1.ASAT_LIAB_CCID    source_50
144783   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
144784   , l1.DISTRIBUTION_LINK_TYPE    source_54
144785   , l1.ALLOC_TO_MAIN_DIST_ID    source_56
144786   , l1.BUS_FLOW_PO_APP_ID    source_58
144787   , l1.BUS_FLOW_PO_DIST_TYPE    source_59
144788   , l1.BUS_FLOW_PO_ENTITY_CODE    source_60
144789   , l1.BUS_FLOW_PO_DIST_ID    source_61
144790   , l1.BUS_FLOW_PO_DOC_ID    source_62
144791   , l1.AID_INVOICE_DIST_ID    source_63
144792   , l1.UPG_ENC_CR_CCID    source_64
144793   , l1.UPG_ENC_CR_AMT    source_65
144794   , l1.UPG_ENC_CR_BASE_AMT    source_67
144795   , l1.UPG_ENC_DR_CCID    source_68
144796   , l1.UPG_ENC_DR_AMT    source_69
144797   , l1.UPG_ENC_DR_BASE_AMT    source_70
144798   , l1.UPG_AP_ENCUM_OPTION    source_71
144799   , l1.AID_AMOUNT    source_72
144800   , l3.POH_RATE_DATE    source_73
144801   , l3.POH_RATE    source_74
144802   , l3.POH_RATE_TYPE    source_75
144803   , l1.DEFERRED_END_DATE    source_76
144804   , l1.DEFERRED_OPTION    source_77
144805   , l1.DEFERRED_START_DATE    source_78
144806   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
144807   , fvl79.meaning   source_79_meaning
144808   , l1.AID_PARENT_REVERSAL_ID    source_83
144809   , l1.AID_STAT_AMOUNT    source_84
144810   , l5.TAX_LINE_ID    source_85
144811   , l6.REC_NREC_TAX_DIST_ID    source_86
144812   , l1.SUMMARY_TAX_LINE_ID    source_87
144813   , l1.UPG_CR_ENC_TYPE_ID    source_88
144814   , l1.UPG_DR_ENC_TYPE_ID    source_89
144815   , l1.BUS_FLOW_AP_APP_ID    source_90
144816   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
144817   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
144818   , l1.BUS_FLOW_INV_DIST_ID    source_93
144819   , l1.BUS_FLOW_INV_ID    source_94
144820   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_95
144821   , fvl95.meaning   source_95_meaning
144822   , l1.SELF_ASSESSED_TAX_FLAG    source_135
144826   , AP_INVOICE_EXTRACT_DETAILS_V  l1
144823   , fvl135.meaning   source_135_meaning
144824   , l1.AID_PROJECT_ID    source_146
144825   FROM xla_events_gt     xet 
144827   , AP_PO_HEADERS_EXTRACT_V  l3
144828   , ZX_AP_DEF_TAX_EXTRACT_V  l5
144829   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
144830   , fnd_lookup_values    fvl22
144831   , fnd_lookup_values    fvl33
144832   , fnd_lookup_values    fvl79
144833   , fnd_lookup_values    fvl95
144834   , fnd_lookup_values    fvl135
144835  WHERE xet.event_id between x_first_event_id and x_last_event_id
144836    and xet.event_date between p_pad_start_date and p_pad_end_date
144837    and xet.event_class_code = C_EVENT_CLASS_CODE
144838    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
144839  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'
144840   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
144841   AND fvl22.view_application_id(+) = 201
144842   AND fvl22.language(+)            = USERENV('LANG')
144843      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
144844   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
144845   AND fvl33.view_application_id(+) = 200
144846   AND fvl33.language(+)            = USERENV('LANG')
144847      AND fvl79.lookup_type(+)         = 'YES_NO'
144848   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
144849   AND fvl79.view_application_id(+) = 0
144850   AND fvl79.language(+)            = USERENV('LANG')
144851      AND fvl95.lookup_type(+)         = 'YES_NO'
144852   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
144853   AND fvl95.view_application_id(+) = 0
144854   AND fvl95.language(+)            = USERENV('LANG')
144855      AND fvl135.lookup_type(+)         = 'YES_NO'
144856   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
144857   AND fvl135.view_application_id(+) = 0
144858   AND fvl135.language(+)            = USERENV('LANG')
144859   ;
144860 
144861 --
144862 BEGIN
144863 IF g_log_enabled THEN
144864    l_log_module := C_DEFAULT_MODULE||'.EventClass_226';
144865 END IF;
144866 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144867    trace
144868       (p_msg      => 'BEGIN of EventClass_226'
144869       ,p_level    => C_LEVEL_PROCEDURE
144870       ,p_module   => l_log_module);
144871 END IF;
144872 
144873 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144874    trace
144875       (p_msg      => 'p_application_id = '||p_application_id||
144876                      ' - p_base_ledger_id = '||p_base_ledger_id||
144877                      ' - p_target_ledger_id  = '||p_target_ledger_id||
144878                      ' - p_language = '||p_language||
144879                      ' - p_currency_code = '||p_currency_code||
144880                      ' - p_sla_ledger_id = '||p_sla_ledger_id
144881       ,p_level    => C_LEVEL_STATEMENT
144882       ,p_module   => l_log_module);
144883 END IF;
144884 --
144885 -- initialze arrays
144886 --
144887 g_array_event.DELETE;
144888 l_rec_array_event := l_null_rec_array_event;
144889 --
144890 --------------------------------------
144891 -- 4262811 Initialze MPA Line Number
144892 --------------------------------------
144893 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
144894 
144895 --
144896 
144897 --
144898 OPEN header_cur;
144899 --
144900 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144901    trace
144902    (p_msg      => 'SQL - FETCH header_cur'
144903    ,p_level    => C_LEVEL_STATEMENT
144904    ,p_module   => l_log_module);
144905 END IF;
144906 --
144907 LOOP
144908 FETCH header_cur BULK COLLECT INTO
144909         l_array_entity_id
144910       , l_array_legal_entity_id
144911       , l_array_entity_code
144912       , l_array_transaction_num
144913       , l_array_event_id
144914       , l_array_class_code
144915       , l_array_event_type
144916       , l_array_event_number
144917       , l_array_event_date
144918       , l_array_transaction_date
144919       , l_array_reference_num_1
144920       , l_array_reference_num_2
144921       , l_array_reference_num_3
144922       , l_array_reference_num_4
144923       , l_array_reference_char_1
144924       , l_array_reference_char_2
144925       , l_array_reference_char_3
144926       , l_array_reference_char_4
144927       , l_array_reference_date_1
144928       , l_array_reference_date_2
144929       , l_array_reference_date_3
144930       , l_array_reference_date_4
144931       , l_array_event_created_by
144932       , l_array_budgetary_control_flag 
144933       , l_array_source_3
144934       , l_array_source_4
144935       , l_array_source_5
144936       , l_array_source_6
144937       , l_array_source_7
144938       , l_array_source_8
144939       , l_array_source_15
144940       , l_array_source_15_meaning
144941       , l_array_source_20
144942       , l_array_source_23
144943       , l_array_source_34
144944       , l_array_source_40
144945       , l_array_source_47
144946       , l_array_source_47_meaning
144947       , l_array_source_57
144948       , l_array_source_66
144949       , l_array_source_80
144950       , l_array_source_81
144951       , l_array_source_82
144952       , l_array_source_136
144953       , l_array_source_137
144954       , l_array_source_138
144955       , l_array_source_163
144956       , l_array_source_164
144957       , l_array_source_164_meaning
144958       , l_array_source_168
144959       LIMIT l_rows;
144960 --
144961 IF (C_LEVEL_EVENT >= g_log_level) THEN
144962    trace
144963    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
144964    ,p_level    => C_LEVEL_EVENT
144965    ,p_module   => l_log_module);
144966 END IF;
144967 --
144968 EXIT WHEN l_array_entity_id.COUNT = 0;
144969 
144973 
144970 -- initialize arrays
144971 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
144972 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
144974 --
144975 -- Bug 4458708
144976 --
144977 XLA_AE_LINES_PKG.g_LineNumber := 0;
144978 
144979 
144980 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
144981 g_last_hdr_idx := l_array_event_id.LAST;
144982 --
144983 -- loop for the headers. Each iteration is for each header extract row
144984 -- fetched in header cursor
144985 --
144986 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
144987 
144988 --
144989 -- set event info as cache for other routines to refer event attributes
144990 --
144991 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
144992    (p_application_id           => p_application_id
144993    ,p_primary_ledger_id        => p_primary_ledger_id
144994    ,p_base_ledger_id           => p_base_ledger_id
144995    ,p_target_ledger_id         => p_target_ledger_id
144996    ,p_entity_id                => l_array_entity_id(hdr_idx)
144997    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
144998    ,p_entity_code              => l_array_entity_code(hdr_idx)
144999    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
145000    ,p_event_id                 => l_array_event_id(hdr_idx)
145001    ,p_event_class_code         => l_array_class_code(hdr_idx)
145002    ,p_event_type_code          => l_array_event_type(hdr_idx)
145003    ,p_event_number             => l_array_event_number(hdr_idx)
145004    ,p_event_date               => l_array_event_date(hdr_idx)
145005    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
145006    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
145007    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
145008    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
145009    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
145010    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
145011    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
145012    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
145013    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
145014    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
145015    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
145016    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
145017    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
145018    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
145019    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
145020 
145021 --
145022 -- set the status of entry to C_VALID (0)
145023 --
145024 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
145025 
145026 --
145027 -- initialize a row for ae header
145028 --
145029 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
145030 
145031 l_event_id := l_array_event_id(hdr_idx);
145032 
145033 --
145034 -- storing the hdr_idx for event. May be used by line cursor.
145035 --
145036 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
145037 
145038 --
145039 -- store sources from header extract. This can be improved to
145040 -- store only those sources from header extract that may be used in lines
145041 --
145042 
145043 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
145044 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
145045 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
145046 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
145047 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
145048 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
145049 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
145050 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
145051 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
145052 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
145053 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
145054 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
145055 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
145056 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
145057 g_array_event(l_event_id).array_value_num('source_57') := l_array_source_57(hdr_idx);
145058 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
145059 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
145060 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
145061 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
145062 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
145063 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
145064 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
145065 g_array_event(l_event_id).array_value_char('source_163') := l_array_source_163(hdr_idx);
145066 g_array_event(l_event_id).array_value_char('source_164') := l_array_source_164(hdr_idx);
145067 g_array_event(l_event_id).array_value_char('source_164_meaning') := l_array_source_164_meaning(hdr_idx);
145068 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
145069 
145070 --
145071 -- initilaize the status of ae headers for diffrent balance types
145072 -- the status is initialised to C_NOT_CREATED (2)
145073 --
145074 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145075 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145079 -- call api to validate and store accounting attributes for header
145076 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145077 
145078 --
145080 --
145081 
145082 ------------------------------------------------------------
145083 -- Accrual Reversal : to get date for Standard Source (NONE)
145084 ------------------------------------------------------------
145085 l_acc_rev_gl_date_source := NULL;
145086 
145087      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
145088       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
145089      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
145090       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
145091      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
145092       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
145093      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
145094       l_rec_acct_attrs.array_date_value(4) := 
145095 xla_ae_sources_pkg.GetSystemSourceDate(
145096    p_source_code           => 'XLA_EVENT_DATE'
145097  , p_source_type_code      => 'Y'
145098  , p_source_application_id =>  602
145099 );
145100 
145101 
145102 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
145103 
145104 XLA_AE_HEADER_PKG.SetJeCategoryName;
145105 
145106 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
145107 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
145108 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
145109 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
145110 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
145111 
145112 
145113 --
145114 xla_ae_header_pkg.SetHdrDescription(
145115    p_description => Description_2 (
145116    p_application_id => p_application_id 
145117  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
145118  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
145119  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
145120  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
145121  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
145122  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
145123    )
145124 );
145125 --
145126 
145127 -- No header level analytical criteria
145128 
145129 --
145130 --accounting attribute enhancement, bug 3612931
145131 --
145132 l_trx_reversal_source := SUBSTR(NULL, 1,30);
145133 
145134 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
145135    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
145136 
145137    xla_accounting_err_pkg.build_message
145138       (p_appli_s_name            => 'XLA'
145139       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
145140       ,p_token_1                 => 'ACCT_ATTR_NAME'
145141       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
145142       ,p_token_2                 => 'PRODUCT_NAME'
145143       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
145144       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
145145       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
145146       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
145147 
145148 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
145149    --
145150    -- following sets the accounting attributes needed to reverse
145151    -- accounting for a distributeion
145152    --
145153    xla_ae_lines_pkg.SetTrxReversalAttrs
145154       (p_event_id              => l_event_id
145155       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
145156       ,p_trx_reversal_source   => l_trx_reversal_source);
145157 
145158 END IF;
145159 
145160 
145161 ----------------------------------------------------------------
145162 -- 4262811 -  update the header statuses to invalid in need be
145163 ----------------------------------------------------------------
145164 --
145165 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
145166 
145167 
145168   -----------------------------------------------
145169   -- No accrual reversal for the event class/type
145170   -----------------------------------------------
145171 ----------------------------------------------------------------
145172 
145173 --
145174 -- this ends the header loop iteration for one bulk fetch
145175 --
145176 END LOOP;
145177 
145178 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
145179 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
145180 
145181 --
145182 -- insert dummy rows into lines gt table that were created due to
145183 -- transaction reversals
145184 --
145185 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
145186    l_result := XLA_AE_LINES_PKG.InsertLines;
145187 END IF;
145188 
145189 --
145190 -- reset the temp_line_num for each set of events fetched from header
145191 -- cursor rather than doing it for each new event in line cursor
145192 -- Bug 3939231
145193 --
145194 xla_ae_lines_pkg.g_temp_line_num := 0;
145195 
145196 
145197 
145198 --
145199 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
145200 --
145201 --
145202 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145203 
145204       trace
145205          (p_msg      => 'SQL - FETCH line_cur'
145206          ,p_level    => C_LEVEL_STATEMENT
145207          ,p_module   => l_log_module);
145208 
145209 END IF;
145213   --
145210 --
145211 --
145212 LOOP
145214   FETCH line_cur BULK COLLECT INTO
145215         l_array_entity_id
145216       , l_array_legal_entity_id
145217       , l_array_entity_code
145218       , l_array_transaction_num
145219       , l_array_event_id
145220       , l_array_class_code
145221       , l_array_event_type
145222       , l_array_event_number
145223       , l_array_event_date
145224       , l_array_transaction_date
145225       , l_array_reference_num_1
145226       , l_array_reference_num_2
145227       , l_array_reference_num_3
145228       , l_array_reference_num_4
145229       , l_array_reference_char_1
145230       , l_array_reference_char_2
145231       , l_array_reference_char_3
145232       , l_array_reference_char_4
145233       , l_array_reference_date_1
145234       , l_array_reference_date_2
145235       , l_array_reference_date_3
145236       , l_array_reference_date_4
145237       , l_array_event_created_by
145238       , l_array_budgetary_control_flag
145239       , l_array_extract_line_num 
145240       , l_array_source_1
145241       , l_array_source_21
145242       , l_array_source_22
145243       , l_array_source_22_meaning
145244       , l_array_source_30
145245       , l_array_source_33
145246       , l_array_source_33_meaning
145247       , l_array_source_42
145248       , l_array_source_43
145249       , l_array_source_49
145250       , l_array_source_50
145251       , l_array_source_52
145252       , l_array_source_54
145253       , l_array_source_56
145254       , l_array_source_58
145255       , l_array_source_59
145256       , l_array_source_60
145257       , l_array_source_61
145258       , l_array_source_62
145259       , l_array_source_63
145260       , l_array_source_64
145261       , l_array_source_65
145262       , l_array_source_67
145263       , l_array_source_68
145264       , l_array_source_69
145265       , l_array_source_70
145266       , l_array_source_71
145267       , l_array_source_72
145268       , l_array_source_73
145269       , l_array_source_74
145270       , l_array_source_75
145271       , l_array_source_76
145272       , l_array_source_77
145273       , l_array_source_78
145274       , l_array_source_79
145275       , l_array_source_79_meaning
145276       , l_array_source_83
145277       , l_array_source_84
145278       , l_array_source_85
145279       , l_array_source_86
145280       , l_array_source_87
145281       , l_array_source_88
145282       , l_array_source_89
145283       , l_array_source_90
145284       , l_array_source_91
145285       , l_array_source_92
145286       , l_array_source_93
145287       , l_array_source_94
145288       , l_array_source_95
145289       , l_array_source_95_meaning
145290       , l_array_source_135
145291       , l_array_source_135_meaning
145292       , l_array_source_146
145293       LIMIT l_rows;
145294 
145295   --
145296   IF (C_LEVEL_EVENT >= g_log_level) THEN
145297             trace
145298                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
145299                ,p_level    => C_LEVEL_EVENT
145300                ,p_module   => l_log_module);
145301   END IF;
145302   --
145303   EXIT WHEN l_array_entity_id.count = 0;
145304 
145305   XLA_AE_LINES_PKG.g_rec_lines := null;
145306 
145307 --
145308 -- Bug 4458708
145309 --
145310 XLA_AE_LINES_PKG.g_LineNumber := 0;
145311 --
145312 --
145313 
145314 FOR Idx IN 1..l_array_event_id.count LOOP
145315    --
145316    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
145317    --
145318    l_event_id := l_array_event_id(idx);  -- 5648433
145319 
145320    --
145321    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
145322    --
145323 
145324    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
145325              (g_array_event(l_event_id).array_value_num('header_index'))
145326          ,'N'
145327          ) <> 'Y'
145328    THEN
145329       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145330          trace
145331             (p_msg      => 'Trancaction revesal option is not Y '
145332             ,p_level    => C_LEVEL_STATEMENT
145333             ,p_module   => l_log_module);
145334       END IF;
145335 
145336 --
145337 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
145338 --
145339 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
145340 --
145341 -- set event info as cache for other routines to refer event attributes
145342 --
145343 
145344 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
145345    l_previous_event_id := l_event_id;
145346 
145347    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
145348       (p_application_id           => p_application_id
145349       ,p_primary_ledger_id        => p_primary_ledger_id
145350       ,p_base_ledger_id           => p_base_ledger_id
145351       ,p_target_ledger_id         => p_target_ledger_id
145352       ,p_entity_id                => l_array_entity_id(Idx)
145353       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
145354       ,p_entity_code              => l_array_entity_code(Idx)
145355       ,p_transaction_num          => l_array_transaction_num(Idx)
145356       ,p_event_id                 => l_array_event_id(Idx)
145357       ,p_event_class_code         => l_array_class_code(Idx)
145358       ,p_event_type_code          => l_array_event_type(Idx)
145359       ,p_event_number             => l_array_event_number(Idx)
145360       ,p_event_date               => l_array_event_date(Idx)
145361       ,p_transaction_date         => l_array_transaction_date(Idx)
145362       ,p_reference_num_1          => l_array_reference_num_1(Idx)
145363       ,p_reference_num_2          => l_array_reference_num_2(Idx)
145367       ,p_reference_char_2         => l_array_reference_char_2(Idx)
145364       ,p_reference_num_3          => l_array_reference_num_3(Idx)
145365       ,p_reference_num_4          => l_array_reference_num_4(Idx)
145366       ,p_reference_char_1         => l_array_reference_char_1(Idx)
145368       ,p_reference_char_3         => l_array_reference_char_3(Idx)
145369       ,p_reference_char_4         => l_array_reference_char_4(Idx)
145370       ,p_reference_date_1         => l_array_reference_date_1(Idx)
145371       ,p_reference_date_2         => l_array_reference_date_2(Idx)
145372       ,p_reference_date_3         => l_array_reference_date_3(Idx)
145373       ,p_reference_date_4         => l_array_reference_date_4(Idx)
145374       ,p_event_created_by         => l_array_event_created_by(Idx)
145375       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
145376        --
145377 END IF;
145378 
145379 
145380 
145381 --
145382 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
145383 
145384 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
145385 
145386 IF l_continue_with_lines THEN
145387    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
145388       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
145389 
145390       xla_accounting_err_pkg.build_message
145391          (p_appli_s_name            => 'XLA'
145392          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
145393          ,p_token_1                 => 'LINE_NUMBER'
145394          ,p_value_1                 => l_array_extract_line_num(Idx)
145395          ,p_token_2                 => 'PRODUCT_NAME'
145396          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
145397          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
145398          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
145399          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
145400 
145401    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
145402       --
145403       -- following sets the accounting attributes needed to reverse
145404       -- accounting for a distributeion
145405       --
145406 
145407       --
145408       -- 5217187
145409       --
145410       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
145411       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
145412                                        g_array_event(l_event_id).array_value_num('header_index'));
145413       --
145414       --
145415 
145416       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
145417       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
145418       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
145419       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_63(Idx);
145420       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
145421       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
145422       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
145423       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_64(Idx);
145424       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
145425       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_65(Idx);
145426       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
145427       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_66');
145428       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
145429       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_67(Idx);
145430       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
145431       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_68(Idx);
145432       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
145433       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_69(Idx);
145434       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
145435       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_66');
145436       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
145437       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_70(Idx);
145438       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
145439       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_71(Idx);
145440       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
145441       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_82');
145442       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
145443       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_83(Idx);
145444       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
145445       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_54(Idx);
145446       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
145447       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_85(Idx);
145448       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
145449       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_86(Idx);
145450       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
145451       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_87(Idx);
145452       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
145453       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_88(Idx);
145454       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
145455       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_89(Idx);
145456 
145457 
145458       xla_ae_lines_pkg.SetAcctReversalAttrs
145459          (p_event_id             => l_event_id
145460          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
145464 
145461          ,p_calculate_acctd_flag => l_calculate_acctd_flag
145462          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
145463    END IF;
145465    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
145466        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
145467 
145468 --
145469 AcctLineType_46 (
145470  p_application_id  => p_application_id
145471  ,p_event_id     => l_event_id
145472  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145473  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145474  ,p_actual_flag => l_actual_flag
145475  ,p_balance_type_code => l_balance_type_code
145476  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145477  
145478  , p_source_1 => l_array_source_1(Idx)
145479  , p_source_21 => l_array_source_21(Idx)
145480  , p_source_30 => l_array_source_30(Idx)
145481  , p_source_33 => l_array_source_33(Idx)
145482  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145483  , p_source_52 => l_array_source_52(Idx)
145484  , p_source_54 => l_array_source_54(Idx)
145485  , p_source_56 => l_array_source_56(Idx)
145486  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145487  , p_source_58 => l_array_source_58(Idx)
145488  , p_source_59 => l_array_source_59(Idx)
145489  , p_source_60 => l_array_source_60(Idx)
145490  , p_source_61 => l_array_source_61(Idx)
145491  , p_source_62 => l_array_source_62(Idx)
145492  , p_source_63 => l_array_source_63(Idx)
145493  , p_source_64 => l_array_source_64(Idx)
145494  , p_source_65 => l_array_source_65(Idx)
145495  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145496  , p_source_67 => l_array_source_67(Idx)
145497  , p_source_68 => l_array_source_68(Idx)
145498  , p_source_69 => l_array_source_69(Idx)
145499  , p_source_70 => l_array_source_70(Idx)
145500  , p_source_71 => l_array_source_71(Idx)
145501  , p_source_72 => l_array_source_72(Idx)
145502  , p_source_73 => l_array_source_73(Idx)
145503  , p_source_74 => l_array_source_74(Idx)
145504  , p_source_75 => l_array_source_75(Idx)
145505  , p_source_76 => l_array_source_76(Idx)
145506  , p_source_77 => l_array_source_77(Idx)
145507  , p_source_78 => l_array_source_78(Idx)
145508  , p_source_79 => l_array_source_79(Idx)
145509  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145510  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145511  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145512  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145513  , p_source_83 => l_array_source_83(Idx)
145514  , p_source_84 => l_array_source_84(Idx)
145515  , p_source_85 => l_array_source_85(Idx)
145516  , p_source_86 => l_array_source_86(Idx)
145517  , p_source_87 => l_array_source_87(Idx)
145518  , p_source_88 => l_array_source_88(Idx)
145519  , p_source_89 => l_array_source_89(Idx)
145520  );
145521 If(l_balance_type_code = 'A') THEN
145522   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145523 END IF;
145524 
145525 --
145526 
145527 
145528 --
145529 AcctLineType_50 (
145530  p_application_id  => p_application_id
145531  ,p_event_id     => l_event_id
145532  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145533  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145534  ,p_actual_flag => l_actual_flag
145535  ,p_balance_type_code => l_balance_type_code
145536  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145537  
145538  , p_source_1 => l_array_source_1(Idx)
145539  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145540  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145541  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145542  , p_source_21 => l_array_source_21(Idx)
145543  , p_source_22 => l_array_source_22(Idx)
145544  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145545  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145546  , p_source_30 => l_array_source_30(Idx)
145547  , p_source_33 => l_array_source_33(Idx)
145548  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145549  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145550  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145551  , p_source_52 => l_array_source_52(Idx)
145552  , p_source_54 => l_array_source_54(Idx)
145553  , p_source_56 => l_array_source_56(Idx)
145554  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145555  , p_source_63 => l_array_source_63(Idx)
145556  , p_source_64 => l_array_source_64(Idx)
145557  , p_source_65 => l_array_source_65(Idx)
145558  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145559  , p_source_67 => l_array_source_67(Idx)
145560  , p_source_68 => l_array_source_68(Idx)
145561  , p_source_69 => l_array_source_69(Idx)
145562  , p_source_70 => l_array_source_70(Idx)
145563  , p_source_71 => l_array_source_71(Idx)
145564  , p_source_76 => l_array_source_76(Idx)
145565  , p_source_77 => l_array_source_77(Idx)
145566  , p_source_78 => l_array_source_78(Idx)
145567  , p_source_79 => l_array_source_79(Idx)
145568  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145569  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145570  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145571  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145572  , p_source_83 => l_array_source_83(Idx)
145573  , p_source_84 => l_array_source_84(Idx)
145574  , p_source_85 => l_array_source_85(Idx)
145575  , p_source_86 => l_array_source_86(Idx)
145576  , p_source_87 => l_array_source_87(Idx)
145577  , p_source_88 => l_array_source_88(Idx)
145578  , p_source_89 => l_array_source_89(Idx)
145579  , p_source_90 => l_array_source_90(Idx)
145580  , p_source_91 => l_array_source_91(Idx)
145581  , p_source_92 => l_array_source_92(Idx)
145582  , p_source_93 => l_array_source_93(Idx)
145583  , p_source_94 => l_array_source_94(Idx)
145584  );
145585 If(l_balance_type_code = 'A') THEN
145589 --
145586   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145587 END IF;
145588 
145590 
145591 
145592 --
145593 AcctLineType_54 (
145594  p_application_id  => p_application_id
145595  ,p_event_id     => l_event_id
145596  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145597  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145598  ,p_actual_flag => l_actual_flag
145599  ,p_balance_type_code => l_balance_type_code
145600  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145601  
145602  , p_source_1 => l_array_source_1(Idx)
145603  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145604  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145605  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145606  , p_source_21 => l_array_source_21(Idx)
145607  , p_source_22 => l_array_source_22(Idx)
145608  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145609  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145610  , p_source_30 => l_array_source_30(Idx)
145611  , p_source_33 => l_array_source_33(Idx)
145612  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145613  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145614  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145615  , p_source_52 => l_array_source_52(Idx)
145616  , p_source_54 => l_array_source_54(Idx)
145617  , p_source_56 => l_array_source_56(Idx)
145618  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145619  , p_source_63 => l_array_source_63(Idx)
145620  , p_source_64 => l_array_source_64(Idx)
145621  , p_source_65 => l_array_source_65(Idx)
145622  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145623  , p_source_67 => l_array_source_67(Idx)
145624  , p_source_68 => l_array_source_68(Idx)
145625  , p_source_69 => l_array_source_69(Idx)
145626  , p_source_70 => l_array_source_70(Idx)
145627  , p_source_71 => l_array_source_71(Idx)
145628  , p_source_76 => l_array_source_76(Idx)
145629  , p_source_77 => l_array_source_77(Idx)
145630  , p_source_78 => l_array_source_78(Idx)
145631  , p_source_79 => l_array_source_79(Idx)
145632  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145633  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145634  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145635  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145636  , p_source_83 => l_array_source_83(Idx)
145637  , p_source_84 => l_array_source_84(Idx)
145638  , p_source_85 => l_array_source_85(Idx)
145639  , p_source_86 => l_array_source_86(Idx)
145640  , p_source_87 => l_array_source_87(Idx)
145641  , p_source_88 => l_array_source_88(Idx)
145642  , p_source_89 => l_array_source_89(Idx)
145643  , p_source_90 => l_array_source_90(Idx)
145644  , p_source_91 => l_array_source_91(Idx)
145645  , p_source_92 => l_array_source_92(Idx)
145646  , p_source_93 => l_array_source_93(Idx)
145647  , p_source_94 => l_array_source_94(Idx)
145648  , p_source_95 => l_array_source_95(Idx)
145649  , p_source_95_meaning => l_array_source_95_meaning(Idx)
145650  );
145651 If(l_balance_type_code = 'A') THEN
145652   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145653 END IF;
145654 
145655 --
145656 
145657 
145658 --
145659 AcctLineType_105 (
145660  p_application_id  => p_application_id
145661  ,p_event_id     => l_event_id
145662  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145663  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145664  ,p_actual_flag => l_actual_flag
145665  ,p_balance_type_code => l_balance_type_code
145666  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145667  
145668  , p_source_1 => l_array_source_1(Idx)
145669  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145670  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145671  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145672  , p_source_21 => l_array_source_21(Idx)
145673  , p_source_22 => l_array_source_22(Idx)
145674  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145675  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145676  , p_source_30 => l_array_source_30(Idx)
145677  , p_source_33 => l_array_source_33(Idx)
145678  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145679  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145680  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145681  , p_source_52 => l_array_source_52(Idx)
145682  , p_source_54 => l_array_source_54(Idx)
145683  , p_source_56 => l_array_source_56(Idx)
145684  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145685  , p_source_63 => l_array_source_63(Idx)
145686  , p_source_64 => l_array_source_64(Idx)
145687  , p_source_65 => l_array_source_65(Idx)
145688  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145689  , p_source_67 => l_array_source_67(Idx)
145690  , p_source_68 => l_array_source_68(Idx)
145691  , p_source_69 => l_array_source_69(Idx)
145692  , p_source_70 => l_array_source_70(Idx)
145693  , p_source_71 => l_array_source_71(Idx)
145694  , p_source_72 => l_array_source_72(Idx)
145695  , p_source_76 => l_array_source_76(Idx)
145696  , p_source_77 => l_array_source_77(Idx)
145697  , p_source_78 => l_array_source_78(Idx)
145698  , p_source_79 => l_array_source_79(Idx)
145699  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145700  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145701  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145702  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145703  , p_source_83 => l_array_source_83(Idx)
145704  , p_source_84 => l_array_source_84(Idx)
145705  , p_source_85 => l_array_source_85(Idx)
145706  , p_source_86 => l_array_source_86(Idx)
145707  , p_source_87 => l_array_source_87(Idx)
145708  , p_source_88 => l_array_source_88(Idx)
145712  , p_source_92 => l_array_source_92(Idx)
145709  , p_source_89 => l_array_source_89(Idx)
145710  , p_source_90 => l_array_source_90(Idx)
145711  , p_source_91 => l_array_source_91(Idx)
145713  , p_source_93 => l_array_source_93(Idx)
145714  , p_source_94 => l_array_source_94(Idx)
145715  , p_source_95 => l_array_source_95(Idx)
145716  , p_source_95_meaning => l_array_source_95_meaning(Idx)
145717  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
145718  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
145719  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
145720  );
145721 If(l_balance_type_code = 'A') THEN
145722   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145723 END IF;
145724 
145725 --
145726 
145727 
145728 --
145729 AcctLineType_114 (
145730  p_application_id  => p_application_id
145731  ,p_event_id     => l_event_id
145732  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145733  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145734  ,p_actual_flag => l_actual_flag
145735  ,p_balance_type_code => l_balance_type_code
145736  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145737  
145738  , p_source_1 => l_array_source_1(Idx)
145739  , p_source_21 => l_array_source_21(Idx)
145740  , p_source_30 => l_array_source_30(Idx)
145741  , p_source_33 => l_array_source_33(Idx)
145742  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145743  , p_source_52 => l_array_source_52(Idx)
145744  , p_source_54 => l_array_source_54(Idx)
145745  , p_source_56 => l_array_source_56(Idx)
145746  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145747  , p_source_63 => l_array_source_63(Idx)
145748  , p_source_64 => l_array_source_64(Idx)
145749  , p_source_65 => l_array_source_65(Idx)
145750  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145751  , p_source_67 => l_array_source_67(Idx)
145752  , p_source_68 => l_array_source_68(Idx)
145753  , p_source_69 => l_array_source_69(Idx)
145754  , p_source_70 => l_array_source_70(Idx)
145755  , p_source_71 => l_array_source_71(Idx)
145756  , p_source_72 => l_array_source_72(Idx)
145757  , p_source_76 => l_array_source_76(Idx)
145758  , p_source_77 => l_array_source_77(Idx)
145759  , p_source_78 => l_array_source_78(Idx)
145760  , p_source_79 => l_array_source_79(Idx)
145761  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145762  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145763  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145764  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145765  , p_source_83 => l_array_source_83(Idx)
145766  , p_source_84 => l_array_source_84(Idx)
145767  , p_source_85 => l_array_source_85(Idx)
145768  , p_source_86 => l_array_source_86(Idx)
145769  , p_source_87 => l_array_source_87(Idx)
145770  , p_source_88 => l_array_source_88(Idx)
145771  , p_source_89 => l_array_source_89(Idx)
145772  , p_source_90 => l_array_source_90(Idx)
145773  , p_source_91 => l_array_source_91(Idx)
145774  , p_source_92 => l_array_source_92(Idx)
145775  , p_source_93 => l_array_source_93(Idx)
145776  , p_source_94 => l_array_source_94(Idx)
145777  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
145778  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
145779  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
145780  , p_source_146 => l_array_source_146(Idx)
145781  );
145782 If(l_balance_type_code = 'A') THEN
145783   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145784 END IF;
145785 
145786 --
145787 
145788 
145789 --
145790 AcctLineType_136 (
145791  p_application_id  => p_application_id
145792  ,p_event_id     => l_event_id
145793  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145794  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145795  ,p_actual_flag => l_actual_flag
145796  ,p_balance_type_code => l_balance_type_code
145797  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145798  
145799  , p_source_1 => l_array_source_1(Idx)
145800  , p_source_21 => l_array_source_21(Idx)
145801  , p_source_30 => l_array_source_30(Idx)
145802  , p_source_33 => l_array_source_33(Idx)
145803  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145804  , p_source_52 => l_array_source_52(Idx)
145805  , p_source_54 => l_array_source_54(Idx)
145806  , p_source_56 => l_array_source_56(Idx)
145807  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145808  , p_source_63 => l_array_source_63(Idx)
145809  , p_source_64 => l_array_source_64(Idx)
145810  , p_source_65 => l_array_source_65(Idx)
145811  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145812  , p_source_67 => l_array_source_67(Idx)
145813  , p_source_68 => l_array_source_68(Idx)
145814  , p_source_69 => l_array_source_69(Idx)
145815  , p_source_70 => l_array_source_70(Idx)
145816  , p_source_71 => l_array_source_71(Idx)
145817  , p_source_72 => l_array_source_72(Idx)
145818  , p_source_76 => l_array_source_76(Idx)
145819  , p_source_77 => l_array_source_77(Idx)
145820  , p_source_78 => l_array_source_78(Idx)
145821  , p_source_79 => l_array_source_79(Idx)
145822  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145823  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145824  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145825  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145826  , p_source_83 => l_array_source_83(Idx)
145827  , p_source_84 => l_array_source_84(Idx)
145828  , p_source_85 => l_array_source_85(Idx)
145829  , p_source_86 => l_array_source_86(Idx)
145830  , p_source_87 => l_array_source_87(Idx)
145831  , p_source_88 => l_array_source_88(Idx)
145832  , p_source_89 => l_array_source_89(Idx)
145833  , p_source_90 => l_array_source_90(Idx)
145834  , p_source_91 => l_array_source_91(Idx)
145835  , p_source_92 => l_array_source_92(Idx)
145836  , p_source_93 => l_array_source_93(Idx)
145840  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
145837  , p_source_94 => l_array_source_94(Idx)
145838  , p_source_95 => l_array_source_95(Idx)
145839  , p_source_95_meaning => l_array_source_95_meaning(Idx)
145841  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
145842  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
145843  );
145844 If(l_balance_type_code = 'A') THEN
145845   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145846 END IF;
145847 
145848 --
145849 
145850 
145851 --
145852 AcctLineType_140 (
145853  p_application_id  => p_application_id
145854  ,p_event_id     => l_event_id
145855  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145856  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145857  ,p_actual_flag => l_actual_flag
145858  ,p_balance_type_code => l_balance_type_code
145859  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145860  
145861  , p_source_1 => l_array_source_1(Idx)
145862  , p_source_21 => l_array_source_21(Idx)
145863  , p_source_30 => l_array_source_30(Idx)
145864  , p_source_33 => l_array_source_33(Idx)
145865  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145866  , p_source_52 => l_array_source_52(Idx)
145867  , p_source_54 => l_array_source_54(Idx)
145868  , p_source_56 => l_array_source_56(Idx)
145869  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145870  , p_source_63 => l_array_source_63(Idx)
145871  , p_source_64 => l_array_source_64(Idx)
145872  , p_source_65 => l_array_source_65(Idx)
145873  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145874  , p_source_67 => l_array_source_67(Idx)
145875  , p_source_68 => l_array_source_68(Idx)
145876  , p_source_69 => l_array_source_69(Idx)
145877  , p_source_70 => l_array_source_70(Idx)
145878  , p_source_71 => l_array_source_71(Idx)
145879  , p_source_72 => l_array_source_72(Idx)
145880  , p_source_76 => l_array_source_76(Idx)
145881  , p_source_77 => l_array_source_77(Idx)
145882  , p_source_78 => l_array_source_78(Idx)
145883  , p_source_79 => l_array_source_79(Idx)
145884  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145885  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145886  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145887  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145888  , p_source_83 => l_array_source_83(Idx)
145889  , p_source_84 => l_array_source_84(Idx)
145890  , p_source_85 => l_array_source_85(Idx)
145891  , p_source_86 => l_array_source_86(Idx)
145892  , p_source_87 => l_array_source_87(Idx)
145893  , p_source_88 => l_array_source_88(Idx)
145894  , p_source_89 => l_array_source_89(Idx)
145895  , p_source_90 => l_array_source_90(Idx)
145896  , p_source_91 => l_array_source_91(Idx)
145897  , p_source_92 => l_array_source_92(Idx)
145898  , p_source_93 => l_array_source_93(Idx)
145899  , p_source_94 => l_array_source_94(Idx)
145900  , p_source_95 => l_array_source_95(Idx)
145901  , p_source_95_meaning => l_array_source_95_meaning(Idx)
145902  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
145903  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
145904  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
145905  , p_source_146 => l_array_source_146(Idx)
145906  );
145907 If(l_balance_type_code = 'A') THEN
145908   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145909 END IF;
145910 
145911 --
145912 
145913 
145914 --
145915 AcctLineType_146 (
145916  p_application_id  => p_application_id
145917  ,p_event_id     => l_event_id
145918  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145919  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145920  ,p_actual_flag => l_actual_flag
145921  ,p_balance_type_code => l_balance_type_code
145922  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145923  
145924  , p_source_1 => l_array_source_1(Idx)
145925  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145926  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145927  , p_source_21 => l_array_source_21(Idx)
145928  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
145929  , p_source_52 => l_array_source_52(Idx)
145930  , p_source_54 => l_array_source_54(Idx)
145931  , p_source_56 => l_array_source_56(Idx)
145932  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145933  , p_source_63 => l_array_source_63(Idx)
145934  , p_source_64 => l_array_source_64(Idx)
145935  , p_source_65 => l_array_source_65(Idx)
145936  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
145937  , p_source_67 => l_array_source_67(Idx)
145938  , p_source_68 => l_array_source_68(Idx)
145939  , p_source_69 => l_array_source_69(Idx)
145940  , p_source_70 => l_array_source_70(Idx)
145941  , p_source_71 => l_array_source_71(Idx)
145942  , p_source_72 => l_array_source_72(Idx)
145943  , p_source_76 => l_array_source_76(Idx)
145944  , p_source_77 => l_array_source_77(Idx)
145945  , p_source_78 => l_array_source_78(Idx)
145946  , p_source_79 => l_array_source_79(Idx)
145947  , p_source_79_meaning => l_array_source_79_meaning(Idx)
145948  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
145949  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145950  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
145951  , p_source_83 => l_array_source_83(Idx)
145952  , p_source_84 => l_array_source_84(Idx)
145953  , p_source_85 => l_array_source_85(Idx)
145954  , p_source_86 => l_array_source_86(Idx)
145955  , p_source_87 => l_array_source_87(Idx)
145956  , p_source_88 => l_array_source_88(Idx)
145957  , p_source_89 => l_array_source_89(Idx)
145958  , p_source_90 => l_array_source_90(Idx)
145959  , p_source_91 => l_array_source_91(Idx)
145960  , p_source_92 => l_array_source_92(Idx)
145961  , p_source_93 => l_array_source_93(Idx)
145962  , p_source_94 => l_array_source_94(Idx)
145966  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
145963  , p_source_135 => l_array_source_135(Idx)
145964  , p_source_135_meaning => l_array_source_135_meaning(Idx)
145965  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
145967  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
145968  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
145969  );
145970 If(l_balance_type_code = 'A') THEN
145971   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145972 END IF;
145973 
145974 --
145975 
145976 
145977 --
145978 AcctLineType_147 (
145979  p_application_id  => p_application_id
145980  ,p_event_id     => l_event_id
145981  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145982  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145983  ,p_actual_flag => l_actual_flag
145984  ,p_balance_type_code => l_balance_type_code
145985  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145986  
145987  , p_source_1 => l_array_source_1(Idx)
145988  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145989  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145990  , p_source_21 => l_array_source_21(Idx)
145991  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
145992  , p_source_52 => l_array_source_52(Idx)
145993  , p_source_54 => l_array_source_54(Idx)
145994  , p_source_56 => l_array_source_56(Idx)
145995  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
145996  , p_source_63 => l_array_source_63(Idx)
145997  , p_source_64 => l_array_source_64(Idx)
145998  , p_source_65 => l_array_source_65(Idx)
145999  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146000  , p_source_67 => l_array_source_67(Idx)
146001  , p_source_68 => l_array_source_68(Idx)
146002  , p_source_69 => l_array_source_69(Idx)
146003  , p_source_70 => l_array_source_70(Idx)
146004  , p_source_71 => l_array_source_71(Idx)
146005  , p_source_72 => l_array_source_72(Idx)
146006  , p_source_76 => l_array_source_76(Idx)
146007  , p_source_77 => l_array_source_77(Idx)
146008  , p_source_78 => l_array_source_78(Idx)
146009  , p_source_79 => l_array_source_79(Idx)
146010  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146011  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146012  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146013  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146014  , p_source_83 => l_array_source_83(Idx)
146015  , p_source_84 => l_array_source_84(Idx)
146016  , p_source_85 => l_array_source_85(Idx)
146017  , p_source_86 => l_array_source_86(Idx)
146018  , p_source_87 => l_array_source_87(Idx)
146019  , p_source_88 => l_array_source_88(Idx)
146020  , p_source_89 => l_array_source_89(Idx)
146021  , p_source_90 => l_array_source_90(Idx)
146022  , p_source_91 => l_array_source_91(Idx)
146023  , p_source_92 => l_array_source_92(Idx)
146024  , p_source_93 => l_array_source_93(Idx)
146025  , p_source_94 => l_array_source_94(Idx)
146026  , p_source_135 => l_array_source_135(Idx)
146027  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146028  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146029  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146030  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146031  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
146032  );
146033 If(l_balance_type_code = 'A') THEN
146034   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146035 END IF;
146036 
146037 --
146038 
146039 
146040 --
146041 AcctLineType_148 (
146042  p_application_id  => p_application_id
146043  ,p_event_id     => l_event_id
146044  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146045  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146046  ,p_actual_flag => l_actual_flag
146047  ,p_balance_type_code => l_balance_type_code
146048  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146049  
146050  , p_source_1 => l_array_source_1(Idx)
146051  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146052  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146053  , p_source_21 => l_array_source_21(Idx)
146054  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
146055  , p_source_52 => l_array_source_52(Idx)
146056  , p_source_54 => l_array_source_54(Idx)
146057  , p_source_56 => l_array_source_56(Idx)
146058  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146059  , p_source_63 => l_array_source_63(Idx)
146060  , p_source_64 => l_array_source_64(Idx)
146061  , p_source_65 => l_array_source_65(Idx)
146062  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146063  , p_source_67 => l_array_source_67(Idx)
146064  , p_source_68 => l_array_source_68(Idx)
146065  , p_source_69 => l_array_source_69(Idx)
146066  , p_source_70 => l_array_source_70(Idx)
146067  , p_source_71 => l_array_source_71(Idx)
146068  , p_source_72 => l_array_source_72(Idx)
146069  , p_source_76 => l_array_source_76(Idx)
146070  , p_source_77 => l_array_source_77(Idx)
146071  , p_source_78 => l_array_source_78(Idx)
146072  , p_source_79 => l_array_source_79(Idx)
146073  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146074  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146075  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146076  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146077  , p_source_83 => l_array_source_83(Idx)
146078  , p_source_84 => l_array_source_84(Idx)
146079  , p_source_85 => l_array_source_85(Idx)
146080  , p_source_86 => l_array_source_86(Idx)
146081  , p_source_87 => l_array_source_87(Idx)
146082  , p_source_88 => l_array_source_88(Idx)
146083  , p_source_89 => l_array_source_89(Idx)
146084  , p_source_90 => l_array_source_90(Idx)
146085  , p_source_91 => l_array_source_91(Idx)
146089  , p_source_135 => l_array_source_135(Idx)
146086  , p_source_92 => l_array_source_92(Idx)
146087  , p_source_93 => l_array_source_93(Idx)
146088  , p_source_94 => l_array_source_94(Idx)
146090  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146091  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146092  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146093  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146094  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
146095  );
146096 If(l_balance_type_code = 'A') THEN
146097   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146098 END IF;
146099 
146100 --
146101 
146102 
146103 --
146104 AcctLineType_168 (
146105  p_application_id  => p_application_id
146106  ,p_event_id     => l_event_id
146107  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146108  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146109  ,p_actual_flag => l_actual_flag
146110  ,p_balance_type_code => l_balance_type_code
146111  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146112  
146113  , p_source_1 => l_array_source_1(Idx)
146114  , p_source_21 => l_array_source_21(Idx)
146115  , p_source_30 => l_array_source_30(Idx)
146116  , p_source_33 => l_array_source_33(Idx)
146117  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146118  , p_source_52 => l_array_source_52(Idx)
146119  , p_source_54 => l_array_source_54(Idx)
146120  , p_source_56 => l_array_source_56(Idx)
146121  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146122  , p_source_63 => l_array_source_63(Idx)
146123  , p_source_64 => l_array_source_64(Idx)
146124  , p_source_65 => l_array_source_65(Idx)
146125  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146126  , p_source_67 => l_array_source_67(Idx)
146127  , p_source_68 => l_array_source_68(Idx)
146128  , p_source_69 => l_array_source_69(Idx)
146129  , p_source_70 => l_array_source_70(Idx)
146130  , p_source_71 => l_array_source_71(Idx)
146131  , p_source_72 => l_array_source_72(Idx)
146132  , p_source_76 => l_array_source_76(Idx)
146133  , p_source_77 => l_array_source_77(Idx)
146134  , p_source_78 => l_array_source_78(Idx)
146135  , p_source_79 => l_array_source_79(Idx)
146136  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146137  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146138  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146139  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146140  , p_source_83 => l_array_source_83(Idx)
146141  , p_source_84 => l_array_source_84(Idx)
146142  , p_source_85 => l_array_source_85(Idx)
146143  , p_source_86 => l_array_source_86(Idx)
146144  , p_source_87 => l_array_source_87(Idx)
146145  , p_source_88 => l_array_source_88(Idx)
146146  , p_source_89 => l_array_source_89(Idx)
146147  , p_source_90 => l_array_source_90(Idx)
146148  , p_source_91 => l_array_source_91(Idx)
146149  , p_source_92 => l_array_source_92(Idx)
146150  , p_source_93 => l_array_source_93(Idx)
146151  , p_source_94 => l_array_source_94(Idx)
146152  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146153  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146154  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146155  , p_source_146 => l_array_source_146(Idx)
146156  );
146157 If(l_balance_type_code = 'A') THEN
146158   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146159 END IF;
146160 
146161 --
146162 
146163 
146164 --
146165 AcctLineType_172 (
146166  p_application_id  => p_application_id
146167  ,p_event_id     => l_event_id
146168  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146169  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146170  ,p_actual_flag => l_actual_flag
146171  ,p_balance_type_code => l_balance_type_code
146172  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146173  
146174  , p_source_1 => l_array_source_1(Idx)
146175  , p_source_21 => l_array_source_21(Idx)
146176  , p_source_30 => l_array_source_30(Idx)
146177  , p_source_33 => l_array_source_33(Idx)
146178  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146179  , p_source_52 => l_array_source_52(Idx)
146180  , p_source_54 => l_array_source_54(Idx)
146181  , p_source_56 => l_array_source_56(Idx)
146182  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146183  , p_source_63 => l_array_source_63(Idx)
146184  , p_source_64 => l_array_source_64(Idx)
146185  , p_source_65 => l_array_source_65(Idx)
146186  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146187  , p_source_67 => l_array_source_67(Idx)
146188  , p_source_68 => l_array_source_68(Idx)
146189  , p_source_69 => l_array_source_69(Idx)
146190  , p_source_70 => l_array_source_70(Idx)
146191  , p_source_71 => l_array_source_71(Idx)
146192  , p_source_72 => l_array_source_72(Idx)
146193  , p_source_73 => l_array_source_73(Idx)
146194  , p_source_74 => l_array_source_74(Idx)
146195  , p_source_75 => l_array_source_75(Idx)
146196  , p_source_76 => l_array_source_76(Idx)
146197  , p_source_77 => l_array_source_77(Idx)
146198  , p_source_78 => l_array_source_78(Idx)
146199  , p_source_79 => l_array_source_79(Idx)
146200  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146201  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146202  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146203  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146204  , p_source_83 => l_array_source_83(Idx)
146205  , p_source_84 => l_array_source_84(Idx)
146206  , p_source_85 => l_array_source_85(Idx)
146207  , p_source_86 => l_array_source_86(Idx)
146208  , p_source_87 => l_array_source_87(Idx)
146209  , p_source_88 => l_array_source_88(Idx)
146210  , p_source_89 => l_array_source_89(Idx)
146211  , p_source_90 => l_array_source_90(Idx)
146212  , p_source_91 => l_array_source_91(Idx)
146216  , p_source_95 => l_array_source_95(Idx)
146213  , p_source_92 => l_array_source_92(Idx)
146214  , p_source_93 => l_array_source_93(Idx)
146215  , p_source_94 => l_array_source_94(Idx)
146217  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146218  , p_source_135 => l_array_source_135(Idx)
146219  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146220  );
146221 If(l_balance_type_code = 'A') THEN
146222   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146223 END IF;
146224 
146225 --
146226 
146227 
146228 --
146229 AcctLineType_175 (
146230  p_application_id  => p_application_id
146231  ,p_event_id     => l_event_id
146232  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146233  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146234  ,p_actual_flag => l_actual_flag
146235  ,p_balance_type_code => l_balance_type_code
146236  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146237  
146238  , p_source_1 => l_array_source_1(Idx)
146239  , p_source_21 => l_array_source_21(Idx)
146240  , p_source_30 => l_array_source_30(Idx)
146241  , p_source_33 => l_array_source_33(Idx)
146242  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146243  , p_source_52 => l_array_source_52(Idx)
146244  , p_source_54 => l_array_source_54(Idx)
146245  , p_source_56 => l_array_source_56(Idx)
146246  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146247  , p_source_63 => l_array_source_63(Idx)
146248  , p_source_64 => l_array_source_64(Idx)
146249  , p_source_65 => l_array_source_65(Idx)
146250  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146251  , p_source_67 => l_array_source_67(Idx)
146252  , p_source_68 => l_array_source_68(Idx)
146253  , p_source_69 => l_array_source_69(Idx)
146254  , p_source_70 => l_array_source_70(Idx)
146255  , p_source_71 => l_array_source_71(Idx)
146256  , p_source_72 => l_array_source_72(Idx)
146257  , p_source_76 => l_array_source_76(Idx)
146258  , p_source_77 => l_array_source_77(Idx)
146259  , p_source_78 => l_array_source_78(Idx)
146260  , p_source_79 => l_array_source_79(Idx)
146261  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146262  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146263  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146264  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146265  , p_source_83 => l_array_source_83(Idx)
146266  , p_source_84 => l_array_source_84(Idx)
146267  , p_source_85 => l_array_source_85(Idx)
146268  , p_source_86 => l_array_source_86(Idx)
146269  , p_source_87 => l_array_source_87(Idx)
146270  , p_source_88 => l_array_source_88(Idx)
146271  , p_source_89 => l_array_source_89(Idx)
146272  , p_source_90 => l_array_source_90(Idx)
146273  , p_source_91 => l_array_source_91(Idx)
146274  , p_source_92 => l_array_source_92(Idx)
146275  , p_source_93 => l_array_source_93(Idx)
146276  , p_source_94 => l_array_source_94(Idx)
146277  , p_source_95 => l_array_source_95(Idx)
146278  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146279  , p_source_135 => l_array_source_135(Idx)
146280  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146281  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146282  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146283  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146284  );
146285 If(l_balance_type_code = 'A') THEN
146286   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146287 END IF;
146288 
146289 --
146290 
146291 
146292 --
146293 AcctLineType_183 (
146294  p_application_id  => p_application_id
146295  ,p_event_id     => l_event_id
146296  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146297  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146298  ,p_actual_flag => l_actual_flag
146299  ,p_balance_type_code => l_balance_type_code
146300  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146301  
146302  , p_source_1 => l_array_source_1(Idx)
146303  , p_source_21 => l_array_source_21(Idx)
146304  , p_source_30 => l_array_source_30(Idx)
146305  , p_source_33 => l_array_source_33(Idx)
146306  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146307  , p_source_52 => l_array_source_52(Idx)
146308  , p_source_54 => l_array_source_54(Idx)
146309  , p_source_56 => l_array_source_56(Idx)
146310  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146311  , p_source_63 => l_array_source_63(Idx)
146312  , p_source_64 => l_array_source_64(Idx)
146313  , p_source_65 => l_array_source_65(Idx)
146314  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146315  , p_source_67 => l_array_source_67(Idx)
146316  , p_source_68 => l_array_source_68(Idx)
146317  , p_source_69 => l_array_source_69(Idx)
146318  , p_source_70 => l_array_source_70(Idx)
146319  , p_source_71 => l_array_source_71(Idx)
146320  , p_source_72 => l_array_source_72(Idx)
146321  , p_source_76 => l_array_source_76(Idx)
146322  , p_source_77 => l_array_source_77(Idx)
146323  , p_source_78 => l_array_source_78(Idx)
146324  , p_source_79 => l_array_source_79(Idx)
146325  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146326  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146327  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146328  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146329  , p_source_83 => l_array_source_83(Idx)
146330  , p_source_84 => l_array_source_84(Idx)
146331  , p_source_85 => l_array_source_85(Idx)
146332  , p_source_86 => l_array_source_86(Idx)
146333  , p_source_87 => l_array_source_87(Idx)
146334  , p_source_88 => l_array_source_88(Idx)
146335  , p_source_89 => l_array_source_89(Idx)
146336  , p_source_90 => l_array_source_90(Idx)
146337  , p_source_91 => l_array_source_91(Idx)
146338  , p_source_92 => l_array_source_92(Idx)
146339  , p_source_93 => l_array_source_93(Idx)
146340  , p_source_94 => l_array_source_94(Idx)
146341  , p_source_135 => l_array_source_135(Idx)
146345  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146342  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146343  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146344  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146346  );
146347 If(l_balance_type_code = 'A') THEN
146348   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146349 END IF;
146350 
146351 --
146352 
146353 
146354 --
146355 AcctLineType_188 (
146356  p_application_id  => p_application_id
146357  ,p_event_id     => l_event_id
146358  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146359  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146360  ,p_actual_flag => l_actual_flag
146361  ,p_balance_type_code => l_balance_type_code
146362  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146363  
146364  , p_source_1 => l_array_source_1(Idx)
146365  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146366  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146367  , p_source_21 => l_array_source_21(Idx)
146368  , p_source_30 => l_array_source_30(Idx)
146369  , p_source_33 => l_array_source_33(Idx)
146370  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146371  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
146372  , p_source_42 => l_array_source_42(Idx)
146373  , p_source_52 => l_array_source_52(Idx)
146374  , p_source_54 => l_array_source_54(Idx)
146375  , p_source_56 => l_array_source_56(Idx)
146376  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146377  , p_source_63 => l_array_source_63(Idx)
146378  , p_source_64 => l_array_source_64(Idx)
146379  , p_source_65 => l_array_source_65(Idx)
146380  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146381  , p_source_67 => l_array_source_67(Idx)
146382  , p_source_68 => l_array_source_68(Idx)
146383  , p_source_69 => l_array_source_69(Idx)
146384  , p_source_70 => l_array_source_70(Idx)
146385  , p_source_71 => l_array_source_71(Idx)
146386  , p_source_72 => l_array_source_72(Idx)
146387  , p_source_76 => l_array_source_76(Idx)
146388  , p_source_77 => l_array_source_77(Idx)
146389  , p_source_78 => l_array_source_78(Idx)
146390  , p_source_79 => l_array_source_79(Idx)
146391  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146392  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146393  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146394  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146395  , p_source_83 => l_array_source_83(Idx)
146396  , p_source_84 => l_array_source_84(Idx)
146397  , p_source_85 => l_array_source_85(Idx)
146398  , p_source_86 => l_array_source_86(Idx)
146399  , p_source_87 => l_array_source_87(Idx)
146400  , p_source_88 => l_array_source_88(Idx)
146401  , p_source_89 => l_array_source_89(Idx)
146402  , p_source_90 => l_array_source_90(Idx)
146403  , p_source_91 => l_array_source_91(Idx)
146404  , p_source_92 => l_array_source_92(Idx)
146405  , p_source_93 => l_array_source_93(Idx)
146406  , p_source_94 => l_array_source_94(Idx)
146407  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146408  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146409  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146410  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
146411  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
146412  );
146413 If(l_balance_type_code = 'A') THEN
146414   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146415 END IF;
146416 
146417 --
146418 
146419 
146420 --
146421 AcctLineType_192 (
146422  p_application_id  => p_application_id
146423  ,p_event_id     => l_event_id
146424  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146425  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146426  ,p_actual_flag => l_actual_flag
146427  ,p_balance_type_code => l_balance_type_code
146428  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146429  
146430  , p_source_1 => l_array_source_1(Idx)
146431  , p_source_21 => l_array_source_21(Idx)
146432  , p_source_33 => l_array_source_33(Idx)
146433  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146434  , p_source_49 => l_array_source_49(Idx)
146435  , p_source_52 => l_array_source_52(Idx)
146436  , p_source_54 => l_array_source_54(Idx)
146437  , p_source_56 => l_array_source_56(Idx)
146438  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146439  , p_source_63 => l_array_source_63(Idx)
146440  , p_source_64 => l_array_source_64(Idx)
146441  , p_source_65 => l_array_source_65(Idx)
146442  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146443  , p_source_67 => l_array_source_67(Idx)
146444  , p_source_68 => l_array_source_68(Idx)
146445  , p_source_69 => l_array_source_69(Idx)
146446  , p_source_70 => l_array_source_70(Idx)
146447  , p_source_71 => l_array_source_71(Idx)
146448  , p_source_72 => l_array_source_72(Idx)
146449  , p_source_76 => l_array_source_76(Idx)
146450  , p_source_77 => l_array_source_77(Idx)
146451  , p_source_78 => l_array_source_78(Idx)
146452  , p_source_79 => l_array_source_79(Idx)
146453  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146454  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146455  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146456  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146457  , p_source_83 => l_array_source_83(Idx)
146458  , p_source_84 => l_array_source_84(Idx)
146459  , p_source_85 => l_array_source_85(Idx)
146460  , p_source_86 => l_array_source_86(Idx)
146461  , p_source_87 => l_array_source_87(Idx)
146462  , p_source_88 => l_array_source_88(Idx)
146463  , p_source_89 => l_array_source_89(Idx)
146464  , p_source_90 => l_array_source_90(Idx)
146465  , p_source_91 => l_array_source_91(Idx)
146466  , p_source_92 => l_array_source_92(Idx)
146470  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146467  , p_source_93 => l_array_source_93(Idx)
146468  , p_source_94 => l_array_source_94(Idx)
146469  , p_source_95 => l_array_source_95(Idx)
146471  , p_source_135 => l_array_source_135(Idx)
146472  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146473  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146474  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146475  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146476  );
146477 If(l_balance_type_code = 'A') THEN
146478   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146479 END IF;
146480 
146481 --
146482 
146483 
146484 --
146485 AcctLineType_196 (
146486  p_application_id  => p_application_id
146487  ,p_event_id     => l_event_id
146488  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146489  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146490  ,p_actual_flag => l_actual_flag
146491  ,p_balance_type_code => l_balance_type_code
146492  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146493  
146494  , p_source_1 => l_array_source_1(Idx)
146495  , p_source_21 => l_array_source_21(Idx)
146496  , p_source_33 => l_array_source_33(Idx)
146497  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146498  , p_source_49 => l_array_source_49(Idx)
146499  , p_source_52 => l_array_source_52(Idx)
146500  , p_source_54 => l_array_source_54(Idx)
146501  , p_source_56 => l_array_source_56(Idx)
146502  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146503  , p_source_63 => l_array_source_63(Idx)
146504  , p_source_64 => l_array_source_64(Idx)
146505  , p_source_65 => l_array_source_65(Idx)
146506  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146507  , p_source_67 => l_array_source_67(Idx)
146508  , p_source_68 => l_array_source_68(Idx)
146509  , p_source_69 => l_array_source_69(Idx)
146510  , p_source_70 => l_array_source_70(Idx)
146511  , p_source_71 => l_array_source_71(Idx)
146512  , p_source_72 => l_array_source_72(Idx)
146513  , p_source_76 => l_array_source_76(Idx)
146514  , p_source_77 => l_array_source_77(Idx)
146515  , p_source_78 => l_array_source_78(Idx)
146516  , p_source_79 => l_array_source_79(Idx)
146517  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146518  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146519  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146520  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146521  , p_source_83 => l_array_source_83(Idx)
146522  , p_source_84 => l_array_source_84(Idx)
146523  , p_source_85 => l_array_source_85(Idx)
146524  , p_source_86 => l_array_source_86(Idx)
146525  , p_source_87 => l_array_source_87(Idx)
146526  , p_source_88 => l_array_source_88(Idx)
146527  , p_source_89 => l_array_source_89(Idx)
146528  , p_source_90 => l_array_source_90(Idx)
146529  , p_source_91 => l_array_source_91(Idx)
146530  , p_source_92 => l_array_source_92(Idx)
146531  , p_source_93 => l_array_source_93(Idx)
146532  , p_source_94 => l_array_source_94(Idx)
146533  , p_source_135 => l_array_source_135(Idx)
146534  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146535  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146536  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146537  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146538  );
146539 If(l_balance_type_code = 'A') THEN
146540   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146541 END IF;
146542 
146543 --
146544 
146545 
146546 --
146547 AcctLineType_199 (
146548  p_application_id  => p_application_id
146549  ,p_event_id     => l_event_id
146550  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146551  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146552  ,p_actual_flag => l_actual_flag
146553  ,p_balance_type_code => l_balance_type_code
146554  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146555  
146556  , p_source_1 => l_array_source_1(Idx)
146557  , p_source_21 => l_array_source_21(Idx)
146558  , p_source_33 => l_array_source_33(Idx)
146559  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146560  , p_source_50 => l_array_source_50(Idx)
146561  , p_source_52 => l_array_source_52(Idx)
146562  , p_source_54 => l_array_source_54(Idx)
146563  , p_source_56 => l_array_source_56(Idx)
146564  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146565  , p_source_63 => l_array_source_63(Idx)
146566  , p_source_64 => l_array_source_64(Idx)
146567  , p_source_65 => l_array_source_65(Idx)
146568  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146569  , p_source_67 => l_array_source_67(Idx)
146570  , p_source_68 => l_array_source_68(Idx)
146571  , p_source_69 => l_array_source_69(Idx)
146572  , p_source_70 => l_array_source_70(Idx)
146573  , p_source_71 => l_array_source_71(Idx)
146574  , p_source_72 => l_array_source_72(Idx)
146575  , p_source_76 => l_array_source_76(Idx)
146576  , p_source_77 => l_array_source_77(Idx)
146577  , p_source_78 => l_array_source_78(Idx)
146578  , p_source_79 => l_array_source_79(Idx)
146579  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146580  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146581  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146582  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146583  , p_source_83 => l_array_source_83(Idx)
146584  , p_source_84 => l_array_source_84(Idx)
146585  , p_source_85 => l_array_source_85(Idx)
146586  , p_source_86 => l_array_source_86(Idx)
146587  , p_source_87 => l_array_source_87(Idx)
146588  , p_source_88 => l_array_source_88(Idx)
146589  , p_source_89 => l_array_source_89(Idx)
146590  , p_source_90 => l_array_source_90(Idx)
146591  , p_source_91 => l_array_source_91(Idx)
146592  , p_source_92 => l_array_source_92(Idx)
146593  , p_source_93 => l_array_source_93(Idx)
146597  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146594  , p_source_94 => l_array_source_94(Idx)
146595  , p_source_135 => l_array_source_135(Idx)
146596  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146598  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146599  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146600  );
146601 If(l_balance_type_code = 'A') THEN
146602   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146603 END IF;
146604 
146605 --
146606 
146607 
146608 --
146609 AcctLineType_204 (
146610  p_application_id  => p_application_id
146611  ,p_event_id     => l_event_id
146612  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146613  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146614  ,p_actual_flag => l_actual_flag
146615  ,p_balance_type_code => l_balance_type_code
146616  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146617  
146618  , p_source_1 => l_array_source_1(Idx)
146619  , p_source_21 => l_array_source_21(Idx)
146620  , p_source_33 => l_array_source_33(Idx)
146621  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146622  , p_source_49 => l_array_source_49(Idx)
146623  , p_source_52 => l_array_source_52(Idx)
146624  , p_source_54 => l_array_source_54(Idx)
146625  , p_source_56 => l_array_source_56(Idx)
146626  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146627  , p_source_63 => l_array_source_63(Idx)
146628  , p_source_64 => l_array_source_64(Idx)
146629  , p_source_65 => l_array_source_65(Idx)
146630  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146631  , p_source_67 => l_array_source_67(Idx)
146632  , p_source_68 => l_array_source_68(Idx)
146633  , p_source_69 => l_array_source_69(Idx)
146634  , p_source_70 => l_array_source_70(Idx)
146635  , p_source_71 => l_array_source_71(Idx)
146636  , p_source_72 => l_array_source_72(Idx)
146637  , p_source_73 => l_array_source_73(Idx)
146638  , p_source_74 => l_array_source_74(Idx)
146639  , p_source_75 => l_array_source_75(Idx)
146640  , p_source_76 => l_array_source_76(Idx)
146641  , p_source_77 => l_array_source_77(Idx)
146642  , p_source_78 => l_array_source_78(Idx)
146643  , p_source_79 => l_array_source_79(Idx)
146644  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146645  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146646  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146647  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146648  , p_source_83 => l_array_source_83(Idx)
146649  , p_source_84 => l_array_source_84(Idx)
146650  , p_source_85 => l_array_source_85(Idx)
146651  , p_source_86 => l_array_source_86(Idx)
146652  , p_source_87 => l_array_source_87(Idx)
146653  , p_source_88 => l_array_source_88(Idx)
146654  , p_source_89 => l_array_source_89(Idx)
146655  , p_source_90 => l_array_source_90(Idx)
146656  , p_source_91 => l_array_source_91(Idx)
146657  , p_source_92 => l_array_source_92(Idx)
146658  , p_source_93 => l_array_source_93(Idx)
146659  , p_source_94 => l_array_source_94(Idx)
146660  , p_source_95 => l_array_source_95(Idx)
146661  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146662  , p_source_135 => l_array_source_135(Idx)
146663  , p_source_135_meaning => l_array_source_135_meaning(Idx)
146664  );
146665 If(l_balance_type_code = 'A') THEN
146666   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146667 END IF;
146668 
146669 --
146670 
146671 
146672 --
146673 AcctLineType_208 (
146674  p_application_id  => p_application_id
146675  ,p_event_id     => l_event_id
146676  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146677  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146678  ,p_actual_flag => l_actual_flag
146679  ,p_balance_type_code => l_balance_type_code
146680  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146681  
146682  , p_source_1 => l_array_source_1(Idx)
146683  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146684  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146685  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
146686  , p_source_21 => l_array_source_21(Idx)
146687  , p_source_22 => l_array_source_22(Idx)
146688  , p_source_22_meaning => l_array_source_22_meaning(Idx)
146689  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
146690  , p_source_30 => l_array_source_30(Idx)
146691  , p_source_33 => l_array_source_33(Idx)
146692  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146693  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
146694  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
146695  , p_source_52 => l_array_source_52(Idx)
146696  , p_source_54 => l_array_source_54(Idx)
146697  , p_source_56 => l_array_source_56(Idx)
146698  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146699  , p_source_63 => l_array_source_63(Idx)
146700  , p_source_64 => l_array_source_64(Idx)
146701  , p_source_65 => l_array_source_65(Idx)
146702  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146703  , p_source_67 => l_array_source_67(Idx)
146704  , p_source_68 => l_array_source_68(Idx)
146705  , p_source_69 => l_array_source_69(Idx)
146706  , p_source_70 => l_array_source_70(Idx)
146707  , p_source_71 => l_array_source_71(Idx)
146708  , p_source_72 => l_array_source_72(Idx)
146709  , p_source_76 => l_array_source_76(Idx)
146710  , p_source_77 => l_array_source_77(Idx)
146711  , p_source_78 => l_array_source_78(Idx)
146712  , p_source_79 => l_array_source_79(Idx)
146713  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146714  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146715  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146716  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146717  , p_source_83 => l_array_source_83(Idx)
146718  , p_source_84 => l_array_source_84(Idx)
146722  , p_source_88 => l_array_source_88(Idx)
146719  , p_source_85 => l_array_source_85(Idx)
146720  , p_source_86 => l_array_source_86(Idx)
146721  , p_source_87 => l_array_source_87(Idx)
146723  , p_source_89 => l_array_source_89(Idx)
146724  , p_source_90 => l_array_source_90(Idx)
146725  , p_source_91 => l_array_source_91(Idx)
146726  , p_source_92 => l_array_source_92(Idx)
146727  , p_source_93 => l_array_source_93(Idx)
146728  , p_source_94 => l_array_source_94(Idx)
146729  , p_source_95 => l_array_source_95(Idx)
146730  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146731  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146732  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146733  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146734  );
146735 If(l_balance_type_code = 'A') THEN
146736   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146737 END IF;
146738 
146739 --
146740 
146741 
146742 --
146743 AcctLineType_212 (
146744  p_application_id  => p_application_id
146745  ,p_event_id     => l_event_id
146746  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146747  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146748  ,p_actual_flag => l_actual_flag
146749  ,p_balance_type_code => l_balance_type_code
146750  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146751  
146752  , p_source_1 => l_array_source_1(Idx)
146753  , p_source_21 => l_array_source_21(Idx)
146754  , p_source_30 => l_array_source_30(Idx)
146755  , p_source_33 => l_array_source_33(Idx)
146756  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146757  , p_source_52 => l_array_source_52(Idx)
146758  , p_source_54 => l_array_source_54(Idx)
146759  , p_source_56 => l_array_source_56(Idx)
146760  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146761  , p_source_63 => l_array_source_63(Idx)
146762  , p_source_64 => l_array_source_64(Idx)
146763  , p_source_65 => l_array_source_65(Idx)
146764  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146765  , p_source_67 => l_array_source_67(Idx)
146766  , p_source_68 => l_array_source_68(Idx)
146767  , p_source_69 => l_array_source_69(Idx)
146768  , p_source_70 => l_array_source_70(Idx)
146769  , p_source_71 => l_array_source_71(Idx)
146770  , p_source_72 => l_array_source_72(Idx)
146771  , p_source_76 => l_array_source_76(Idx)
146772  , p_source_77 => l_array_source_77(Idx)
146773  , p_source_78 => l_array_source_78(Idx)
146774  , p_source_79 => l_array_source_79(Idx)
146775  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146776  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146777  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146778  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146779  , p_source_83 => l_array_source_83(Idx)
146780  , p_source_84 => l_array_source_84(Idx)
146781  , p_source_85 => l_array_source_85(Idx)
146782  , p_source_86 => l_array_source_86(Idx)
146783  , p_source_87 => l_array_source_87(Idx)
146784  , p_source_88 => l_array_source_88(Idx)
146785  , p_source_89 => l_array_source_89(Idx)
146786  , p_source_90 => l_array_source_90(Idx)
146787  , p_source_91 => l_array_source_91(Idx)
146788  , p_source_92 => l_array_source_92(Idx)
146789  , p_source_93 => l_array_source_93(Idx)
146790  , p_source_94 => l_array_source_94(Idx)
146791  , p_source_95 => l_array_source_95(Idx)
146792  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146793  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146794  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146795  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146796  );
146797 If(l_balance_type_code = 'A') THEN
146798   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146799 END IF;
146800 
146801 --
146802 
146803 
146804 --
146805 AcctLineType_216 (
146806  p_application_id  => p_application_id
146807  ,p_event_id     => l_event_id
146808  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146809  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146810  ,p_actual_flag => l_actual_flag
146811  ,p_balance_type_code => l_balance_type_code
146812  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146813  
146814  , p_source_1 => l_array_source_1(Idx)
146815  , p_source_21 => l_array_source_21(Idx)
146816  , p_source_30 => l_array_source_30(Idx)
146817  , p_source_33 => l_array_source_33(Idx)
146818  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146819  , p_source_52 => l_array_source_52(Idx)
146820  , p_source_54 => l_array_source_54(Idx)
146821  , p_source_56 => l_array_source_56(Idx)
146822  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146823  , p_source_63 => l_array_source_63(Idx)
146824  , p_source_64 => l_array_source_64(Idx)
146825  , p_source_65 => l_array_source_65(Idx)
146826  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146827  , p_source_67 => l_array_source_67(Idx)
146828  , p_source_68 => l_array_source_68(Idx)
146829  , p_source_69 => l_array_source_69(Idx)
146830  , p_source_70 => l_array_source_70(Idx)
146831  , p_source_71 => l_array_source_71(Idx)
146832  , p_source_72 => l_array_source_72(Idx)
146833  , p_source_76 => l_array_source_76(Idx)
146834  , p_source_77 => l_array_source_77(Idx)
146835  , p_source_78 => l_array_source_78(Idx)
146836  , p_source_79 => l_array_source_79(Idx)
146837  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146838  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146839  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146840  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146841  , p_source_83 => l_array_source_83(Idx)
146842  , p_source_84 => l_array_source_84(Idx)
146843  , p_source_85 => l_array_source_85(Idx)
146844  , p_source_86 => l_array_source_86(Idx)
146845  , p_source_87 => l_array_source_87(Idx)
146846  , p_source_88 => l_array_source_88(Idx)
146850  , p_source_92 => l_array_source_92(Idx)
146847  , p_source_89 => l_array_source_89(Idx)
146848  , p_source_90 => l_array_source_90(Idx)
146849  , p_source_91 => l_array_source_91(Idx)
146851  , p_source_93 => l_array_source_93(Idx)
146852  , p_source_94 => l_array_source_94(Idx)
146853  , p_source_95 => l_array_source_95(Idx)
146854  , p_source_95_meaning => l_array_source_95_meaning(Idx)
146855  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146856  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146857  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146858  );
146859 If(l_balance_type_code = 'A') THEN
146860   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146861 END IF;
146862 
146863 --
146864 
146865 
146866 --
146867 AcctLineType_222 (
146868  p_application_id  => p_application_id
146869  ,p_event_id     => l_event_id
146870  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146871  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146872  ,p_actual_flag => l_actual_flag
146873  ,p_balance_type_code => l_balance_type_code
146874  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146875  
146876  , p_source_1 => l_array_source_1(Idx)
146877  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146878  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146879  , p_source_21 => l_array_source_21(Idx)
146880  , p_source_30 => l_array_source_30(Idx)
146881  , p_source_33 => l_array_source_33(Idx)
146882  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146883  , p_source_43 => l_array_source_43(Idx)
146884  , p_source_52 => l_array_source_52(Idx)
146885  , p_source_54 => l_array_source_54(Idx)
146886  , p_source_56 => l_array_source_56(Idx)
146887  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
146888  , p_source_63 => l_array_source_63(Idx)
146889  , p_source_64 => l_array_source_64(Idx)
146890  , p_source_65 => l_array_source_65(Idx)
146891  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
146892  , p_source_67 => l_array_source_67(Idx)
146893  , p_source_68 => l_array_source_68(Idx)
146894  , p_source_69 => l_array_source_69(Idx)
146895  , p_source_70 => l_array_source_70(Idx)
146896  , p_source_71 => l_array_source_71(Idx)
146897  , p_source_72 => l_array_source_72(Idx)
146898  , p_source_76 => l_array_source_76(Idx)
146899  , p_source_77 => l_array_source_77(Idx)
146900  , p_source_78 => l_array_source_78(Idx)
146901  , p_source_79 => l_array_source_79(Idx)
146902  , p_source_79_meaning => l_array_source_79_meaning(Idx)
146903  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
146904  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146905  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
146906  , p_source_83 => l_array_source_83(Idx)
146907  , p_source_84 => l_array_source_84(Idx)
146908  , p_source_85 => l_array_source_85(Idx)
146909  , p_source_86 => l_array_source_86(Idx)
146910  , p_source_87 => l_array_source_87(Idx)
146911  , p_source_88 => l_array_source_88(Idx)
146912  , p_source_89 => l_array_source_89(Idx)
146913  , p_source_90 => l_array_source_90(Idx)
146914  , p_source_91 => l_array_source_91(Idx)
146915  , p_source_92 => l_array_source_92(Idx)
146916  , p_source_93 => l_array_source_93(Idx)
146917  , p_source_94 => l_array_source_94(Idx)
146918  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
146919  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
146920  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
146921  );
146922 If(l_balance_type_code = 'A') THEN
146923   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146924 END IF;
146925 
146926 --
146927 
146928       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
146929       -- or secondary ledger that has different currency with primary
146930       -- or alc that is calculated by sla
146931       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
146932             (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'))
146933 
146934 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
146935 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
146936           AND (l_actual_flag = 'A')) THEN
146937         XLA_AE_LINES_PKG.CreateGainOrLossLines(
146938           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
146939          ,p_application_id   => p_application_id
146940          ,p_amb_context_code => 'DEFAULT'
146941          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
146942          ,p_event_class_code => C_EVENT_CLASS_CODE
146943          ,p_event_type_code  => C_EVENT_TYPE_CODE
146944          
146945          ,p_gain_ccid        => -1
146946          ,p_loss_ccid        => -1
146947 
146948          ,p_actual_flag      => l_actual_flag
146949          ,p_enc_flag         => null
146950          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
146951          ,p_enc_g_l_ref      => null
146952          );
146953       END IF;
146954    END IF;
146955 END IF;
146956 
146957    ELSE
146958       --
146959       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
146960       --
146961       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
146962          trace
146963             (p_msg      => 'Trancaction revesal option is Y'
146964             ,p_level    => C_LEVEL_STATEMENT
146965             ,p_module   => l_log_module);
146966       END IF;
146967    END IF;
146968 
146969 END LOOP;
146970 l_result := XLA_AE_LINES_PKG.InsertLines ;
146971 end loop;
146972 close line_cur;
146973 
146974 
146975 --
146976 -- insert headers into xla_ae_headers_gt table
146980 -- insert into errors table here.
146977 --
146978 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
146979 
146981 
146982 END LOOP;
146983 
146984 --
146985 -- 4865292
146986 --
146987 -- Compare g_hdr_extract_count with event count in
146988 -- CreateHeadersAndLines.
146989 --
146990 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
146991 
146992 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
146993    trace (p_msg     => '# rows extracted from header extract objects '
146994                     || ' (running total): '
146995                     || g_hdr_extract_count
146996          ,p_level   => C_LEVEL_STATEMENT
146997          ,p_module  => l_log_module);
146998 END IF;
146999 
147000 CLOSE header_cur;
147001 --
147002 
147003 --
147004 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147005    trace
147006       (p_msg      => 'END of EventClass_226'
147007       ,p_level    => C_LEVEL_PROCEDURE
147008       ,p_module   => l_log_module);
147009 END IF;
147010 --
147011 RETURN l_result;
147012 EXCEPTION
147013 WHEN xla_exceptions_pkg.application_exception THEN
147014    
147015 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
147016 
147017    
147018 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
147019 
147020    RAISE;
147021 
147022 WHEN NO_DATA_FOUND THEN
147023 
147024 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
147025 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
147026 
147027 FOR header_record IN header_cur
147028 LOOP
147029     l_array_header_events(header_record.event_id) := header_record.event_id;
147030 END LOOP;
147031 
147032 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
147033 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
147034 
147035 fnd_file.put_line(fnd_file.LOG, '                    ');
147036 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
147037 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
147038 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
147039 
147040 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
147041 LOOP
147042 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
147043 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
147044         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
147045 	END IF;
147046 END LOOP;
147047 
147048 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
147049 fnd_file.put_line(fnd_file.LOG, '                    ');
147050 
147051 
147052 xla_exceptions_pkg.raise_message
147053       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_226');
147054 
147055 
147056 WHEN OTHERS THEN
147057    xla_exceptions_pkg.raise_message
147058       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_226');
147059 END EventClass_226;
147060 --
147061 
147062 ---------------------------------------
147063 --
147064 -- PRIVATE PROCEDURE
147065 --         insert_sources_227
147066 --
147067 ----------------------------------------
147068 --
147069 PROCEDURE insert_sources_227(
147070                                 p_target_ledger_id       IN NUMBER
147071                               , p_language               IN VARCHAR2
147072                               , p_sla_ledger_id          IN NUMBER
147073                               , p_pad_start_date         IN DATE
147074                               , p_pad_end_date           IN DATE
147075                          )
147076 IS
147077 
147078 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
147079 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
147080 p_apps_owner                   VARCHAR2(30);
147081 l_log_module                   VARCHAR2(240);
147082 BEGIN
147083 IF g_log_enabled THEN
147084       l_log_module := C_DEFAULT_MODULE||'.insert_sources_227';
147085 END IF;
147086 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147087 
147088       trace
147089          (p_msg      => 'BEGIN of insert_sources_227'
147090          ,p_level    => C_LEVEL_PROCEDURE
147091          ,p_module   => l_log_module);
147092 
147093 END IF;
147094 
147095 -- select APPS owner
147096 SELECT oracle_username
147097   INTO p_apps_owner
147098   FROM fnd_oracle_userid
147099  WHERE read_only_flag = 'U'
147100 ;
147101 
147102 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147103       trace
147104          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
147105                         ' - p_language = '||p_language||
147106                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
147107                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
147108                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
147109                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
147110          ,p_level    => C_LEVEL_STATEMENT
147111          ,p_module   => l_log_module);
147112 END IF;
147113 
147114 
147115 --
147116 INSERT INTO xla_diag_sources --hdr2
147117 (
147118         event_id
147119       , ledger_id
147120       , sla_ledger_id
147121       , description_language
147122       , object_name
147123       , object_type_code
147124       , line_number
147125       , source_application_id
147126       , source_type_code
147127       , source_code
147128       , source_value
147129       , source_meaning
147130       , created_by
147131       , creation_date
147132       , last_update_date
147133       , last_updated_by
147134       , last_update_login
147135       , program_update_date
147139 )
147136       , program_application_id
147137       , program_id
147138       , request_id
147140 SELECT
147141         event_id
147142       , p_target_ledger_id
147143       , p_sla_ledger_id
147144       , p_language
147145       , object_name
147146       , object_type_code
147147       , line_number
147148       , source_application_id
147149       , source_type_code
147150       , source_code
147151       , SUBSTR(source_value ,1,1996)
147152       , SUBSTR(source_meaning ,1,200)
147153       , xla_environment_pkg.g_Usr_Id
147154       , TRUNC(SYSDATE)
147155       , TRUNC(SYSDATE)
147156       , xla_environment_pkg.g_Usr_Id
147157       , xla_environment_pkg.g_Login_Id
147158       , TRUNC(SYSDATE)
147159       , xla_environment_pkg.g_Prog_Appl_Id
147160       , xla_environment_pkg.g_Prog_Id
147161       , xla_environment_pkg.g_Req_Id
147162   FROM (
147163        SELECT xet.event_id                  event_id
147164             , 0                          line_number
147165             , CASE r
147166                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147167                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147168                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147169                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147170                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147171                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147172                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147173                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147174                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147175                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147176                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147177                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147178                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147179                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147180                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147181                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147182                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147183                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147184                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147185                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147186                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147187                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147188                 
147189                ELSE null
147190               END                           object_name
147191             , CASE r
147192                 WHEN 1 THEN 'HEADER' 
147193                 WHEN 2 THEN 'HEADER' 
147194                 WHEN 3 THEN 'HEADER' 
147195                 WHEN 4 THEN 'HEADER' 
147196                 WHEN 5 THEN 'HEADER' 
147197                 WHEN 6 THEN 'HEADER' 
147198                 WHEN 7 THEN 'HEADER' 
147199                 WHEN 8 THEN 'HEADER' 
147200                 WHEN 9 THEN 'HEADER' 
147201                 WHEN 10 THEN 'HEADER' 
147202                 WHEN 11 THEN 'HEADER' 
147203                 WHEN 12 THEN 'HEADER' 
147204                 WHEN 13 THEN 'HEADER' 
147205                 WHEN 14 THEN 'HEADER' 
147206                 WHEN 15 THEN 'HEADER' 
147207                 WHEN 16 THEN 'HEADER' 
147208                 WHEN 17 THEN 'HEADER' 
147209                 WHEN 18 THEN 'HEADER' 
147210                 WHEN 19 THEN 'HEADER' 
147211                 WHEN 20 THEN 'HEADER' 
147212                 WHEN 21 THEN 'HEADER' 
147213                 WHEN 22 THEN 'HEADER' 
147214                 
147215                 ELSE null
147216               END                           object_type_code
147217             , CASE r
147218                 WHEN 1 THEN '200' 
147219                 WHEN 2 THEN '200' 
147220                 WHEN 3 THEN '200' 
147221                 WHEN 4 THEN '200' 
147222                 WHEN 5 THEN '200' 
147223                 WHEN 6 THEN '200' 
147224                 WHEN 7 THEN '200' 
147225                 WHEN 8 THEN '200' 
147226                 WHEN 9 THEN '200' 
147227                 WHEN 10 THEN '200' 
147228                 WHEN 11 THEN '200' 
147229                 WHEN 12 THEN '200' 
147230                 WHEN 13 THEN '200' 
147231                 WHEN 14 THEN '200' 
147232                 WHEN 15 THEN '200' 
147233                 WHEN 16 THEN '200' 
147234                 WHEN 17 THEN '200' 
147235                 WHEN 18 THEN '200' 
147236                 WHEN 19 THEN '200' 
147237                 WHEN 20 THEN '200' 
147238                 WHEN 21 THEN '200' 
147239                 WHEN 22 THEN '200' 
147240                 
147241                 ELSE null
147242               END                           source_application_id
147243             , 'S'             source_type_code
147244             , CASE r
147245                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
147246                 WHEN 2 THEN 'AI_INVOICE_DATE' 
147247                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
147248                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
147249                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
147250                 WHEN 6 THEN 'AI_DESCRIPTION' 
147251                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
147252                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
147253                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
147254                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
147255                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
147256                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
147257                 WHEN 13 THEN 'AI_INVOICE_ID' 
147258                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
147259                 WHEN 15 THEN 'AI_VENDOR_ID' 
147260                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
147261                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
147262                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
147263                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
147264                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
147268                 ELSE null
147265                 WHEN 21 THEN 'AI_SOURCE' 
147266                 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
147267                 
147269               END                           source_code
147270             , CASE r
147271                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
147272                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
147273                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
147274                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
147275                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
147276                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
147277                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
147278                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
147279                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
147280                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
147281                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
147282                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
147283                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
147284                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
147285                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
147286                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
147287                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
147288                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
147289                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
147290                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
147291                 WHEN 21 THEN TO_CHAR(h2.AI_SOURCE)
147292                 WHEN 22 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
147293                 
147294                 ELSE null
147295               END                           source_value
147296             , CASE r
147297                 WHEN 7 THEN fvl15.meaning
147298                 WHEN 12 THEN fvl47.meaning
147299                 
147300                 ELSE null
147301               END               source_meaning
147302          FROM xla_events_gt     xet  
147303       , AP_INVOICE_EXTRACT_HEADER_V  h2
147304       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
147305   , fnd_lookup_values    fvl15
147306   , fnd_lookup_values    fvl47
147307              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
147308          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
147309            AND xet.event_class_code = C_EVENT_CLASS_CODE
147310               AND h2.event_id = xet.event_id
147311  AND h4.asp_org_id= h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
147312   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
147313   AND fvl15.view_application_id(+) = 200
147314   AND fvl15.language(+)            = USERENV('LANG')
147315      AND fvl47.lookup_type(+)         = 'YES_NO'
147316   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
147317   AND fvl47.view_application_id(+) = 0
147318   AND fvl47.language(+)            = USERENV('LANG')
147319   
147320 )
147321 ;
147322 --
147323 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147324 
147325       trace
147326          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
147327          ,p_level    => C_LEVEL_STATEMENT
147328          ,p_module   => l_log_module);
147329 
147330 END IF;
147331 --
147332 
147333 
147334 
147335 --
147336 INSERT INTO xla_diag_sources  --line2
147337 (
147338         event_id
147339       , ledger_id
147340       , sla_ledger_id
147341       , description_language
147342       , object_name
147343       , object_type_code
147344       , line_number
147345       , source_application_id
147346       , source_type_code
147347       , source_code
147348       , source_value
147349       , source_meaning
147350       , created_by
147351       , creation_date
147352       , last_update_date
147353       , last_updated_by
147354       , last_update_login
147355       , program_update_date
147356       , program_application_id
147357       , program_id
147358       , request_id
147359 )
147360 SELECT  event_id
147361       , p_target_ledger_id
147362       , p_sla_ledger_id
147363       , p_language
147364       , object_name
147365       , object_type_code
147366       , line_number
147367       , source_application_id
147368       , source_type_code
147369       , source_code
147370       , SUBSTR(source_value,1,1996)
147371       , SUBSTR(source_meaning ,1,200)
147372       , xla_environment_pkg.g_Usr_Id
147373       , TRUNC(SYSDATE)
147374       , TRUNC(SYSDATE)
147375       , xla_environment_pkg.g_Usr_Id
147376       , xla_environment_pkg.g_Login_Id
147377       , TRUNC(SYSDATE)
147378       , xla_environment_pkg.g_Prog_Appl_Id
147379       , xla_environment_pkg.g_Prog_Id
147380       , xla_environment_pkg.g_Req_Id
147381   FROM (
147382        SELECT xet.event_id                  event_id
147383             , l1.line_number                 line_number
147384             , CASE r
147385                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147386                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147387                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147388                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147389                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147390                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147391                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147392                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147393                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147394                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147395                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147396                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147397                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147398                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147402                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147399                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147400                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147401                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147403                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147404                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147405                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147406                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147407                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147408                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147409                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147410                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147411                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147412                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147413                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147414                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147415                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147416                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147417                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147418                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147419                 WHEN 35 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
147420                 WHEN 36 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
147421                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147422                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147423                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147424                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147425                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147426                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147427                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147428                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147429                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147430                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147431                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147432                 
147433                ELSE null
147434               END                           object_name
147435             , CASE r
147436                 WHEN 1 THEN 'LINE' 
147437                 WHEN 2 THEN 'LINE' 
147438                 WHEN 3 THEN 'LINE' 
147439                 WHEN 4 THEN 'LINE' 
147440                 WHEN 5 THEN 'LINE' 
147441                 WHEN 6 THEN 'LINE' 
147442                 WHEN 7 THEN 'LINE' 
147443                 WHEN 8 THEN 'LINE' 
147444                 WHEN 9 THEN 'LINE' 
147445                 WHEN 10 THEN 'LINE' 
147446                 WHEN 11 THEN 'LINE' 
147447                 WHEN 12 THEN 'LINE' 
147448                 WHEN 13 THEN 'LINE' 
147449                 WHEN 14 THEN 'LINE' 
147450                 WHEN 15 THEN 'LINE' 
147451                 WHEN 16 THEN 'LINE' 
147452                 WHEN 17 THEN 'LINE' 
147453                 WHEN 18 THEN 'LINE' 
147454                 WHEN 19 THEN 'LINE' 
147455                 WHEN 20 THEN 'LINE' 
147456                 WHEN 21 THEN 'LINE' 
147457                 WHEN 22 THEN 'LINE' 
147458                 WHEN 23 THEN 'LINE' 
147459                 WHEN 24 THEN 'LINE' 
147460                 WHEN 25 THEN 'LINE' 
147461                 WHEN 26 THEN 'LINE' 
147462                 WHEN 27 THEN 'LINE' 
147463                 WHEN 28 THEN 'LINE' 
147464                 WHEN 29 THEN 'LINE' 
147465                 WHEN 30 THEN 'LINE' 
147466                 WHEN 31 THEN 'LINE' 
147467                 WHEN 32 THEN 'LINE' 
147468                 WHEN 33 THEN 'LINE' 
147469                 WHEN 34 THEN 'LINE' 
147470                 WHEN 35 THEN 'LINE' 
147471                 WHEN 36 THEN 'LINE' 
147472                 WHEN 37 THEN 'LINE' 
147473                 WHEN 38 THEN 'LINE' 
147474                 WHEN 39 THEN 'LINE' 
147475                 WHEN 40 THEN 'LINE' 
147476                 WHEN 41 THEN 'LINE' 
147477                 WHEN 42 THEN 'LINE' 
147478                 WHEN 43 THEN 'LINE' 
147479                 WHEN 44 THEN 'LINE' 
147480                 WHEN 45 THEN 'LINE' 
147481                 WHEN 46 THEN 'LINE' 
147482                 WHEN 47 THEN 'LINE' 
147483                 
147484                 ELSE null
147485               END                           object_type_code
147486             , CASE r
147487                 WHEN 1 THEN '200' 
147488                 WHEN 2 THEN '200' 
147489                 WHEN 3 THEN '200' 
147490                 WHEN 4 THEN '200' 
147491                 WHEN 5 THEN '200' 
147492                 WHEN 6 THEN '200' 
147493                 WHEN 7 THEN '200' 
147494                 WHEN 8 THEN '200' 
147495                 WHEN 9 THEN '200' 
147496                 WHEN 10 THEN '200' 
147497                 WHEN 11 THEN '200' 
147498                 WHEN 12 THEN '200' 
147499                 WHEN 13 THEN '200' 
147500                 WHEN 14 THEN '200' 
147501                 WHEN 15 THEN '200' 
147502                 WHEN 16 THEN '200' 
147503                 WHEN 17 THEN '200' 
147504                 WHEN 18 THEN '200' 
147505                 WHEN 19 THEN '200' 
147506                 WHEN 20 THEN '200' 
147507                 WHEN 21 THEN '200' 
147508                 WHEN 22 THEN '200' 
147509                 WHEN 23 THEN '200' 
147510                 WHEN 24 THEN '200' 
147511                 WHEN 25 THEN '200' 
147512                 WHEN 26 THEN '200' 
147513                 WHEN 27 THEN '200' 
147514                 WHEN 28 THEN '200' 
147515                 WHEN 29 THEN '200' 
147516                 WHEN 30 THEN '200' 
147517                 WHEN 31 THEN '200' 
147518                 WHEN 32 THEN '200' 
147519                 WHEN 33 THEN '200' 
147520                 WHEN 34 THEN '200' 
147521                 WHEN 35 THEN '200' 
147522                 WHEN 36 THEN '200' 
147523                 WHEN 37 THEN '200' 
147527                 WHEN 41 THEN '200' 
147524                 WHEN 38 THEN '200' 
147525                 WHEN 39 THEN '200' 
147526                 WHEN 40 THEN '200' 
147528                 WHEN 42 THEN '200' 
147529                 WHEN 43 THEN '200' 
147530                 WHEN 44 THEN '200' 
147531                 WHEN 45 THEN '200' 
147532                 WHEN 46 THEN '200' 
147533                 WHEN 47 THEN '200' 
147534                 
147535                 ELSE null
147536               END                           source_application_id
147537             , 'S'             source_type_code
147538             , CASE r
147539                 WHEN 1 THEN 'AID_DESCRIPTION' 
147540                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
147541                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
147542                 WHEN 4 THEN 'AID_DIST_CCID' 
147543                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
147544                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
147545                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
147546                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
147547                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
147548                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
147549                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
147550                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
147551                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
147552                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
147553                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
147554                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
147555                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
147556                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
147557                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
147558                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
147559                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
147560                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
147561                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
147562                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
147563                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
147564                 WHEN 26 THEN 'AID_AMOUNT' 
147565                 WHEN 27 THEN 'POH_RATE_DATE' 
147566                 WHEN 28 THEN 'POH_RATE' 
147567                 WHEN 29 THEN 'POH_RATE_TYPE' 
147568                 WHEN 30 THEN 'DEFERRED_END_DATE' 
147569                 WHEN 31 THEN 'DEFERRED_OPTION' 
147570                 WHEN 32 THEN 'DEFERRED_START_DATE' 
147571                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
147572                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
147573                 WHEN 35 THEN 'TAX_LINE_ID' 
147574                 WHEN 36 THEN 'REC_NREC_TAX_DIST_ID' 
147575                 WHEN 37 THEN 'SUMMARY_TAX_LINE_ID' 
147576                 WHEN 38 THEN 'UPG_CR_ENC_TYPE_ID' 
147577                 WHEN 39 THEN 'UPG_DR_ENC_TYPE_ID' 
147578                 WHEN 40 THEN 'BUS_FLOW_AP_APP_ID' 
147579                 WHEN 41 THEN 'BUS_FLOW_INV_DIST_TYPE' 
147580                 WHEN 42 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
147581                 WHEN 43 THEN 'BUS_FLOW_INV_DIST_ID' 
147582                 WHEN 44 THEN 'BUS_FLOW_INV_ID' 
147583                 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
147584                 WHEN 46 THEN 'SELF_ASSESSED_TAX_FLAG' 
147585                 WHEN 47 THEN 'AID_PROJECT_ID' 
147586                 
147587                 ELSE null
147588               END                           source_code
147589             , CASE r
147590                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
147591                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
147592                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
147593                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
147594                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
147595                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
147596                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
147597                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
147598                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
147599                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
147600                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
147601                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
147602                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
147603                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
147604                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
147605                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
147606                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
147607                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
147608                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
147609                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
147610                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
147611                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
147612                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
147613                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
147614                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
147615                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
147616                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
147617                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
147618                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
147619                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
147620                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
147621                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
147622                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
147623                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
147624                 WHEN 35 THEN TO_CHAR(l5.TAX_LINE_ID)
147625                 WHEN 36 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
147626                 WHEN 37 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
147627                 WHEN 38 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
147628                 WHEN 39 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
147629                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
147630                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
147634                 WHEN 45 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
147631                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
147632                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
147633                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
147635                 WHEN 46 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
147636                 WHEN 47 THEN TO_CHAR(l1.AID_PROJECT_ID)
147637                 
147638                 ELSE null
147639               END                           source_value
147640             , CASE r
147641                 WHEN 3 THEN fvl22.meaning
147642                 WHEN 5 THEN fvl33.meaning
147643                 WHEN 33 THEN fvl79.meaning
147644                 WHEN 45 THEN fvl95.meaning
147645                 WHEN 46 THEN fvl135.meaning
147646                 
147647                 ELSE null
147648               END               source_meaning
147649          FROM  xla_events_gt     xet  
147650         , AP_INVOICE_EXTRACT_DETAILS_V  l1
147651         , AP_PO_HEADERS_EXTRACT_V  l3
147652         , ZX_AP_DEF_TAX_EXTRACT_V  l5
147653         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
147654   , fnd_lookup_values    fvl22
147655   , fnd_lookup_values    fvl33
147656   , fnd_lookup_values    fvl79
147657   , fnd_lookup_values    fvl95
147658   , fnd_lookup_values    fvl135
147659             , (select rownum r from all_objects where rownum <= 47 and owner = p_apps_owner)
147660         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
147661           AND xet.event_class_code = C_EVENT_CLASS_CODE
147662             AND l1.event_id          = xet.event_id
147663  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'
147664   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
147665   AND fvl22.view_application_id(+) = 201
147666   AND fvl22.language(+)            = USERENV('LANG')
147667      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
147668   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
147669   AND fvl33.view_application_id(+) = 200
147670   AND fvl33.language(+)            = USERENV('LANG')
147671      AND fvl79.lookup_type(+)         = 'YES_NO'
147672   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
147673   AND fvl79.view_application_id(+) = 0
147674   AND fvl79.language(+)            = USERENV('LANG')
147675      AND fvl95.lookup_type(+)         = 'YES_NO'
147676   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
147677   AND fvl95.view_application_id(+) = 0
147678   AND fvl95.language(+)            = USERENV('LANG')
147679      AND fvl135.lookup_type(+)         = 'YES_NO'
147680   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
147681   AND fvl135.view_application_id(+) = 0
147682   AND fvl135.language(+)            = USERENV('LANG')
147683   
147684 )
147685 ;
147686 --
147687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147688 
147689       trace
147690          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
147691          ,p_level    => C_LEVEL_STATEMENT
147692          ,p_module   => l_log_module);
147693 
147694 END IF;
147695 
147696 
147697 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147698       trace
147699          (p_msg      => 'END of insert_sources_227'
147700          ,p_level    => C_LEVEL_PROCEDURE
147701          ,p_module   => l_log_module);
147702 END IF;
147703 EXCEPTION
147704   WHEN xla_exceptions_pkg.application_exception THEN
147705       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
147706             trace
147707                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
147708                ,p_level    => C_LEVEL_EXCEPTION
147709                ,p_module   => l_log_module);
147710       END IF;
147711       RAISE;
147712   WHEN OTHERS THEN
147713       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
147714             trace
147715                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
147716                ,p_level    => C_LEVEL_EXCEPTION
147717                ,p_module   => l_log_module);
147718        END IF;
147719        xla_exceptions_pkg.raise_message
147720            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_227');
147721 END insert_sources_227;
147722 --
147723 
147724 ---------------------------------------
147725 --
147726 -- PRIVATE FUNCTION
147727 --         EventClass_227
147728 --
147729 ----------------------------------------
147730 --
147731 FUNCTION EventClass_227
147732        (p_application_id         IN NUMBER
147733        ,p_base_ledger_id         IN NUMBER
147734        ,p_target_ledger_id       IN NUMBER
147735        ,p_language               IN VARCHAR2
147736        ,p_currency_code          IN VARCHAR2
147737        ,p_sla_ledger_id          IN NUMBER
147738        ,p_pad_start_date         IN DATE
147739        ,p_pad_end_date           IN DATE
147740        ,p_primary_ledger_id      IN NUMBER)
147741 RETURN BOOLEAN IS
147742 --
147743 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
147744 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
147745 
147746 l_calculate_acctd_flag   VARCHAR2(1) :='N';
147747 l_calculate_g_l_flag     VARCHAR2(1) :='N';
147748 --
147749 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147750 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147751 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147752 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147753 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147754 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147755 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147756 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147760 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147757 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147758 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147759 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147761 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147762 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147763 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147764 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147765 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147766 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147767 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147768 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147769 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147770 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147771 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
147772 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147773 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
147774 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
147775 
147776 l_event_id                             NUMBER;
147777 l_previous_event_id                    NUMBER;
147778 l_first_event_id                       NUMBER;
147779 l_last_event_id                        NUMBER;
147780 
147781 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
147782 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
147783 --
147784 --
147785 l_result                    BOOLEAN := TRUE;
147786 l_rows                      NUMBER  := 1000;
147787 l_event_type_name           VARCHAR2(80) := 'All';
147788 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
147789 l_description               VARCHAR2(4000);
147790 l_transaction_reversal      NUMBER;
147791 l_ae_header_id              NUMBER;
147792 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
147793 l_log_module                VARCHAR2(240);
147794 --
147795 l_acct_reversal_source      VARCHAR2(30);
147796 l_trx_reversal_source       VARCHAR2(30);
147797 
147798 l_continue_with_lines       BOOLEAN := TRUE;
147799 --
147800 l_acc_rev_gl_date_source    DATE;                      -- 4262811
147801 --
147802 type t_array_event_id is table of number index by binary_integer;
147803 
147804 l_rec_array_event                    t_rec_array_event;
147805 l_null_rec_array_event               t_rec_array_event;
147806 l_array_ae_header_id                 xla_number_array_type;
147807 l_actual_flag                        VARCHAR2(1) := NULL;
147808 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
147809 l_balance_type_code                  VARCHAR2(1) :=NULL;
147810 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
147811 
147812 --
147813 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
147814 --
147815 
147816 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
147817 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
147818 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
147819 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
147820 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
147821 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
147822 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
147823 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
147824 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
147825 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
147826 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147827 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
147828 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
147829 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
147830 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
147831 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
147832 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
147833 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
147834 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
147835 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
147836 TYPE t_array_source_163 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_SOURCE%TYPE INDEX BY BINARY_INTEGER;
147837 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
147838 
147839 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
147840 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
147841 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147845 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147842 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
147843 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
147844 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
147846 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147847 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
147848 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
147849 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
147850 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147851 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
147852 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147853 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
147854 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147855 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
147856 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147857 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
147858 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
147859 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
147860 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
147861 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
147862 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
147863 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
147864 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
147865 TYPE t_array_source_73 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
147866 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
147867 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
147868 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
147869 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
147870 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
147871 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
147872 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
147873 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
147874 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147875 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
147876 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
147877 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
147878 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
147879 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147880 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
147881 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147882 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
147883 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
147884 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
147885 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
147886 
147887 l_array_source_3              t_array_source_3;
147888 l_array_source_4              t_array_source_4;
147889 l_array_source_5              t_array_source_5;
147890 l_array_source_6              t_array_source_6;
147891 l_array_source_7              t_array_source_7;
147892 l_array_source_8              t_array_source_8;
147893 l_array_source_15              t_array_source_15;
147894 l_array_source_15_meaning      t_array_lookup_meaning;
147895 l_array_source_20              t_array_source_20;
147896 l_array_source_23              t_array_source_23;
147897 l_array_source_34              t_array_source_34;
147898 l_array_source_40              t_array_source_40;
147899 l_array_source_47              t_array_source_47;
147900 l_array_source_47_meaning      t_array_lookup_meaning;
147901 l_array_source_57              t_array_source_57;
147902 l_array_source_66              t_array_source_66;
147903 l_array_source_80              t_array_source_80;
147904 l_array_source_81              t_array_source_81;
147905 l_array_source_82              t_array_source_82;
147906 l_array_source_136              t_array_source_136;
147907 l_array_source_137              t_array_source_137;
147908 l_array_source_138              t_array_source_138;
147909 l_array_source_163              t_array_source_163;
147910 l_array_source_168              t_array_source_168;
147914 l_array_source_22      t_array_source_22;
147911 
147912 l_array_source_1      t_array_source_1;
147913 l_array_source_21      t_array_source_21;
147915 l_array_source_22_meaning      t_array_lookup_meaning;
147916 l_array_source_30      t_array_source_30;
147917 l_array_source_33      t_array_source_33;
147918 l_array_source_33_meaning      t_array_lookup_meaning;
147919 l_array_source_42      t_array_source_42;
147920 l_array_source_43      t_array_source_43;
147921 l_array_source_49      t_array_source_49;
147922 l_array_source_50      t_array_source_50;
147923 l_array_source_52      t_array_source_52;
147924 l_array_source_54      t_array_source_54;
147925 l_array_source_56      t_array_source_56;
147926 l_array_source_58      t_array_source_58;
147927 l_array_source_59      t_array_source_59;
147928 l_array_source_60      t_array_source_60;
147929 l_array_source_61      t_array_source_61;
147930 l_array_source_62      t_array_source_62;
147931 l_array_source_63      t_array_source_63;
147932 l_array_source_64      t_array_source_64;
147933 l_array_source_65      t_array_source_65;
147934 l_array_source_67      t_array_source_67;
147935 l_array_source_68      t_array_source_68;
147936 l_array_source_69      t_array_source_69;
147937 l_array_source_70      t_array_source_70;
147938 l_array_source_71      t_array_source_71;
147939 l_array_source_72      t_array_source_72;
147940 l_array_source_73      t_array_source_73;
147941 l_array_source_74      t_array_source_74;
147942 l_array_source_75      t_array_source_75;
147943 l_array_source_76      t_array_source_76;
147944 l_array_source_77      t_array_source_77;
147945 l_array_source_78      t_array_source_78;
147946 l_array_source_79      t_array_source_79;
147947 l_array_source_79_meaning      t_array_lookup_meaning;
147948 l_array_source_83      t_array_source_83;
147949 l_array_source_85      t_array_source_85;
147950 l_array_source_86      t_array_source_86;
147951 l_array_source_87      t_array_source_87;
147952 l_array_source_88      t_array_source_88;
147953 l_array_source_89      t_array_source_89;
147954 l_array_source_90      t_array_source_90;
147955 l_array_source_91      t_array_source_91;
147956 l_array_source_92      t_array_source_92;
147957 l_array_source_93      t_array_source_93;
147958 l_array_source_94      t_array_source_94;
147959 l_array_source_95      t_array_source_95;
147960 l_array_source_95_meaning      t_array_lookup_meaning;
147961 l_array_source_135      t_array_source_135;
147962 l_array_source_135_meaning      t_array_lookup_meaning;
147963 l_array_source_146      t_array_source_146;
147964 
147965 --
147966 CURSOR header_cur
147967 IS
147968 SELECT /*+ leading(xet) cardinality(xet,1) */
147969 -- Event Class Code: DEBIT MEMOS
147970     xet.entity_id
147971    ,xet.legal_entity_id
147972    ,xet.entity_code
147973    ,xet.transaction_number
147974    ,xet.event_id
147975    ,xet.event_class_code
147976    ,xet.event_type_code
147977    ,xet.event_number
147978    ,xet.event_date
147979    ,xet.transaction_date
147980    ,xet.reference_num_1
147981    ,xet.reference_num_2
147982    ,xet.reference_num_3
147983    ,xet.reference_num_4
147984    ,xet.reference_char_1
147985    ,xet.reference_char_2
147986    ,xet.reference_char_3
147987    ,xet.reference_char_4
147988    ,xet.reference_date_1
147989    ,xet.reference_date_2
147990    ,xet.reference_date_3
147991    ,xet.reference_date_4
147992    ,xet.event_created_by
147993    ,xet.budgetary_control_flag 
147994   , h2.INV_TRANSACTION_NUMBER    source_3
147995   , h2.AI_INVOICE_DATE    source_4
147996   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
147997   , h2.DOC_SEQUENCE_NAME    source_6
147998   , h2.INV_DOC_SEQUENCE_VALUE    source_7
147999   , h2.AI_DESCRIPTION    source_8
148000   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
148001   , fvl15.meaning   source_15_meaning
148002   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
148003   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
148004   , h2.AI_ACCTS_PAY_CCID    source_34
148005   , h4.FSP_RETAINAGE_ACCOUNT    source_40
148006   , h4.ASP_AUTO_OFFSET_FLAG    source_47
148007   , fvl47.meaning   source_47_meaning
148008   , h2.AI_INVOICE_ID    source_57
148009   , h2.AI_INVOICE_CURRENCY_CODE    source_66
148010   , h2.AI_VENDOR_ID    source_80
148011   , h2.AI_VENDOR_SITE_ID    source_81
148012   , h2.THIRD_PARTY_TYPE    source_82
148013   , h2.INV_EXCHANGE_DATE    source_136
148014   , h2.INV_EXCHANGE_RATE    source_137
148015   , h2.INV_EXCHANGE_RATE_TYPE    source_138
148016   , h2.AI_SOURCE    source_163
148017   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
148018   FROM xla_events_gt     xet 
148019   , AP_INVOICE_EXTRACT_HEADER_V  h2
148020   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
148021   , fnd_lookup_values    fvl15
148022   , fnd_lookup_values    fvl47
148023  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
148024    and xet.event_class_code = C_EVENT_CLASS_CODE
148025    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
148026  AND h4.asp_org_id= h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
148027   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
148028   AND fvl15.view_application_id(+) = 200
148029   AND fvl15.language(+)            = USERENV('LANG')
148030      AND fvl47.lookup_type(+)         = 'YES_NO'
148031   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
148032   AND fvl47.view_application_id(+) = 0
148033   AND fvl47.language(+)            = USERENV('LANG')
148034   
148035  ORDER BY event_id
148036 ;
148037 
148038 
148039 --
148040 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
148041 IS
148042 SELECT  /*+ leading(xet) cardinality(xet,1) */
148043 -- Event Class Code: DEBIT MEMOS
148044     xet.entity_id
148045    ,xet.legal_entity_id
148046    ,xet.entity_code
148047    ,xet.transaction_number
148048    ,xet.event_id
148049    ,xet.event_class_code
148050    ,xet.event_type_code
148054    ,xet.reference_num_1
148051    ,xet.event_number
148052    ,xet.event_date
148053    ,xet.transaction_date
148055    ,xet.reference_num_2
148056    ,xet.reference_num_3
148057    ,xet.reference_num_4
148058    ,xet.reference_char_1
148059    ,xet.reference_char_2
148060    ,xet.reference_char_3
148061    ,xet.reference_char_4
148062    ,xet.reference_date_1
148063    ,xet.reference_date_2
148064    ,xet.reference_date_3
148065    ,xet.reference_date_4
148066    ,xet.event_created_by
148067    ,xet.budgetary_control_flag
148068  , l1.LINE_NUMBER  
148069   , l1.AID_DESCRIPTION    source_1
148070   , l1.INV_DIST_BASE_AMOUNT    source_21
148071   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
148072   , fvl22.meaning   source_22_meaning
148073   , l1.AID_DIST_CCID    source_30
148074   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
148075   , fvl33.meaning   source_33_meaning
148076   , l1.AID_RET_RELATED_DIST_CCID    source_42
148077   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
148078   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_49
148079   , l1.ASAT_LIAB_CCID    source_50
148080   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
148081   , l1.DISTRIBUTION_LINK_TYPE    source_54
148082   , l1.ALLOC_TO_MAIN_DIST_ID    source_56
148083   , l1.BUS_FLOW_PO_APP_ID    source_58
148084   , l1.BUS_FLOW_PO_DIST_TYPE    source_59
148085   , l1.BUS_FLOW_PO_ENTITY_CODE    source_60
148086   , l1.BUS_FLOW_PO_DIST_ID    source_61
148087   , l1.BUS_FLOW_PO_DOC_ID    source_62
148088   , l1.AID_INVOICE_DIST_ID    source_63
148089   , l1.UPG_ENC_CR_CCID    source_64
148090   , l1.UPG_ENC_CR_AMT    source_65
148091   , l1.UPG_ENC_CR_BASE_AMT    source_67
148092   , l1.UPG_ENC_DR_CCID    source_68
148093   , l1.UPG_ENC_DR_AMT    source_69
148094   , l1.UPG_ENC_DR_BASE_AMT    source_70
148095   , l1.UPG_AP_ENCUM_OPTION    source_71
148096   , l1.AID_AMOUNT    source_72
148097   , l3.POH_RATE_DATE    source_73
148098   , l3.POH_RATE    source_74
148099   , l3.POH_RATE_TYPE    source_75
148100   , l1.DEFERRED_END_DATE    source_76
148101   , l1.DEFERRED_OPTION    source_77
148102   , l1.DEFERRED_START_DATE    source_78
148103   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
148104   , fvl79.meaning   source_79_meaning
148105   , l1.AID_PARENT_REVERSAL_ID    source_83
148106   , l5.TAX_LINE_ID    source_85
148107   , l6.REC_NREC_TAX_DIST_ID    source_86
148108   , l1.SUMMARY_TAX_LINE_ID    source_87
148109   , l1.UPG_CR_ENC_TYPE_ID    source_88
148110   , l1.UPG_DR_ENC_TYPE_ID    source_89
148111   , l1.BUS_FLOW_AP_APP_ID    source_90
148112   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
148113   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
148114   , l1.BUS_FLOW_INV_DIST_ID    source_93
148115   , l1.BUS_FLOW_INV_ID    source_94
148116   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_95
148117   , fvl95.meaning   source_95_meaning
148118   , l1.SELF_ASSESSED_TAX_FLAG    source_135
148119   , fvl135.meaning   source_135_meaning
148120   , l1.AID_PROJECT_ID    source_146
148121   FROM xla_events_gt     xet 
148122   , AP_INVOICE_EXTRACT_DETAILS_V  l1
148123   , AP_PO_HEADERS_EXTRACT_V  l3
148124   , ZX_AP_DEF_TAX_EXTRACT_V  l5
148125   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
148126   , fnd_lookup_values    fvl22
148127   , fnd_lookup_values    fvl33
148128   , fnd_lookup_values    fvl79
148129   , fnd_lookup_values    fvl95
148130   , fnd_lookup_values    fvl135
148131  WHERE xet.event_id between x_first_event_id and x_last_event_id
148132    and xet.event_date between p_pad_start_date and p_pad_end_date
148133    and xet.event_class_code = C_EVENT_CLASS_CODE
148134    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
148135  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'
148136   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
148137   AND fvl22.view_application_id(+) = 201
148138   AND fvl22.language(+)            = USERENV('LANG')
148139      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
148140   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
148141   AND fvl33.view_application_id(+) = 200
148142   AND fvl33.language(+)            = USERENV('LANG')
148143      AND fvl79.lookup_type(+)         = 'YES_NO'
148144   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
148145   AND fvl79.view_application_id(+) = 0
148146   AND fvl79.language(+)            = USERENV('LANG')
148147      AND fvl95.lookup_type(+)         = 'YES_NO'
148148   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
148149   AND fvl95.view_application_id(+) = 0
148150   AND fvl95.language(+)            = USERENV('LANG')
148151      AND fvl135.lookup_type(+)         = 'YES_NO'
148152   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
148153   AND fvl135.view_application_id(+) = 0
148154   AND fvl135.language(+)            = USERENV('LANG')
148155   ;
148156 
148157 --
148158 BEGIN
148159 IF g_log_enabled THEN
148160    l_log_module := C_DEFAULT_MODULE||'.EventClass_227';
148161 END IF;
148162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148163    trace
148164       (p_msg      => 'BEGIN of EventClass_227'
148165       ,p_level    => C_LEVEL_PROCEDURE
148166       ,p_module   => l_log_module);
148167 END IF;
148168 
148169 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148170    trace
148171       (p_msg      => 'p_application_id = '||p_application_id||
148172                      ' - p_base_ledger_id = '||p_base_ledger_id||
148173                      ' - p_target_ledger_id  = '||p_target_ledger_id||
148174                      ' - p_language = '||p_language||
148175                      ' - p_currency_code = '||p_currency_code||
148176                      ' - p_sla_ledger_id = '||p_sla_ledger_id
148177       ,p_level    => C_LEVEL_STATEMENT
148178       ,p_module   => l_log_module);
148179 END IF;
148180 --
148181 -- initialze arrays
148182 --
148183 g_array_event.DELETE;
148187 -- 4262811 Initialze MPA Line Number
148184 l_rec_array_event := l_null_rec_array_event;
148185 --
148186 --------------------------------------
148188 --------------------------------------
148189 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
148190 
148191 --
148192 
148193 --
148194 OPEN header_cur;
148195 --
148196 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148197    trace
148198    (p_msg      => 'SQL - FETCH header_cur'
148199    ,p_level    => C_LEVEL_STATEMENT
148200    ,p_module   => l_log_module);
148201 END IF;
148202 --
148203 LOOP
148204 FETCH header_cur BULK COLLECT INTO
148205         l_array_entity_id
148206       , l_array_legal_entity_id
148207       , l_array_entity_code
148208       , l_array_transaction_num
148209       , l_array_event_id
148210       , l_array_class_code
148211       , l_array_event_type
148212       , l_array_event_number
148213       , l_array_event_date
148214       , l_array_transaction_date
148215       , l_array_reference_num_1
148216       , l_array_reference_num_2
148217       , l_array_reference_num_3
148218       , l_array_reference_num_4
148219       , l_array_reference_char_1
148220       , l_array_reference_char_2
148221       , l_array_reference_char_3
148222       , l_array_reference_char_4
148223       , l_array_reference_date_1
148224       , l_array_reference_date_2
148225       , l_array_reference_date_3
148226       , l_array_reference_date_4
148227       , l_array_event_created_by
148228       , l_array_budgetary_control_flag 
148229       , l_array_source_3
148230       , l_array_source_4
148231       , l_array_source_5
148232       , l_array_source_6
148233       , l_array_source_7
148234       , l_array_source_8
148235       , l_array_source_15
148236       , l_array_source_15_meaning
148237       , l_array_source_20
148238       , l_array_source_23
148239       , l_array_source_34
148240       , l_array_source_40
148241       , l_array_source_47
148242       , l_array_source_47_meaning
148243       , l_array_source_57
148244       , l_array_source_66
148245       , l_array_source_80
148246       , l_array_source_81
148247       , l_array_source_82
148248       , l_array_source_136
148249       , l_array_source_137
148250       , l_array_source_138
148251       , l_array_source_163
148252       , l_array_source_168
148253       LIMIT l_rows;
148254 --
148255 IF (C_LEVEL_EVENT >= g_log_level) THEN
148256    trace
148257    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
148258    ,p_level    => C_LEVEL_EVENT
148259    ,p_module   => l_log_module);
148260 END IF;
148261 --
148262 EXIT WHEN l_array_entity_id.COUNT = 0;
148263 
148264 -- initialize arrays
148265 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
148266 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
148267 
148268 --
148269 -- Bug 4458708
148270 --
148271 XLA_AE_LINES_PKG.g_LineNumber := 0;
148272 
148273 
148274 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
148275 g_last_hdr_idx := l_array_event_id.LAST;
148276 --
148277 -- loop for the headers. Each iteration is for each header extract row
148278 -- fetched in header cursor
148279 --
148280 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
148281 
148282 --
148283 -- set event info as cache for other routines to refer event attributes
148284 --
148285 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
148286    (p_application_id           => p_application_id
148287    ,p_primary_ledger_id        => p_primary_ledger_id
148288    ,p_base_ledger_id           => p_base_ledger_id
148289    ,p_target_ledger_id         => p_target_ledger_id
148290    ,p_entity_id                => l_array_entity_id(hdr_idx)
148291    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
148292    ,p_entity_code              => l_array_entity_code(hdr_idx)
148293    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
148294    ,p_event_id                 => l_array_event_id(hdr_idx)
148295    ,p_event_class_code         => l_array_class_code(hdr_idx)
148296    ,p_event_type_code          => l_array_event_type(hdr_idx)
148297    ,p_event_number             => l_array_event_number(hdr_idx)
148298    ,p_event_date               => l_array_event_date(hdr_idx)
148299    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
148300    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
148301    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
148302    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
148303    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
148304    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
148305    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
148306    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
148307    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
148308    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
148309    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
148310    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
148311    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
148312    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
148313    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
148314 
148315 --
148316 -- set the status of entry to C_VALID (0)
148317 --
148318 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
148319 
148320 --
148321 -- initialize a row for ae header
148322 --
148323 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
148324 
148325 l_event_id := l_array_event_id(hdr_idx);
148326 
148327 --
148328 -- storing the hdr_idx for event. May be used by line cursor.
148329 --
148330 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
148334 -- store only those sources from header extract that may be used in lines
148331 
148332 --
148333 -- store sources from header extract. This can be improved to
148335 --
148336 
148337 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
148338 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
148339 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
148340 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
148341 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
148342 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
148343 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
148344 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
148345 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
148346 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
148347 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
148348 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
148349 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
148350 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
148351 g_array_event(l_event_id).array_value_num('source_57') := l_array_source_57(hdr_idx);
148352 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
148353 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
148354 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
148355 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
148356 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
148357 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
148358 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
148359 g_array_event(l_event_id).array_value_char('source_163') := l_array_source_163(hdr_idx);
148360 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
148361 
148362 --
148363 -- initilaize the status of ae headers for diffrent balance types
148364 -- the status is initialised to C_NOT_CREATED (2)
148365 --
148366 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148367 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148368 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148369 
148370 --
148371 -- call api to validate and store accounting attributes for header
148372 --
148373 
148374 ------------------------------------------------------------
148375 -- Accrual Reversal : to get date for Standard Source (NONE)
148376 ------------------------------------------------------------
148377 l_acc_rev_gl_date_source := NULL;
148378 
148379      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
148380       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
148381      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
148382       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
148383      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
148384       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
148385      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
148386       l_rec_acct_attrs.array_date_value(4) := 
148387 xla_ae_sources_pkg.GetSystemSourceDate(
148388    p_source_code           => 'XLA_EVENT_DATE'
148389  , p_source_type_code      => 'Y'
148390  , p_source_application_id =>  602
148391 );
148392 
148393 
148394 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
148395 
148396 XLA_AE_HEADER_PKG.SetJeCategoryName;
148397 
148398 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
148399 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
148400 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
148401 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
148402 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
148403 
148404 
148405 --
148406 xla_ae_header_pkg.SetHdrDescription(
148407    p_description => Description_2 (
148408    p_application_id => p_application_id 
148409  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
148410  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
148411  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
148412  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
148413  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
148414  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
148415    )
148416 );
148417 --
148418 
148419 -- No header level analytical criteria
148420 
148421 --
148422 --accounting attribute enhancement, bug 3612931
148423 --
148424 l_trx_reversal_source := SUBSTR(NULL, 1,30);
148425 
148426 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
148427    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
148428 
148429    xla_accounting_err_pkg.build_message
148430       (p_appli_s_name            => 'XLA'
148431       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
148432       ,p_token_1                 => 'ACCT_ATTR_NAME'
148433       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
148434       ,p_token_2                 => 'PRODUCT_NAME'
148438       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
148435       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
148436       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
148437       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
148439 
148440 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
148441    --
148442    -- following sets the accounting attributes needed to reverse
148443    -- accounting for a distributeion
148444    --
148445    xla_ae_lines_pkg.SetTrxReversalAttrs
148446       (p_event_id              => l_event_id
148447       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
148448       ,p_trx_reversal_source   => l_trx_reversal_source);
148449 
148450 END IF;
148451 
148452 
148453 ----------------------------------------------------------------
148454 -- 4262811 -  update the header statuses to invalid in need be
148455 ----------------------------------------------------------------
148456 --
148457 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
148458 
148459 
148460   -----------------------------------------------
148461   -- No accrual reversal for the event class/type
148462   -----------------------------------------------
148463 ----------------------------------------------------------------
148464 
148465 --
148466 -- this ends the header loop iteration for one bulk fetch
148467 --
148468 END LOOP;
148469 
148470 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
148471 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
148472 
148473 --
148474 -- insert dummy rows into lines gt table that were created due to
148475 -- transaction reversals
148476 --
148477 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
148478    l_result := XLA_AE_LINES_PKG.InsertLines;
148479 END IF;
148480 
148481 --
148482 -- reset the temp_line_num for each set of events fetched from header
148483 -- cursor rather than doing it for each new event in line cursor
148484 -- Bug 3939231
148485 --
148486 xla_ae_lines_pkg.g_temp_line_num := 0;
148487 
148488 
148489 
148490 --
148491 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
148492 --
148493 --
148494 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148495 
148496       trace
148497          (p_msg      => 'SQL - FETCH line_cur'
148498          ,p_level    => C_LEVEL_STATEMENT
148499          ,p_module   => l_log_module);
148500 
148501 END IF;
148502 --
148503 --
148504 LOOP
148505   --
148506   FETCH line_cur BULK COLLECT INTO
148507         l_array_entity_id
148508       , l_array_legal_entity_id
148509       , l_array_entity_code
148510       , l_array_transaction_num
148511       , l_array_event_id
148512       , l_array_class_code
148513       , l_array_event_type
148514       , l_array_event_number
148515       , l_array_event_date
148516       , l_array_transaction_date
148517       , l_array_reference_num_1
148518       , l_array_reference_num_2
148519       , l_array_reference_num_3
148520       , l_array_reference_num_4
148521       , l_array_reference_char_1
148522       , l_array_reference_char_2
148523       , l_array_reference_char_3
148524       , l_array_reference_char_4
148525       , l_array_reference_date_1
148526       , l_array_reference_date_2
148527       , l_array_reference_date_3
148528       , l_array_reference_date_4
148529       , l_array_event_created_by
148530       , l_array_budgetary_control_flag
148531       , l_array_extract_line_num 
148532       , l_array_source_1
148533       , l_array_source_21
148534       , l_array_source_22
148535       , l_array_source_22_meaning
148536       , l_array_source_30
148537       , l_array_source_33
148538       , l_array_source_33_meaning
148539       , l_array_source_42
148540       , l_array_source_43
148541       , l_array_source_49
148542       , l_array_source_50
148543       , l_array_source_52
148544       , l_array_source_54
148545       , l_array_source_56
148546       , l_array_source_58
148547       , l_array_source_59
148548       , l_array_source_60
148549       , l_array_source_61
148550       , l_array_source_62
148551       , l_array_source_63
148552       , l_array_source_64
148553       , l_array_source_65
148554       , l_array_source_67
148555       , l_array_source_68
148556       , l_array_source_69
148557       , l_array_source_70
148558       , l_array_source_71
148559       , l_array_source_72
148560       , l_array_source_73
148561       , l_array_source_74
148562       , l_array_source_75
148563       , l_array_source_76
148564       , l_array_source_77
148565       , l_array_source_78
148566       , l_array_source_79
148567       , l_array_source_79_meaning
148568       , l_array_source_83
148569       , l_array_source_85
148570       , l_array_source_86
148571       , l_array_source_87
148572       , l_array_source_88
148573       , l_array_source_89
148574       , l_array_source_90
148575       , l_array_source_91
148576       , l_array_source_92
148577       , l_array_source_93
148578       , l_array_source_94
148579       , l_array_source_95
148580       , l_array_source_95_meaning
148581       , l_array_source_135
148582       , l_array_source_135_meaning
148583       , l_array_source_146
148584       LIMIT l_rows;
148585 
148586   --
148587   IF (C_LEVEL_EVENT >= g_log_level) THEN
148588             trace
148589                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
148590                ,p_level    => C_LEVEL_EVENT
148591                ,p_module   => l_log_module);
148592   END IF;
148593   --
148594   EXIT WHEN l_array_entity_id.count = 0;
148598 --
148595 
148596   XLA_AE_LINES_PKG.g_rec_lines := null;
148597 
148599 -- Bug 4458708
148600 --
148601 XLA_AE_LINES_PKG.g_LineNumber := 0;
148602 --
148603 --
148604 
148605 FOR Idx IN 1..l_array_event_id.count LOOP
148606    --
148607    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
148608    --
148609    l_event_id := l_array_event_id(idx);  -- 5648433
148610 
148611    --
148612    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
148613    --
148614 
148615    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
148616              (g_array_event(l_event_id).array_value_num('header_index'))
148617          ,'N'
148618          ) <> 'Y'
148619    THEN
148620       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148621          trace
148622             (p_msg      => 'Trancaction revesal option is not Y '
148623             ,p_level    => C_LEVEL_STATEMENT
148624             ,p_module   => l_log_module);
148625       END IF;
148626 
148627 --
148628 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
148629 --
148630 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
148631 --
148632 -- set event info as cache for other routines to refer event attributes
148633 --
148634 
148635 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
148636    l_previous_event_id := l_event_id;
148637 
148638    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
148639       (p_application_id           => p_application_id
148640       ,p_primary_ledger_id        => p_primary_ledger_id
148641       ,p_base_ledger_id           => p_base_ledger_id
148642       ,p_target_ledger_id         => p_target_ledger_id
148643       ,p_entity_id                => l_array_entity_id(Idx)
148644       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
148645       ,p_entity_code              => l_array_entity_code(Idx)
148646       ,p_transaction_num          => l_array_transaction_num(Idx)
148647       ,p_event_id                 => l_array_event_id(Idx)
148648       ,p_event_class_code         => l_array_class_code(Idx)
148649       ,p_event_type_code          => l_array_event_type(Idx)
148650       ,p_event_number             => l_array_event_number(Idx)
148651       ,p_event_date               => l_array_event_date(Idx)
148652       ,p_transaction_date         => l_array_transaction_date(Idx)
148653       ,p_reference_num_1          => l_array_reference_num_1(Idx)
148654       ,p_reference_num_2          => l_array_reference_num_2(Idx)
148655       ,p_reference_num_3          => l_array_reference_num_3(Idx)
148656       ,p_reference_num_4          => l_array_reference_num_4(Idx)
148657       ,p_reference_char_1         => l_array_reference_char_1(Idx)
148658       ,p_reference_char_2         => l_array_reference_char_2(Idx)
148659       ,p_reference_char_3         => l_array_reference_char_3(Idx)
148660       ,p_reference_char_4         => l_array_reference_char_4(Idx)
148661       ,p_reference_date_1         => l_array_reference_date_1(Idx)
148662       ,p_reference_date_2         => l_array_reference_date_2(Idx)
148663       ,p_reference_date_3         => l_array_reference_date_3(Idx)
148664       ,p_reference_date_4         => l_array_reference_date_4(Idx)
148665       ,p_event_created_by         => l_array_event_created_by(Idx)
148666       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
148667        --
148668 END IF;
148669 
148670 
148671 
148672 --
148673 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
148674 
148675 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
148676 
148677 IF l_continue_with_lines THEN
148678    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
148679       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
148680 
148681       xla_accounting_err_pkg.build_message
148682          (p_appli_s_name            => 'XLA'
148683          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
148684          ,p_token_1                 => 'LINE_NUMBER'
148685          ,p_value_1                 => l_array_extract_line_num(Idx)
148686          ,p_token_2                 => 'PRODUCT_NAME'
148687          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
148688          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
148689          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
148690          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
148691 
148692    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
148693       --
148694       -- following sets the accounting attributes needed to reverse
148695       -- accounting for a distributeion
148696       --
148697 
148698       --
148699       -- 5217187
148700       --
148701       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
148702       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
148703                                        g_array_event(l_event_id).array_value_num('header_index'));
148704       --
148705       --
148706 
148707       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
148708       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
148709       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
148710       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_63(Idx);
148711       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
148712       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
148713       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
148714       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_64(Idx);
148715       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
148716       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_65(Idx);
148720       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_67(Idx);
148717       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
148718       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_66');
148719       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
148721       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
148722       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_68(Idx);
148723       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
148724       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_69(Idx);
148725       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
148726       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_66');
148727       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
148728       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_70(Idx);
148729       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
148730       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_71(Idx);
148731       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
148732       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_82');
148733       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
148734       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_83(Idx);
148735       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
148736       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_54(Idx);
148737       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
148738       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_85(Idx);
148739       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
148740       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_86(Idx);
148741       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
148742       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_87(Idx);
148743       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
148744       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_88(Idx);
148745       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
148746       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_89(Idx);
148747 
148748 
148749       xla_ae_lines_pkg.SetAcctReversalAttrs
148750          (p_event_id             => l_event_id
148751          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
148752          ,p_calculate_acctd_flag => l_calculate_acctd_flag
148753          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
148754    END IF;
148755 
148756    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
148757        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
148758 
148759 --
148760 AcctLineType_47 (
148761  p_application_id  => p_application_id
148762  ,p_event_id     => l_event_id
148763  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148764  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148765  ,p_actual_flag => l_actual_flag
148766  ,p_balance_type_code => l_balance_type_code
148767  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148768  
148769  , p_source_1 => l_array_source_1(Idx)
148770  , p_source_21 => l_array_source_21(Idx)
148771  , p_source_30 => l_array_source_30(Idx)
148772  , p_source_33 => l_array_source_33(Idx)
148773  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148774  , p_source_52 => l_array_source_52(Idx)
148775  , p_source_54 => l_array_source_54(Idx)
148776  , p_source_56 => l_array_source_56(Idx)
148777  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
148778  , p_source_58 => l_array_source_58(Idx)
148779  , p_source_59 => l_array_source_59(Idx)
148780  , p_source_60 => l_array_source_60(Idx)
148781  , p_source_61 => l_array_source_61(Idx)
148782  , p_source_62 => l_array_source_62(Idx)
148783  , p_source_63 => l_array_source_63(Idx)
148784  , p_source_64 => l_array_source_64(Idx)
148785  , p_source_65 => l_array_source_65(Idx)
148786  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
148787  , p_source_67 => l_array_source_67(Idx)
148788  , p_source_68 => l_array_source_68(Idx)
148789  , p_source_69 => l_array_source_69(Idx)
148790  , p_source_70 => l_array_source_70(Idx)
148791  , p_source_71 => l_array_source_71(Idx)
148792  , p_source_72 => l_array_source_72(Idx)
148793  , p_source_73 => l_array_source_73(Idx)
148794  , p_source_74 => l_array_source_74(Idx)
148795  , p_source_75 => l_array_source_75(Idx)
148796  , p_source_76 => l_array_source_76(Idx)
148797  , p_source_77 => l_array_source_77(Idx)
148798  , p_source_78 => l_array_source_78(Idx)
148799  , p_source_79 => l_array_source_79(Idx)
148800  , p_source_79_meaning => l_array_source_79_meaning(Idx)
148801  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
148802  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148803  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
148804  , p_source_83 => l_array_source_83(Idx)
148805  , p_source_85 => l_array_source_85(Idx)
148806  , p_source_86 => l_array_source_86(Idx)
148807  , p_source_87 => l_array_source_87(Idx)
148808  , p_source_88 => l_array_source_88(Idx)
148809  , p_source_89 => l_array_source_89(Idx)
148810  );
148811 If(l_balance_type_code = 'A') THEN
148812   l_actual_gain_loss_ref := l_gain_or_loss_ref;
148813 END IF;
148814 
148815 --
148816 
148817 
148818 --
148819 AcctLineType_51 (
148820  p_application_id  => p_application_id
148821  ,p_event_id     => l_event_id
148822  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148823  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148824  ,p_actual_flag => l_actual_flag
148825  ,p_balance_type_code => l_balance_type_code
148826  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148827  
148828  , p_source_1 => l_array_source_1(Idx)
148832  , p_source_21 => l_array_source_21(Idx)
148829  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
148830  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
148831  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
148833  , p_source_22 => l_array_source_22(Idx)
148834  , p_source_22_meaning => l_array_source_22_meaning(Idx)
148835  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
148836  , p_source_30 => l_array_source_30(Idx)
148837  , p_source_33 => l_array_source_33(Idx)
148838  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148839  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
148840  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
148841  , p_source_52 => l_array_source_52(Idx)
148842  , p_source_54 => l_array_source_54(Idx)
148843  , p_source_56 => l_array_source_56(Idx)
148844  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
148845  , p_source_63 => l_array_source_63(Idx)
148846  , p_source_64 => l_array_source_64(Idx)
148847  , p_source_65 => l_array_source_65(Idx)
148848  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
148849  , p_source_67 => l_array_source_67(Idx)
148850  , p_source_68 => l_array_source_68(Idx)
148851  , p_source_69 => l_array_source_69(Idx)
148852  , p_source_70 => l_array_source_70(Idx)
148853  , p_source_71 => l_array_source_71(Idx)
148854  , p_source_76 => l_array_source_76(Idx)
148855  , p_source_77 => l_array_source_77(Idx)
148856  , p_source_78 => l_array_source_78(Idx)
148857  , p_source_79 => l_array_source_79(Idx)
148858  , p_source_79_meaning => l_array_source_79_meaning(Idx)
148859  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
148860  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148861  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
148862  , p_source_83 => l_array_source_83(Idx)
148863  , p_source_85 => l_array_source_85(Idx)
148864  , p_source_86 => l_array_source_86(Idx)
148865  , p_source_87 => l_array_source_87(Idx)
148866  , p_source_88 => l_array_source_88(Idx)
148867  , p_source_89 => l_array_source_89(Idx)
148868  , p_source_90 => l_array_source_90(Idx)
148869  , p_source_91 => l_array_source_91(Idx)
148870  , p_source_92 => l_array_source_92(Idx)
148871  , p_source_93 => l_array_source_93(Idx)
148872  , p_source_94 => l_array_source_94(Idx)
148873  );
148874 If(l_balance_type_code = 'A') THEN
148875   l_actual_gain_loss_ref := l_gain_or_loss_ref;
148876 END IF;
148877 
148878 --
148879 
148880 
148881 --
148882 AcctLineType_55 (
148883  p_application_id  => p_application_id
148884  ,p_event_id     => l_event_id
148885  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148886  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148887  ,p_actual_flag => l_actual_flag
148888  ,p_balance_type_code => l_balance_type_code
148889  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148890  
148891  , p_source_1 => l_array_source_1(Idx)
148892  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
148893  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
148894  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
148895  , p_source_21 => l_array_source_21(Idx)
148896  , p_source_22 => l_array_source_22(Idx)
148897  , p_source_22_meaning => l_array_source_22_meaning(Idx)
148898  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
148899  , p_source_30 => l_array_source_30(Idx)
148900  , p_source_33 => l_array_source_33(Idx)
148901  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148902  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
148903  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
148904  , p_source_52 => l_array_source_52(Idx)
148905  , p_source_54 => l_array_source_54(Idx)
148906  , p_source_56 => l_array_source_56(Idx)
148907  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
148908  , p_source_63 => l_array_source_63(Idx)
148909  , p_source_64 => l_array_source_64(Idx)
148910  , p_source_65 => l_array_source_65(Idx)
148911  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
148912  , p_source_67 => l_array_source_67(Idx)
148913  , p_source_68 => l_array_source_68(Idx)
148914  , p_source_69 => l_array_source_69(Idx)
148915  , p_source_70 => l_array_source_70(Idx)
148916  , p_source_71 => l_array_source_71(Idx)
148917  , p_source_76 => l_array_source_76(Idx)
148918  , p_source_77 => l_array_source_77(Idx)
148919  , p_source_78 => l_array_source_78(Idx)
148920  , p_source_79 => l_array_source_79(Idx)
148921  , p_source_79_meaning => l_array_source_79_meaning(Idx)
148922  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
148923  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148924  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
148925  , p_source_83 => l_array_source_83(Idx)
148926  , p_source_85 => l_array_source_85(Idx)
148927  , p_source_86 => l_array_source_86(Idx)
148928  , p_source_87 => l_array_source_87(Idx)
148929  , p_source_88 => l_array_source_88(Idx)
148930  , p_source_89 => l_array_source_89(Idx)
148931  , p_source_90 => l_array_source_90(Idx)
148932  , p_source_91 => l_array_source_91(Idx)
148933  , p_source_92 => l_array_source_92(Idx)
148934  , p_source_93 => l_array_source_93(Idx)
148935  , p_source_94 => l_array_source_94(Idx)
148936  , p_source_95 => l_array_source_95(Idx)
148937  , p_source_95_meaning => l_array_source_95_meaning(Idx)
148938  );
148939 If(l_balance_type_code = 'A') THEN
148940   l_actual_gain_loss_ref := l_gain_or_loss_ref;
148941 END IF;
148942 
148943 --
148944 
148945 
148946 --
148947 AcctLineType_106 (
148948  p_application_id  => p_application_id
148949  ,p_event_id     => l_event_id
148950  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148951  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148955  
148952  ,p_actual_flag => l_actual_flag
148953  ,p_balance_type_code => l_balance_type_code
148954  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148956  , p_source_1 => l_array_source_1(Idx)
148957  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
148958  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
148959  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
148960  , p_source_21 => l_array_source_21(Idx)
148961  , p_source_22 => l_array_source_22(Idx)
148962  , p_source_22_meaning => l_array_source_22_meaning(Idx)
148963  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
148964  , p_source_30 => l_array_source_30(Idx)
148965  , p_source_33 => l_array_source_33(Idx)
148966  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148967  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
148968  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
148969  , p_source_52 => l_array_source_52(Idx)
148970  , p_source_54 => l_array_source_54(Idx)
148971  , p_source_56 => l_array_source_56(Idx)
148972  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
148973  , p_source_63 => l_array_source_63(Idx)
148974  , p_source_64 => l_array_source_64(Idx)
148975  , p_source_65 => l_array_source_65(Idx)
148976  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
148977  , p_source_67 => l_array_source_67(Idx)
148978  , p_source_68 => l_array_source_68(Idx)
148979  , p_source_69 => l_array_source_69(Idx)
148980  , p_source_70 => l_array_source_70(Idx)
148981  , p_source_71 => l_array_source_71(Idx)
148982  , p_source_72 => l_array_source_72(Idx)
148983  , p_source_76 => l_array_source_76(Idx)
148984  , p_source_77 => l_array_source_77(Idx)
148985  , p_source_78 => l_array_source_78(Idx)
148986  , p_source_79 => l_array_source_79(Idx)
148987  , p_source_79_meaning => l_array_source_79_meaning(Idx)
148988  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
148989  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148990  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
148991  , p_source_83 => l_array_source_83(Idx)
148992  , p_source_85 => l_array_source_85(Idx)
148993  , p_source_86 => l_array_source_86(Idx)
148994  , p_source_87 => l_array_source_87(Idx)
148995  , p_source_88 => l_array_source_88(Idx)
148996  , p_source_89 => l_array_source_89(Idx)
148997  , p_source_90 => l_array_source_90(Idx)
148998  , p_source_91 => l_array_source_91(Idx)
148999  , p_source_92 => l_array_source_92(Idx)
149000  , p_source_93 => l_array_source_93(Idx)
149001  , p_source_94 => l_array_source_94(Idx)
149002  , p_source_95 => l_array_source_95(Idx)
149003  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149004  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149005  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149006  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149007  );
149008 If(l_balance_type_code = 'A') THEN
149009   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149010 END IF;
149011 
149012 --
149013 
149014 
149015 --
149016 AcctLineType_115 (
149017  p_application_id  => p_application_id
149018  ,p_event_id     => l_event_id
149019  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149020  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149021  ,p_actual_flag => l_actual_flag
149022  ,p_balance_type_code => l_balance_type_code
149023  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149024  
149025  , p_source_1 => l_array_source_1(Idx)
149026  , p_source_21 => l_array_source_21(Idx)
149027  , p_source_30 => l_array_source_30(Idx)
149028  , p_source_33 => l_array_source_33(Idx)
149029  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149030  , p_source_52 => l_array_source_52(Idx)
149031  , p_source_54 => l_array_source_54(Idx)
149032  , p_source_56 => l_array_source_56(Idx)
149033  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149034  , p_source_63 => l_array_source_63(Idx)
149035  , p_source_64 => l_array_source_64(Idx)
149036  , p_source_65 => l_array_source_65(Idx)
149037  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149038  , p_source_67 => l_array_source_67(Idx)
149039  , p_source_68 => l_array_source_68(Idx)
149040  , p_source_69 => l_array_source_69(Idx)
149041  , p_source_70 => l_array_source_70(Idx)
149042  , p_source_71 => l_array_source_71(Idx)
149043  , p_source_72 => l_array_source_72(Idx)
149044  , p_source_76 => l_array_source_76(Idx)
149045  , p_source_77 => l_array_source_77(Idx)
149046  , p_source_78 => l_array_source_78(Idx)
149047  , p_source_79 => l_array_source_79(Idx)
149048  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149049  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149050  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149051  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149052  , p_source_83 => l_array_source_83(Idx)
149053  , p_source_85 => l_array_source_85(Idx)
149054  , p_source_86 => l_array_source_86(Idx)
149055  , p_source_87 => l_array_source_87(Idx)
149056  , p_source_88 => l_array_source_88(Idx)
149057  , p_source_89 => l_array_source_89(Idx)
149058  , p_source_90 => l_array_source_90(Idx)
149059  , p_source_91 => l_array_source_91(Idx)
149060  , p_source_92 => l_array_source_92(Idx)
149061  , p_source_93 => l_array_source_93(Idx)
149062  , p_source_94 => l_array_source_94(Idx)
149063  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149064  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149065  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149066  , p_source_146 => l_array_source_146(Idx)
149067  );
149068 If(l_balance_type_code = 'A') THEN
149069   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149070 END IF;
149071 
149072 --
149073 
149074 
149075 --
149079  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149076 AcctLineType_137 (
149077  p_application_id  => p_application_id
149078  ,p_event_id     => l_event_id
149080  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149081  ,p_actual_flag => l_actual_flag
149082  ,p_balance_type_code => l_balance_type_code
149083  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149084  
149085  , p_source_1 => l_array_source_1(Idx)
149086  , p_source_21 => l_array_source_21(Idx)
149087  , p_source_30 => l_array_source_30(Idx)
149088  , p_source_33 => l_array_source_33(Idx)
149089  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149090  , p_source_52 => l_array_source_52(Idx)
149091  , p_source_54 => l_array_source_54(Idx)
149092  , p_source_56 => l_array_source_56(Idx)
149093  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149094  , p_source_63 => l_array_source_63(Idx)
149095  , p_source_64 => l_array_source_64(Idx)
149096  , p_source_65 => l_array_source_65(Idx)
149097  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149098  , p_source_67 => l_array_source_67(Idx)
149099  , p_source_68 => l_array_source_68(Idx)
149100  , p_source_69 => l_array_source_69(Idx)
149101  , p_source_70 => l_array_source_70(Idx)
149102  , p_source_71 => l_array_source_71(Idx)
149103  , p_source_72 => l_array_source_72(Idx)
149104  , p_source_76 => l_array_source_76(Idx)
149105  , p_source_77 => l_array_source_77(Idx)
149106  , p_source_78 => l_array_source_78(Idx)
149107  , p_source_79 => l_array_source_79(Idx)
149108  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149109  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149110  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149111  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149112  , p_source_83 => l_array_source_83(Idx)
149113  , p_source_85 => l_array_source_85(Idx)
149114  , p_source_86 => l_array_source_86(Idx)
149115  , p_source_87 => l_array_source_87(Idx)
149116  , p_source_88 => l_array_source_88(Idx)
149117  , p_source_89 => l_array_source_89(Idx)
149118  , p_source_90 => l_array_source_90(Idx)
149119  , p_source_91 => l_array_source_91(Idx)
149120  , p_source_92 => l_array_source_92(Idx)
149121  , p_source_93 => l_array_source_93(Idx)
149122  , p_source_94 => l_array_source_94(Idx)
149123  , p_source_95 => l_array_source_95(Idx)
149124  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149125  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149126  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149127  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149128  );
149129 If(l_balance_type_code = 'A') THEN
149130   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149131 END IF;
149132 
149133 --
149134 
149135 
149136 --
149137 AcctLineType_141 (
149138  p_application_id  => p_application_id
149139  ,p_event_id     => l_event_id
149140  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149141  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149142  ,p_actual_flag => l_actual_flag
149143  ,p_balance_type_code => l_balance_type_code
149144  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149145  
149146  , p_source_1 => l_array_source_1(Idx)
149147  , p_source_21 => l_array_source_21(Idx)
149148  , p_source_30 => l_array_source_30(Idx)
149149  , p_source_33 => l_array_source_33(Idx)
149150  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149151  , p_source_52 => l_array_source_52(Idx)
149152  , p_source_54 => l_array_source_54(Idx)
149153  , p_source_56 => l_array_source_56(Idx)
149154  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149155  , p_source_63 => l_array_source_63(Idx)
149156  , p_source_64 => l_array_source_64(Idx)
149157  , p_source_65 => l_array_source_65(Idx)
149158  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149159  , p_source_67 => l_array_source_67(Idx)
149160  , p_source_68 => l_array_source_68(Idx)
149161  , p_source_69 => l_array_source_69(Idx)
149162  , p_source_70 => l_array_source_70(Idx)
149163  , p_source_71 => l_array_source_71(Idx)
149164  , p_source_72 => l_array_source_72(Idx)
149165  , p_source_76 => l_array_source_76(Idx)
149166  , p_source_77 => l_array_source_77(Idx)
149167  , p_source_78 => l_array_source_78(Idx)
149168  , p_source_79 => l_array_source_79(Idx)
149169  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149170  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149171  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149172  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149173  , p_source_83 => l_array_source_83(Idx)
149174  , p_source_85 => l_array_source_85(Idx)
149175  , p_source_86 => l_array_source_86(Idx)
149176  , p_source_87 => l_array_source_87(Idx)
149177  , p_source_88 => l_array_source_88(Idx)
149178  , p_source_89 => l_array_source_89(Idx)
149179  , p_source_90 => l_array_source_90(Idx)
149180  , p_source_91 => l_array_source_91(Idx)
149181  , p_source_92 => l_array_source_92(Idx)
149182  , p_source_93 => l_array_source_93(Idx)
149183  , p_source_94 => l_array_source_94(Idx)
149184  , p_source_95 => l_array_source_95(Idx)
149185  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149186  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149187  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149188  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149189  , p_source_146 => l_array_source_146(Idx)
149190  );
149191 If(l_balance_type_code = 'A') THEN
149192   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149193 END IF;
149194 
149195 --
149196 
149197 
149198 --
149199 AcctLineType_149 (
149200  p_application_id  => p_application_id
149201  ,p_event_id     => l_event_id
149202  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149203  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149207  
149204  ,p_actual_flag => l_actual_flag
149205  ,p_balance_type_code => l_balance_type_code
149206  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149208  , p_source_1 => l_array_source_1(Idx)
149209  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149210  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149211  , p_source_21 => l_array_source_21(Idx)
149212  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149213  , p_source_52 => l_array_source_52(Idx)
149214  , p_source_54 => l_array_source_54(Idx)
149215  , p_source_56 => l_array_source_56(Idx)
149216  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149217  , p_source_63 => l_array_source_63(Idx)
149218  , p_source_64 => l_array_source_64(Idx)
149219  , p_source_65 => l_array_source_65(Idx)
149220  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149221  , p_source_67 => l_array_source_67(Idx)
149222  , p_source_68 => l_array_source_68(Idx)
149223  , p_source_69 => l_array_source_69(Idx)
149224  , p_source_70 => l_array_source_70(Idx)
149225  , p_source_71 => l_array_source_71(Idx)
149226  , p_source_72 => l_array_source_72(Idx)
149227  , p_source_76 => l_array_source_76(Idx)
149228  , p_source_77 => l_array_source_77(Idx)
149229  , p_source_78 => l_array_source_78(Idx)
149230  , p_source_79 => l_array_source_79(Idx)
149231  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149232  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149233  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149234  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149235  , p_source_83 => l_array_source_83(Idx)
149236  , p_source_85 => l_array_source_85(Idx)
149237  , p_source_86 => l_array_source_86(Idx)
149238  , p_source_87 => l_array_source_87(Idx)
149239  , p_source_88 => l_array_source_88(Idx)
149240  , p_source_89 => l_array_source_89(Idx)
149241  , p_source_90 => l_array_source_90(Idx)
149242  , p_source_91 => l_array_source_91(Idx)
149243  , p_source_92 => l_array_source_92(Idx)
149244  , p_source_93 => l_array_source_93(Idx)
149245  , p_source_94 => l_array_source_94(Idx)
149246  , p_source_135 => l_array_source_135(Idx)
149247  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149248  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149249  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149250  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149251  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
149252  );
149253 If(l_balance_type_code = 'A') THEN
149254   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149255 END IF;
149256 
149257 --
149258 
149259 
149260 --
149261 AcctLineType_150 (
149262  p_application_id  => p_application_id
149263  ,p_event_id     => l_event_id
149264  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149265  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149266  ,p_actual_flag => l_actual_flag
149267  ,p_balance_type_code => l_balance_type_code
149268  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149269  
149270  , p_source_1 => l_array_source_1(Idx)
149271  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149272  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149273  , p_source_21 => l_array_source_21(Idx)
149274  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149275  , p_source_52 => l_array_source_52(Idx)
149276  , p_source_54 => l_array_source_54(Idx)
149277  , p_source_56 => l_array_source_56(Idx)
149278  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149279  , p_source_63 => l_array_source_63(Idx)
149280  , p_source_64 => l_array_source_64(Idx)
149281  , p_source_65 => l_array_source_65(Idx)
149282  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149283  , p_source_67 => l_array_source_67(Idx)
149284  , p_source_68 => l_array_source_68(Idx)
149285  , p_source_69 => l_array_source_69(Idx)
149286  , p_source_70 => l_array_source_70(Idx)
149287  , p_source_71 => l_array_source_71(Idx)
149288  , p_source_72 => l_array_source_72(Idx)
149289  , p_source_76 => l_array_source_76(Idx)
149290  , p_source_77 => l_array_source_77(Idx)
149291  , p_source_78 => l_array_source_78(Idx)
149292  , p_source_79 => l_array_source_79(Idx)
149293  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149294  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149295  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149296  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149297  , p_source_83 => l_array_source_83(Idx)
149298  , p_source_85 => l_array_source_85(Idx)
149299  , p_source_86 => l_array_source_86(Idx)
149300  , p_source_87 => l_array_source_87(Idx)
149301  , p_source_88 => l_array_source_88(Idx)
149302  , p_source_89 => l_array_source_89(Idx)
149303  , p_source_90 => l_array_source_90(Idx)
149304  , p_source_91 => l_array_source_91(Idx)
149305  , p_source_92 => l_array_source_92(Idx)
149306  , p_source_93 => l_array_source_93(Idx)
149307  , p_source_94 => l_array_source_94(Idx)
149308  , p_source_135 => l_array_source_135(Idx)
149309  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149310  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149311  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149312  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149313  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
149314  );
149315 If(l_balance_type_code = 'A') THEN
149316   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149317 END IF;
149318 
149319 --
149320 
149321 
149322 --
149323 AcctLineType_151 (
149324  p_application_id  => p_application_id
149325  ,p_event_id     => l_event_id
149326  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149330  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149327  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149328  ,p_actual_flag => l_actual_flag
149329  ,p_balance_type_code => l_balance_type_code
149331  
149332  , p_source_1 => l_array_source_1(Idx)
149333  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149334  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149335  , p_source_21 => l_array_source_21(Idx)
149336  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149337  , p_source_52 => l_array_source_52(Idx)
149338  , p_source_54 => l_array_source_54(Idx)
149339  , p_source_56 => l_array_source_56(Idx)
149340  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149341  , p_source_63 => l_array_source_63(Idx)
149342  , p_source_64 => l_array_source_64(Idx)
149343  , p_source_65 => l_array_source_65(Idx)
149344  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149345  , p_source_67 => l_array_source_67(Idx)
149346  , p_source_68 => l_array_source_68(Idx)
149347  , p_source_69 => l_array_source_69(Idx)
149348  , p_source_70 => l_array_source_70(Idx)
149349  , p_source_71 => l_array_source_71(Idx)
149350  , p_source_72 => l_array_source_72(Idx)
149351  , p_source_76 => l_array_source_76(Idx)
149352  , p_source_77 => l_array_source_77(Idx)
149353  , p_source_78 => l_array_source_78(Idx)
149354  , p_source_79 => l_array_source_79(Idx)
149355  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149356  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149357  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149358  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149359  , p_source_83 => l_array_source_83(Idx)
149360  , p_source_85 => l_array_source_85(Idx)
149361  , p_source_86 => l_array_source_86(Idx)
149362  , p_source_87 => l_array_source_87(Idx)
149363  , p_source_88 => l_array_source_88(Idx)
149364  , p_source_89 => l_array_source_89(Idx)
149365  , p_source_90 => l_array_source_90(Idx)
149366  , p_source_91 => l_array_source_91(Idx)
149367  , p_source_92 => l_array_source_92(Idx)
149368  , p_source_93 => l_array_source_93(Idx)
149369  , p_source_94 => l_array_source_94(Idx)
149370  , p_source_135 => l_array_source_135(Idx)
149371  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149372  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149373  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149374  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149375  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
149376  );
149377 If(l_balance_type_code = 'A') THEN
149378   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149379 END IF;
149380 
149381 --
149382 
149383 
149384 --
149385 AcctLineType_169 (
149386  p_application_id  => p_application_id
149387  ,p_event_id     => l_event_id
149388  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149389  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149390  ,p_actual_flag => l_actual_flag
149391  ,p_balance_type_code => l_balance_type_code
149392  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149393  
149394  , p_source_1 => l_array_source_1(Idx)
149395  , p_source_21 => l_array_source_21(Idx)
149396  , p_source_30 => l_array_source_30(Idx)
149397  , p_source_33 => l_array_source_33(Idx)
149398  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149399  , p_source_52 => l_array_source_52(Idx)
149400  , p_source_54 => l_array_source_54(Idx)
149401  , p_source_56 => l_array_source_56(Idx)
149402  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149403  , p_source_63 => l_array_source_63(Idx)
149404  , p_source_64 => l_array_source_64(Idx)
149405  , p_source_65 => l_array_source_65(Idx)
149406  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149407  , p_source_67 => l_array_source_67(Idx)
149408  , p_source_68 => l_array_source_68(Idx)
149409  , p_source_69 => l_array_source_69(Idx)
149410  , p_source_70 => l_array_source_70(Idx)
149411  , p_source_71 => l_array_source_71(Idx)
149412  , p_source_72 => l_array_source_72(Idx)
149413  , p_source_76 => l_array_source_76(Idx)
149414  , p_source_77 => l_array_source_77(Idx)
149415  , p_source_78 => l_array_source_78(Idx)
149416  , p_source_79 => l_array_source_79(Idx)
149417  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149418  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149419  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149420  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149421  , p_source_83 => l_array_source_83(Idx)
149422  , p_source_85 => l_array_source_85(Idx)
149423  , p_source_86 => l_array_source_86(Idx)
149424  , p_source_87 => l_array_source_87(Idx)
149425  , p_source_88 => l_array_source_88(Idx)
149426  , p_source_89 => l_array_source_89(Idx)
149427  , p_source_90 => l_array_source_90(Idx)
149428  , p_source_91 => l_array_source_91(Idx)
149429  , p_source_92 => l_array_source_92(Idx)
149430  , p_source_93 => l_array_source_93(Idx)
149431  , p_source_94 => l_array_source_94(Idx)
149432  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149433  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149434  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149435  , p_source_146 => l_array_source_146(Idx)
149436  );
149437 If(l_balance_type_code = 'A') THEN
149438   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149439 END IF;
149440 
149441 --
149442 
149443 
149444 --
149445 AcctLineType_173 (
149446  p_application_id  => p_application_id
149447  ,p_event_id     => l_event_id
149448  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149449  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149450  ,p_actual_flag => l_actual_flag
149451  ,p_balance_type_code => l_balance_type_code
149452  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149456  , p_source_30 => l_array_source_30(Idx)
149453  
149454  , p_source_1 => l_array_source_1(Idx)
149455  , p_source_21 => l_array_source_21(Idx)
149457  , p_source_33 => l_array_source_33(Idx)
149458  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149459  , p_source_52 => l_array_source_52(Idx)
149460  , p_source_54 => l_array_source_54(Idx)
149461  , p_source_56 => l_array_source_56(Idx)
149462  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149463  , p_source_63 => l_array_source_63(Idx)
149464  , p_source_64 => l_array_source_64(Idx)
149465  , p_source_65 => l_array_source_65(Idx)
149466  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149467  , p_source_67 => l_array_source_67(Idx)
149468  , p_source_68 => l_array_source_68(Idx)
149469  , p_source_69 => l_array_source_69(Idx)
149470  , p_source_70 => l_array_source_70(Idx)
149471  , p_source_71 => l_array_source_71(Idx)
149472  , p_source_72 => l_array_source_72(Idx)
149473  , p_source_73 => l_array_source_73(Idx)
149474  , p_source_74 => l_array_source_74(Idx)
149475  , p_source_75 => l_array_source_75(Idx)
149476  , p_source_76 => l_array_source_76(Idx)
149477  , p_source_77 => l_array_source_77(Idx)
149478  , p_source_78 => l_array_source_78(Idx)
149479  , p_source_79 => l_array_source_79(Idx)
149480  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149481  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149482  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149483  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149484  , p_source_83 => l_array_source_83(Idx)
149485  , p_source_85 => l_array_source_85(Idx)
149486  , p_source_86 => l_array_source_86(Idx)
149487  , p_source_87 => l_array_source_87(Idx)
149488  , p_source_88 => l_array_source_88(Idx)
149489  , p_source_89 => l_array_source_89(Idx)
149490  , p_source_90 => l_array_source_90(Idx)
149491  , p_source_91 => l_array_source_91(Idx)
149492  , p_source_92 => l_array_source_92(Idx)
149493  , p_source_93 => l_array_source_93(Idx)
149494  , p_source_94 => l_array_source_94(Idx)
149495  , p_source_95 => l_array_source_95(Idx)
149496  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149497  , p_source_135 => l_array_source_135(Idx)
149498  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149499  );
149500 If(l_balance_type_code = 'A') THEN
149501   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149502 END IF;
149503 
149504 --
149505 
149506 
149507 --
149508 AcctLineType_176 (
149509  p_application_id  => p_application_id
149510  ,p_event_id     => l_event_id
149511  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149512  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149513  ,p_actual_flag => l_actual_flag
149514  ,p_balance_type_code => l_balance_type_code
149515  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149516  
149517  , p_source_1 => l_array_source_1(Idx)
149518  , p_source_21 => l_array_source_21(Idx)
149519  , p_source_30 => l_array_source_30(Idx)
149520  , p_source_33 => l_array_source_33(Idx)
149521  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149522  , p_source_52 => l_array_source_52(Idx)
149523  , p_source_54 => l_array_source_54(Idx)
149524  , p_source_56 => l_array_source_56(Idx)
149525  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149526  , p_source_63 => l_array_source_63(Idx)
149527  , p_source_64 => l_array_source_64(Idx)
149528  , p_source_65 => l_array_source_65(Idx)
149529  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149530  , p_source_67 => l_array_source_67(Idx)
149531  , p_source_68 => l_array_source_68(Idx)
149532  , p_source_69 => l_array_source_69(Idx)
149533  , p_source_70 => l_array_source_70(Idx)
149534  , p_source_71 => l_array_source_71(Idx)
149535  , p_source_72 => l_array_source_72(Idx)
149536  , p_source_76 => l_array_source_76(Idx)
149537  , p_source_77 => l_array_source_77(Idx)
149538  , p_source_78 => l_array_source_78(Idx)
149539  , p_source_79 => l_array_source_79(Idx)
149540  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149541  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149542  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149543  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149544  , p_source_83 => l_array_source_83(Idx)
149545  , p_source_85 => l_array_source_85(Idx)
149546  , p_source_86 => l_array_source_86(Idx)
149547  , p_source_87 => l_array_source_87(Idx)
149548  , p_source_88 => l_array_source_88(Idx)
149549  , p_source_89 => l_array_source_89(Idx)
149550  , p_source_90 => l_array_source_90(Idx)
149551  , p_source_91 => l_array_source_91(Idx)
149552  , p_source_92 => l_array_source_92(Idx)
149553  , p_source_93 => l_array_source_93(Idx)
149554  , p_source_94 => l_array_source_94(Idx)
149555  , p_source_95 => l_array_source_95(Idx)
149556  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149557  , p_source_135 => l_array_source_135(Idx)
149558  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149559  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149560  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149561  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149562  );
149563 If(l_balance_type_code = 'A') THEN
149564   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149565 END IF;
149566 
149567 --
149568 
149569 
149570 --
149571 AcctLineType_184 (
149572  p_application_id  => p_application_id
149573  ,p_event_id     => l_event_id
149574  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149575  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149576  ,p_actual_flag => l_actual_flag
149577  ,p_balance_type_code => l_balance_type_code
149578  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149579  
149580  , p_source_1 => l_array_source_1(Idx)
149581  , p_source_21 => l_array_source_21(Idx)
149582  , p_source_30 => l_array_source_30(Idx)
149586  , p_source_54 => l_array_source_54(Idx)
149583  , p_source_33 => l_array_source_33(Idx)
149584  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149585  , p_source_52 => l_array_source_52(Idx)
149587  , p_source_56 => l_array_source_56(Idx)
149588  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149589  , p_source_63 => l_array_source_63(Idx)
149590  , p_source_64 => l_array_source_64(Idx)
149591  , p_source_65 => l_array_source_65(Idx)
149592  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149593  , p_source_67 => l_array_source_67(Idx)
149594  , p_source_68 => l_array_source_68(Idx)
149595  , p_source_69 => l_array_source_69(Idx)
149596  , p_source_70 => l_array_source_70(Idx)
149597  , p_source_71 => l_array_source_71(Idx)
149598  , p_source_72 => l_array_source_72(Idx)
149599  , p_source_76 => l_array_source_76(Idx)
149600  , p_source_77 => l_array_source_77(Idx)
149601  , p_source_78 => l_array_source_78(Idx)
149602  , p_source_79 => l_array_source_79(Idx)
149603  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149604  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149605  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149606  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149607  , p_source_83 => l_array_source_83(Idx)
149608  , p_source_85 => l_array_source_85(Idx)
149609  , p_source_86 => l_array_source_86(Idx)
149610  , p_source_87 => l_array_source_87(Idx)
149611  , p_source_88 => l_array_source_88(Idx)
149612  , p_source_89 => l_array_source_89(Idx)
149613  , p_source_90 => l_array_source_90(Idx)
149614  , p_source_91 => l_array_source_91(Idx)
149615  , p_source_92 => l_array_source_92(Idx)
149616  , p_source_93 => l_array_source_93(Idx)
149617  , p_source_94 => l_array_source_94(Idx)
149618  , p_source_135 => l_array_source_135(Idx)
149619  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149620  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149621  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149622  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149623  );
149624 If(l_balance_type_code = 'A') THEN
149625   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149626 END IF;
149627 
149628 --
149629 
149630 
149631 --
149632 AcctLineType_189 (
149633  p_application_id  => p_application_id
149634  ,p_event_id     => l_event_id
149635  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149636  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149637  ,p_actual_flag => l_actual_flag
149638  ,p_balance_type_code => l_balance_type_code
149639  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149640  
149641  , p_source_1 => l_array_source_1(Idx)
149642  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149643  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149644  , p_source_21 => l_array_source_21(Idx)
149645  , p_source_30 => l_array_source_30(Idx)
149646  , p_source_33 => l_array_source_33(Idx)
149647  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149648  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
149649  , p_source_42 => l_array_source_42(Idx)
149650  , p_source_52 => l_array_source_52(Idx)
149651  , p_source_54 => l_array_source_54(Idx)
149652  , p_source_56 => l_array_source_56(Idx)
149653  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149654  , p_source_63 => l_array_source_63(Idx)
149655  , p_source_64 => l_array_source_64(Idx)
149656  , p_source_65 => l_array_source_65(Idx)
149657  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149658  , p_source_67 => l_array_source_67(Idx)
149659  , p_source_68 => l_array_source_68(Idx)
149660  , p_source_69 => l_array_source_69(Idx)
149661  , p_source_70 => l_array_source_70(Idx)
149662  , p_source_71 => l_array_source_71(Idx)
149663  , p_source_72 => l_array_source_72(Idx)
149664  , p_source_76 => l_array_source_76(Idx)
149665  , p_source_77 => l_array_source_77(Idx)
149666  , p_source_78 => l_array_source_78(Idx)
149667  , p_source_79 => l_array_source_79(Idx)
149668  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149669  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149670  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149671  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149672  , p_source_83 => l_array_source_83(Idx)
149673  , p_source_85 => l_array_source_85(Idx)
149674  , p_source_86 => l_array_source_86(Idx)
149675  , p_source_87 => l_array_source_87(Idx)
149676  , p_source_88 => l_array_source_88(Idx)
149677  , p_source_89 => l_array_source_89(Idx)
149678  , p_source_90 => l_array_source_90(Idx)
149679  , p_source_91 => l_array_source_91(Idx)
149680  , p_source_92 => l_array_source_92(Idx)
149681  , p_source_93 => l_array_source_93(Idx)
149682  , p_source_94 => l_array_source_94(Idx)
149683  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149684  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149685  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149686  );
149687 If(l_balance_type_code = 'A') THEN
149688   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149689 END IF;
149690 
149691 --
149692 
149693 
149694 --
149695 AcctLineType_193 (
149696  p_application_id  => p_application_id
149697  ,p_event_id     => l_event_id
149698  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149699  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149700  ,p_actual_flag => l_actual_flag
149701  ,p_balance_type_code => l_balance_type_code
149702  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149703  
149704  , p_source_1 => l_array_source_1(Idx)
149705  , p_source_21 => l_array_source_21(Idx)
149706  , p_source_33 => l_array_source_33(Idx)
149707  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149708  , p_source_49 => l_array_source_49(Idx)
149712  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149709  , p_source_52 => l_array_source_52(Idx)
149710  , p_source_54 => l_array_source_54(Idx)
149711  , p_source_56 => l_array_source_56(Idx)
149713  , p_source_63 => l_array_source_63(Idx)
149714  , p_source_64 => l_array_source_64(Idx)
149715  , p_source_65 => l_array_source_65(Idx)
149716  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149717  , p_source_67 => l_array_source_67(Idx)
149718  , p_source_68 => l_array_source_68(Idx)
149719  , p_source_69 => l_array_source_69(Idx)
149720  , p_source_70 => l_array_source_70(Idx)
149721  , p_source_71 => l_array_source_71(Idx)
149722  , p_source_72 => l_array_source_72(Idx)
149723  , p_source_76 => l_array_source_76(Idx)
149724  , p_source_77 => l_array_source_77(Idx)
149725  , p_source_78 => l_array_source_78(Idx)
149726  , p_source_79 => l_array_source_79(Idx)
149727  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149728  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149729  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149730  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149731  , p_source_83 => l_array_source_83(Idx)
149732  , p_source_85 => l_array_source_85(Idx)
149733  , p_source_86 => l_array_source_86(Idx)
149734  , p_source_87 => l_array_source_87(Idx)
149735  , p_source_88 => l_array_source_88(Idx)
149736  , p_source_89 => l_array_source_89(Idx)
149737  , p_source_90 => l_array_source_90(Idx)
149738  , p_source_91 => l_array_source_91(Idx)
149739  , p_source_92 => l_array_source_92(Idx)
149740  , p_source_93 => l_array_source_93(Idx)
149741  , p_source_94 => l_array_source_94(Idx)
149742  , p_source_95 => l_array_source_95(Idx)
149743  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149744  , p_source_135 => l_array_source_135(Idx)
149745  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149746  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149747  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149748  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149749  );
149750 If(l_balance_type_code = 'A') THEN
149751   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149752 END IF;
149753 
149754 --
149755 
149756 
149757 --
149758 AcctLineType_197 (
149759  p_application_id  => p_application_id
149760  ,p_event_id     => l_event_id
149761  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149762  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149763  ,p_actual_flag => l_actual_flag
149764  ,p_balance_type_code => l_balance_type_code
149765  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149766  
149767  , p_source_1 => l_array_source_1(Idx)
149768  , p_source_21 => l_array_source_21(Idx)
149769  , p_source_33 => l_array_source_33(Idx)
149770  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149771  , p_source_49 => l_array_source_49(Idx)
149772  , p_source_52 => l_array_source_52(Idx)
149773  , p_source_54 => l_array_source_54(Idx)
149774  , p_source_56 => l_array_source_56(Idx)
149775  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149776  , p_source_63 => l_array_source_63(Idx)
149777  , p_source_64 => l_array_source_64(Idx)
149778  , p_source_65 => l_array_source_65(Idx)
149779  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149780  , p_source_67 => l_array_source_67(Idx)
149781  , p_source_68 => l_array_source_68(Idx)
149782  , p_source_69 => l_array_source_69(Idx)
149783  , p_source_70 => l_array_source_70(Idx)
149784  , p_source_71 => l_array_source_71(Idx)
149785  , p_source_72 => l_array_source_72(Idx)
149786  , p_source_76 => l_array_source_76(Idx)
149787  , p_source_77 => l_array_source_77(Idx)
149788  , p_source_78 => l_array_source_78(Idx)
149789  , p_source_79 => l_array_source_79(Idx)
149790  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149791  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149792  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149793  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149794  , p_source_83 => l_array_source_83(Idx)
149795  , p_source_85 => l_array_source_85(Idx)
149796  , p_source_86 => l_array_source_86(Idx)
149797  , p_source_87 => l_array_source_87(Idx)
149798  , p_source_88 => l_array_source_88(Idx)
149799  , p_source_89 => l_array_source_89(Idx)
149800  , p_source_90 => l_array_source_90(Idx)
149801  , p_source_91 => l_array_source_91(Idx)
149802  , p_source_92 => l_array_source_92(Idx)
149803  , p_source_93 => l_array_source_93(Idx)
149804  , p_source_94 => l_array_source_94(Idx)
149805  , p_source_135 => l_array_source_135(Idx)
149806  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149807  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149808  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149809  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149810  );
149811 If(l_balance_type_code = 'A') THEN
149812   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149813 END IF;
149814 
149815 --
149816 
149817 
149818 --
149819 AcctLineType_200 (
149820  p_application_id  => p_application_id
149821  ,p_event_id     => l_event_id
149822  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149823  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149824  ,p_actual_flag => l_actual_flag
149825  ,p_balance_type_code => l_balance_type_code
149826  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149827  
149828  , p_source_1 => l_array_source_1(Idx)
149829  , p_source_21 => l_array_source_21(Idx)
149830  , p_source_33 => l_array_source_33(Idx)
149831  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149832  , p_source_50 => l_array_source_50(Idx)
149833  , p_source_52 => l_array_source_52(Idx)
149834  , p_source_54 => l_array_source_54(Idx)
149835  , p_source_56 => l_array_source_56(Idx)
149839  , p_source_65 => l_array_source_65(Idx)
149836  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149837  , p_source_63 => l_array_source_63(Idx)
149838  , p_source_64 => l_array_source_64(Idx)
149840  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149841  , p_source_67 => l_array_source_67(Idx)
149842  , p_source_68 => l_array_source_68(Idx)
149843  , p_source_69 => l_array_source_69(Idx)
149844  , p_source_70 => l_array_source_70(Idx)
149845  , p_source_71 => l_array_source_71(Idx)
149846  , p_source_72 => l_array_source_72(Idx)
149847  , p_source_76 => l_array_source_76(Idx)
149848  , p_source_77 => l_array_source_77(Idx)
149849  , p_source_78 => l_array_source_78(Idx)
149850  , p_source_79 => l_array_source_79(Idx)
149851  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149852  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149853  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149854  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149855  , p_source_83 => l_array_source_83(Idx)
149856  , p_source_85 => l_array_source_85(Idx)
149857  , p_source_86 => l_array_source_86(Idx)
149858  , p_source_87 => l_array_source_87(Idx)
149859  , p_source_88 => l_array_source_88(Idx)
149860  , p_source_89 => l_array_source_89(Idx)
149861  , p_source_90 => l_array_source_90(Idx)
149862  , p_source_91 => l_array_source_91(Idx)
149863  , p_source_92 => l_array_source_92(Idx)
149864  , p_source_93 => l_array_source_93(Idx)
149865  , p_source_94 => l_array_source_94(Idx)
149866  , p_source_135 => l_array_source_135(Idx)
149867  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149868  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
149869  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
149870  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
149871  );
149872 If(l_balance_type_code = 'A') THEN
149873   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149874 END IF;
149875 
149876 --
149877 
149878 
149879 --
149880 AcctLineType_205 (
149881  p_application_id  => p_application_id
149882  ,p_event_id     => l_event_id
149883  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149884  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149885  ,p_actual_flag => l_actual_flag
149886  ,p_balance_type_code => l_balance_type_code
149887  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149888  
149889  , p_source_1 => l_array_source_1(Idx)
149890  , p_source_21 => l_array_source_21(Idx)
149891  , p_source_33 => l_array_source_33(Idx)
149892  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149893  , p_source_49 => l_array_source_49(Idx)
149894  , p_source_52 => l_array_source_52(Idx)
149895  , p_source_54 => l_array_source_54(Idx)
149896  , p_source_56 => l_array_source_56(Idx)
149897  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149898  , p_source_63 => l_array_source_63(Idx)
149899  , p_source_64 => l_array_source_64(Idx)
149900  , p_source_65 => l_array_source_65(Idx)
149901  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149902  , p_source_67 => l_array_source_67(Idx)
149903  , p_source_68 => l_array_source_68(Idx)
149904  , p_source_69 => l_array_source_69(Idx)
149905  , p_source_70 => l_array_source_70(Idx)
149906  , p_source_71 => l_array_source_71(Idx)
149907  , p_source_72 => l_array_source_72(Idx)
149908  , p_source_73 => l_array_source_73(Idx)
149909  , p_source_74 => l_array_source_74(Idx)
149910  , p_source_75 => l_array_source_75(Idx)
149911  , p_source_76 => l_array_source_76(Idx)
149912  , p_source_77 => l_array_source_77(Idx)
149913  , p_source_78 => l_array_source_78(Idx)
149914  , p_source_79 => l_array_source_79(Idx)
149915  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149916  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149917  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149918  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149919  , p_source_83 => l_array_source_83(Idx)
149920  , p_source_85 => l_array_source_85(Idx)
149921  , p_source_86 => l_array_source_86(Idx)
149922  , p_source_87 => l_array_source_87(Idx)
149923  , p_source_88 => l_array_source_88(Idx)
149924  , p_source_89 => l_array_source_89(Idx)
149925  , p_source_90 => l_array_source_90(Idx)
149926  , p_source_91 => l_array_source_91(Idx)
149927  , p_source_92 => l_array_source_92(Idx)
149928  , p_source_93 => l_array_source_93(Idx)
149929  , p_source_94 => l_array_source_94(Idx)
149930  , p_source_95 => l_array_source_95(Idx)
149931  , p_source_95_meaning => l_array_source_95_meaning(Idx)
149932  , p_source_135 => l_array_source_135(Idx)
149933  , p_source_135_meaning => l_array_source_135_meaning(Idx)
149934  );
149935 If(l_balance_type_code = 'A') THEN
149936   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149937 END IF;
149938 
149939 --
149940 
149941 
149942 --
149943 AcctLineType_209 (
149944  p_application_id  => p_application_id
149945  ,p_event_id     => l_event_id
149946  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149947  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149948  ,p_actual_flag => l_actual_flag
149949  ,p_balance_type_code => l_balance_type_code
149950  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149951  
149952  , p_source_1 => l_array_source_1(Idx)
149953  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149954  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149955  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
149956  , p_source_21 => l_array_source_21(Idx)
149957  , p_source_22 => l_array_source_22(Idx)
149958  , p_source_22_meaning => l_array_source_22_meaning(Idx)
149959  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
149960  , p_source_30 => l_array_source_30(Idx)
149961  , p_source_33 => l_array_source_33(Idx)
149965  , p_source_52 => l_array_source_52(Idx)
149962  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149963  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
149964  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
149966  , p_source_54 => l_array_source_54(Idx)
149967  , p_source_56 => l_array_source_56(Idx)
149968  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
149969  , p_source_63 => l_array_source_63(Idx)
149970  , p_source_64 => l_array_source_64(Idx)
149971  , p_source_65 => l_array_source_65(Idx)
149972  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
149973  , p_source_67 => l_array_source_67(Idx)
149974  , p_source_68 => l_array_source_68(Idx)
149975  , p_source_69 => l_array_source_69(Idx)
149976  , p_source_70 => l_array_source_70(Idx)
149977  , p_source_71 => l_array_source_71(Idx)
149978  , p_source_72 => l_array_source_72(Idx)
149979  , p_source_76 => l_array_source_76(Idx)
149980  , p_source_77 => l_array_source_77(Idx)
149981  , p_source_78 => l_array_source_78(Idx)
149982  , p_source_79 => l_array_source_79(Idx)
149983  , p_source_79_meaning => l_array_source_79_meaning(Idx)
149984  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
149985  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149986  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
149987  , p_source_83 => l_array_source_83(Idx)
149988  , p_source_85 => l_array_source_85(Idx)
149989  , p_source_86 => l_array_source_86(Idx)
149990  , p_source_87 => l_array_source_87(Idx)
149991  , p_source_88 => l_array_source_88(Idx)
149992  , p_source_89 => l_array_source_89(Idx)
149993  , p_source_90 => l_array_source_90(Idx)
149994  , p_source_91 => l_array_source_91(Idx)
149995  , p_source_92 => l_array_source_92(Idx)
149996  , p_source_93 => l_array_source_93(Idx)
149997  , p_source_94 => l_array_source_94(Idx)
149998  , p_source_95 => l_array_source_95(Idx)
149999  , p_source_95_meaning => l_array_source_95_meaning(Idx)
150000  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
150001  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
150002  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
150003  );
150004 If(l_balance_type_code = 'A') THEN
150005   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150006 END IF;
150007 
150008 --
150009 
150010 
150011 --
150012 AcctLineType_213 (
150013  p_application_id  => p_application_id
150014  ,p_event_id     => l_event_id
150015  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150016  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150017  ,p_actual_flag => l_actual_flag
150018  ,p_balance_type_code => l_balance_type_code
150019  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150020  
150021  , p_source_1 => l_array_source_1(Idx)
150022  , p_source_21 => l_array_source_21(Idx)
150023  , p_source_30 => l_array_source_30(Idx)
150024  , p_source_33 => l_array_source_33(Idx)
150025  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150026  , p_source_52 => l_array_source_52(Idx)
150027  , p_source_54 => l_array_source_54(Idx)
150028  , p_source_56 => l_array_source_56(Idx)
150029  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
150030  , p_source_63 => l_array_source_63(Idx)
150031  , p_source_64 => l_array_source_64(Idx)
150032  , p_source_65 => l_array_source_65(Idx)
150033  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
150034  , p_source_67 => l_array_source_67(Idx)
150035  , p_source_68 => l_array_source_68(Idx)
150036  , p_source_69 => l_array_source_69(Idx)
150037  , p_source_70 => l_array_source_70(Idx)
150038  , p_source_71 => l_array_source_71(Idx)
150039  , p_source_72 => l_array_source_72(Idx)
150040  , p_source_76 => l_array_source_76(Idx)
150041  , p_source_77 => l_array_source_77(Idx)
150042  , p_source_78 => l_array_source_78(Idx)
150043  , p_source_79 => l_array_source_79(Idx)
150044  , p_source_79_meaning => l_array_source_79_meaning(Idx)
150045  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
150046  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150047  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
150048  , p_source_83 => l_array_source_83(Idx)
150049  , p_source_85 => l_array_source_85(Idx)
150050  , p_source_86 => l_array_source_86(Idx)
150051  , p_source_87 => l_array_source_87(Idx)
150052  , p_source_88 => l_array_source_88(Idx)
150053  , p_source_89 => l_array_source_89(Idx)
150054  , p_source_90 => l_array_source_90(Idx)
150055  , p_source_91 => l_array_source_91(Idx)
150056  , p_source_92 => l_array_source_92(Idx)
150057  , p_source_93 => l_array_source_93(Idx)
150058  , p_source_94 => l_array_source_94(Idx)
150059  , p_source_95 => l_array_source_95(Idx)
150060  , p_source_95_meaning => l_array_source_95_meaning(Idx)
150061  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
150062  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
150063  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
150064  );
150065 If(l_balance_type_code = 'A') THEN
150066   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150067 END IF;
150068 
150069 --
150070 
150071 
150072 --
150073 AcctLineType_217 (
150074  p_application_id  => p_application_id
150075  ,p_event_id     => l_event_id
150076  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150077  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150078  ,p_actual_flag => l_actual_flag
150079  ,p_balance_type_code => l_balance_type_code
150080  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150081  
150082  , p_source_1 => l_array_source_1(Idx)
150083  , p_source_21 => l_array_source_21(Idx)
150084  , p_source_30 => l_array_source_30(Idx)
150085  , p_source_33 => l_array_source_33(Idx)
150086  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150087  , p_source_52 => l_array_source_52(Idx)
150091  , p_source_63 => l_array_source_63(Idx)
150088  , p_source_54 => l_array_source_54(Idx)
150089  , p_source_56 => l_array_source_56(Idx)
150090  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
150092  , p_source_64 => l_array_source_64(Idx)
150093  , p_source_65 => l_array_source_65(Idx)
150094  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
150095  , p_source_67 => l_array_source_67(Idx)
150096  , p_source_68 => l_array_source_68(Idx)
150097  , p_source_69 => l_array_source_69(Idx)
150098  , p_source_70 => l_array_source_70(Idx)
150099  , p_source_71 => l_array_source_71(Idx)
150100  , p_source_72 => l_array_source_72(Idx)
150101  , p_source_76 => l_array_source_76(Idx)
150102  , p_source_77 => l_array_source_77(Idx)
150103  , p_source_78 => l_array_source_78(Idx)
150104  , p_source_79 => l_array_source_79(Idx)
150105  , p_source_79_meaning => l_array_source_79_meaning(Idx)
150106  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
150107  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150108  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
150109  , p_source_83 => l_array_source_83(Idx)
150110  , p_source_85 => l_array_source_85(Idx)
150111  , p_source_86 => l_array_source_86(Idx)
150112  , p_source_87 => l_array_source_87(Idx)
150113  , p_source_88 => l_array_source_88(Idx)
150114  , p_source_89 => l_array_source_89(Idx)
150115  , p_source_90 => l_array_source_90(Idx)
150116  , p_source_91 => l_array_source_91(Idx)
150117  , p_source_92 => l_array_source_92(Idx)
150118  , p_source_93 => l_array_source_93(Idx)
150119  , p_source_94 => l_array_source_94(Idx)
150120  , p_source_95 => l_array_source_95(Idx)
150121  , p_source_95_meaning => l_array_source_95_meaning(Idx)
150122  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
150123  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
150124  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
150125  );
150126 If(l_balance_type_code = 'A') THEN
150127   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150128 END IF;
150129 
150130 --
150131 
150132 
150133 --
150134 AcctLineType_223 (
150135  p_application_id  => p_application_id
150136  ,p_event_id     => l_event_id
150137  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150138  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150139  ,p_actual_flag => l_actual_flag
150140  ,p_balance_type_code => l_balance_type_code
150141  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150142  
150143  , p_source_1 => l_array_source_1(Idx)
150144  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
150145  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
150146  , p_source_21 => l_array_source_21(Idx)
150147  , p_source_30 => l_array_source_30(Idx)
150148  , p_source_33 => l_array_source_33(Idx)
150149  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150150  , p_source_43 => l_array_source_43(Idx)
150151  , p_source_52 => l_array_source_52(Idx)
150152  , p_source_54 => l_array_source_54(Idx)
150153  , p_source_56 => l_array_source_56(Idx)
150154  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
150155  , p_source_63 => l_array_source_63(Idx)
150156  , p_source_64 => l_array_source_64(Idx)
150157  , p_source_65 => l_array_source_65(Idx)
150158  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
150159  , p_source_67 => l_array_source_67(Idx)
150160  , p_source_68 => l_array_source_68(Idx)
150161  , p_source_69 => l_array_source_69(Idx)
150162  , p_source_70 => l_array_source_70(Idx)
150163  , p_source_71 => l_array_source_71(Idx)
150164  , p_source_72 => l_array_source_72(Idx)
150165  , p_source_76 => l_array_source_76(Idx)
150166  , p_source_77 => l_array_source_77(Idx)
150167  , p_source_78 => l_array_source_78(Idx)
150168  , p_source_79 => l_array_source_79(Idx)
150169  , p_source_79_meaning => l_array_source_79_meaning(Idx)
150170  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
150171  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150172  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
150173  , p_source_83 => l_array_source_83(Idx)
150174  , p_source_85 => l_array_source_85(Idx)
150175  , p_source_86 => l_array_source_86(Idx)
150176  , p_source_87 => l_array_source_87(Idx)
150177  , p_source_88 => l_array_source_88(Idx)
150178  , p_source_89 => l_array_source_89(Idx)
150179  , p_source_90 => l_array_source_90(Idx)
150180  , p_source_91 => l_array_source_91(Idx)
150181  , p_source_92 => l_array_source_92(Idx)
150182  , p_source_93 => l_array_source_93(Idx)
150183  , p_source_94 => l_array_source_94(Idx)
150184  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
150185  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
150186  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
150187  );
150188 If(l_balance_type_code = 'A') THEN
150189   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150190 END IF;
150191 
150192 --
150193 
150194       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
150195       -- or secondary ledger that has different currency with primary
150196       -- or alc that is calculated by sla
150197       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
150198             (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'))
150199 
150200 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
150201 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
150202           AND (l_actual_flag = 'A')) THEN
150203         XLA_AE_LINES_PKG.CreateGainOrLossLines(
150204           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
150205          ,p_application_id   => p_application_id
150209          ,p_event_type_code  => C_EVENT_TYPE_CODE
150206          ,p_amb_context_code => 'DEFAULT'
150207          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
150208          ,p_event_class_code => C_EVENT_CLASS_CODE
150210          
150211          ,p_gain_ccid        => -1
150212          ,p_loss_ccid        => -1
150213 
150214          ,p_actual_flag      => l_actual_flag
150215          ,p_enc_flag         => null
150216          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
150217          ,p_enc_g_l_ref      => null
150218          );
150219       END IF;
150220    END IF;
150221 END IF;
150222 
150223    ELSE
150224       --
150225       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
150226       --
150227       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150228          trace
150229             (p_msg      => 'Trancaction revesal option is Y'
150230             ,p_level    => C_LEVEL_STATEMENT
150231             ,p_module   => l_log_module);
150232       END IF;
150233    END IF;
150234 
150235 END LOOP;
150236 l_result := XLA_AE_LINES_PKG.InsertLines ;
150237 end loop;
150238 close line_cur;
150239 
150240 
150241 --
150242 -- insert headers into xla_ae_headers_gt table
150243 --
150244 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
150245 
150246 -- insert into errors table here.
150247 
150248 END LOOP;
150249 
150250 --
150251 -- 4865292
150252 --
150253 -- Compare g_hdr_extract_count with event count in
150254 -- CreateHeadersAndLines.
150255 --
150256 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
150257 
150258 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150259    trace (p_msg     => '# rows extracted from header extract objects '
150260                     || ' (running total): '
150261                     || g_hdr_extract_count
150262          ,p_level   => C_LEVEL_STATEMENT
150263          ,p_module  => l_log_module);
150264 END IF;
150265 
150266 CLOSE header_cur;
150267 --
150268 
150269 --
150270 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150271    trace
150272       (p_msg      => 'END of EventClass_227'
150273       ,p_level    => C_LEVEL_PROCEDURE
150274       ,p_module   => l_log_module);
150275 END IF;
150276 --
150277 RETURN l_result;
150278 EXCEPTION
150279 WHEN xla_exceptions_pkg.application_exception THEN
150280    
150281 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
150282 
150283    
150284 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
150285 
150286    RAISE;
150287 
150288 WHEN NO_DATA_FOUND THEN
150289 
150290 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
150291 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
150292 
150293 FOR header_record IN header_cur
150294 LOOP
150295     l_array_header_events(header_record.event_id) := header_record.event_id;
150296 END LOOP;
150297 
150298 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
150299 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
150300 
150301 fnd_file.put_line(fnd_file.LOG, '                    ');
150302 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
150303 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
150304 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
150305 
150306 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
150307 LOOP
150308 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
150309 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
150310         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
150311 	END IF;
150312 END LOOP;
150313 
150314 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
150315 fnd_file.put_line(fnd_file.LOG, '                    ');
150316 
150317 
150318 xla_exceptions_pkg.raise_message
150319       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_227');
150320 
150321 
150322 WHEN OTHERS THEN
150323    xla_exceptions_pkg.raise_message
150324       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_227');
150325 END EventClass_227;
150326 --
150327 
150328 ---------------------------------------
150329 --
150330 -- PRIVATE PROCEDURE
150331 --         insert_sources_228
150332 --
150333 ----------------------------------------
150334 --
150335 PROCEDURE insert_sources_228(
150336                                 p_target_ledger_id       IN NUMBER
150337                               , p_language               IN VARCHAR2
150338                               , p_sla_ledger_id          IN NUMBER
150339                               , p_pad_start_date         IN DATE
150340                               , p_pad_end_date           IN DATE
150341                          )
150342 IS
150343 
150344 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
150345 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
150346 p_apps_owner                   VARCHAR2(30);
150347 l_log_module                   VARCHAR2(240);
150348 BEGIN
150349 IF g_log_enabled THEN
150350       l_log_module := C_DEFAULT_MODULE||'.insert_sources_228';
150351 END IF;
150352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150353 
150354       trace
150355          (p_msg      => 'BEGIN of insert_sources_228'
150356          ,p_level    => C_LEVEL_PROCEDURE
150357          ,p_module   => l_log_module);
150358 
150359 END IF;
150360 
150361 -- select APPS owner
150362 SELECT oracle_username
150363   INTO p_apps_owner
150364   FROM fnd_oracle_userid
150365  WHERE read_only_flag = 'U'
150369       trace
150366 ;
150367 
150368 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150370          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
150371                         ' - p_language = '||p_language||
150372                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
150373                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
150374                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
150375                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
150376          ,p_level    => C_LEVEL_STATEMENT
150377          ,p_module   => l_log_module);
150378 END IF;
150379 
150380 
150381 --
150382 INSERT INTO xla_diag_sources --hdr2
150383 (
150384         event_id
150385       , ledger_id
150386       , sla_ledger_id
150387       , description_language
150388       , object_name
150389       , object_type_code
150390       , line_number
150391       , source_application_id
150392       , source_type_code
150393       , source_code
150394       , source_value
150395       , source_meaning
150396       , created_by
150397       , creation_date
150398       , last_update_date
150399       , last_updated_by
150400       , last_update_login
150401       , program_update_date
150402       , program_application_id
150403       , program_id
150404       , request_id
150405 )
150406 SELECT
150407         event_id
150408       , p_target_ledger_id
150409       , p_sla_ledger_id
150410       , p_language
150411       , object_name
150412       , object_type_code
150413       , line_number
150414       , source_application_id
150415       , source_type_code
150416       , source_code
150417       , SUBSTR(source_value ,1,1996)
150418       , SUBSTR(source_meaning ,1,200)
150419       , xla_environment_pkg.g_Usr_Id
150420       , TRUNC(SYSDATE)
150421       , TRUNC(SYSDATE)
150422       , xla_environment_pkg.g_Usr_Id
150423       , xla_environment_pkg.g_Login_Id
150424       , TRUNC(SYSDATE)
150425       , xla_environment_pkg.g_Prog_Appl_Id
150426       , xla_environment_pkg.g_Prog_Id
150427       , xla_environment_pkg.g_Req_Id
150428   FROM (
150429        SELECT xet.event_id                  event_id
150430             , 0                          line_number
150431             , CASE r
150432                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150433                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150434                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150435                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150436                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150437                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150438                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150439                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150440                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150441                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150442                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150443                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150444                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150445                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150446                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150447                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150448                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150449                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150450                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150451                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150452                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150453                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150454                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150455                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150456                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150457                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150458                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150459                 
150460                ELSE null
150461               END                           object_name
150462             , CASE r
150463                 WHEN 1 THEN 'HEADER' 
150464                 WHEN 2 THEN 'HEADER' 
150465                 WHEN 3 THEN 'HEADER' 
150466                 WHEN 4 THEN 'HEADER' 
150467                 WHEN 5 THEN 'HEADER' 
150468                 WHEN 6 THEN 'HEADER' 
150469                 WHEN 7 THEN 'HEADER' 
150470                 WHEN 8 THEN 'HEADER' 
150471                 WHEN 9 THEN 'HEADER' 
150472                 WHEN 10 THEN 'HEADER' 
150473                 WHEN 11 THEN 'HEADER' 
150474                 WHEN 12 THEN 'HEADER' 
150475                 WHEN 13 THEN 'HEADER' 
150476                 WHEN 14 THEN 'HEADER' 
150477                 WHEN 15 THEN 'HEADER' 
150478                 WHEN 16 THEN 'HEADER' 
150479                 WHEN 17 THEN 'HEADER' 
150480                 WHEN 18 THEN 'HEADER' 
150481                 WHEN 19 THEN 'HEADER' 
150482                 WHEN 20 THEN 'HEADER' 
150483                 WHEN 21 THEN 'HEADER' 
150484                 WHEN 22 THEN 'HEADER' 
150485                 WHEN 23 THEN 'HEADER' 
150486                 WHEN 24 THEN 'HEADER' 
150487                 WHEN 25 THEN 'HEADER' 
150488                 WHEN 26 THEN 'HEADER' 
150489                 WHEN 27 THEN 'HEADER' 
150490                 
150491                 ELSE null
150492               END                           object_type_code
150493             , CASE r
150494                 WHEN 1 THEN '200' 
150495                 WHEN 2 THEN '200' 
150496                 WHEN 3 THEN '200' 
150497                 WHEN 4 THEN '200' 
150498                 WHEN 5 THEN '200' 
150499                 WHEN 6 THEN '200' 
150500                 WHEN 7 THEN '200' 
150501                 WHEN 8 THEN '200' 
150502                 WHEN 9 THEN '200' 
150506                 WHEN 13 THEN '200' 
150503                 WHEN 10 THEN '200' 
150504                 WHEN 11 THEN '200' 
150505                 WHEN 12 THEN '200' 
150507                 WHEN 14 THEN '200' 
150508                 WHEN 15 THEN '200' 
150509                 WHEN 16 THEN '200' 
150510                 WHEN 17 THEN '200' 
150511                 WHEN 18 THEN '200' 
150512                 WHEN 19 THEN '200' 
150513                 WHEN 20 THEN '200' 
150514                 WHEN 21 THEN '200' 
150515                 WHEN 22 THEN '200' 
150516                 WHEN 23 THEN '200' 
150517                 WHEN 24 THEN '200' 
150518                 WHEN 25 THEN '200' 
150519                 WHEN 26 THEN '200' 
150520                 WHEN 27 THEN '200' 
150521                 
150522                 ELSE null
150523               END                           source_application_id
150524             , 'S'             source_type_code
150525             , CASE r
150526                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
150527                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
150528                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
150529                 WHEN 4 THEN 'AC_CHECK_DATE' 
150530                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
150531                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
150532                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
150533                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
150534                 WHEN 9 THEN 'CGAC_CASH_CLEARING_CCID' 
150535                 WHEN 10 THEN 'CGAC_GAIN_CCID' 
150536                 WHEN 11 THEN 'ASP_GAIN_CCID' 
150537                 WHEN 12 THEN 'CGAC_LOSS_CCID' 
150538                 WHEN 13 THEN 'ASP_LOSS_CCID' 
150539                 WHEN 14 THEN 'ASP_AUTO_OFFSET_FLAG' 
150540                 WHEN 15 THEN 'ASP_ROUNDING_ERROR_CCID' 
150541                 WHEN 16 THEN 'THIRD_PARTY_TYPE' 
150542                 WHEN 17 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
150543                 WHEN 18 THEN 'AC_VENDOR_ID' 
150544                 WHEN 19 THEN 'AC_VENDOR_SITE_ID' 
150545                 WHEN 20 THEN 'AC_CHECK_ID' 
150546                 WHEN 21 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
150547                 WHEN 22 THEN 'AC_FUTURE_PAY_DUE_DATE' 
150548                 WHEN 23 THEN 'AC_EXCHANGE_DATE' 
150549                 WHEN 24 THEN 'AC_EXCHANGE_RATE' 
150550                 WHEN 25 THEN 'AC_EXCHANGE_RATE_TYPE' 
150551                 WHEN 26 THEN 'AC_DOC_CATEGORY_CODE' 
150552                 WHEN 27 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
150553                 
150554                 ELSE null
150555               END                           source_code
150556             , CASE r
150557                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
150558                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
150559                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
150560                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
150561                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
150562                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
150563                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
150564                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
150565                 WHEN 9 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
150566                 WHEN 10 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
150567                 WHEN 11 THEN TO_CHAR(h3.ASP_GAIN_CCID)
150568                 WHEN 12 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
150569                 WHEN 13 THEN TO_CHAR(h3.ASP_LOSS_CCID)
150570                 WHEN 14 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
150571                 WHEN 15 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
150572                 WHEN 16 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
150573                 WHEN 17 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
150574                 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_ID)
150575                 WHEN 19 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
150576                 WHEN 20 THEN TO_CHAR(h2.AC_CHECK_ID)
150577                 WHEN 21 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
150578                 WHEN 22 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
150579                 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
150580                 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
150581                 WHEN 25 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
150582                 WHEN 26 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
150583                 WHEN 27 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
150584                 
150585                 ELSE null
150586               END                           source_value
150587             , CASE r
150588                 WHEN 7 THEN fvl15.meaning
150589                 WHEN 14 THEN fvl47.meaning
150590                 WHEN 21 THEN fvl113.meaning
150591                 
150592                 ELSE null
150593               END               source_meaning
150594          FROM xla_events_gt     xet  
150595       , AP_PAYMENT_EXTRACT_HEADER_V  h2
150596       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
150597   , fnd_lookup_values    fvl15
150598   , fnd_lookup_values    fvl47
150599   , fnd_lookup_values    fvl113
150600              ,(select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
150601          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
150602            AND xet.event_class_code = C_EVENT_CLASS_CODE
150603               AND h2.event_id = xet.event_id
150604  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
150605   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
150606   AND fvl15.view_application_id(+) = 200
150607   AND fvl15.language(+)            = USERENV('LANG')
150608      AND fvl47.lookup_type(+)         = 'YES_NO'
150609   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
150610   AND fvl47.view_application_id(+) = 0
150611   AND fvl47.language(+)            = USERENV('LANG')
150612      AND fvl113.lookup_type(+)         = 'YES_NO'
150613   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
150614   AND fvl113.view_application_id(+) = 0
150615   AND fvl113.language(+)            = USERENV('LANG')
150619 --
150616   
150617 )
150618 ;
150620 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150621 
150622       trace
150623          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
150624          ,p_level    => C_LEVEL_STATEMENT
150625          ,p_module   => l_log_module);
150626 
150627 END IF;
150628 --
150629 
150630 
150631 
150632 --
150633 INSERT INTO xla_diag_sources  --line2
150634 (
150635         event_id
150636       , ledger_id
150637       , sla_ledger_id
150638       , description_language
150639       , object_name
150640       , object_type_code
150641       , line_number
150642       , source_application_id
150643       , source_type_code
150644       , source_code
150645       , source_value
150646       , source_meaning
150647       , created_by
150648       , creation_date
150649       , last_update_date
150650       , last_updated_by
150651       , last_update_login
150652       , program_update_date
150653       , program_application_id
150654       , program_id
150655       , request_id
150656 )
150657 SELECT  event_id
150658       , p_target_ledger_id
150659       , p_sla_ledger_id
150660       , p_language
150661       , object_name
150662       , object_type_code
150663       , line_number
150664       , source_application_id
150665       , source_type_code
150666       , source_code
150667       , SUBSTR(source_value,1,1996)
150668       , SUBSTR(source_meaning ,1,200)
150669       , xla_environment_pkg.g_Usr_Id
150670       , TRUNC(SYSDATE)
150671       , TRUNC(SYSDATE)
150672       , xla_environment_pkg.g_Usr_Id
150673       , xla_environment_pkg.g_Login_Id
150674       , TRUNC(SYSDATE)
150675       , xla_environment_pkg.g_Prog_Appl_Id
150676       , xla_environment_pkg.g_Prog_Id
150677       , xla_environment_pkg.g_Req_Id
150678   FROM (
150679        SELECT xet.event_id                  event_id
150680             , l1.line_number                 line_number
150681             , CASE r
150682                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150683                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150684                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
150685                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150686                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150687                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150688                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150689                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150690                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150691                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150692                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150693                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150694                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150695                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150696                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150697                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150698                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150699                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150700                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150701                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150702                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150703                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150704                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
150705                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150706                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150707                 
150708                ELSE null
150709               END                           object_name
150710             , CASE r
150711                 WHEN 1 THEN 'LINE' 
150712                 WHEN 2 THEN 'LINE' 
150713                 WHEN 3 THEN 'LINE' 
150714                 WHEN 4 THEN 'LINE' 
150715                 WHEN 5 THEN 'LINE' 
150716                 WHEN 6 THEN 'LINE' 
150717                 WHEN 7 THEN 'LINE' 
150718                 WHEN 8 THEN 'LINE' 
150719                 WHEN 9 THEN 'LINE' 
150720                 WHEN 10 THEN 'LINE' 
150721                 WHEN 11 THEN 'LINE' 
150722                 WHEN 12 THEN 'LINE' 
150723                 WHEN 13 THEN 'LINE' 
150724                 WHEN 14 THEN 'LINE' 
150725                 WHEN 15 THEN 'LINE' 
150726                 WHEN 16 THEN 'LINE' 
150727                 WHEN 17 THEN 'LINE' 
150728                 WHEN 18 THEN 'LINE' 
150729                 WHEN 19 THEN 'LINE' 
150730                 WHEN 20 THEN 'LINE' 
150731                 WHEN 21 THEN 'LINE' 
150732                 WHEN 22 THEN 'LINE' 
150733                 WHEN 23 THEN 'LINE' 
150734                 WHEN 24 THEN 'LINE' 
150735                 WHEN 25 THEN 'LINE' 
150736                 
150737                 ELSE null
150738               END                           object_type_code
150739             , CASE r
150740                 WHEN 1 THEN '200' 
150741                 WHEN 2 THEN '200' 
150742                 WHEN 3 THEN '200' 
150743                 WHEN 4 THEN '200' 
150744                 WHEN 5 THEN '200' 
150745                 WHEN 6 THEN '200' 
150746                 WHEN 7 THEN '200' 
150747                 WHEN 8 THEN '200' 
150748                 WHEN 9 THEN '200' 
150749                 WHEN 10 THEN '200' 
150750                 WHEN 11 THEN '200' 
150751                 WHEN 12 THEN '200' 
150752                 WHEN 13 THEN '200' 
150753                 WHEN 14 THEN '200' 
150754                 WHEN 15 THEN '200' 
150755                 WHEN 16 THEN '200' 
150756                 WHEN 17 THEN '200' 
150757                 WHEN 18 THEN '200' 
150758                 WHEN 19 THEN '200' 
150759                 WHEN 20 THEN '200' 
150760                 WHEN 21 THEN '200' 
150761                 WHEN 22 THEN '200' 
150765                 
150762                 WHEN 23 THEN '200' 
150763                 WHEN 24 THEN '200' 
150764                 WHEN 25 THEN '200' 
150766                 ELSE null
150767               END                           source_application_id
150768             , 'S'             source_type_code
150769             , CASE r
150770                 WHEN 1 THEN 'AID_DIST_CCID' 
150771                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
150772                 WHEN 3 THEN 'TAX_ACCOUNT_CCID' 
150773                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
150774                 WHEN 5 THEN 'DISTRIBUTION_LINK_TYPE' 
150775                 WHEN 6 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
150776                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
150777                 WHEN 8 THEN 'BUS_FLOW_INV_DIST_TYPE' 
150778                 WHEN 9 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
150779                 WHEN 10 THEN 'BUS_FLOW_INV_DIST_ID' 
150780                 WHEN 11 THEN 'BUS_FLOW_INV_ID' 
150781                 WHEN 12 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
150782                 WHEN 13 THEN 'APHD_AMOUNT' 
150783                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
150784                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
150785                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
150786                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
150787                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
150788                 WHEN 19 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
150789                 WHEN 20 THEN 'APHD_PAYMENT_BASE_AMT' 
150790                 WHEN 21 THEN 'APHD_INVOICE_BASE_AMT' 
150791                 WHEN 22 THEN 'APHD_MATURED_BASE_AMOUNT' 
150792                 WHEN 23 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
150793                 WHEN 24 THEN 'PMT_MAT_BASE_AMT_DIFF' 
150794                 WHEN 25 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
150795                 
150796                 ELSE null
150797               END                           source_code
150798             , CASE r
150799                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
150800                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
150801                 WHEN 3 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
150802                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
150803                 WHEN 5 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
150804                 WHEN 6 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
150805                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
150806                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
150807                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
150808                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
150809                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
150810                 WHEN 12 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
150811                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
150812                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
150813                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
150814                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
150815                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
150816                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
150817                 WHEN 19 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
150818                 WHEN 20 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
150819                 WHEN 21 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
150820                 WHEN 22 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
150821                 WHEN 23 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
150822                 WHEN 24 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
150823                 WHEN 25 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
150824                 
150825                 ELSE null
150826               END                           source_value
150827             , CASE r
150828                 WHEN 2 THEN fvl33.meaning
150829                 WHEN 6 THEN fvl79.meaning
150830                 WHEN 12 THEN fvl97.meaning
150831                 WHEN 23 THEN fvl125.meaning
150832                 
150833                 ELSE null
150834               END               source_meaning
150835          FROM  xla_events_gt     xet  
150836         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
150837         , ZX_AP_DEF_TAX_EXTRACT_V  l4
150838   , fnd_lookup_values    fvl33
150839   , fnd_lookup_values    fvl79
150840   , fnd_lookup_values    fvl97
150841   , fnd_lookup_values    fvl125
150842             , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
150843         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
150844           AND xet.event_class_code = C_EVENT_CLASS_CODE
150845             AND l1.event_id          = xet.event_id
150846  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
150847   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
150848   AND fvl33.view_application_id(+) = 200
150849   AND fvl33.language(+)            = USERENV('LANG')
150850      AND fvl79.lookup_type(+)         = 'YES_NO'
150851   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
150852   AND fvl79.view_application_id(+) = 0
150853   AND fvl79.language(+)            = USERENV('LANG')
150854      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
150855   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
150856   AND fvl97.view_application_id(+) = 200
150857   AND fvl97.language(+)            = USERENV('LANG')
150858      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
150859   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
150860   AND fvl125.view_application_id(+) = 0
150861   AND fvl125.language(+)            = USERENV('LANG')
150862   
150863 )
150864 ;
150865 --
150866 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150867 
150868       trace
150869          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
150870          ,p_level    => C_LEVEL_STATEMENT
150871          ,p_module   => l_log_module);
150872 
150873 END IF;
150874 
150875 
150879          ,p_level    => C_LEVEL_PROCEDURE
150876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150877       trace
150878          (p_msg      => 'END of insert_sources_228'
150880          ,p_module   => l_log_module);
150881 END IF;
150882 EXCEPTION
150883   WHEN xla_exceptions_pkg.application_exception THEN
150884       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
150885             trace
150886                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
150887                ,p_level    => C_LEVEL_EXCEPTION
150888                ,p_module   => l_log_module);
150889       END IF;
150890       RAISE;
150891   WHEN OTHERS THEN
150892       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
150893             trace
150894                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
150895                ,p_level    => C_LEVEL_EXCEPTION
150896                ,p_module   => l_log_module);
150897        END IF;
150898        xla_exceptions_pkg.raise_message
150899            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_228');
150900 END insert_sources_228;
150901 --
150902 
150903 ---------------------------------------
150904 --
150905 -- PRIVATE FUNCTION
150906 --         EventClass_228
150907 --
150908 ----------------------------------------
150909 --
150910 FUNCTION EventClass_228
150911        (p_application_id         IN NUMBER
150912        ,p_base_ledger_id         IN NUMBER
150913        ,p_target_ledger_id       IN NUMBER
150914        ,p_language               IN VARCHAR2
150915        ,p_currency_code          IN VARCHAR2
150916        ,p_sla_ledger_id          IN NUMBER
150917        ,p_pad_start_date         IN DATE
150918        ,p_pad_end_date           IN DATE
150919        ,p_primary_ledger_id      IN NUMBER)
150920 RETURN BOOLEAN IS
150921 --
150922 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
150923 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
150924 
150925 l_calculate_acctd_flag   VARCHAR2(1) :='N';
150926 l_calculate_g_l_flag     VARCHAR2(1) :='N';
150927 --
150928 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150929 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150930 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
150931 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
150932 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150933 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
150934 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
150935 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150936 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150937 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150938 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150939 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150940 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150941 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
150942 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
150943 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
150944 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
150945 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
150946 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150947 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150948 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150949 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
150950 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
150951 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
150952 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
150953 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
150954 
150955 l_event_id                             NUMBER;
150956 l_previous_event_id                    NUMBER;
150957 l_first_event_id                       NUMBER;
150958 l_last_event_id                        NUMBER;
150959 
150960 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
150961 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
150962 --
150963 --
150964 l_result                    BOOLEAN := TRUE;
150965 l_rows                      NUMBER  := 1000;
150966 l_event_type_name           VARCHAR2(80) := 'All';
150967 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
150968 l_description               VARCHAR2(4000);
150969 l_transaction_reversal      NUMBER;
150970 l_ae_header_id              NUMBER;
150971 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
150972 l_log_module                VARCHAR2(240);
150973 --
150974 l_acct_reversal_source      VARCHAR2(30);
150975 l_trx_reversal_source       VARCHAR2(30);
150976 
150977 l_continue_with_lines       BOOLEAN := TRUE;
150978 --
150979 l_acc_rev_gl_date_source    DATE;                      -- 4262811
150980 --
150981 type t_array_event_id is table of number index by binary_integer;
150982 
150983 l_rec_array_event                    t_rec_array_event;
150984 l_null_rec_array_event               t_rec_array_event;
150985 l_array_ae_header_id                 xla_number_array_type;
150986 l_actual_flag                        VARCHAR2(1) := NULL;
150987 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
150988 l_balance_type_code                  VARCHAR2(1) :=NULL;
150989 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
150990 
150991 --
150992 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
150993 --
150994 
150998 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
150995 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
150996 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
150997 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
150999 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
151000 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
151001 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
151002 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
151003 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
151004 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
151005 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
151006 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
151007 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
151008 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
151009 TYPE t_array_source_48 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
151010 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
151011 TYPE t_array_source_96 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
151012 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
151013 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
151014 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_ID%TYPE INDEX BY BINARY_INTEGER;
151015 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
151016 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
151017 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
151018 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
151019 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
151020 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
151021 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
151022 
151023 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
151024 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
151025 TYPE t_array_source_51 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
151026 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
151027 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
151028 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
151029 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
151030 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
151031 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
151032 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151033 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
151034 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
151035 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
151036 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
151037 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
151038 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151039 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
151040 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151041 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151042 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
151043 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
151044 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
151045 TYPE t_array_source_125 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
151046 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
151047 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
151048 
151049 l_array_source_6              t_array_source_6;
151050 l_array_source_9              t_array_source_9;
151051 l_array_source_10              t_array_source_10;
151052 l_array_source_11              t_array_source_11;
151053 l_array_source_12              t_array_source_12;
151054 l_array_source_13              t_array_source_13;
151058 l_array_source_35              t_array_source_35;
151055 l_array_source_15              t_array_source_15;
151056 l_array_source_15_meaning      t_array_lookup_meaning;
151057 l_array_source_17              t_array_source_17;
151059 l_array_source_36              t_array_source_36;
151060 l_array_source_37              t_array_source_37;
151061 l_array_source_38              t_array_source_38;
151062 l_array_source_39              t_array_source_39;
151063 l_array_source_47              t_array_source_47;
151064 l_array_source_47_meaning      t_array_lookup_meaning;
151065 l_array_source_48              t_array_source_48;
151066 l_array_source_82              t_array_source_82;
151067 l_array_source_96              t_array_source_96;
151068 l_array_source_109              t_array_source_109;
151069 l_array_source_110              t_array_source_110;
151070 l_array_source_112              t_array_source_112;
151071 l_array_source_113              t_array_source_113;
151072 l_array_source_113_meaning      t_array_lookup_meaning;
151073 l_array_source_114              t_array_source_114;
151074 l_array_source_117              t_array_source_117;
151075 l_array_source_118              t_array_source_118;
151076 l_array_source_119              t_array_source_119;
151077 l_array_source_170              t_array_source_170;
151078 l_array_source_171              t_array_source_171;
151079 
151080 l_array_source_30      t_array_source_30;
151081 l_array_source_33      t_array_source_33;
151082 l_array_source_33_meaning      t_array_lookup_meaning;
151083 l_array_source_51      t_array_source_51;
151084 l_array_source_52      t_array_source_52;
151085 l_array_source_54      t_array_source_54;
151086 l_array_source_79      t_array_source_79;
151087 l_array_source_79_meaning      t_array_lookup_meaning;
151088 l_array_source_90      t_array_source_90;
151089 l_array_source_91      t_array_source_91;
151090 l_array_source_92      t_array_source_92;
151091 l_array_source_93      t_array_source_93;
151092 l_array_source_94      t_array_source_94;
151093 l_array_source_97      t_array_source_97;
151094 l_array_source_97_meaning      t_array_lookup_meaning;
151095 l_array_source_98      t_array_source_98;
151096 l_array_source_99      t_array_source_99;
151097 l_array_source_100      t_array_source_100;
151098 l_array_source_101      t_array_source_101;
151099 l_array_source_102      t_array_source_102;
151100 l_array_source_103      t_array_source_103;
151101 l_array_source_111      t_array_source_111;
151102 l_array_source_115      t_array_source_115;
151103 l_array_source_116      t_array_source_116;
151104 l_array_source_121      t_array_source_121;
151105 l_array_source_125      t_array_source_125;
151106 l_array_source_125_meaning      t_array_lookup_meaning;
151107 l_array_source_151      t_array_source_151;
151108 l_array_source_158      t_array_source_158;
151109 
151110 --
151111 CURSOR header_cur
151112 IS
151113 SELECT /*+ leading(xet) cardinality(xet,1) */
151114 -- Event Class Code: FUTURE DATED PAYMENTS
151115     xet.entity_id
151116    ,xet.legal_entity_id
151117    ,xet.entity_code
151118    ,xet.transaction_number
151119    ,xet.event_id
151120    ,xet.event_class_code
151121    ,xet.event_type_code
151122    ,xet.event_number
151123    ,xet.event_date
151124    ,xet.transaction_date
151125    ,xet.reference_num_1
151126    ,xet.reference_num_2
151127    ,xet.reference_num_3
151128    ,xet.reference_num_4
151129    ,xet.reference_char_1
151130    ,xet.reference_char_2
151131    ,xet.reference_char_3
151132    ,xet.reference_char_4
151133    ,xet.reference_date_1
151134    ,xet.reference_date_2
151135    ,xet.reference_date_3
151136    ,xet.reference_date_4
151137    ,xet.event_created_by
151138    ,xet.budgetary_control_flag 
151139   , h2.DOC_SEQUENCE_NAME    source_6
151140   , h2.AC_DOC_SEQUENCE_VALUE    source_9
151141   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
151142   , h2.AC_CHECK_DATE    source_11
151143   , h2.CBA_BANK_ACCOUNT_NAME    source_12
151144   , h2.AC_CURRENCY_CODE    source_13
151145   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
151146   , fvl15.meaning   source_15_meaning
151147   , h2.CGAC_AP_ASSET_CCID    source_17
151148   , h2.CGAC_CASH_CLEARING_CCID    source_35
151149   , h2.CGAC_GAIN_CCID    source_36
151150   , h3.ASP_GAIN_CCID    source_37
151151   , h2.CGAC_LOSS_CCID    source_38
151152   , h3.ASP_LOSS_CCID    source_39
151153   , h3.ASP_AUTO_OFFSET_FLAG    source_47
151154   , fvl47.meaning   source_47_meaning
151155   , h3.ASP_ROUNDING_ERROR_CCID    source_48
151156   , h2.THIRD_PARTY_TYPE    source_82
151157   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_96
151158   , h2.AC_VENDOR_ID    source_109
151159   , h2.AC_VENDOR_SITE_ID    source_110
151160   , h2.AC_CHECK_ID    source_112
151161   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
151162   , fvl113.meaning   source_113_meaning
151163   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
151164   , h2.AC_EXCHANGE_DATE    source_117
151165   , h2.AC_EXCHANGE_RATE    source_118
151166   , h2.AC_EXCHANGE_RATE_TYPE    source_119
151167   , h2.AC_DOC_CATEGORY_CODE    source_170
151168   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
151169   FROM xla_events_gt     xet 
151170   , AP_PAYMENT_EXTRACT_HEADER_V  h2
151171   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
151172   , fnd_lookup_values    fvl15
151173   , fnd_lookup_values    fvl47
151174   , fnd_lookup_values    fvl113
151175  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
151176    and xet.event_class_code = C_EVENT_CLASS_CODE
151177    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
151178  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
151179   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
151180   AND fvl15.view_application_id(+) = 200
151181   AND fvl15.language(+)            = USERENV('LANG')
151182      AND fvl47.lookup_type(+)         = 'YES_NO'
151183   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
151184   AND fvl47.view_application_id(+) = 0
151188   AND fvl113.view_application_id(+) = 0
151185   AND fvl47.language(+)            = USERENV('LANG')
151186      AND fvl113.lookup_type(+)         = 'YES_NO'
151187   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
151189   AND fvl113.language(+)            = USERENV('LANG')
151190   
151191  ORDER BY event_id
151192 ;
151193 
151194 
151195 --
151196 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
151197 IS
151198 SELECT  /*+ leading(xet) cardinality(xet,1) */
151199 -- Event Class Code: FUTURE DATED PAYMENTS
151200     xet.entity_id
151201    ,xet.legal_entity_id
151202    ,xet.entity_code
151203    ,xet.transaction_number
151204    ,xet.event_id
151205    ,xet.event_class_code
151206    ,xet.event_type_code
151207    ,xet.event_number
151208    ,xet.event_date
151209    ,xet.transaction_date
151210    ,xet.reference_num_1
151211    ,xet.reference_num_2
151212    ,xet.reference_num_3
151213    ,xet.reference_num_4
151214    ,xet.reference_char_1
151215    ,xet.reference_char_2
151216    ,xet.reference_char_3
151217    ,xet.reference_char_4
151218    ,xet.reference_date_1
151219    ,xet.reference_date_2
151220    ,xet.reference_date_3
151221    ,xet.reference_date_4
151222    ,xet.event_created_by
151223    ,xet.budgetary_control_flag
151224  , l1.LINE_NUMBER  
151225   , l1.AID_DIST_CCID    source_30
151226   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
151227   , fvl33.meaning   source_33_meaning
151228   , l4.TAX_ACCOUNT_CCID    source_51
151229   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
151230   , l1.DISTRIBUTION_LINK_TYPE    source_54
151231   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
151232   , fvl79.meaning   source_79_meaning
151233   , l1.BUS_FLOW_AP_APP_ID    source_90
151234   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
151235   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
151236   , l1.BUS_FLOW_INV_DIST_ID    source_93
151237   , l1.BUS_FLOW_INV_ID    source_94
151238   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_97
151239   , fvl97.meaning   source_97_meaning
151240   , l1.APHD_AMOUNT    source_98
151241   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_99
151242   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_100
151243   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_101
151244   , l1.BUS_FLOW_PAYMENT_ID    source_102
151245   , l1.APHD_PAYMENT_HIST_DIST_ID    source_103
151246   , l1.APHD_REV_PAY_HIST_DIST_ID    source_111
151247   , l1.APHD_PAYMENT_BASE_AMT    source_115
151248   , l1.APHD_INVOICE_BASE_AMT    source_116
151249   , l1.APHD_MATURED_BASE_AMOUNT    source_121
151250   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_125
151251   , fvl125.meaning   source_125_meaning
151252   , l1.PMT_MAT_BASE_AMT_DIFF    source_151
151253   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_158
151254   FROM xla_events_gt     xet 
151255   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
151256   , ZX_AP_DEF_TAX_EXTRACT_V  l4
151257   , fnd_lookup_values    fvl33
151258   , fnd_lookup_values    fvl79
151259   , fnd_lookup_values    fvl97
151260   , fnd_lookup_values    fvl125
151261  WHERE xet.event_id between x_first_event_id and x_last_event_id
151262    and xet.event_date between p_pad_start_date and p_pad_end_date
151263    and xet.event_class_code = C_EVENT_CLASS_CODE
151264    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
151265  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
151266   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
151267   AND fvl33.view_application_id(+) = 200
151268   AND fvl33.language(+)            = USERENV('LANG')
151269      AND fvl79.lookup_type(+)         = 'YES_NO'
151270   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
151271   AND fvl79.view_application_id(+) = 0
151272   AND fvl79.language(+)            = USERENV('LANG')
151273      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
151274   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
151275   AND fvl97.view_application_id(+) = 200
151276   AND fvl97.language(+)            = USERENV('LANG')
151277      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
151278   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
151279   AND fvl125.view_application_id(+) = 0
151280   AND fvl125.language(+)            = USERENV('LANG')
151281   ;
151282 
151283 --
151284 BEGIN
151285 IF g_log_enabled THEN
151286    l_log_module := C_DEFAULT_MODULE||'.EventClass_228';
151287 END IF;
151288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151289    trace
151290       (p_msg      => 'BEGIN of EventClass_228'
151291       ,p_level    => C_LEVEL_PROCEDURE
151292       ,p_module   => l_log_module);
151293 END IF;
151294 
151295 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151296    trace
151297       (p_msg      => 'p_application_id = '||p_application_id||
151298                      ' - p_base_ledger_id = '||p_base_ledger_id||
151299                      ' - p_target_ledger_id  = '||p_target_ledger_id||
151300                      ' - p_language = '||p_language||
151301                      ' - p_currency_code = '||p_currency_code||
151302                      ' - p_sla_ledger_id = '||p_sla_ledger_id
151303       ,p_level    => C_LEVEL_STATEMENT
151304       ,p_module   => l_log_module);
151305 END IF;
151306 --
151307 -- initialze arrays
151308 --
151309 g_array_event.DELETE;
151310 l_rec_array_event := l_null_rec_array_event;
151311 --
151312 --------------------------------------
151313 -- 4262811 Initialze MPA Line Number
151314 --------------------------------------
151315 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
151316 
151317 --
151318 
151319 --
151320 OPEN header_cur;
151321 --
151322 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151323    trace
151324    (p_msg      => 'SQL - FETCH header_cur'
151325    ,p_level    => C_LEVEL_STATEMENT
151326    ,p_module   => l_log_module);
151327 END IF;
151328 --
151332       , l_array_legal_entity_id
151329 LOOP
151330 FETCH header_cur BULK COLLECT INTO
151331         l_array_entity_id
151333       , l_array_entity_code
151334       , l_array_transaction_num
151335       , l_array_event_id
151336       , l_array_class_code
151337       , l_array_event_type
151338       , l_array_event_number
151339       , l_array_event_date
151340       , l_array_transaction_date
151341       , l_array_reference_num_1
151342       , l_array_reference_num_2
151343       , l_array_reference_num_3
151344       , l_array_reference_num_4
151345       , l_array_reference_char_1
151346       , l_array_reference_char_2
151347       , l_array_reference_char_3
151348       , l_array_reference_char_4
151349       , l_array_reference_date_1
151350       , l_array_reference_date_2
151351       , l_array_reference_date_3
151352       , l_array_reference_date_4
151353       , l_array_event_created_by
151354       , l_array_budgetary_control_flag 
151355       , l_array_source_6
151356       , l_array_source_9
151357       , l_array_source_10
151358       , l_array_source_11
151359       , l_array_source_12
151360       , l_array_source_13
151361       , l_array_source_15
151362       , l_array_source_15_meaning
151363       , l_array_source_17
151364       , l_array_source_35
151365       , l_array_source_36
151366       , l_array_source_37
151367       , l_array_source_38
151368       , l_array_source_39
151369       , l_array_source_47
151370       , l_array_source_47_meaning
151371       , l_array_source_48
151372       , l_array_source_82
151373       , l_array_source_96
151374       , l_array_source_109
151375       , l_array_source_110
151376       , l_array_source_112
151377       , l_array_source_113
151378       , l_array_source_113_meaning
151379       , l_array_source_114
151380       , l_array_source_117
151381       , l_array_source_118
151382       , l_array_source_119
151383       , l_array_source_170
151384       , l_array_source_171
151385       LIMIT l_rows;
151386 --
151387 IF (C_LEVEL_EVENT >= g_log_level) THEN
151388    trace
151389    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
151390    ,p_level    => C_LEVEL_EVENT
151391    ,p_module   => l_log_module);
151392 END IF;
151393 --
151394 EXIT WHEN l_array_entity_id.COUNT = 0;
151395 
151396 -- initialize arrays
151397 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
151398 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
151399 
151400 --
151401 -- Bug 4458708
151402 --
151403 XLA_AE_LINES_PKG.g_LineNumber := 0;
151404 
151405 
151406 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
151407 g_last_hdr_idx := l_array_event_id.LAST;
151408 --
151409 -- loop for the headers. Each iteration is for each header extract row
151410 -- fetched in header cursor
151411 --
151412 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
151413 
151414 --
151415 -- set event info as cache for other routines to refer event attributes
151416 --
151417 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
151418    (p_application_id           => p_application_id
151419    ,p_primary_ledger_id        => p_primary_ledger_id
151420    ,p_base_ledger_id           => p_base_ledger_id
151421    ,p_target_ledger_id         => p_target_ledger_id
151422    ,p_entity_id                => l_array_entity_id(hdr_idx)
151423    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
151424    ,p_entity_code              => l_array_entity_code(hdr_idx)
151425    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
151426    ,p_event_id                 => l_array_event_id(hdr_idx)
151427    ,p_event_class_code         => l_array_class_code(hdr_idx)
151428    ,p_event_type_code          => l_array_event_type(hdr_idx)
151429    ,p_event_number             => l_array_event_number(hdr_idx)
151430    ,p_event_date               => l_array_event_date(hdr_idx)
151431    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
151432    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
151433    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
151434    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
151435    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
151436    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
151437    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
151438    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
151439    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
151440    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
151441    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
151442    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
151443    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
151444    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
151445    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
151446 
151447 --
151448 -- set the status of entry to C_VALID (0)
151449 --
151450 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
151451 
151452 --
151453 -- initialize a row for ae header
151454 --
151455 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
151456 
151457 l_event_id := l_array_event_id(hdr_idx);
151458 
151459 --
151460 -- storing the hdr_idx for event. May be used by line cursor.
151461 --
151462 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
151463 
151464 --
151465 -- store sources from header extract. This can be improved to
151466 -- store only those sources from header extract that may be used in lines
151467 --
151468 
151469 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
151470 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
151474 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
151471 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
151472 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
151473 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
151475 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
151476 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
151477 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
151478 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
151479 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
151480 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
151481 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
151482 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
151483 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
151484 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
151485 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
151486 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
151487 g_array_event(l_event_id).array_value_char('source_96') := l_array_source_96(hdr_idx);
151488 g_array_event(l_event_id).array_value_num('source_109') := l_array_source_109(hdr_idx);
151489 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
151490 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
151491 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
151492 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
151493 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
151494 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
151495 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
151496 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
151497 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
151498 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
151499 
151500 --
151501 -- initilaize the status of ae headers for diffrent balance types
151502 -- the status is initialised to C_NOT_CREATED (2)
151503 --
151504 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151505 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151506 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151507 
151508 --
151509 -- call api to validate and store accounting attributes for header
151510 --
151511 
151512 ------------------------------------------------------------
151513 -- Accrual Reversal : to get date for Standard Source (NONE)
151514 ------------------------------------------------------------
151515 l_acc_rev_gl_date_source := NULL;
151516 
151517      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
151518       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
151519      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
151520       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
151521      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
151522       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
151523      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
151524       l_rec_acct_attrs.array_date_value(4) := 
151525 xla_ae_sources_pkg.GetSystemSourceDate(
151526    p_source_code           => 'XLA_EVENT_DATE'
151527  , p_source_type_code      => 'Y'
151528  , p_source_application_id =>  602
151529 );
151530 
151531 
151532 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
151533 
151534 XLA_AE_HEADER_PKG.SetJeCategoryName;
151535 
151536 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
151537 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
151538 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
151539 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
151540 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
151541 
151542 
151543 --
151544 xla_ae_header_pkg.SetHdrDescription(
151545    p_description => Description_3 (
151546    p_application_id => p_application_id 
151547  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
151548  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
151549  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
151550  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
151551  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
151552  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151553    )
151554 );
151555 --
151556 
151557 -- No header level analytical criteria
151558 
151559 --
151560 --accounting attribute enhancement, bug 3612931
151561 --
151562 l_trx_reversal_source := SUBSTR(NULL, 1,30);
151563 
151564 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
151565    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
151566 
151567    xla_accounting_err_pkg.build_message
151568       (p_appli_s_name            => 'XLA'
151569       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
151570       ,p_token_1                 => 'ACCT_ATTR_NAME'
151574       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
151571       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
151572       ,p_token_2                 => 'PRODUCT_NAME'
151573       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
151575       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
151576       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
151577 
151578 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
151579    --
151580    -- following sets the accounting attributes needed to reverse
151581    -- accounting for a distributeion
151582    --
151583    xla_ae_lines_pkg.SetTrxReversalAttrs
151584       (p_event_id              => l_event_id
151585       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
151586       ,p_trx_reversal_source   => l_trx_reversal_source);
151587 
151588 END IF;
151589 
151590 
151591 ----------------------------------------------------------------
151592 -- 4262811 -  update the header statuses to invalid in need be
151593 ----------------------------------------------------------------
151594 --
151595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
151596 
151597 
151598   -----------------------------------------------
151599   -- No accrual reversal for the event class/type
151600   -----------------------------------------------
151601 ----------------------------------------------------------------
151602 
151603 --
151604 -- this ends the header loop iteration for one bulk fetch
151605 --
151606 END LOOP;
151607 
151608 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
151609 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
151610 
151611 --
151612 -- insert dummy rows into lines gt table that were created due to
151613 -- transaction reversals
151614 --
151615 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
151616    l_result := XLA_AE_LINES_PKG.InsertLines;
151617 END IF;
151618 
151619 --
151620 -- reset the temp_line_num for each set of events fetched from header
151621 -- cursor rather than doing it for each new event in line cursor
151622 -- Bug 3939231
151623 --
151624 xla_ae_lines_pkg.g_temp_line_num := 0;
151625 
151626 
151627 
151628 --
151629 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
151630 --
151631 --
151632 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151633 
151634       trace
151635          (p_msg      => 'SQL - FETCH line_cur'
151636          ,p_level    => C_LEVEL_STATEMENT
151637          ,p_module   => l_log_module);
151638 
151639 END IF;
151640 --
151641 --
151642 LOOP
151643   --
151644   FETCH line_cur BULK COLLECT INTO
151645         l_array_entity_id
151646       , l_array_legal_entity_id
151647       , l_array_entity_code
151648       , l_array_transaction_num
151649       , l_array_event_id
151650       , l_array_class_code
151651       , l_array_event_type
151652       , l_array_event_number
151653       , l_array_event_date
151654       , l_array_transaction_date
151655       , l_array_reference_num_1
151656       , l_array_reference_num_2
151657       , l_array_reference_num_3
151658       , l_array_reference_num_4
151659       , l_array_reference_char_1
151660       , l_array_reference_char_2
151661       , l_array_reference_char_3
151662       , l_array_reference_char_4
151663       , l_array_reference_date_1
151664       , l_array_reference_date_2
151665       , l_array_reference_date_3
151666       , l_array_reference_date_4
151667       , l_array_event_created_by
151668       , l_array_budgetary_control_flag
151669       , l_array_extract_line_num 
151670       , l_array_source_30
151671       , l_array_source_33
151672       , l_array_source_33_meaning
151673       , l_array_source_51
151674       , l_array_source_52
151675       , l_array_source_54
151676       , l_array_source_79
151677       , l_array_source_79_meaning
151678       , l_array_source_90
151679       , l_array_source_91
151680       , l_array_source_92
151681       , l_array_source_93
151682       , l_array_source_94
151683       , l_array_source_97
151684       , l_array_source_97_meaning
151685       , l_array_source_98
151686       , l_array_source_99
151687       , l_array_source_100
151688       , l_array_source_101
151689       , l_array_source_102
151690       , l_array_source_103
151691       , l_array_source_111
151692       , l_array_source_115
151693       , l_array_source_116
151694       , l_array_source_121
151695       , l_array_source_125
151696       , l_array_source_125_meaning
151697       , l_array_source_151
151698       , l_array_source_158
151699       LIMIT l_rows;
151700 
151701   --
151702   IF (C_LEVEL_EVENT >= g_log_level) THEN
151703             trace
151704                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
151705                ,p_level    => C_LEVEL_EVENT
151706                ,p_module   => l_log_module);
151707   END IF;
151708   --
151709   EXIT WHEN l_array_entity_id.count = 0;
151710 
151711   XLA_AE_LINES_PKG.g_rec_lines := null;
151712 
151713 --
151714 -- Bug 4458708
151715 --
151716 XLA_AE_LINES_PKG.g_LineNumber := 0;
151717 --
151718 --
151719 
151720 FOR Idx IN 1..l_array_event_id.count LOOP
151721    --
151722    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
151723    --
151724    l_event_id := l_array_event_id(idx);  -- 5648433
151725 
151726    --
151727    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
151728    --
151729 
151733          ) <> 'Y'
151730    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
151731              (g_array_event(l_event_id).array_value_num('header_index'))
151732          ,'N'
151734    THEN
151735       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151736          trace
151737             (p_msg      => 'Trancaction revesal option is not Y '
151738             ,p_level    => C_LEVEL_STATEMENT
151739             ,p_module   => l_log_module);
151740       END IF;
151741 
151742 --
151743 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
151744 --
151745 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
151746 --
151747 -- set event info as cache for other routines to refer event attributes
151748 --
151749 
151750 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
151751    l_previous_event_id := l_event_id;
151752 
151753    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
151754       (p_application_id           => p_application_id
151755       ,p_primary_ledger_id        => p_primary_ledger_id
151756       ,p_base_ledger_id           => p_base_ledger_id
151757       ,p_target_ledger_id         => p_target_ledger_id
151758       ,p_entity_id                => l_array_entity_id(Idx)
151759       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
151760       ,p_entity_code              => l_array_entity_code(Idx)
151761       ,p_transaction_num          => l_array_transaction_num(Idx)
151762       ,p_event_id                 => l_array_event_id(Idx)
151763       ,p_event_class_code         => l_array_class_code(Idx)
151764       ,p_event_type_code          => l_array_event_type(Idx)
151765       ,p_event_number             => l_array_event_number(Idx)
151766       ,p_event_date               => l_array_event_date(Idx)
151767       ,p_transaction_date         => l_array_transaction_date(Idx)
151768       ,p_reference_num_1          => l_array_reference_num_1(Idx)
151769       ,p_reference_num_2          => l_array_reference_num_2(Idx)
151770       ,p_reference_num_3          => l_array_reference_num_3(Idx)
151771       ,p_reference_num_4          => l_array_reference_num_4(Idx)
151772       ,p_reference_char_1         => l_array_reference_char_1(Idx)
151773       ,p_reference_char_2         => l_array_reference_char_2(Idx)
151774       ,p_reference_char_3         => l_array_reference_char_3(Idx)
151775       ,p_reference_char_4         => l_array_reference_char_4(Idx)
151776       ,p_reference_date_1         => l_array_reference_date_1(Idx)
151777       ,p_reference_date_2         => l_array_reference_date_2(Idx)
151778       ,p_reference_date_3         => l_array_reference_date_3(Idx)
151779       ,p_reference_date_4         => l_array_reference_date_4(Idx)
151780       ,p_event_created_by         => l_array_event_created_by(Idx)
151781       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
151782        --
151783 END IF;
151784 
151785 
151786 
151787 --
151788 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
151789 
151790 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
151791 
151792 IF l_continue_with_lines THEN
151793    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
151794       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
151795 
151796       xla_accounting_err_pkg.build_message
151797          (p_appli_s_name            => 'XLA'
151798          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
151799          ,p_token_1                 => 'LINE_NUMBER'
151800          ,p_value_1                 => l_array_extract_line_num(Idx)
151801          ,p_token_2                 => 'PRODUCT_NAME'
151802          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
151803          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
151804          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
151805          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
151806 
151807    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
151808       --
151809       -- following sets the accounting attributes needed to reverse
151810       -- accounting for a distributeion
151811       --
151812 
151813       --
151814       -- 5217187
151815       --
151816       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
151817       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
151818                                        g_array_event(l_event_id).array_value_num('header_index'));
151819       --
151820       --
151821 
151822       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
151823       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
151824       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
151825       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_103(Idx);
151826       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
151827       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
151828       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
151829       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_82');
151830       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
151831       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_111(Idx);
151832       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
151833       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_54(Idx);
151834 
151835 
151836       xla_ae_lines_pkg.SetAcctReversalAttrs
151837          (p_event_id             => l_event_id
151838          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
151839          ,p_calculate_acctd_flag => l_calculate_acctd_flag
151840          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
151841    END IF;
151842 
151843    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
151847 AcctLineType_65 (
151844        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
151845 
151846 --
151848  p_application_id  => p_application_id
151849  ,p_event_id     => l_event_id
151850  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151851  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151852  ,p_actual_flag => l_actual_flag
151853  ,p_balance_type_code => l_balance_type_code
151854  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151855  
151856  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151857  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
151858  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
151859  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
151860  , p_source_52 => l_array_source_52(Idx)
151861  , p_source_54 => l_array_source_54(Idx)
151862  , p_source_79 => l_array_source_79(Idx)
151863  , p_source_79_meaning => l_array_source_79_meaning(Idx)
151864  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
151865  , p_source_90 => l_array_source_90(Idx)
151866  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
151867  , p_source_97 => l_array_source_97(Idx)
151868  , p_source_97_meaning => l_array_source_97_meaning(Idx)
151869  , p_source_98 => l_array_source_98(Idx)
151870  , p_source_99 => l_array_source_99(Idx)
151871  , p_source_100 => l_array_source_100(Idx)
151872  , p_source_101 => l_array_source_101(Idx)
151873  , p_source_102 => l_array_source_102(Idx)
151874  , p_source_103 => l_array_source_103(Idx)
151875  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
151876  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
151877  , p_source_111 => l_array_source_111(Idx)
151878  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
151879  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
151880  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
151881  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
151882  , p_source_116 => l_array_source_116(Idx)
151883  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
151884  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
151885  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
151886  );
151887 If(l_balance_type_code = 'A') THEN
151888   l_actual_gain_loss_ref := l_gain_or_loss_ref;
151889 END IF;
151890 
151891 --
151892 
151893 
151894 --
151895 AcctLineType_66 (
151896  p_application_id  => p_application_id
151897  ,p_event_id     => l_event_id
151898  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151899  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151900  ,p_actual_flag => l_actual_flag
151901  ,p_balance_type_code => l_balance_type_code
151902  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151903  
151904  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151905  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
151906  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
151907  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
151908  , p_source_52 => l_array_source_52(Idx)
151909  , p_source_54 => l_array_source_54(Idx)
151910  , p_source_79 => l_array_source_79(Idx)
151911  , p_source_79_meaning => l_array_source_79_meaning(Idx)
151912  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
151913  , p_source_90 => l_array_source_90(Idx)
151914  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
151915  , p_source_97 => l_array_source_97(Idx)
151916  , p_source_97_meaning => l_array_source_97_meaning(Idx)
151917  , p_source_98 => l_array_source_98(Idx)
151918  , p_source_99 => l_array_source_99(Idx)
151919  , p_source_100 => l_array_source_100(Idx)
151920  , p_source_101 => l_array_source_101(Idx)
151921  , p_source_102 => l_array_source_102(Idx)
151922  , p_source_103 => l_array_source_103(Idx)
151923  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
151924  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
151925  , p_source_111 => l_array_source_111(Idx)
151926  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
151927  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
151928  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
151929  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
151930  , p_source_116 => l_array_source_116(Idx)
151931  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
151932  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
151933  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
151934  );
151935 If(l_balance_type_code = 'A') THEN
151936   l_actual_gain_loss_ref := l_gain_or_loss_ref;
151937 END IF;
151938 
151939 --
151940 
151941 
151942 --
151943 AcctLineType_74 (
151944  p_application_id  => p_application_id
151945  ,p_event_id     => l_event_id
151946  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151947  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151948  ,p_actual_flag => l_actual_flag
151949  ,p_balance_type_code => l_balance_type_code
151950  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151951  
151952  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151953  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
151954  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
151955  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
151956  , p_source_52 => l_array_source_52(Idx)
151957  , p_source_54 => l_array_source_54(Idx)
151958  , p_source_79 => l_array_source_79(Idx)
151959  , p_source_79_meaning => l_array_source_79_meaning(Idx)
151960  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
151964  , p_source_97_meaning => l_array_source_97_meaning(Idx)
151961  , p_source_90 => l_array_source_90(Idx)
151962  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
151963  , p_source_97 => l_array_source_97(Idx)
151965  , p_source_98 => l_array_source_98(Idx)
151966  , p_source_99 => l_array_source_99(Idx)
151967  , p_source_100 => l_array_source_100(Idx)
151968  , p_source_101 => l_array_source_101(Idx)
151969  , p_source_102 => l_array_source_102(Idx)
151970  , p_source_103 => l_array_source_103(Idx)
151971  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
151972  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
151973  , p_source_111 => l_array_source_111(Idx)
151974  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
151975  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
151976  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
151977  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
151978  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
151979  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
151980  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
151981  , p_source_121 => l_array_source_121(Idx)
151982  );
151983 If(l_balance_type_code = 'A') THEN
151984   l_actual_gain_loss_ref := l_gain_or_loss_ref;
151985 END IF;
151986 
151987 --
151988 
151989 
151990 --
151991 AcctLineType_75 (
151992  p_application_id  => p_application_id
151993  ,p_event_id     => l_event_id
151994  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151995  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151996  ,p_actual_flag => l_actual_flag
151997  ,p_balance_type_code => l_balance_type_code
151998  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151999  
152000  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152001  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152002  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152003  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152004  , p_source_52 => l_array_source_52(Idx)
152005  , p_source_54 => l_array_source_54(Idx)
152006  , p_source_79 => l_array_source_79(Idx)
152007  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152008  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152009  , p_source_90 => l_array_source_90(Idx)
152010  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152011  , p_source_97 => l_array_source_97(Idx)
152012  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152013  , p_source_98 => l_array_source_98(Idx)
152014  , p_source_99 => l_array_source_99(Idx)
152015  , p_source_100 => l_array_source_100(Idx)
152016  , p_source_101 => l_array_source_101(Idx)
152017  , p_source_102 => l_array_source_102(Idx)
152018  , p_source_103 => l_array_source_103(Idx)
152019  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152020  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152021  , p_source_111 => l_array_source_111(Idx)
152022  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152023  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152024  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152025  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152026  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152027  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152028  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152029  , p_source_121 => l_array_source_121(Idx)
152030  );
152031 If(l_balance_type_code = 'A') THEN
152032   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152033 END IF;
152034 
152035 --
152036 
152037 
152038 --
152039 AcctLineType_76 (
152040  p_application_id  => p_application_id
152041  ,p_event_id     => l_event_id
152042  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152043  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152044  ,p_actual_flag => l_actual_flag
152045  ,p_balance_type_code => l_balance_type_code
152046  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152047  
152048  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152049  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152050  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152051  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152052  , p_source_52 => l_array_source_52(Idx)
152053  , p_source_54 => l_array_source_54(Idx)
152054  , p_source_79 => l_array_source_79(Idx)
152055  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152056  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152057  , p_source_90 => l_array_source_90(Idx)
152058  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152059  , p_source_97 => l_array_source_97(Idx)
152060  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152061  , p_source_98 => l_array_source_98(Idx)
152062  , p_source_99 => l_array_source_99(Idx)
152063  , p_source_100 => l_array_source_100(Idx)
152064  , p_source_101 => l_array_source_101(Idx)
152065  , p_source_102 => l_array_source_102(Idx)
152066  , p_source_103 => l_array_source_103(Idx)
152067  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152068  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152069  , p_source_111 => l_array_source_111(Idx)
152070  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152071  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152072  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152073  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152077  , p_source_121 => l_array_source_121(Idx)
152074  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152075  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152076  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152078  );
152079 If(l_balance_type_code = 'A') THEN
152080   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152081 END IF;
152082 
152083 --
152084 
152085 
152086 --
152087 AcctLineType_77 (
152088  p_application_id  => p_application_id
152089  ,p_event_id     => l_event_id
152090  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152091  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152092  ,p_actual_flag => l_actual_flag
152093  ,p_balance_type_code => l_balance_type_code
152094  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152095  
152096  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152097  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152098  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
152099  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
152100  , p_source_52 => l_array_source_52(Idx)
152101  , p_source_54 => l_array_source_54(Idx)
152102  , p_source_79 => l_array_source_79(Idx)
152103  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152104  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152105  , p_source_90 => l_array_source_90(Idx)
152106  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152107  , p_source_97 => l_array_source_97(Idx)
152108  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152109  , p_source_98 => l_array_source_98(Idx)
152110  , p_source_99 => l_array_source_99(Idx)
152111  , p_source_100 => l_array_source_100(Idx)
152112  , p_source_101 => l_array_source_101(Idx)
152113  , p_source_102 => l_array_source_102(Idx)
152114  , p_source_103 => l_array_source_103(Idx)
152115  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152116  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152117  , p_source_111 => l_array_source_111(Idx)
152118  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152119  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152120  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152121  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152122  , p_source_116 => l_array_source_116(Idx)
152123  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152124  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152125  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152126  );
152127 If(l_balance_type_code = 'A') THEN
152128   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152129 END IF;
152130 
152131 --
152132 
152133 
152134 --
152135 AcctLineType_87 (
152136  p_application_id  => p_application_id
152137  ,p_event_id     => l_event_id
152138  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152139  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152140  ,p_actual_flag => l_actual_flag
152141  ,p_balance_type_code => l_balance_type_code
152142  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152143  
152144  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152145  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152146  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
152147  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
152148  , p_source_52 => l_array_source_52(Idx)
152149  , p_source_54 => l_array_source_54(Idx)
152150  , p_source_79 => l_array_source_79(Idx)
152151  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152152  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152153  , p_source_90 => l_array_source_90(Idx)
152154  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152155  , p_source_97 => l_array_source_97(Idx)
152156  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152157  , p_source_98 => l_array_source_98(Idx)
152158  , p_source_99 => l_array_source_99(Idx)
152159  , p_source_100 => l_array_source_100(Idx)
152160  , p_source_101 => l_array_source_101(Idx)
152161  , p_source_102 => l_array_source_102(Idx)
152162  , p_source_103 => l_array_source_103(Idx)
152163  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152164  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152165  , p_source_111 => l_array_source_111(Idx)
152166  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152167  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152168  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152169  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152170  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152171  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152172  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152173  , p_source_121 => l_array_source_121(Idx)
152174  );
152175 If(l_balance_type_code = 'A') THEN
152176   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152177 END IF;
152178 
152179 --
152180 
152181 
152182 --
152183 AcctLineType_88 (
152184  p_application_id  => p_application_id
152185  ,p_event_id     => l_event_id
152186  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152187  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152188  ,p_actual_flag => l_actual_flag
152189  ,p_balance_type_code => l_balance_type_code
152190  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152191  
152192  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152193  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152197  , p_source_54 => l_array_source_54(Idx)
152194  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152195  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152196  , p_source_52 => l_array_source_52(Idx)
152198  , p_source_79 => l_array_source_79(Idx)
152199  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152200  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152201  , p_source_90 => l_array_source_90(Idx)
152202  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152203  , p_source_97 => l_array_source_97(Idx)
152204  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152205  , p_source_98 => l_array_source_98(Idx)
152206  , p_source_99 => l_array_source_99(Idx)
152207  , p_source_100 => l_array_source_100(Idx)
152208  , p_source_101 => l_array_source_101(Idx)
152209  , p_source_102 => l_array_source_102(Idx)
152210  , p_source_103 => l_array_source_103(Idx)
152211  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152212  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152213  , p_source_111 => l_array_source_111(Idx)
152214  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152215  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152216  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152217  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152218  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152219  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152220  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152221  , p_source_121 => l_array_source_121(Idx)
152222  );
152223 If(l_balance_type_code = 'A') THEN
152224   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152225 END IF;
152226 
152227 --
152228 
152229 
152230 --
152231 AcctLineType_89 (
152232  p_application_id  => p_application_id
152233  ,p_event_id     => l_event_id
152234  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152235  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152236  ,p_actual_flag => l_actual_flag
152237  ,p_balance_type_code => l_balance_type_code
152238  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152239  
152240  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152241  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152242  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152243  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152244  , p_source_52 => l_array_source_52(Idx)
152245  , p_source_54 => l_array_source_54(Idx)
152246  , p_source_79 => l_array_source_79(Idx)
152247  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152248  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152249  , p_source_90 => l_array_source_90(Idx)
152250  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152251  , p_source_97 => l_array_source_97(Idx)
152252  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152253  , p_source_98 => l_array_source_98(Idx)
152254  , p_source_99 => l_array_source_99(Idx)
152255  , p_source_100 => l_array_source_100(Idx)
152256  , p_source_101 => l_array_source_101(Idx)
152257  , p_source_102 => l_array_source_102(Idx)
152258  , p_source_103 => l_array_source_103(Idx)
152259  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152260  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152261  , p_source_111 => l_array_source_111(Idx)
152262  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152263  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152264  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152265  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152266  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152267  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152268  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152269  , p_source_121 => l_array_source_121(Idx)
152270  );
152271 If(l_balance_type_code = 'A') THEN
152272   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152273 END IF;
152274 
152275 --
152276 
152277 
152278 --
152279 AcctLineType_95 (
152280  p_application_id  => p_application_id
152281  ,p_event_id     => l_event_id
152282  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152283  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152284  ,p_actual_flag => l_actual_flag
152285  ,p_balance_type_code => l_balance_type_code
152286  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152287  
152288  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152289  , p_source_33 => l_array_source_33(Idx)
152290  , p_source_33_meaning => l_array_source_33_meaning(Idx)
152291  , p_source_52 => l_array_source_52(Idx)
152292  , p_source_54 => l_array_source_54(Idx)
152293  , p_source_79 => l_array_source_79(Idx)
152294  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152295  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152296  , p_source_90 => l_array_source_90(Idx)
152297  , p_source_91 => l_array_source_91(Idx)
152298  , p_source_92 => l_array_source_92(Idx)
152299  , p_source_93 => l_array_source_93(Idx)
152300  , p_source_94 => l_array_source_94(Idx)
152301  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152302  , p_source_97 => l_array_source_97(Idx)
152303  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152304  , p_source_98 => l_array_source_98(Idx)
152305  , p_source_103 => l_array_source_103(Idx)
152306  , p_source_111 => l_array_source_111(Idx)
152307  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152308  , p_source_121 => l_array_source_121(Idx)
152309  , p_source_125 => l_array_source_125(Idx)
152313   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152310  , p_source_125_meaning => l_array_source_125_meaning(Idx)
152311  );
152312 If(l_balance_type_code = 'A') THEN
152314 END IF;
152315 
152316 --
152317 
152318 
152319 --
152320 AcctLineType_99 (
152321  p_application_id  => p_application_id
152322  ,p_event_id     => l_event_id
152323  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152324  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152325  ,p_actual_flag => l_actual_flag
152326  ,p_balance_type_code => l_balance_type_code
152327  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152328  
152329  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152330  , p_source_33 => l_array_source_33(Idx)
152331  , p_source_33_meaning => l_array_source_33_meaning(Idx)
152332  , p_source_51 => l_array_source_51(Idx)
152333  , p_source_52 => l_array_source_52(Idx)
152334  , p_source_54 => l_array_source_54(Idx)
152335  , p_source_79 => l_array_source_79(Idx)
152336  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152337  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152338  , p_source_90 => l_array_source_90(Idx)
152339  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152340  , p_source_97 => l_array_source_97(Idx)
152341  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152342  , p_source_98 => l_array_source_98(Idx)
152343  , p_source_99 => l_array_source_99(Idx)
152344  , p_source_100 => l_array_source_100(Idx)
152345  , p_source_101 => l_array_source_101(Idx)
152346  , p_source_102 => l_array_source_102(Idx)
152347  , p_source_103 => l_array_source_103(Idx)
152348  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152349  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152350  , p_source_111 => l_array_source_111(Idx)
152351  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152352  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152353  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152354  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152355  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152356  , p_source_121 => l_array_source_121(Idx)
152357  , p_source_125 => l_array_source_125(Idx)
152358  , p_source_125_meaning => l_array_source_125_meaning(Idx)
152359  );
152360 If(l_balance_type_code = 'A') THEN
152361   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152362 END IF;
152363 
152364 --
152365 
152366 
152367 --
152368 AcctLineType_120 (
152369  p_application_id  => p_application_id
152370  ,p_event_id     => l_event_id
152371  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152372  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152373  ,p_actual_flag => l_actual_flag
152374  ,p_balance_type_code => l_balance_type_code
152375  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152376  
152377  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152378  , p_source_52 => l_array_source_52(Idx)
152379  , p_source_54 => l_array_source_54(Idx)
152380  , p_source_79 => l_array_source_79(Idx)
152381  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152382  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152383  , p_source_90 => l_array_source_90(Idx)
152384  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152385  , p_source_97 => l_array_source_97(Idx)
152386  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152387  , p_source_98 => l_array_source_98(Idx)
152388  , p_source_99 => l_array_source_99(Idx)
152389  , p_source_100 => l_array_source_100(Idx)
152390  , p_source_101 => l_array_source_101(Idx)
152391  , p_source_102 => l_array_source_102(Idx)
152392  , p_source_103 => l_array_source_103(Idx)
152393  , p_source_111 => l_array_source_111(Idx)
152394  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152395  , p_source_115 => l_array_source_115(Idx)
152396  );
152397 If(l_balance_type_code = 'A') THEN
152398   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152399 END IF;
152400 
152401 --
152402 
152403 
152404 --
152405 AcctLineType_121 (
152406  p_application_id  => p_application_id
152407  ,p_event_id     => l_event_id
152408  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152409  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152410  ,p_actual_flag => l_actual_flag
152411  ,p_balance_type_code => l_balance_type_code
152412  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152413  
152414  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152415  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152416  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152417  , p_source_30 => l_array_source_30(Idx)
152418  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
152419  , p_source_52 => l_array_source_52(Idx)
152420  , p_source_54 => l_array_source_54(Idx)
152421  , p_source_79 => l_array_source_79(Idx)
152422  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152423  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152424  , p_source_90 => l_array_source_90(Idx)
152425  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152426  , p_source_97 => l_array_source_97(Idx)
152427  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152428  , p_source_98 => l_array_source_98(Idx)
152429  , p_source_99 => l_array_source_99(Idx)
152430  , p_source_100 => l_array_source_100(Idx)
152431  , p_source_101 => l_array_source_101(Idx)
152432  , p_source_102 => l_array_source_102(Idx)
152433  , p_source_103 => l_array_source_103(Idx)
152434  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152435  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152436  , p_source_111 => l_array_source_111(Idx)
152437  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152441  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152438  , p_source_115 => l_array_source_115(Idx)
152439  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152440  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152442  );
152443 If(l_balance_type_code = 'A') THEN
152444   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152445 END IF;
152446 
152447 --
152448 
152449 
152450 --
152451 AcctLineType_125 (
152452  p_application_id  => p_application_id
152453  ,p_event_id     => l_event_id
152454  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152455  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152456  ,p_actual_flag => l_actual_flag
152457  ,p_balance_type_code => l_balance_type_code
152458  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152459  
152460  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152461  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152462  , p_source_30 => l_array_source_30(Idx)
152463  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
152464  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
152465  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
152466  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
152467  , p_source_52 => l_array_source_52(Idx)
152468  , p_source_54 => l_array_source_54(Idx)
152469  , p_source_79 => l_array_source_79(Idx)
152470  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152471  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152472  , p_source_90 => l_array_source_90(Idx)
152473  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152474  , p_source_97 => l_array_source_97(Idx)
152475  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152476  , p_source_99 => l_array_source_99(Idx)
152477  , p_source_100 => l_array_source_100(Idx)
152478  , p_source_101 => l_array_source_101(Idx)
152479  , p_source_102 => l_array_source_102(Idx)
152480  , p_source_103 => l_array_source_103(Idx)
152481  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152482  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152483  , p_source_111 => l_array_source_111(Idx)
152484  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152485  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152486  , p_source_151 => l_array_source_151(Idx)
152487  );
152488 If(l_balance_type_code = 'A') THEN
152489   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152490 END IF;
152491 
152492 --
152493 
152494 
152495 --
152496 AcctLineType_131 (
152497  p_application_id  => p_application_id
152498  ,p_event_id     => l_event_id
152499  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152500  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152501  ,p_actual_flag => l_actual_flag
152502  ,p_balance_type_code => l_balance_type_code
152503  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152504  
152505  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152506  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152507  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152508  , p_source_30 => l_array_source_30(Idx)
152509  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
152510  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
152511  , p_source_52 => l_array_source_52(Idx)
152512  , p_source_54 => l_array_source_54(Idx)
152513  , p_source_79 => l_array_source_79(Idx)
152514  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152515  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152516  , p_source_90 => l_array_source_90(Idx)
152517  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152518  , p_source_97 => l_array_source_97(Idx)
152519  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152520  , p_source_98 => l_array_source_98(Idx)
152521  , p_source_99 => l_array_source_99(Idx)
152522  , p_source_100 => l_array_source_100(Idx)
152523  , p_source_101 => l_array_source_101(Idx)
152524  , p_source_102 => l_array_source_102(Idx)
152525  , p_source_103 => l_array_source_103(Idx)
152526  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152527  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152528  , p_source_111 => l_array_source_111(Idx)
152529  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152530  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152531  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152532  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152533  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152534  , p_source_151 => l_array_source_151(Idx)
152535  , p_source_158 => l_array_source_158(Idx)
152536  );
152537 If(l_balance_type_code = 'A') THEN
152538   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152539 END IF;
152540 
152541 --
152542 
152543 
152544 --
152545 AcctLineType_165 (
152546  p_application_id  => p_application_id
152547  ,p_event_id     => l_event_id
152548  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152549  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152550  ,p_actual_flag => l_actual_flag
152551  ,p_balance_type_code => l_balance_type_code
152552  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152553  
152554  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152555  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152556  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152557  , p_source_30 => l_array_source_30(Idx)
152558  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
152559  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
152563  , p_source_79_meaning => l_array_source_79_meaning(Idx)
152560  , p_source_52 => l_array_source_52(Idx)
152561  , p_source_54 => l_array_source_54(Idx)
152562  , p_source_79 => l_array_source_79(Idx)
152564  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
152565  , p_source_90 => l_array_source_90(Idx)
152566  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
152567  , p_source_97 => l_array_source_97(Idx)
152568  , p_source_97_meaning => l_array_source_97_meaning(Idx)
152569  , p_source_98 => l_array_source_98(Idx)
152570  , p_source_99 => l_array_source_99(Idx)
152571  , p_source_100 => l_array_source_100(Idx)
152572  , p_source_101 => l_array_source_101(Idx)
152573  , p_source_102 => l_array_source_102(Idx)
152574  , p_source_103 => l_array_source_103(Idx)
152575  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
152576  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152577  , p_source_111 => l_array_source_111(Idx)
152578  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
152579  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152580  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152581  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152582  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152583  , p_source_151 => l_array_source_151(Idx)
152584  , p_source_158 => l_array_source_158(Idx)
152585  );
152586 If(l_balance_type_code = 'A') THEN
152587   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152588 END IF;
152589 
152590 --
152591 
152592       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
152593       -- or secondary ledger that has different currency with primary
152594       -- or alc that is calculated by sla
152595       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
152596             (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'))
152597 
152598 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
152599 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
152600           AND (l_actual_flag = 'A')) THEN
152601         XLA_AE_LINES_PKG.CreateGainOrLossLines(
152602           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
152603          ,p_application_id   => p_application_id
152604          ,p_amb_context_code => 'DEFAULT'
152605          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
152606          ,p_event_class_code => C_EVENT_CLASS_CODE
152607          ,p_event_type_code  => C_EVENT_TYPE_CODE
152608          
152609          ,p_gain_ccid        => -1
152610          ,p_loss_ccid        => -1
152611 
152612          ,p_actual_flag      => l_actual_flag
152613          ,p_enc_flag         => null
152614          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
152615          ,p_enc_g_l_ref      => null
152616          );
152617       END IF;
152618    END IF;
152619 END IF;
152620 
152621    ELSE
152622       --
152623       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
152624       --
152625       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152626          trace
152627             (p_msg      => 'Trancaction revesal option is Y'
152628             ,p_level    => C_LEVEL_STATEMENT
152629             ,p_module   => l_log_module);
152630       END IF;
152631    END IF;
152632 
152633 END LOOP;
152634 l_result := XLA_AE_LINES_PKG.InsertLines ;
152635 end loop;
152636 close line_cur;
152637 
152638 
152639 --
152640 -- insert headers into xla_ae_headers_gt table
152641 --
152642 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
152643 
152644 -- insert into errors table here.
152645 
152646 END LOOP;
152647 
152648 --
152649 -- 4865292
152650 --
152651 -- Compare g_hdr_extract_count with event count in
152652 -- CreateHeadersAndLines.
152653 --
152654 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
152655 
152656 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152657    trace (p_msg     => '# rows extracted from header extract objects '
152658                     || ' (running total): '
152659                     || g_hdr_extract_count
152660          ,p_level   => C_LEVEL_STATEMENT
152661          ,p_module  => l_log_module);
152662 END IF;
152663 
152664 CLOSE header_cur;
152665 --
152666 
152667 --
152668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152669    trace
152670       (p_msg      => 'END of EventClass_228'
152671       ,p_level    => C_LEVEL_PROCEDURE
152672       ,p_module   => l_log_module);
152673 END IF;
152674 --
152675 RETURN l_result;
152676 EXCEPTION
152677 WHEN xla_exceptions_pkg.application_exception THEN
152678    
152679 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
152680 
152681    
152682 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
152683 
152684    RAISE;
152685 
152686 WHEN NO_DATA_FOUND THEN
152687 
152688 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
152689 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
152690 
152691 FOR header_record IN header_cur
152692 LOOP
152693     l_array_header_events(header_record.event_id) := header_record.event_id;
152694 END LOOP;
152695 
152696 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
152697 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
152698 
152699 fnd_file.put_line(fnd_file.LOG, '                    ');
152700 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
152701 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
152705 LOOP
152702 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
152703 
152704 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
152706 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
152707 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
152708         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
152709 	END IF;
152710 END LOOP;
152711 
152712 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
152713 fnd_file.put_line(fnd_file.LOG, '                    ');
152714 
152715 
152716 xla_exceptions_pkg.raise_message
152717       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_228');
152718 
152719 
152720 WHEN OTHERS THEN
152721    xla_exceptions_pkg.raise_message
152722       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_228');
152723 END EventClass_228;
152724 --
152725 
152726 ---------------------------------------
152727 --
152728 -- PRIVATE PROCEDURE
152729 --         insert_sources_229
152730 --
152731 ----------------------------------------
152732 --
152733 PROCEDURE insert_sources_229(
152734                                 p_target_ledger_id       IN NUMBER
152735                               , p_language               IN VARCHAR2
152736                               , p_sla_ledger_id          IN NUMBER
152737                               , p_pad_start_date         IN DATE
152738                               , p_pad_end_date           IN DATE
152739                          )
152740 IS
152741 
152742 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
152743 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
152744 p_apps_owner                   VARCHAR2(30);
152745 l_log_module                   VARCHAR2(240);
152746 BEGIN
152747 IF g_log_enabled THEN
152748       l_log_module := C_DEFAULT_MODULE||'.insert_sources_229';
152749 END IF;
152750 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152751 
152752       trace
152753          (p_msg      => 'BEGIN of insert_sources_229'
152754          ,p_level    => C_LEVEL_PROCEDURE
152755          ,p_module   => l_log_module);
152756 
152757 END IF;
152758 
152759 -- select APPS owner
152760 SELECT oracle_username
152761   INTO p_apps_owner
152762   FROM fnd_oracle_userid
152763  WHERE read_only_flag = 'U'
152764 ;
152765 
152766 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152767       trace
152768          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
152769                         ' - p_language = '||p_language||
152770                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
152771                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
152772                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
152773                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
152774          ,p_level    => C_LEVEL_STATEMENT
152775          ,p_module   => l_log_module);
152776 END IF;
152777 
152778 
152779 --
152780 INSERT INTO xla_diag_sources --hdr2
152781 (
152782         event_id
152783       , ledger_id
152784       , sla_ledger_id
152785       , description_language
152786       , object_name
152787       , object_type_code
152788       , line_number
152789       , source_application_id
152790       , source_type_code
152791       , source_code
152792       , source_value
152793       , source_meaning
152794       , created_by
152795       , creation_date
152796       , last_update_date
152797       , last_updated_by
152798       , last_update_login
152799       , program_update_date
152800       , program_application_id
152801       , program_id
152802       , request_id
152803 )
152804 SELECT
152805         event_id
152806       , p_target_ledger_id
152807       , p_sla_ledger_id
152808       , p_language
152809       , object_name
152810       , object_type_code
152811       , line_number
152812       , source_application_id
152813       , source_type_code
152814       , source_code
152815       , SUBSTR(source_value ,1,1996)
152816       , SUBSTR(source_meaning ,1,200)
152817       , xla_environment_pkg.g_Usr_Id
152818       , TRUNC(SYSDATE)
152819       , TRUNC(SYSDATE)
152820       , xla_environment_pkg.g_Usr_Id
152821       , xla_environment_pkg.g_Login_Id
152822       , TRUNC(SYSDATE)
152823       , xla_environment_pkg.g_Prog_Appl_Id
152824       , xla_environment_pkg.g_Prog_Id
152825       , xla_environment_pkg.g_Req_Id
152826   FROM (
152827        SELECT xet.event_id                  event_id
152828             , 0                          line_number
152829             , CASE r
152830                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152831                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152832                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152833                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152834                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152835                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152836                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152837                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152838                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152839                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152840                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152841                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152842                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152843                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152844                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152845                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152846                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152850                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152847                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152848                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152849                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152851                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152852                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152853                 
152854                ELSE null
152855               END                           object_name
152856             , CASE r
152857                 WHEN 1 THEN 'HEADER' 
152858                 WHEN 2 THEN 'HEADER' 
152859                 WHEN 3 THEN 'HEADER' 
152860                 WHEN 4 THEN 'HEADER' 
152861                 WHEN 5 THEN 'HEADER' 
152862                 WHEN 6 THEN 'HEADER' 
152863                 WHEN 7 THEN 'HEADER' 
152864                 WHEN 8 THEN 'HEADER' 
152865                 WHEN 9 THEN 'HEADER' 
152866                 WHEN 10 THEN 'HEADER' 
152867                 WHEN 11 THEN 'HEADER' 
152868                 WHEN 12 THEN 'HEADER' 
152869                 WHEN 13 THEN 'HEADER' 
152870                 WHEN 14 THEN 'HEADER' 
152871                 WHEN 15 THEN 'HEADER' 
152872                 WHEN 16 THEN 'HEADER' 
152873                 WHEN 17 THEN 'HEADER' 
152874                 WHEN 18 THEN 'HEADER' 
152875                 WHEN 19 THEN 'HEADER' 
152876                 WHEN 20 THEN 'HEADER' 
152877                 WHEN 21 THEN 'HEADER' 
152878                 WHEN 22 THEN 'HEADER' 
152879                 WHEN 23 THEN 'HEADER' 
152880                 
152881                 ELSE null
152882               END                           object_type_code
152883             , CASE r
152884                 WHEN 1 THEN '200' 
152885                 WHEN 2 THEN '200' 
152886                 WHEN 3 THEN '200' 
152887                 WHEN 4 THEN '200' 
152888                 WHEN 5 THEN '200' 
152889                 WHEN 6 THEN '200' 
152890                 WHEN 7 THEN '200' 
152891                 WHEN 8 THEN '200' 
152892                 WHEN 9 THEN '200' 
152893                 WHEN 10 THEN '200' 
152894                 WHEN 11 THEN '200' 
152895                 WHEN 12 THEN '200' 
152896                 WHEN 13 THEN '200' 
152897                 WHEN 14 THEN '200' 
152898                 WHEN 15 THEN '200' 
152899                 WHEN 16 THEN '200' 
152900                 WHEN 17 THEN '200' 
152901                 WHEN 18 THEN '200' 
152902                 WHEN 19 THEN '200' 
152903                 WHEN 20 THEN '200' 
152904                 WHEN 21 THEN '200' 
152905                 WHEN 22 THEN '200' 
152906                 WHEN 23 THEN '200' 
152907                 
152908                 ELSE null
152909               END                           source_application_id
152910             , 'S'             source_type_code
152911             , CASE r
152912                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
152913                 WHEN 2 THEN 'AI_INVOICE_DATE' 
152914                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
152915                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
152916                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
152917                 WHEN 6 THEN 'AI_DESCRIPTION' 
152918                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
152919                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
152920                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
152921                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
152922                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
152923                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
152924                 WHEN 13 THEN 'AI_INVOICE_ID' 
152925                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
152926                 WHEN 15 THEN 'AI_VENDOR_ID' 
152927                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
152928                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
152929                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
152930                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
152931                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
152932                 WHEN 21 THEN 'AI_SOURCE' 
152933                 WHEN 22 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
152934                 WHEN 23 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
152935                 
152936                 ELSE null
152937               END                           source_code
152938             , CASE r
152939                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
152940                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
152941                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
152942                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
152943                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
152944                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
152945                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
152946                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
152947                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
152948                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
152949                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
152950                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
152951                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
152952                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
152953                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
152954                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
152955                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
152956                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
152957                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
152958                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
152959                 WHEN 21 THEN TO_CHAR(h2.AI_SOURCE)
152960                 WHEN 22 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
152961                 WHEN 23 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
152962                 
152963                 ELSE null
152964               END                           source_value
152965             , CASE r
152966                 WHEN 7 THEN fvl15.meaning
152970                 ELSE null
152967                 WHEN 12 THEN fvl47.meaning
152968                 WHEN 22 THEN fvl164.meaning
152969                 
152971               END               source_meaning
152972          FROM xla_events_gt     xet  
152973       , AP_INVOICE_EXTRACT_HEADER_V  h2
152974       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
152975   , fnd_lookup_values    fvl15
152976   , fnd_lookup_values    fvl47
152977   , fnd_lookup_values    fvl164
152978              ,(select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
152979          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
152980            AND xet.event_class_code = C_EVENT_CLASS_CODE
152981               AND h2.event_id = xet.event_id
152982  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
152983   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
152984   AND fvl15.view_application_id(+) = 200
152985   AND fvl15.language(+)            = USERENV('LANG')
152986      AND fvl47.lookup_type(+)         = 'YES_NO'
152987   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
152988   AND fvl47.view_application_id(+) = 0
152989   AND fvl47.language(+)            = USERENV('LANG')
152990      AND fvl164.lookup_type(+)         = 'INVOICE TYPE'
152991   AND fvl164.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
152992   AND fvl164.view_application_id(+) = 200
152993   AND fvl164.language(+)            = USERENV('LANG')
152994   
152995 )
152996 ;
152997 --
152998 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152999 
153000       trace
153001          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
153002          ,p_level    => C_LEVEL_STATEMENT
153003          ,p_module   => l_log_module);
153004 
153005 END IF;
153006 --
153007 
153008 
153009 
153010 --
153011 INSERT INTO xla_diag_sources  --line2
153012 (
153013         event_id
153014       , ledger_id
153015       , sla_ledger_id
153016       , description_language
153017       , object_name
153018       , object_type_code
153019       , line_number
153020       , source_application_id
153021       , source_type_code
153022       , source_code
153023       , source_value
153024       , source_meaning
153025       , created_by
153026       , creation_date
153027       , last_update_date
153028       , last_updated_by
153029       , last_update_login
153030       , program_update_date
153031       , program_application_id
153032       , program_id
153033       , request_id
153034 )
153035 SELECT  event_id
153036       , p_target_ledger_id
153037       , p_sla_ledger_id
153038       , p_language
153039       , object_name
153040       , object_type_code
153041       , line_number
153042       , source_application_id
153043       , source_type_code
153044       , source_code
153045       , SUBSTR(source_value,1,1996)
153046       , SUBSTR(source_meaning ,1,200)
153047       , xla_environment_pkg.g_Usr_Id
153048       , TRUNC(SYSDATE)
153049       , TRUNC(SYSDATE)
153050       , xla_environment_pkg.g_Usr_Id
153051       , xla_environment_pkg.g_Login_Id
153052       , TRUNC(SYSDATE)
153053       , xla_environment_pkg.g_Prog_Appl_Id
153054       , xla_environment_pkg.g_Prog_Id
153055       , xla_environment_pkg.g_Req_Id
153056   FROM (
153057        SELECT xet.event_id                  event_id
153058             , l1.line_number                 line_number
153059             , CASE r
153060                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153061                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153062                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153063                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153064                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153065                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153066                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153067                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153068                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153069                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153070                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153071                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153072                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153073                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153074                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153075                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153076                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153077                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153078                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153079                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153080                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153081                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153082                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153083                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153084                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153085                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153086                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153087                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153088                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153089                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153090                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153091                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153092                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153093                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153094                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153095                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
153096                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
153097                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153101                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153098                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153099                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153100                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153102                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153103                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153104                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153105                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153106                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153107                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153108                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153109                 WHEN 50 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153110                 
153111                ELSE null
153112               END                           object_name
153113             , CASE r
153114                 WHEN 1 THEN 'LINE' 
153115                 WHEN 2 THEN 'LINE' 
153116                 WHEN 3 THEN 'LINE' 
153117                 WHEN 4 THEN 'LINE' 
153118                 WHEN 5 THEN 'LINE' 
153119                 WHEN 6 THEN 'LINE' 
153120                 WHEN 7 THEN 'LINE' 
153121                 WHEN 8 THEN 'LINE' 
153122                 WHEN 9 THEN 'LINE' 
153123                 WHEN 10 THEN 'LINE' 
153124                 WHEN 11 THEN 'LINE' 
153125                 WHEN 12 THEN 'LINE' 
153126                 WHEN 13 THEN 'LINE' 
153127                 WHEN 14 THEN 'LINE' 
153128                 WHEN 15 THEN 'LINE' 
153129                 WHEN 16 THEN 'LINE' 
153130                 WHEN 17 THEN 'LINE' 
153131                 WHEN 18 THEN 'LINE' 
153132                 WHEN 19 THEN 'LINE' 
153133                 WHEN 20 THEN 'LINE' 
153134                 WHEN 21 THEN 'LINE' 
153135                 WHEN 22 THEN 'LINE' 
153136                 WHEN 23 THEN 'LINE' 
153137                 WHEN 24 THEN 'LINE' 
153138                 WHEN 25 THEN 'LINE' 
153139                 WHEN 26 THEN 'LINE' 
153140                 WHEN 27 THEN 'LINE' 
153141                 WHEN 28 THEN 'LINE' 
153142                 WHEN 29 THEN 'LINE' 
153143                 WHEN 30 THEN 'LINE' 
153144                 WHEN 31 THEN 'LINE' 
153145                 WHEN 32 THEN 'LINE' 
153146                 WHEN 33 THEN 'LINE' 
153147                 WHEN 34 THEN 'LINE' 
153148                 WHEN 35 THEN 'LINE' 
153149                 WHEN 36 THEN 'LINE' 
153150                 WHEN 37 THEN 'LINE' 
153151                 WHEN 38 THEN 'LINE' 
153152                 WHEN 39 THEN 'LINE' 
153153                 WHEN 40 THEN 'LINE' 
153154                 WHEN 41 THEN 'LINE' 
153155                 WHEN 42 THEN 'LINE' 
153156                 WHEN 43 THEN 'LINE' 
153157                 WHEN 44 THEN 'LINE' 
153158                 WHEN 45 THEN 'LINE' 
153159                 WHEN 46 THEN 'LINE' 
153160                 WHEN 47 THEN 'LINE' 
153161                 WHEN 48 THEN 'LINE' 
153162                 WHEN 49 THEN 'LINE' 
153163                 WHEN 50 THEN 'LINE' 
153164                 
153165                 ELSE null
153166               END                           object_type_code
153167             , CASE r
153168                 WHEN 1 THEN '200' 
153169                 WHEN 2 THEN '200' 
153170                 WHEN 3 THEN '200' 
153171                 WHEN 4 THEN '200' 
153172                 WHEN 5 THEN '200' 
153173                 WHEN 6 THEN '200' 
153174                 WHEN 7 THEN '200' 
153175                 WHEN 8 THEN '200' 
153176                 WHEN 9 THEN '200' 
153177                 WHEN 10 THEN '200' 
153178                 WHEN 11 THEN '200' 
153179                 WHEN 12 THEN '200' 
153180                 WHEN 13 THEN '200' 
153181                 WHEN 14 THEN '200' 
153182                 WHEN 15 THEN '200' 
153183                 WHEN 16 THEN '200' 
153184                 WHEN 17 THEN '200' 
153185                 WHEN 18 THEN '200' 
153186                 WHEN 19 THEN '200' 
153187                 WHEN 20 THEN '200' 
153188                 WHEN 21 THEN '200' 
153189                 WHEN 22 THEN '200' 
153190                 WHEN 23 THEN '200' 
153191                 WHEN 24 THEN '200' 
153192                 WHEN 25 THEN '200' 
153193                 WHEN 26 THEN '200' 
153194                 WHEN 27 THEN '200' 
153195                 WHEN 28 THEN '200' 
153196                 WHEN 29 THEN '200' 
153197                 WHEN 30 THEN '200' 
153198                 WHEN 31 THEN '200' 
153199                 WHEN 32 THEN '200' 
153200                 WHEN 33 THEN '200' 
153201                 WHEN 34 THEN '200' 
153202                 WHEN 35 THEN '200' 
153203                 WHEN 36 THEN '200' 
153204                 WHEN 37 THEN '200' 
153205                 WHEN 38 THEN '200' 
153206                 WHEN 39 THEN '200' 
153207                 WHEN 40 THEN '200' 
153208                 WHEN 41 THEN '200' 
153209                 WHEN 42 THEN '200' 
153210                 WHEN 43 THEN '200' 
153211                 WHEN 44 THEN '200' 
153212                 WHEN 45 THEN '200' 
153213                 WHEN 46 THEN '200' 
153214                 WHEN 47 THEN '200' 
153215                 WHEN 48 THEN '200' 
153216                 WHEN 49 THEN '200' 
153217                 WHEN 50 THEN '200' 
153218                 
153219                 ELSE null
153220               END                           source_application_id
153221             , 'S'             source_type_code
153222             , CASE r
153223                 WHEN 1 THEN 'AID_DESCRIPTION' 
153224                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
153225                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
153226                 WHEN 4 THEN 'AID_DIST_CCID' 
153227                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
153228                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
153229                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
153233                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
153230                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
153231                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
153232                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
153234                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
153235                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
153236                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
153237                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
153238                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
153239                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
153240                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
153241                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
153242                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
153243                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
153244                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
153245                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
153246                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
153247                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
153248                 WHEN 26 THEN 'AID_AMOUNT' 
153249                 WHEN 27 THEN 'POH_RATE_DATE' 
153250                 WHEN 28 THEN 'POH_RATE' 
153251                 WHEN 29 THEN 'POH_RATE_TYPE' 
153252                 WHEN 30 THEN 'DEFERRED_END_DATE' 
153253                 WHEN 31 THEN 'DEFERRED_OPTION' 
153254                 WHEN 32 THEN 'DEFERRED_START_DATE' 
153255                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
153256                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
153257                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
153258                 WHEN 36 THEN 'TAX_LINE_ID' 
153259                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
153260                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
153261                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
153262                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
153263                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
153264                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
153265                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
153266                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
153267                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
153268                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
153269                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
153270                 WHEN 48 THEN 'AID_PROJECT_ID' 
153271                 WHEN 49 THEN 'BUS_FLOW_RET_INV_DIST_ID' 
153272                 WHEN 50 THEN 'BUS_FLOW_RET_INV_ID' 
153273                 
153274                 ELSE null
153275               END                           source_code
153276             , CASE r
153277                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
153278                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
153279                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
153280                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
153281                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
153282                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
153283                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
153284                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
153285                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
153286                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
153287                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
153288                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
153289                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
153290                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
153291                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
153292                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
153293                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
153294                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
153295                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
153296                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
153297                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
153298                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
153299                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
153300                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
153301                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
153302                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
153303                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
153304                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
153305                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
153306                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
153307                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
153308                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
153309                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
153310                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
153311                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
153312                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
153313                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
153314                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
153315                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
153316                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
153317                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
153318                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
153319                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
153320                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
153321                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
153322                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
153323                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
153324                 WHEN 48 THEN TO_CHAR(l1.AID_PROJECT_ID)
153325                 WHEN 49 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_DIST_ID)
153326                 WHEN 50 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_ID)
153327                 
153328                 ELSE null
153329               END                           source_value
153330             , CASE r
153331                 WHEN 3 THEN fvl22.meaning
153332                 WHEN 5 THEN fvl33.meaning
153333                 WHEN 33 THEN fvl79.meaning
153337                 ELSE null
153334                 WHEN 46 THEN fvl95.meaning
153335                 WHEN 47 THEN fvl135.meaning
153336                 
153338               END               source_meaning
153339          FROM  xla_events_gt     xet  
153340         , AP_INVOICE_EXTRACT_DETAILS_V  l1
153341         , AP_PO_HEADERS_EXTRACT_V  l3
153342         , ZX_AP_DEF_TAX_EXTRACT_V  l5
153343         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153344   , fnd_lookup_values    fvl22
153345   , fnd_lookup_values    fvl33
153346   , fnd_lookup_values    fvl79
153347   , fnd_lookup_values    fvl95
153348   , fnd_lookup_values    fvl135
153349             , (select rownum r from all_objects where rownum <= 50 and owner = p_apps_owner)
153350         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
153351           AND xet.event_class_code = C_EVENT_CLASS_CODE
153352             AND l1.event_id          = xet.event_id
153353  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'
153354   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153355   AND fvl22.view_application_id(+) = 201
153356   AND fvl22.language(+)            = USERENV('LANG')
153357      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153358   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153359   AND fvl33.view_application_id(+) = 200
153360   AND fvl33.language(+)            = USERENV('LANG')
153361      AND fvl79.lookup_type(+)         = 'YES_NO'
153362   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153363   AND fvl79.view_application_id(+) = 0
153364   AND fvl79.language(+)            = USERENV('LANG')
153365      AND fvl95.lookup_type(+)         = 'YES_NO'
153366   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153367   AND fvl95.view_application_id(+) = 0
153368   AND fvl95.language(+)            = USERENV('LANG')
153369      AND fvl135.lookup_type(+)         = 'YES_NO'
153370   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153371   AND fvl135.view_application_id(+) = 0
153372   AND fvl135.language(+)            = USERENV('LANG')
153373   
153374 )
153375 ;
153376 --
153377 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153378 
153379       trace
153380          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
153381          ,p_level    => C_LEVEL_STATEMENT
153382          ,p_module   => l_log_module);
153383 
153384 END IF;
153385 
153386 
153387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153388       trace
153389          (p_msg      => 'END of insert_sources_229'
153390          ,p_level    => C_LEVEL_PROCEDURE
153391          ,p_module   => l_log_module);
153392 END IF;
153393 EXCEPTION
153394   WHEN xla_exceptions_pkg.application_exception THEN
153395       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153396             trace
153397                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153398                ,p_level    => C_LEVEL_EXCEPTION
153399                ,p_module   => l_log_module);
153400       END IF;
153401       RAISE;
153402   WHEN OTHERS THEN
153403       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153404             trace
153405                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153406                ,p_level    => C_LEVEL_EXCEPTION
153407                ,p_module   => l_log_module);
153408        END IF;
153409        xla_exceptions_pkg.raise_message
153410            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_229');
153411 END insert_sources_229;
153412 --
153413 
153414 ---------------------------------------
153415 --
153416 -- PRIVATE FUNCTION
153417 --         EventClass_229
153418 --
153419 ----------------------------------------
153420 --
153421 FUNCTION EventClass_229
153422        (p_application_id         IN NUMBER
153423        ,p_base_ledger_id         IN NUMBER
153424        ,p_target_ledger_id       IN NUMBER
153425        ,p_language               IN VARCHAR2
153426        ,p_currency_code          IN VARCHAR2
153427        ,p_sla_ledger_id          IN NUMBER
153428        ,p_pad_start_date         IN DATE
153429        ,p_pad_end_date           IN DATE
153430        ,p_primary_ledger_id      IN NUMBER)
153431 RETURN BOOLEAN IS
153432 --
153433 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
153434 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
153435 
153436 l_calculate_acctd_flag   VARCHAR2(1) :='N';
153437 l_calculate_g_l_flag     VARCHAR2(1) :='N';
153438 --
153439 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153440 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153441 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153442 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153443 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153444 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153445 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153446 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153447 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153448 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153449 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153450 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153451 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153452 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153453 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153454 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153455 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153459 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153456 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153457 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153458 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153460 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153461 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
153462 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153463 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153464 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153465 
153466 l_event_id                             NUMBER;
153467 l_previous_event_id                    NUMBER;
153468 l_first_event_id                       NUMBER;
153469 l_last_event_id                        NUMBER;
153470 
153471 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
153472 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
153473 --
153474 --
153475 l_result                    BOOLEAN := TRUE;
153476 l_rows                      NUMBER  := 1000;
153477 l_event_type_name           VARCHAR2(80) := 'All';
153478 l_event_class_name          VARCHAR2(80) := 'Invoices';
153479 l_description               VARCHAR2(4000);
153480 l_transaction_reversal      NUMBER;
153481 l_ae_header_id              NUMBER;
153482 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
153483 l_log_module                VARCHAR2(240);
153484 --
153485 l_acct_reversal_source      VARCHAR2(30);
153486 l_trx_reversal_source       VARCHAR2(30);
153487 
153488 l_continue_with_lines       BOOLEAN := TRUE;
153489 --
153490 l_acc_rev_gl_date_source    DATE;                      -- 4262811
153491 --
153492 type t_array_event_id is table of number index by binary_integer;
153493 
153494 l_rec_array_event                    t_rec_array_event;
153495 l_null_rec_array_event               t_rec_array_event;
153496 l_array_ae_header_id                 xla_number_array_type;
153497 l_actual_flag                        VARCHAR2(1) := NULL;
153498 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
153499 l_balance_type_code                  VARCHAR2(1) :=NULL;
153500 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
153501 
153502 --
153503 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
153504 --
153505 
153506 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
153507 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
153508 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
153509 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
153510 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
153511 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
153512 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
153513 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
153514 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
153515 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
153516 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153517 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
153518 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
153519 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
153520 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
153521 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
153522 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
153523 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
153524 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
153525 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153526 TYPE t_array_source_163 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_SOURCE%TYPE INDEX BY BINARY_INTEGER;
153527 TYPE t_array_source_164 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153528 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
153529 
153530 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
153531 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153532 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153533 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153534 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153535 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153536 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153537 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153538 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
153542 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153539 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
153540 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
153541 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153543 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153544 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153545 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153546 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
153547 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153548 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
153549 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
153550 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153551 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
153552 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
153553 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153554 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
153555 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153556 TYPE t_array_source_73 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
153557 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
153558 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153559 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
153560 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
153561 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
153562 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153563 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
153564 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153565 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153566 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153567 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153568 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153569 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153570 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153571 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153572 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153573 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153574 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
153575 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153576 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
153577 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
153578 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153579 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_ID%TYPE INDEX BY BINARY_INTEGER;
153580 
153581 l_array_source_3              t_array_source_3;
153582 l_array_source_4              t_array_source_4;
153583 l_array_source_5              t_array_source_5;
153584 l_array_source_6              t_array_source_6;
153585 l_array_source_7              t_array_source_7;
153586 l_array_source_8              t_array_source_8;
153587 l_array_source_15              t_array_source_15;
153588 l_array_source_15_meaning      t_array_lookup_meaning;
153589 l_array_source_20              t_array_source_20;
153590 l_array_source_23              t_array_source_23;
153591 l_array_source_34              t_array_source_34;
153592 l_array_source_40              t_array_source_40;
153593 l_array_source_47              t_array_source_47;
153594 l_array_source_47_meaning      t_array_lookup_meaning;
153595 l_array_source_57              t_array_source_57;
153596 l_array_source_66              t_array_source_66;
153597 l_array_source_80              t_array_source_80;
153598 l_array_source_81              t_array_source_81;
153599 l_array_source_82              t_array_source_82;
153600 l_array_source_136              t_array_source_136;
153601 l_array_source_137              t_array_source_137;
153602 l_array_source_138              t_array_source_138;
153603 l_array_source_163              t_array_source_163;
153604 l_array_source_164              t_array_source_164;
153605 l_array_source_164_meaning      t_array_lookup_meaning;
153606 l_array_source_168              t_array_source_168;
153607 
153608 l_array_source_1      t_array_source_1;
153609 l_array_source_21      t_array_source_21;
153610 l_array_source_22      t_array_source_22;
153611 l_array_source_22_meaning      t_array_lookup_meaning;
153615 l_array_source_42      t_array_source_42;
153612 l_array_source_30      t_array_source_30;
153613 l_array_source_33      t_array_source_33;
153614 l_array_source_33_meaning      t_array_lookup_meaning;
153616 l_array_source_43      t_array_source_43;
153617 l_array_source_49      t_array_source_49;
153618 l_array_source_50      t_array_source_50;
153619 l_array_source_52      t_array_source_52;
153620 l_array_source_54      t_array_source_54;
153621 l_array_source_56      t_array_source_56;
153622 l_array_source_58      t_array_source_58;
153623 l_array_source_59      t_array_source_59;
153624 l_array_source_60      t_array_source_60;
153625 l_array_source_61      t_array_source_61;
153626 l_array_source_62      t_array_source_62;
153627 l_array_source_63      t_array_source_63;
153628 l_array_source_64      t_array_source_64;
153629 l_array_source_65      t_array_source_65;
153630 l_array_source_67      t_array_source_67;
153631 l_array_source_68      t_array_source_68;
153632 l_array_source_69      t_array_source_69;
153633 l_array_source_70      t_array_source_70;
153634 l_array_source_71      t_array_source_71;
153635 l_array_source_72      t_array_source_72;
153636 l_array_source_73      t_array_source_73;
153637 l_array_source_74      t_array_source_74;
153638 l_array_source_75      t_array_source_75;
153639 l_array_source_76      t_array_source_76;
153640 l_array_source_77      t_array_source_77;
153641 l_array_source_78      t_array_source_78;
153642 l_array_source_79      t_array_source_79;
153643 l_array_source_79_meaning      t_array_lookup_meaning;
153644 l_array_source_83      t_array_source_83;
153645 l_array_source_84      t_array_source_84;
153646 l_array_source_85      t_array_source_85;
153647 l_array_source_86      t_array_source_86;
153648 l_array_source_87      t_array_source_87;
153649 l_array_source_88      t_array_source_88;
153650 l_array_source_89      t_array_source_89;
153651 l_array_source_90      t_array_source_90;
153652 l_array_source_91      t_array_source_91;
153653 l_array_source_92      t_array_source_92;
153654 l_array_source_93      t_array_source_93;
153655 l_array_source_94      t_array_source_94;
153656 l_array_source_95      t_array_source_95;
153657 l_array_source_95_meaning      t_array_lookup_meaning;
153658 l_array_source_135      t_array_source_135;
153659 l_array_source_135_meaning      t_array_lookup_meaning;
153660 l_array_source_146      t_array_source_146;
153661 l_array_source_166      t_array_source_166;
153662 l_array_source_167      t_array_source_167;
153663 
153664 --
153665 CURSOR header_cur
153666 IS
153667 SELECT /*+ leading(xet) cardinality(xet,1) */
153668 -- Event Class Code: INVOICES
153669     xet.entity_id
153670    ,xet.legal_entity_id
153671    ,xet.entity_code
153672    ,xet.transaction_number
153673    ,xet.event_id
153674    ,xet.event_class_code
153675    ,xet.event_type_code
153676    ,xet.event_number
153677    ,xet.event_date
153678    ,xet.transaction_date
153679    ,xet.reference_num_1
153680    ,xet.reference_num_2
153681    ,xet.reference_num_3
153682    ,xet.reference_num_4
153683    ,xet.reference_char_1
153684    ,xet.reference_char_2
153685    ,xet.reference_char_3
153686    ,xet.reference_char_4
153687    ,xet.reference_date_1
153688    ,xet.reference_date_2
153689    ,xet.reference_date_3
153690    ,xet.reference_date_4
153691    ,xet.event_created_by
153692    ,xet.budgetary_control_flag 
153693   , h2.INV_TRANSACTION_NUMBER    source_3
153694   , h2.AI_INVOICE_DATE    source_4
153695   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
153696   , h2.DOC_SEQUENCE_NAME    source_6
153697   , h2.INV_DOC_SEQUENCE_VALUE    source_7
153698   , h2.AI_DESCRIPTION    source_8
153699   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
153700   , fvl15.meaning   source_15_meaning
153701   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
153702   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
153703   , h2.AI_ACCTS_PAY_CCID    source_34
153704   , h4.FSP_RETAINAGE_ACCOUNT    source_40
153705   , h4.ASP_AUTO_OFFSET_FLAG    source_47
153706   , fvl47.meaning   source_47_meaning
153707   , h2.AI_INVOICE_ID    source_57
153708   , h2.AI_INVOICE_CURRENCY_CODE    source_66
153709   , h2.AI_VENDOR_ID    source_80
153710   , h2.AI_VENDOR_SITE_ID    source_81
153711   , h2.THIRD_PARTY_TYPE    source_82
153712   , h2.INV_EXCHANGE_DATE    source_136
153713   , h2.INV_EXCHANGE_RATE    source_137
153714   , h2.INV_EXCHANGE_RATE_TYPE    source_138
153715   , h2.AI_SOURCE    source_163
153716   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_164
153717   , fvl164.meaning   source_164_meaning
153718   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
153719   FROM xla_events_gt     xet 
153720   , AP_INVOICE_EXTRACT_HEADER_V  h2
153721   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
153722   , fnd_lookup_values    fvl15
153723   , fnd_lookup_values    fvl47
153724   , fnd_lookup_values    fvl164
153725  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
153726    and xet.event_class_code = C_EVENT_CLASS_CODE
153727    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
153728  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
153729   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
153730   AND fvl15.view_application_id(+) = 200
153731   AND fvl15.language(+)            = USERENV('LANG')
153732      AND fvl47.lookup_type(+)         = 'YES_NO'
153733   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
153734   AND fvl47.view_application_id(+) = 0
153735   AND fvl47.language(+)            = USERENV('LANG')
153736      AND fvl164.lookup_type(+)         = 'INVOICE TYPE'
153737   AND fvl164.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
153738   AND fvl164.view_application_id(+) = 200
153739   AND fvl164.language(+)            = USERENV('LANG')
153740   
153741  ORDER BY event_id
153742 ;
153743 
153744 
153745 --
153746 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
153747 IS
153751    ,xet.legal_entity_id
153748 SELECT  /*+ leading(xet) cardinality(xet,1) */
153749 -- Event Class Code: INVOICES
153750     xet.entity_id
153752    ,xet.entity_code
153753    ,xet.transaction_number
153754    ,xet.event_id
153755    ,xet.event_class_code
153756    ,xet.event_type_code
153757    ,xet.event_number
153758    ,xet.event_date
153759    ,xet.transaction_date
153760    ,xet.reference_num_1
153761    ,xet.reference_num_2
153762    ,xet.reference_num_3
153763    ,xet.reference_num_4
153764    ,xet.reference_char_1
153765    ,xet.reference_char_2
153766    ,xet.reference_char_3
153767    ,xet.reference_char_4
153768    ,xet.reference_date_1
153769    ,xet.reference_date_2
153770    ,xet.reference_date_3
153771    ,xet.reference_date_4
153772    ,xet.event_created_by
153773    ,xet.budgetary_control_flag
153774  , l1.LINE_NUMBER  
153775   , l1.AID_DESCRIPTION    source_1
153776   , l1.INV_DIST_BASE_AMOUNT    source_21
153777   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
153778   , fvl22.meaning   source_22_meaning
153779   , l1.AID_DIST_CCID    source_30
153780   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
153781   , fvl33.meaning   source_33_meaning
153782   , l1.AID_RET_RELATED_DIST_CCID    source_42
153783   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
153784   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_49
153785   , l1.ASAT_LIAB_CCID    source_50
153786   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
153787   , l1.DISTRIBUTION_LINK_TYPE    source_54
153788   , l1.ALLOC_TO_MAIN_DIST_ID    source_56
153789   , l1.BUS_FLOW_PO_APP_ID    source_58
153790   , l1.BUS_FLOW_PO_DIST_TYPE    source_59
153791   , l1.BUS_FLOW_PO_ENTITY_CODE    source_60
153792   , l1.BUS_FLOW_PO_DIST_ID    source_61
153793   , l1.BUS_FLOW_PO_DOC_ID    source_62
153794   , l1.AID_INVOICE_DIST_ID    source_63
153795   , l1.UPG_ENC_CR_CCID    source_64
153796   , l1.UPG_ENC_CR_AMT    source_65
153797   , l1.UPG_ENC_CR_BASE_AMT    source_67
153798   , l1.UPG_ENC_DR_CCID    source_68
153799   , l1.UPG_ENC_DR_AMT    source_69
153800   , l1.UPG_ENC_DR_BASE_AMT    source_70
153801   , l1.UPG_AP_ENCUM_OPTION    source_71
153802   , l1.AID_AMOUNT    source_72
153803   , l3.POH_RATE_DATE    source_73
153804   , l3.POH_RATE    source_74
153805   , l3.POH_RATE_TYPE    source_75
153806   , l1.DEFERRED_END_DATE    source_76
153807   , l1.DEFERRED_OPTION    source_77
153808   , l1.DEFERRED_START_DATE    source_78
153809   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
153810   , fvl79.meaning   source_79_meaning
153811   , l1.AID_PARENT_REVERSAL_ID    source_83
153812   , l1.AID_STAT_AMOUNT    source_84
153813   , l5.TAX_LINE_ID    source_85
153814   , l6.REC_NREC_TAX_DIST_ID    source_86
153815   , l1.SUMMARY_TAX_LINE_ID    source_87
153816   , l1.UPG_CR_ENC_TYPE_ID    source_88
153817   , l1.UPG_DR_ENC_TYPE_ID    source_89
153818   , l1.BUS_FLOW_AP_APP_ID    source_90
153819   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
153820   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
153821   , l1.BUS_FLOW_INV_DIST_ID    source_93
153822   , l1.BUS_FLOW_INV_ID    source_94
153823   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_95
153824   , fvl95.meaning   source_95_meaning
153825   , l1.SELF_ASSESSED_TAX_FLAG    source_135
153826   , fvl135.meaning   source_135_meaning
153827   , l1.AID_PROJECT_ID    source_146
153828   , l1.BUS_FLOW_RET_INV_DIST_ID    source_166
153829   , l1.BUS_FLOW_RET_INV_ID    source_167
153830   FROM xla_events_gt     xet 
153831   , AP_INVOICE_EXTRACT_DETAILS_V  l1
153832   , AP_PO_HEADERS_EXTRACT_V  l3
153833   , ZX_AP_DEF_TAX_EXTRACT_V  l5
153834   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153835   , fnd_lookup_values    fvl22
153836   , fnd_lookup_values    fvl33
153837   , fnd_lookup_values    fvl79
153838   , fnd_lookup_values    fvl95
153839   , fnd_lookup_values    fvl135
153840  WHERE xet.event_id between x_first_event_id and x_last_event_id
153841    and xet.event_date between p_pad_start_date and p_pad_end_date
153842    and xet.event_class_code = C_EVENT_CLASS_CODE
153843    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
153844  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'
153845   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153846   AND fvl22.view_application_id(+) = 201
153847   AND fvl22.language(+)            = USERENV('LANG')
153848      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153849   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153850   AND fvl33.view_application_id(+) = 200
153851   AND fvl33.language(+)            = USERENV('LANG')
153852      AND fvl79.lookup_type(+)         = 'YES_NO'
153853   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153854   AND fvl79.view_application_id(+) = 0
153855   AND fvl79.language(+)            = USERENV('LANG')
153856      AND fvl95.lookup_type(+)         = 'YES_NO'
153857   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153858   AND fvl95.view_application_id(+) = 0
153859   AND fvl95.language(+)            = USERENV('LANG')
153860      AND fvl135.lookup_type(+)         = 'YES_NO'
153861   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153862   AND fvl135.view_application_id(+) = 0
153863   AND fvl135.language(+)            = USERENV('LANG')
153864   ;
153865 
153866 --
153867 BEGIN
153868 IF g_log_enabled THEN
153869    l_log_module := C_DEFAULT_MODULE||'.EventClass_229';
153870 END IF;
153871 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153872    trace
153873       (p_msg      => 'BEGIN of EventClass_229'
153874       ,p_level    => C_LEVEL_PROCEDURE
153875       ,p_module   => l_log_module);
153876 END IF;
153877 
153878 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153879    trace
153880       (p_msg      => 'p_application_id = '||p_application_id||
153881                      ' - p_base_ledger_id = '||p_base_ledger_id||
153885                      ' - p_sla_ledger_id = '||p_sla_ledger_id
153882                      ' - p_target_ledger_id  = '||p_target_ledger_id||
153883                      ' - p_language = '||p_language||
153884                      ' - p_currency_code = '||p_currency_code||
153886       ,p_level    => C_LEVEL_STATEMENT
153887       ,p_module   => l_log_module);
153888 END IF;
153889 --
153890 -- initialze arrays
153891 --
153892 g_array_event.DELETE;
153893 l_rec_array_event := l_null_rec_array_event;
153894 --
153895 --------------------------------------
153896 -- 4262811 Initialze MPA Line Number
153897 --------------------------------------
153898 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
153899 
153900 --
153901 
153902 --
153903 OPEN header_cur;
153904 --
153905 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153906    trace
153907    (p_msg      => 'SQL - FETCH header_cur'
153908    ,p_level    => C_LEVEL_STATEMENT
153909    ,p_module   => l_log_module);
153910 END IF;
153911 --
153912 LOOP
153913 FETCH header_cur BULK COLLECT INTO
153914         l_array_entity_id
153915       , l_array_legal_entity_id
153916       , l_array_entity_code
153917       , l_array_transaction_num
153918       , l_array_event_id
153919       , l_array_class_code
153920       , l_array_event_type
153921       , l_array_event_number
153922       , l_array_event_date
153923       , l_array_transaction_date
153924       , l_array_reference_num_1
153925       , l_array_reference_num_2
153926       , l_array_reference_num_3
153927       , l_array_reference_num_4
153928       , l_array_reference_char_1
153929       , l_array_reference_char_2
153930       , l_array_reference_char_3
153931       , l_array_reference_char_4
153932       , l_array_reference_date_1
153933       , l_array_reference_date_2
153934       , l_array_reference_date_3
153935       , l_array_reference_date_4
153936       , l_array_event_created_by
153937       , l_array_budgetary_control_flag 
153938       , l_array_source_3
153939       , l_array_source_4
153940       , l_array_source_5
153941       , l_array_source_6
153942       , l_array_source_7
153943       , l_array_source_8
153944       , l_array_source_15
153945       , l_array_source_15_meaning
153946       , l_array_source_20
153947       , l_array_source_23
153948       , l_array_source_34
153949       , l_array_source_40
153950       , l_array_source_47
153951       , l_array_source_47_meaning
153952       , l_array_source_57
153953       , l_array_source_66
153954       , l_array_source_80
153955       , l_array_source_81
153956       , l_array_source_82
153957       , l_array_source_136
153958       , l_array_source_137
153959       , l_array_source_138
153960       , l_array_source_163
153961       , l_array_source_164
153962       , l_array_source_164_meaning
153963       , l_array_source_168
153964       LIMIT l_rows;
153965 --
153966 IF (C_LEVEL_EVENT >= g_log_level) THEN
153967    trace
153968    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
153969    ,p_level    => C_LEVEL_EVENT
153970    ,p_module   => l_log_module);
153971 END IF;
153972 --
153973 EXIT WHEN l_array_entity_id.COUNT = 0;
153974 
153975 -- initialize arrays
153976 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
153977 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
153978 
153979 --
153980 -- Bug 4458708
153981 --
153982 XLA_AE_LINES_PKG.g_LineNumber := 0;
153983 
153984 
153985 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
153986 g_last_hdr_idx := l_array_event_id.LAST;
153987 --
153988 -- loop for the headers. Each iteration is for each header extract row
153989 -- fetched in header cursor
153990 --
153991 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
153992 
153993 --
153994 -- set event info as cache for other routines to refer event attributes
153995 --
153996 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
153997    (p_application_id           => p_application_id
153998    ,p_primary_ledger_id        => p_primary_ledger_id
153999    ,p_base_ledger_id           => p_base_ledger_id
154000    ,p_target_ledger_id         => p_target_ledger_id
154001    ,p_entity_id                => l_array_entity_id(hdr_idx)
154002    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
154003    ,p_entity_code              => l_array_entity_code(hdr_idx)
154004    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
154005    ,p_event_id                 => l_array_event_id(hdr_idx)
154006    ,p_event_class_code         => l_array_class_code(hdr_idx)
154007    ,p_event_type_code          => l_array_event_type(hdr_idx)
154008    ,p_event_number             => l_array_event_number(hdr_idx)
154009    ,p_event_date               => l_array_event_date(hdr_idx)
154010    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
154011    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
154012    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
154013    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
154014    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
154015    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
154016    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
154017    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
154018    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
154019    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
154020    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
154021    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
154022    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
154023    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
154024    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
154025 
154029 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
154026 --
154027 -- set the status of entry to C_VALID (0)
154028 --
154030 
154031 --
154032 -- initialize a row for ae header
154033 --
154034 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
154035 
154036 l_event_id := l_array_event_id(hdr_idx);
154037 
154038 --
154039 -- storing the hdr_idx for event. May be used by line cursor.
154040 --
154041 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
154042 
154043 --
154044 -- store sources from header extract. This can be improved to
154045 -- store only those sources from header extract that may be used in lines
154046 --
154047 
154048 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
154049 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
154050 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
154051 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
154052 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
154053 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
154054 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
154055 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
154056 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
154057 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
154058 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
154059 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
154060 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
154061 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
154062 g_array_event(l_event_id).array_value_num('source_57') := l_array_source_57(hdr_idx);
154063 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
154064 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
154065 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
154066 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
154067 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
154068 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
154069 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
154070 g_array_event(l_event_id).array_value_char('source_163') := l_array_source_163(hdr_idx);
154071 g_array_event(l_event_id).array_value_char('source_164') := l_array_source_164(hdr_idx);
154072 g_array_event(l_event_id).array_value_char('source_164_meaning') := l_array_source_164_meaning(hdr_idx);
154073 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
154074 
154075 --
154076 -- initilaize the status of ae headers for diffrent balance types
154077 -- the status is initialised to C_NOT_CREATED (2)
154078 --
154079 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154080 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154081 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154082 
154083 --
154084 -- call api to validate and store accounting attributes for header
154085 --
154086 
154087 ------------------------------------------------------------
154088 -- Accrual Reversal : to get date for Standard Source (NONE)
154089 ------------------------------------------------------------
154090 l_acc_rev_gl_date_source := NULL;
154091 
154092      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
154093       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
154094      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
154095       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
154096      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
154097       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
154098      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
154099       l_rec_acct_attrs.array_date_value(4) := 
154100 xla_ae_sources_pkg.GetSystemSourceDate(
154101    p_source_code           => 'XLA_EVENT_DATE'
154102  , p_source_type_code      => 'Y'
154103  , p_source_application_id =>  602
154104 );
154105 
154106 
154107 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
154108 
154109 XLA_AE_HEADER_PKG.SetJeCategoryName;
154110 
154111 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
154112 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
154113 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
154114 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
154115 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
154116 
154117 
154118 --
154119 xla_ae_header_pkg.SetHdrDescription(
154120    p_description => Description_2 (
154121    p_application_id => p_application_id 
154122  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
154123  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
154124  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
154125  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
154126  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
154127  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
154128    )
154129 );
154130 --
154131 
154132 -- No header level analytical criteria
154133 
154134 --
154138 
154135 --accounting attribute enhancement, bug 3612931
154136 --
154137 l_trx_reversal_source := SUBSTR(NULL, 1,30);
154139 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
154140    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
154141 
154142    xla_accounting_err_pkg.build_message
154143       (p_appli_s_name            => 'XLA'
154144       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
154145       ,p_token_1                 => 'ACCT_ATTR_NAME'
154146       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
154147       ,p_token_2                 => 'PRODUCT_NAME'
154148       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
154149       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
154150       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
154151       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
154152 
154153 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
154154    --
154155    -- following sets the accounting attributes needed to reverse
154156    -- accounting for a distributeion
154157    --
154158    xla_ae_lines_pkg.SetTrxReversalAttrs
154159       (p_event_id              => l_event_id
154160       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
154161       ,p_trx_reversal_source   => l_trx_reversal_source);
154162 
154163 END IF;
154164 
154165 
154166 ----------------------------------------------------------------
154167 -- 4262811 -  update the header statuses to invalid in need be
154168 ----------------------------------------------------------------
154169 --
154170 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
154171 
154172 
154173   -----------------------------------------------
154174   -- No accrual reversal for the event class/type
154175   -----------------------------------------------
154176 ----------------------------------------------------------------
154177 
154178 --
154179 -- this ends the header loop iteration for one bulk fetch
154180 --
154181 END LOOP;
154182 
154183 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
154184 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
154185 
154186 --
154187 -- insert dummy rows into lines gt table that were created due to
154188 -- transaction reversals
154189 --
154190 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
154191    l_result := XLA_AE_LINES_PKG.InsertLines;
154192 END IF;
154193 
154194 --
154195 -- reset the temp_line_num for each set of events fetched from header
154196 -- cursor rather than doing it for each new event in line cursor
154197 -- Bug 3939231
154198 --
154199 xla_ae_lines_pkg.g_temp_line_num := 0;
154200 
154201 
154202 
154203 --
154204 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
154205 --
154206 --
154207 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154208 
154209       trace
154210          (p_msg      => 'SQL - FETCH line_cur'
154211          ,p_level    => C_LEVEL_STATEMENT
154212          ,p_module   => l_log_module);
154213 
154214 END IF;
154215 --
154216 --
154217 LOOP
154218   --
154219   FETCH line_cur BULK COLLECT INTO
154220         l_array_entity_id
154221       , l_array_legal_entity_id
154222       , l_array_entity_code
154223       , l_array_transaction_num
154224       , l_array_event_id
154225       , l_array_class_code
154226       , l_array_event_type
154227       , l_array_event_number
154228       , l_array_event_date
154229       , l_array_transaction_date
154230       , l_array_reference_num_1
154231       , l_array_reference_num_2
154232       , l_array_reference_num_3
154233       , l_array_reference_num_4
154234       , l_array_reference_char_1
154235       , l_array_reference_char_2
154236       , l_array_reference_char_3
154237       , l_array_reference_char_4
154238       , l_array_reference_date_1
154239       , l_array_reference_date_2
154240       , l_array_reference_date_3
154241       , l_array_reference_date_4
154242       , l_array_event_created_by
154243       , l_array_budgetary_control_flag
154244       , l_array_extract_line_num 
154245       , l_array_source_1
154246       , l_array_source_21
154247       , l_array_source_22
154248       , l_array_source_22_meaning
154249       , l_array_source_30
154250       , l_array_source_33
154251       , l_array_source_33_meaning
154252       , l_array_source_42
154253       , l_array_source_43
154254       , l_array_source_49
154255       , l_array_source_50
154256       , l_array_source_52
154257       , l_array_source_54
154258       , l_array_source_56
154259       , l_array_source_58
154260       , l_array_source_59
154261       , l_array_source_60
154262       , l_array_source_61
154263       , l_array_source_62
154264       , l_array_source_63
154265       , l_array_source_64
154266       , l_array_source_65
154267       , l_array_source_67
154268       , l_array_source_68
154269       , l_array_source_69
154270       , l_array_source_70
154271       , l_array_source_71
154272       , l_array_source_72
154273       , l_array_source_73
154274       , l_array_source_74
154275       , l_array_source_75
154276       , l_array_source_76
154277       , l_array_source_77
154278       , l_array_source_78
154279       , l_array_source_79
154280       , l_array_source_79_meaning
154281       , l_array_source_83
154282       , l_array_source_84
154283       , l_array_source_85
154284       , l_array_source_86
154285       , l_array_source_87
154286       , l_array_source_88
154287       , l_array_source_89
154288       , l_array_source_90
154289       , l_array_source_91
154293       , l_array_source_95
154290       , l_array_source_92
154291       , l_array_source_93
154292       , l_array_source_94
154294       , l_array_source_95_meaning
154295       , l_array_source_135
154296       , l_array_source_135_meaning
154297       , l_array_source_146
154298       , l_array_source_166
154299       , l_array_source_167
154300       LIMIT l_rows;
154301 
154302   --
154303   IF (C_LEVEL_EVENT >= g_log_level) THEN
154304             trace
154305                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
154306                ,p_level    => C_LEVEL_EVENT
154307                ,p_module   => l_log_module);
154308   END IF;
154309   --
154310   EXIT WHEN l_array_entity_id.count = 0;
154311 
154312   XLA_AE_LINES_PKG.g_rec_lines := null;
154313 
154314 --
154315 -- Bug 4458708
154316 --
154317 XLA_AE_LINES_PKG.g_LineNumber := 0;
154318 --
154319 --
154320 
154321 FOR Idx IN 1..l_array_event_id.count LOOP
154322    --
154323    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
154324    --
154325    l_event_id := l_array_event_id(idx);  -- 5648433
154326 
154327    --
154328    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
154329    --
154330 
154331    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
154332              (g_array_event(l_event_id).array_value_num('header_index'))
154333          ,'N'
154334          ) <> 'Y'
154335    THEN
154336       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154337          trace
154338             (p_msg      => 'Trancaction revesal option is not Y '
154339             ,p_level    => C_LEVEL_STATEMENT
154340             ,p_module   => l_log_module);
154341       END IF;
154342 
154343 --
154344 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
154345 --
154346 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
154347 --
154348 -- set event info as cache for other routines to refer event attributes
154349 --
154350 
154351 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
154352    l_previous_event_id := l_event_id;
154353 
154354    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
154355       (p_application_id           => p_application_id
154356       ,p_primary_ledger_id        => p_primary_ledger_id
154357       ,p_base_ledger_id           => p_base_ledger_id
154358       ,p_target_ledger_id         => p_target_ledger_id
154359       ,p_entity_id                => l_array_entity_id(Idx)
154360       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
154361       ,p_entity_code              => l_array_entity_code(Idx)
154362       ,p_transaction_num          => l_array_transaction_num(Idx)
154363       ,p_event_id                 => l_array_event_id(Idx)
154364       ,p_event_class_code         => l_array_class_code(Idx)
154365       ,p_event_type_code          => l_array_event_type(Idx)
154366       ,p_event_number             => l_array_event_number(Idx)
154367       ,p_event_date               => l_array_event_date(Idx)
154368       ,p_transaction_date         => l_array_transaction_date(Idx)
154369       ,p_reference_num_1          => l_array_reference_num_1(Idx)
154370       ,p_reference_num_2          => l_array_reference_num_2(Idx)
154371       ,p_reference_num_3          => l_array_reference_num_3(Idx)
154372       ,p_reference_num_4          => l_array_reference_num_4(Idx)
154373       ,p_reference_char_1         => l_array_reference_char_1(Idx)
154374       ,p_reference_char_2         => l_array_reference_char_2(Idx)
154375       ,p_reference_char_3         => l_array_reference_char_3(Idx)
154376       ,p_reference_char_4         => l_array_reference_char_4(Idx)
154377       ,p_reference_date_1         => l_array_reference_date_1(Idx)
154378       ,p_reference_date_2         => l_array_reference_date_2(Idx)
154379       ,p_reference_date_3         => l_array_reference_date_3(Idx)
154380       ,p_reference_date_4         => l_array_reference_date_4(Idx)
154381       ,p_event_created_by         => l_array_event_created_by(Idx)
154382       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
154383        --
154384 END IF;
154385 
154386 
154387 
154388 --
154389 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
154390 
154391 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
154392 
154393 IF l_continue_with_lines THEN
154394    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
154395       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
154396 
154397       xla_accounting_err_pkg.build_message
154398          (p_appli_s_name            => 'XLA'
154399          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
154400          ,p_token_1                 => 'LINE_NUMBER'
154401          ,p_value_1                 => l_array_extract_line_num(Idx)
154402          ,p_token_2                 => 'PRODUCT_NAME'
154403          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
154404          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
154405          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
154406          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
154407 
154408    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
154409       --
154410       -- following sets the accounting attributes needed to reverse
154411       -- accounting for a distributeion
154412       --
154413 
154414       --
154415       -- 5217187
154416       --
154417       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
154418       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
154419                                        g_array_event(l_event_id).array_value_num('header_index'));
154420       --
154421       --
154422 
154426       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_63(Idx);
154423       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
154424       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
154425       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
154427       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
154428       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
154429       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
154430       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_64(Idx);
154431       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
154432       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_65(Idx);
154433       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
154434       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_66');
154435       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
154436       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_67(Idx);
154437       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
154438       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_68(Idx);
154439       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
154440       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_69(Idx);
154441       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
154442       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_66');
154443       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
154444       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_70(Idx);
154445       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
154446       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_71(Idx);
154447       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
154448       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_82');
154449       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
154450       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_83(Idx);
154451       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
154452       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_54(Idx);
154453       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
154454       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_85(Idx);
154455       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
154456       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_86(Idx);
154457       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
154458       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_87(Idx);
154459       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
154460       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_88(Idx);
154461       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
154462       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_89(Idx);
154463 
154464 
154465       xla_ae_lines_pkg.SetAcctReversalAttrs
154466          (p_event_id             => l_event_id
154467          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
154468          ,p_calculate_acctd_flag => l_calculate_acctd_flag
154469          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
154470    END IF;
154471 
154472    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
154473        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
154474 
154475 --
154476 AcctLineType_48 (
154477  p_application_id  => p_application_id
154478  ,p_event_id     => l_event_id
154479  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154480  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154481  ,p_actual_flag => l_actual_flag
154482  ,p_balance_type_code => l_balance_type_code
154483  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154484  
154485  , p_source_1 => l_array_source_1(Idx)
154486  , p_source_21 => l_array_source_21(Idx)
154487  , p_source_30 => l_array_source_30(Idx)
154488  , p_source_33 => l_array_source_33(Idx)
154489  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154490  , p_source_52 => l_array_source_52(Idx)
154491  , p_source_54 => l_array_source_54(Idx)
154492  , p_source_56 => l_array_source_56(Idx)
154493  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154494  , p_source_58 => l_array_source_58(Idx)
154495  , p_source_59 => l_array_source_59(Idx)
154496  , p_source_60 => l_array_source_60(Idx)
154497  , p_source_61 => l_array_source_61(Idx)
154498  , p_source_62 => l_array_source_62(Idx)
154499  , p_source_63 => l_array_source_63(Idx)
154500  , p_source_64 => l_array_source_64(Idx)
154501  , p_source_65 => l_array_source_65(Idx)
154502  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154503  , p_source_67 => l_array_source_67(Idx)
154504  , p_source_68 => l_array_source_68(Idx)
154505  , p_source_69 => l_array_source_69(Idx)
154506  , p_source_70 => l_array_source_70(Idx)
154507  , p_source_71 => l_array_source_71(Idx)
154508  , p_source_72 => l_array_source_72(Idx)
154509  , p_source_73 => l_array_source_73(Idx)
154510  , p_source_74 => l_array_source_74(Idx)
154511  , p_source_75 => l_array_source_75(Idx)
154512  , p_source_76 => l_array_source_76(Idx)
154513  , p_source_77 => l_array_source_77(Idx)
154514  , p_source_78 => l_array_source_78(Idx)
154515  , p_source_79 => l_array_source_79(Idx)
154516  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154517  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154518  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154519  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154520  , p_source_83 => l_array_source_83(Idx)
154521  , p_source_84 => l_array_source_84(Idx)
154522  , p_source_85 => l_array_source_85(Idx)
154526  , p_source_89 => l_array_source_89(Idx)
154523  , p_source_86 => l_array_source_86(Idx)
154524  , p_source_87 => l_array_source_87(Idx)
154525  , p_source_88 => l_array_source_88(Idx)
154527  );
154528 If(l_balance_type_code = 'A') THEN
154529   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154530 END IF;
154531 
154532 --
154533 
154534 
154535 --
154536 AcctLineType_52 (
154537  p_application_id  => p_application_id
154538  ,p_event_id     => l_event_id
154539  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154540  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154541  ,p_actual_flag => l_actual_flag
154542  ,p_balance_type_code => l_balance_type_code
154543  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154544  
154545  , p_source_1 => l_array_source_1(Idx)
154546  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154547  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154548  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154549  , p_source_21 => l_array_source_21(Idx)
154550  , p_source_22 => l_array_source_22(Idx)
154551  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154552  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154553  , p_source_30 => l_array_source_30(Idx)
154554  , p_source_33 => l_array_source_33(Idx)
154555  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154556  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154557  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154558  , p_source_52 => l_array_source_52(Idx)
154559  , p_source_54 => l_array_source_54(Idx)
154560  , p_source_56 => l_array_source_56(Idx)
154561  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154562  , p_source_63 => l_array_source_63(Idx)
154563  , p_source_64 => l_array_source_64(Idx)
154564  , p_source_65 => l_array_source_65(Idx)
154565  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154566  , p_source_67 => l_array_source_67(Idx)
154567  , p_source_68 => l_array_source_68(Idx)
154568  , p_source_69 => l_array_source_69(Idx)
154569  , p_source_70 => l_array_source_70(Idx)
154570  , p_source_71 => l_array_source_71(Idx)
154571  , p_source_72 => l_array_source_72(Idx)
154572  , p_source_76 => l_array_source_76(Idx)
154573  , p_source_77 => l_array_source_77(Idx)
154574  , p_source_78 => l_array_source_78(Idx)
154575  , p_source_79 => l_array_source_79(Idx)
154576  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154577  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154578  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154579  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154580  , p_source_83 => l_array_source_83(Idx)
154581  , p_source_84 => l_array_source_84(Idx)
154582  , p_source_85 => l_array_source_85(Idx)
154583  , p_source_86 => l_array_source_86(Idx)
154584  , p_source_87 => l_array_source_87(Idx)
154585  , p_source_88 => l_array_source_88(Idx)
154586  , p_source_89 => l_array_source_89(Idx)
154587  , p_source_90 => l_array_source_90(Idx)
154588  , p_source_91 => l_array_source_91(Idx)
154589  , p_source_92 => l_array_source_92(Idx)
154590  , p_source_93 => l_array_source_93(Idx)
154591  , p_source_94 => l_array_source_94(Idx)
154592  );
154593 If(l_balance_type_code = 'A') THEN
154594   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154595 END IF;
154596 
154597 --
154598 
154599 
154600 --
154601 AcctLineType_56 (
154602  p_application_id  => p_application_id
154603  ,p_event_id     => l_event_id
154604  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154605  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154606  ,p_actual_flag => l_actual_flag
154607  ,p_balance_type_code => l_balance_type_code
154608  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154609  
154610  , p_source_1 => l_array_source_1(Idx)
154611  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154612  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154613  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154614  , p_source_21 => l_array_source_21(Idx)
154615  , p_source_22 => l_array_source_22(Idx)
154616  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154617  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154618  , p_source_30 => l_array_source_30(Idx)
154619  , p_source_33 => l_array_source_33(Idx)
154620  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154621  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154622  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154623  , p_source_52 => l_array_source_52(Idx)
154624  , p_source_54 => l_array_source_54(Idx)
154625  , p_source_56 => l_array_source_56(Idx)
154626  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154627  , p_source_63 => l_array_source_63(Idx)
154628  , p_source_64 => l_array_source_64(Idx)
154629  , p_source_65 => l_array_source_65(Idx)
154630  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154631  , p_source_67 => l_array_source_67(Idx)
154632  , p_source_68 => l_array_source_68(Idx)
154633  , p_source_69 => l_array_source_69(Idx)
154634  , p_source_70 => l_array_source_70(Idx)
154635  , p_source_71 => l_array_source_71(Idx)
154636  , p_source_72 => l_array_source_72(Idx)
154637  , p_source_76 => l_array_source_76(Idx)
154638  , p_source_77 => l_array_source_77(Idx)
154639  , p_source_78 => l_array_source_78(Idx)
154640  , p_source_79 => l_array_source_79(Idx)
154641  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154642  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154643  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154644  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154645  , p_source_83 => l_array_source_83(Idx)
154646  , p_source_84 => l_array_source_84(Idx)
154650  , p_source_88 => l_array_source_88(Idx)
154647  , p_source_85 => l_array_source_85(Idx)
154648  , p_source_86 => l_array_source_86(Idx)
154649  , p_source_87 => l_array_source_87(Idx)
154651  , p_source_89 => l_array_source_89(Idx)
154652  , p_source_90 => l_array_source_90(Idx)
154653  , p_source_91 => l_array_source_91(Idx)
154654  , p_source_92 => l_array_source_92(Idx)
154655  , p_source_93 => l_array_source_93(Idx)
154656  , p_source_94 => l_array_source_94(Idx)
154657  , p_source_95 => l_array_source_95(Idx)
154658  , p_source_95_meaning => l_array_source_95_meaning(Idx)
154659  );
154660 If(l_balance_type_code = 'A') THEN
154661   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154662 END IF;
154663 
154664 --
154665 
154666 
154667 --
154668 AcctLineType_107 (
154669  p_application_id  => p_application_id
154670  ,p_event_id     => l_event_id
154671  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154672  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154673  ,p_actual_flag => l_actual_flag
154674  ,p_balance_type_code => l_balance_type_code
154675  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154676  
154677  , p_source_1 => l_array_source_1(Idx)
154678  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154679  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154680  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154681  , p_source_21 => l_array_source_21(Idx)
154682  , p_source_22 => l_array_source_22(Idx)
154683  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154684  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154685  , p_source_30 => l_array_source_30(Idx)
154686  , p_source_33 => l_array_source_33(Idx)
154687  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154688  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154689  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154690  , p_source_52 => l_array_source_52(Idx)
154691  , p_source_54 => l_array_source_54(Idx)
154692  , p_source_56 => l_array_source_56(Idx)
154693  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154694  , p_source_63 => l_array_source_63(Idx)
154695  , p_source_64 => l_array_source_64(Idx)
154696  , p_source_65 => l_array_source_65(Idx)
154697  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154698  , p_source_67 => l_array_source_67(Idx)
154699  , p_source_68 => l_array_source_68(Idx)
154700  , p_source_69 => l_array_source_69(Idx)
154701  , p_source_70 => l_array_source_70(Idx)
154702  , p_source_71 => l_array_source_71(Idx)
154703  , p_source_72 => l_array_source_72(Idx)
154704  , p_source_76 => l_array_source_76(Idx)
154705  , p_source_77 => l_array_source_77(Idx)
154706  , p_source_78 => l_array_source_78(Idx)
154707  , p_source_79 => l_array_source_79(Idx)
154708  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154709  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154710  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154711  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154712  , p_source_83 => l_array_source_83(Idx)
154713  , p_source_84 => l_array_source_84(Idx)
154714  , p_source_85 => l_array_source_85(Idx)
154715  , p_source_86 => l_array_source_86(Idx)
154716  , p_source_87 => l_array_source_87(Idx)
154717  , p_source_88 => l_array_source_88(Idx)
154718  , p_source_89 => l_array_source_89(Idx)
154719  , p_source_90 => l_array_source_90(Idx)
154720  , p_source_91 => l_array_source_91(Idx)
154721  , p_source_92 => l_array_source_92(Idx)
154722  , p_source_93 => l_array_source_93(Idx)
154723  , p_source_94 => l_array_source_94(Idx)
154724  , p_source_95 => l_array_source_95(Idx)
154725  , p_source_95_meaning => l_array_source_95_meaning(Idx)
154726  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
154727  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
154728  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
154729  );
154730 If(l_balance_type_code = 'A') THEN
154731   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154732 END IF;
154733 
154734 --
154735 
154736 
154737 --
154738 AcctLineType_116 (
154739  p_application_id  => p_application_id
154740  ,p_event_id     => l_event_id
154741  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154742  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154743  ,p_actual_flag => l_actual_flag
154744  ,p_balance_type_code => l_balance_type_code
154745  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154746  
154747  , p_source_1 => l_array_source_1(Idx)
154748  , p_source_21 => l_array_source_21(Idx)
154749  , p_source_30 => l_array_source_30(Idx)
154750  , p_source_33 => l_array_source_33(Idx)
154751  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154752  , p_source_52 => l_array_source_52(Idx)
154753  , p_source_54 => l_array_source_54(Idx)
154754  , p_source_56 => l_array_source_56(Idx)
154755  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154756  , p_source_63 => l_array_source_63(Idx)
154757  , p_source_64 => l_array_source_64(Idx)
154758  , p_source_65 => l_array_source_65(Idx)
154759  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154760  , p_source_67 => l_array_source_67(Idx)
154761  , p_source_68 => l_array_source_68(Idx)
154762  , p_source_69 => l_array_source_69(Idx)
154763  , p_source_70 => l_array_source_70(Idx)
154764  , p_source_71 => l_array_source_71(Idx)
154765  , p_source_72 => l_array_source_72(Idx)
154766  , p_source_76 => l_array_source_76(Idx)
154767  , p_source_77 => l_array_source_77(Idx)
154768  , p_source_78 => l_array_source_78(Idx)
154769  , p_source_79 => l_array_source_79(Idx)
154770  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154771  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154772  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154776  , p_source_85 => l_array_source_85(Idx)
154773  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154774  , p_source_83 => l_array_source_83(Idx)
154775  , p_source_84 => l_array_source_84(Idx)
154777  , p_source_86 => l_array_source_86(Idx)
154778  , p_source_87 => l_array_source_87(Idx)
154779  , p_source_88 => l_array_source_88(Idx)
154780  , p_source_89 => l_array_source_89(Idx)
154781  , p_source_90 => l_array_source_90(Idx)
154782  , p_source_91 => l_array_source_91(Idx)
154783  , p_source_92 => l_array_source_92(Idx)
154784  , p_source_93 => l_array_source_93(Idx)
154785  , p_source_94 => l_array_source_94(Idx)
154786  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
154787  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
154788  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
154789  , p_source_146 => l_array_source_146(Idx)
154790  );
154791 If(l_balance_type_code = 'A') THEN
154792   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154793 END IF;
154794 
154795 --
154796 
154797 
154798 --
154799 AcctLineType_138 (
154800  p_application_id  => p_application_id
154801  ,p_event_id     => l_event_id
154802  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154803  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154804  ,p_actual_flag => l_actual_flag
154805  ,p_balance_type_code => l_balance_type_code
154806  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154807  
154808  , p_source_1 => l_array_source_1(Idx)
154809  , p_source_21 => l_array_source_21(Idx)
154810  , p_source_30 => l_array_source_30(Idx)
154811  , p_source_33 => l_array_source_33(Idx)
154812  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154813  , p_source_52 => l_array_source_52(Idx)
154814  , p_source_54 => l_array_source_54(Idx)
154815  , p_source_56 => l_array_source_56(Idx)
154816  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154817  , p_source_63 => l_array_source_63(Idx)
154818  , p_source_64 => l_array_source_64(Idx)
154819  , p_source_65 => l_array_source_65(Idx)
154820  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154821  , p_source_67 => l_array_source_67(Idx)
154822  , p_source_68 => l_array_source_68(Idx)
154823  , p_source_69 => l_array_source_69(Idx)
154824  , p_source_70 => l_array_source_70(Idx)
154825  , p_source_71 => l_array_source_71(Idx)
154826  , p_source_72 => l_array_source_72(Idx)
154827  , p_source_76 => l_array_source_76(Idx)
154828  , p_source_77 => l_array_source_77(Idx)
154829  , p_source_78 => l_array_source_78(Idx)
154830  , p_source_79 => l_array_source_79(Idx)
154831  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154832  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154833  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154834  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154835  , p_source_83 => l_array_source_83(Idx)
154836  , p_source_84 => l_array_source_84(Idx)
154837  , p_source_85 => l_array_source_85(Idx)
154838  , p_source_86 => l_array_source_86(Idx)
154839  , p_source_87 => l_array_source_87(Idx)
154840  , p_source_88 => l_array_source_88(Idx)
154841  , p_source_89 => l_array_source_89(Idx)
154842  , p_source_90 => l_array_source_90(Idx)
154843  , p_source_91 => l_array_source_91(Idx)
154844  , p_source_92 => l_array_source_92(Idx)
154845  , p_source_93 => l_array_source_93(Idx)
154846  , p_source_94 => l_array_source_94(Idx)
154847  , p_source_95 => l_array_source_95(Idx)
154848  , p_source_95_meaning => l_array_source_95_meaning(Idx)
154849  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
154850  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
154851  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
154852  );
154853 If(l_balance_type_code = 'A') THEN
154854   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154855 END IF;
154856 
154857 --
154858 
154859 
154860 --
154861 AcctLineType_142 (
154862  p_application_id  => p_application_id
154863  ,p_event_id     => l_event_id
154864  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154865  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154866  ,p_actual_flag => l_actual_flag
154867  ,p_balance_type_code => l_balance_type_code
154868  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154869  
154870  , p_source_1 => l_array_source_1(Idx)
154871  , p_source_21 => l_array_source_21(Idx)
154872  , p_source_30 => l_array_source_30(Idx)
154873  , p_source_33 => l_array_source_33(Idx)
154874  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154875  , p_source_52 => l_array_source_52(Idx)
154876  , p_source_54 => l_array_source_54(Idx)
154877  , p_source_56 => l_array_source_56(Idx)
154878  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154879  , p_source_63 => l_array_source_63(Idx)
154880  , p_source_64 => l_array_source_64(Idx)
154881  , p_source_65 => l_array_source_65(Idx)
154882  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154883  , p_source_67 => l_array_source_67(Idx)
154884  , p_source_68 => l_array_source_68(Idx)
154885  , p_source_69 => l_array_source_69(Idx)
154886  , p_source_70 => l_array_source_70(Idx)
154887  , p_source_71 => l_array_source_71(Idx)
154888  , p_source_72 => l_array_source_72(Idx)
154889  , p_source_76 => l_array_source_76(Idx)
154890  , p_source_77 => l_array_source_77(Idx)
154891  , p_source_78 => l_array_source_78(Idx)
154892  , p_source_79 => l_array_source_79(Idx)
154893  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154894  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154895  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154896  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154897  , p_source_83 => l_array_source_83(Idx)
154898  , p_source_84 => l_array_source_84(Idx)
154899  , p_source_85 => l_array_source_85(Idx)
154900  , p_source_86 => l_array_source_86(Idx)
154904  , p_source_90 => l_array_source_90(Idx)
154901  , p_source_87 => l_array_source_87(Idx)
154902  , p_source_88 => l_array_source_88(Idx)
154903  , p_source_89 => l_array_source_89(Idx)
154905  , p_source_91 => l_array_source_91(Idx)
154906  , p_source_92 => l_array_source_92(Idx)
154907  , p_source_93 => l_array_source_93(Idx)
154908  , p_source_94 => l_array_source_94(Idx)
154909  , p_source_95 => l_array_source_95(Idx)
154910  , p_source_95_meaning => l_array_source_95_meaning(Idx)
154911  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
154912  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
154913  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
154914  , p_source_146 => l_array_source_146(Idx)
154915  );
154916 If(l_balance_type_code = 'A') THEN
154917   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154918 END IF;
154919 
154920 --
154921 
154922 
154923 --
154924 AcctLineType_152 (
154925  p_application_id  => p_application_id
154926  ,p_event_id     => l_event_id
154927  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154928  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154929  ,p_actual_flag => l_actual_flag
154930  ,p_balance_type_code => l_balance_type_code
154931  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154932  
154933  , p_source_1 => l_array_source_1(Idx)
154934  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154935  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154936  , p_source_21 => l_array_source_21(Idx)
154937  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
154938  , p_source_52 => l_array_source_52(Idx)
154939  , p_source_54 => l_array_source_54(Idx)
154940  , p_source_56 => l_array_source_56(Idx)
154941  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
154942  , p_source_63 => l_array_source_63(Idx)
154943  , p_source_64 => l_array_source_64(Idx)
154944  , p_source_65 => l_array_source_65(Idx)
154945  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
154946  , p_source_67 => l_array_source_67(Idx)
154947  , p_source_68 => l_array_source_68(Idx)
154948  , p_source_69 => l_array_source_69(Idx)
154949  , p_source_70 => l_array_source_70(Idx)
154950  , p_source_71 => l_array_source_71(Idx)
154951  , p_source_72 => l_array_source_72(Idx)
154952  , p_source_76 => l_array_source_76(Idx)
154953  , p_source_77 => l_array_source_77(Idx)
154954  , p_source_78 => l_array_source_78(Idx)
154955  , p_source_79 => l_array_source_79(Idx)
154956  , p_source_79_meaning => l_array_source_79_meaning(Idx)
154957  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
154958  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154959  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
154960  , p_source_83 => l_array_source_83(Idx)
154961  , p_source_84 => l_array_source_84(Idx)
154962  , p_source_85 => l_array_source_85(Idx)
154963  , p_source_86 => l_array_source_86(Idx)
154964  , p_source_87 => l_array_source_87(Idx)
154965  , p_source_88 => l_array_source_88(Idx)
154966  , p_source_89 => l_array_source_89(Idx)
154967  , p_source_90 => l_array_source_90(Idx)
154968  , p_source_91 => l_array_source_91(Idx)
154969  , p_source_92 => l_array_source_92(Idx)
154970  , p_source_93 => l_array_source_93(Idx)
154971  , p_source_94 => l_array_source_94(Idx)
154972  , p_source_135 => l_array_source_135(Idx)
154973  , p_source_135_meaning => l_array_source_135_meaning(Idx)
154974  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
154975  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
154976  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
154977  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
154978  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
154979  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
154980  );
154981 If(l_balance_type_code = 'A') THEN
154982   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154983 END IF;
154984 
154985 --
154986 
154987 
154988 --
154989 AcctLineType_153 (
154990  p_application_id  => p_application_id
154991  ,p_event_id     => l_event_id
154992  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154993  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154994  ,p_actual_flag => l_actual_flag
154995  ,p_balance_type_code => l_balance_type_code
154996  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154997  
154998  , p_source_1 => l_array_source_1(Idx)
154999  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155000  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155001  , p_source_21 => l_array_source_21(Idx)
155002  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
155003  , p_source_52 => l_array_source_52(Idx)
155004  , p_source_54 => l_array_source_54(Idx)
155005  , p_source_56 => l_array_source_56(Idx)
155006  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155007  , p_source_63 => l_array_source_63(Idx)
155008  , p_source_64 => l_array_source_64(Idx)
155009  , p_source_65 => l_array_source_65(Idx)
155010  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155011  , p_source_67 => l_array_source_67(Idx)
155012  , p_source_68 => l_array_source_68(Idx)
155013  , p_source_69 => l_array_source_69(Idx)
155014  , p_source_70 => l_array_source_70(Idx)
155015  , p_source_71 => l_array_source_71(Idx)
155016  , p_source_72 => l_array_source_72(Idx)
155017  , p_source_76 => l_array_source_76(Idx)
155018  , p_source_77 => l_array_source_77(Idx)
155019  , p_source_78 => l_array_source_78(Idx)
155020  , p_source_79 => l_array_source_79(Idx)
155021  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155022  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155023  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155027  , p_source_85 => l_array_source_85(Idx)
155024  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155025  , p_source_83 => l_array_source_83(Idx)
155026  , p_source_84 => l_array_source_84(Idx)
155028  , p_source_86 => l_array_source_86(Idx)
155029  , p_source_87 => l_array_source_87(Idx)
155030  , p_source_88 => l_array_source_88(Idx)
155031  , p_source_89 => l_array_source_89(Idx)
155032  , p_source_90 => l_array_source_90(Idx)
155033  , p_source_91 => l_array_source_91(Idx)
155034  , p_source_92 => l_array_source_92(Idx)
155035  , p_source_93 => l_array_source_93(Idx)
155036  , p_source_94 => l_array_source_94(Idx)
155037  , p_source_135 => l_array_source_135(Idx)
155038  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155039  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155040  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155041  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155042  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
155043  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
155044  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
155045  );
155046 If(l_balance_type_code = 'A') THEN
155047   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155048 END IF;
155049 
155050 --
155051 
155052 
155053 --
155054 AcctLineType_154 (
155055  p_application_id  => p_application_id
155056  ,p_event_id     => l_event_id
155057  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155058  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155059  ,p_actual_flag => l_actual_flag
155060  ,p_balance_type_code => l_balance_type_code
155061  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155062  
155063  , p_source_1 => l_array_source_1(Idx)
155064  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155065  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155066  , p_source_21 => l_array_source_21(Idx)
155067  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
155068  , p_source_52 => l_array_source_52(Idx)
155069  , p_source_54 => l_array_source_54(Idx)
155070  , p_source_56 => l_array_source_56(Idx)
155071  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155072  , p_source_63 => l_array_source_63(Idx)
155073  , p_source_64 => l_array_source_64(Idx)
155074  , p_source_65 => l_array_source_65(Idx)
155075  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155076  , p_source_67 => l_array_source_67(Idx)
155077  , p_source_68 => l_array_source_68(Idx)
155078  , p_source_69 => l_array_source_69(Idx)
155079  , p_source_70 => l_array_source_70(Idx)
155080  , p_source_71 => l_array_source_71(Idx)
155081  , p_source_72 => l_array_source_72(Idx)
155082  , p_source_76 => l_array_source_76(Idx)
155083  , p_source_77 => l_array_source_77(Idx)
155084  , p_source_78 => l_array_source_78(Idx)
155085  , p_source_79 => l_array_source_79(Idx)
155086  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155087  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155088  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155089  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155090  , p_source_83 => l_array_source_83(Idx)
155091  , p_source_84 => l_array_source_84(Idx)
155092  , p_source_85 => l_array_source_85(Idx)
155093  , p_source_86 => l_array_source_86(Idx)
155094  , p_source_87 => l_array_source_87(Idx)
155095  , p_source_88 => l_array_source_88(Idx)
155096  , p_source_89 => l_array_source_89(Idx)
155097  , p_source_90 => l_array_source_90(Idx)
155098  , p_source_91 => l_array_source_91(Idx)
155099  , p_source_92 => l_array_source_92(Idx)
155100  , p_source_93 => l_array_source_93(Idx)
155101  , p_source_94 => l_array_source_94(Idx)
155102  , p_source_135 => l_array_source_135(Idx)
155103  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155104  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155105  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155106  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155107  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
155108  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
155109  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
155110  );
155111 If(l_balance_type_code = 'A') THEN
155112   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155113 END IF;
155114 
155115 --
155116 
155117 
155118 --
155119 AcctLineType_170 (
155120  p_application_id  => p_application_id
155121  ,p_event_id     => l_event_id
155122  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155123  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155124  ,p_actual_flag => l_actual_flag
155125  ,p_balance_type_code => l_balance_type_code
155126  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155127  
155128  , p_source_1 => l_array_source_1(Idx)
155129  , p_source_21 => l_array_source_21(Idx)
155130  , p_source_30 => l_array_source_30(Idx)
155131  , p_source_33 => l_array_source_33(Idx)
155132  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155133  , p_source_52 => l_array_source_52(Idx)
155134  , p_source_54 => l_array_source_54(Idx)
155135  , p_source_56 => l_array_source_56(Idx)
155136  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155137  , p_source_63 => l_array_source_63(Idx)
155138  , p_source_64 => l_array_source_64(Idx)
155139  , p_source_65 => l_array_source_65(Idx)
155140  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155141  , p_source_67 => l_array_source_67(Idx)
155142  , p_source_68 => l_array_source_68(Idx)
155143  , p_source_69 => l_array_source_69(Idx)
155144  , p_source_70 => l_array_source_70(Idx)
155145  , p_source_71 => l_array_source_71(Idx)
155146  , p_source_72 => l_array_source_72(Idx)
155150  , p_source_79 => l_array_source_79(Idx)
155147  , p_source_76 => l_array_source_76(Idx)
155148  , p_source_77 => l_array_source_77(Idx)
155149  , p_source_78 => l_array_source_78(Idx)
155151  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155152  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155153  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155154  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155155  , p_source_83 => l_array_source_83(Idx)
155156  , p_source_84 => l_array_source_84(Idx)
155157  , p_source_85 => l_array_source_85(Idx)
155158  , p_source_86 => l_array_source_86(Idx)
155159  , p_source_87 => l_array_source_87(Idx)
155160  , p_source_88 => l_array_source_88(Idx)
155161  , p_source_89 => l_array_source_89(Idx)
155162  , p_source_90 => l_array_source_90(Idx)
155163  , p_source_91 => l_array_source_91(Idx)
155164  , p_source_92 => l_array_source_92(Idx)
155165  , p_source_93 => l_array_source_93(Idx)
155166  , p_source_94 => l_array_source_94(Idx)
155167  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155168  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155169  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155170  , p_source_146 => l_array_source_146(Idx)
155171  );
155172 If(l_balance_type_code = 'A') THEN
155173   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155174 END IF;
155175 
155176 --
155177 
155178 
155179 --
155180 AcctLineType_174 (
155181  p_application_id  => p_application_id
155182  ,p_event_id     => l_event_id
155183  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155184  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155185  ,p_actual_flag => l_actual_flag
155186  ,p_balance_type_code => l_balance_type_code
155187  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155188  
155189  , p_source_1 => l_array_source_1(Idx)
155190  , p_source_21 => l_array_source_21(Idx)
155191  , p_source_30 => l_array_source_30(Idx)
155192  , p_source_33 => l_array_source_33(Idx)
155193  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155194  , p_source_52 => l_array_source_52(Idx)
155195  , p_source_54 => l_array_source_54(Idx)
155196  , p_source_56 => l_array_source_56(Idx)
155197  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155198  , p_source_63 => l_array_source_63(Idx)
155199  , p_source_64 => l_array_source_64(Idx)
155200  , p_source_65 => l_array_source_65(Idx)
155201  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155202  , p_source_67 => l_array_source_67(Idx)
155203  , p_source_68 => l_array_source_68(Idx)
155204  , p_source_69 => l_array_source_69(Idx)
155205  , p_source_70 => l_array_source_70(Idx)
155206  , p_source_71 => l_array_source_71(Idx)
155207  , p_source_72 => l_array_source_72(Idx)
155208  , p_source_73 => l_array_source_73(Idx)
155209  , p_source_74 => l_array_source_74(Idx)
155210  , p_source_75 => l_array_source_75(Idx)
155211  , p_source_76 => l_array_source_76(Idx)
155212  , p_source_77 => l_array_source_77(Idx)
155213  , p_source_78 => l_array_source_78(Idx)
155214  , p_source_79 => l_array_source_79(Idx)
155215  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155216  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155217  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155218  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155219  , p_source_83 => l_array_source_83(Idx)
155220  , p_source_84 => l_array_source_84(Idx)
155221  , p_source_85 => l_array_source_85(Idx)
155222  , p_source_86 => l_array_source_86(Idx)
155223  , p_source_87 => l_array_source_87(Idx)
155224  , p_source_88 => l_array_source_88(Idx)
155225  , p_source_89 => l_array_source_89(Idx)
155226  , p_source_90 => l_array_source_90(Idx)
155227  , p_source_91 => l_array_source_91(Idx)
155228  , p_source_92 => l_array_source_92(Idx)
155229  , p_source_93 => l_array_source_93(Idx)
155230  , p_source_94 => l_array_source_94(Idx)
155231  , p_source_95 => l_array_source_95(Idx)
155232  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155233  , p_source_135 => l_array_source_135(Idx)
155234  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155235  );
155236 If(l_balance_type_code = 'A') THEN
155237   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155238 END IF;
155239 
155240 --
155241 
155242 
155243 --
155244 AcctLineType_177 (
155245  p_application_id  => p_application_id
155246  ,p_event_id     => l_event_id
155247  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155248  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155249  ,p_actual_flag => l_actual_flag
155250  ,p_balance_type_code => l_balance_type_code
155251  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155252  
155253  , p_source_1 => l_array_source_1(Idx)
155254  , p_source_21 => l_array_source_21(Idx)
155255  , p_source_30 => l_array_source_30(Idx)
155256  , p_source_33 => l_array_source_33(Idx)
155257  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155258  , p_source_52 => l_array_source_52(Idx)
155259  , p_source_54 => l_array_source_54(Idx)
155260  , p_source_56 => l_array_source_56(Idx)
155261  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155262  , p_source_63 => l_array_source_63(Idx)
155263  , p_source_64 => l_array_source_64(Idx)
155264  , p_source_65 => l_array_source_65(Idx)
155265  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155266  , p_source_67 => l_array_source_67(Idx)
155267  , p_source_68 => l_array_source_68(Idx)
155268  , p_source_69 => l_array_source_69(Idx)
155269  , p_source_70 => l_array_source_70(Idx)
155270  , p_source_71 => l_array_source_71(Idx)
155271  , p_source_72 => l_array_source_72(Idx)
155272  , p_source_76 => l_array_source_76(Idx)
155273  , p_source_77 => l_array_source_77(Idx)
155274  , p_source_78 => l_array_source_78(Idx)
155275  , p_source_79 => l_array_source_79(Idx)
155279  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155276  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155277  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155278  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155280  , p_source_83 => l_array_source_83(Idx)
155281  , p_source_84 => l_array_source_84(Idx)
155282  , p_source_85 => l_array_source_85(Idx)
155283  , p_source_86 => l_array_source_86(Idx)
155284  , p_source_87 => l_array_source_87(Idx)
155285  , p_source_88 => l_array_source_88(Idx)
155286  , p_source_89 => l_array_source_89(Idx)
155287  , p_source_90 => l_array_source_90(Idx)
155288  , p_source_91 => l_array_source_91(Idx)
155289  , p_source_92 => l_array_source_92(Idx)
155290  , p_source_93 => l_array_source_93(Idx)
155291  , p_source_94 => l_array_source_94(Idx)
155292  , p_source_95 => l_array_source_95(Idx)
155293  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155294  , p_source_135 => l_array_source_135(Idx)
155295  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155296  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155297  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155298  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155299  );
155300 If(l_balance_type_code = 'A') THEN
155301   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155302 END IF;
155303 
155304 --
155305 
155306 
155307 --
155308 AcctLineType_185 (
155309  p_application_id  => p_application_id
155310  ,p_event_id     => l_event_id
155311  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155312  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155313  ,p_actual_flag => l_actual_flag
155314  ,p_balance_type_code => l_balance_type_code
155315  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155316  
155317  , p_source_1 => l_array_source_1(Idx)
155318  , p_source_21 => l_array_source_21(Idx)
155319  , p_source_30 => l_array_source_30(Idx)
155320  , p_source_33 => l_array_source_33(Idx)
155321  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155322  , p_source_52 => l_array_source_52(Idx)
155323  , p_source_54 => l_array_source_54(Idx)
155324  , p_source_56 => l_array_source_56(Idx)
155325  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155326  , p_source_63 => l_array_source_63(Idx)
155327  , p_source_64 => l_array_source_64(Idx)
155328  , p_source_65 => l_array_source_65(Idx)
155329  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155330  , p_source_67 => l_array_source_67(Idx)
155331  , p_source_68 => l_array_source_68(Idx)
155332  , p_source_69 => l_array_source_69(Idx)
155333  , p_source_70 => l_array_source_70(Idx)
155334  , p_source_71 => l_array_source_71(Idx)
155335  , p_source_72 => l_array_source_72(Idx)
155336  , p_source_76 => l_array_source_76(Idx)
155337  , p_source_77 => l_array_source_77(Idx)
155338  , p_source_78 => l_array_source_78(Idx)
155339  , p_source_79 => l_array_source_79(Idx)
155340  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155341  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155342  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155343  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155344  , p_source_83 => l_array_source_83(Idx)
155345  , p_source_84 => l_array_source_84(Idx)
155346  , p_source_85 => l_array_source_85(Idx)
155347  , p_source_86 => l_array_source_86(Idx)
155348  , p_source_87 => l_array_source_87(Idx)
155349  , p_source_88 => l_array_source_88(Idx)
155350  , p_source_89 => l_array_source_89(Idx)
155351  , p_source_90 => l_array_source_90(Idx)
155352  , p_source_91 => l_array_source_91(Idx)
155353  , p_source_92 => l_array_source_92(Idx)
155354  , p_source_93 => l_array_source_93(Idx)
155355  , p_source_94 => l_array_source_94(Idx)
155356  , p_source_135 => l_array_source_135(Idx)
155357  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155358  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155359  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155360  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155361  );
155362 If(l_balance_type_code = 'A') THEN
155363   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155364 END IF;
155365 
155366 --
155367 
155368 
155369 --
155370 AcctLineType_187 (
155371  p_application_id  => p_application_id
155372  ,p_event_id     => l_event_id
155373  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155374  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155375  ,p_actual_flag => l_actual_flag
155376  ,p_balance_type_code => l_balance_type_code
155377  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155378  
155379  , p_source_1 => l_array_source_1(Idx)
155380  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155381  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155382  , p_source_21 => l_array_source_21(Idx)
155383  , p_source_30 => l_array_source_30(Idx)
155384  , p_source_33 => l_array_source_33(Idx)
155385  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155386  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
155387  , p_source_42 => l_array_source_42(Idx)
155388  , p_source_52 => l_array_source_52(Idx)
155389  , p_source_54 => l_array_source_54(Idx)
155390  , p_source_56 => l_array_source_56(Idx)
155391  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155392  , p_source_63 => l_array_source_63(Idx)
155393  , p_source_64 => l_array_source_64(Idx)
155394  , p_source_65 => l_array_source_65(Idx)
155395  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155396  , p_source_67 => l_array_source_67(Idx)
155397  , p_source_68 => l_array_source_68(Idx)
155398  , p_source_69 => l_array_source_69(Idx)
155399  , p_source_70 => l_array_source_70(Idx)
155400  , p_source_71 => l_array_source_71(Idx)
155401  , p_source_72 => l_array_source_72(Idx)
155405  , p_source_79 => l_array_source_79(Idx)
155402  , p_source_76 => l_array_source_76(Idx)
155403  , p_source_77 => l_array_source_77(Idx)
155404  , p_source_78 => l_array_source_78(Idx)
155406  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155407  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155408  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155409  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155410  , p_source_83 => l_array_source_83(Idx)
155411  , p_source_84 => l_array_source_84(Idx)
155412  , p_source_85 => l_array_source_85(Idx)
155413  , p_source_86 => l_array_source_86(Idx)
155414  , p_source_87 => l_array_source_87(Idx)
155415  , p_source_88 => l_array_source_88(Idx)
155416  , p_source_89 => l_array_source_89(Idx)
155417  , p_source_90 => l_array_source_90(Idx)
155418  , p_source_91 => l_array_source_91(Idx)
155419  , p_source_92 => l_array_source_92(Idx)
155420  , p_source_93 => l_array_source_93(Idx)
155421  , p_source_94 => l_array_source_94(Idx)
155422  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155423  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155424  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155425  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
155426  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
155427  );
155428 If(l_balance_type_code = 'A') THEN
155429   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155430 END IF;
155431 
155432 --
155433 
155434 
155435 --
155436 AcctLineType_190 (
155437  p_application_id  => p_application_id
155438  ,p_event_id     => l_event_id
155439  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155440  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155441  ,p_actual_flag => l_actual_flag
155442  ,p_balance_type_code => l_balance_type_code
155443  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155444  
155445  , p_source_1 => l_array_source_1(Idx)
155446  , p_source_21 => l_array_source_21(Idx)
155447  , p_source_33 => l_array_source_33(Idx)
155448  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155449  , p_source_52 => l_array_source_52(Idx)
155450  , p_source_54 => l_array_source_54(Idx)
155451  , p_source_56 => l_array_source_56(Idx)
155452  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155453  , p_source_63 => l_array_source_63(Idx)
155454  , p_source_64 => l_array_source_64(Idx)
155455  , p_source_65 => l_array_source_65(Idx)
155456  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155457  , p_source_67 => l_array_source_67(Idx)
155458  , p_source_68 => l_array_source_68(Idx)
155459  , p_source_69 => l_array_source_69(Idx)
155460  , p_source_70 => l_array_source_70(Idx)
155461  , p_source_71 => l_array_source_71(Idx)
155462  , p_source_72 => l_array_source_72(Idx)
155463  , p_source_76 => l_array_source_76(Idx)
155464  , p_source_77 => l_array_source_77(Idx)
155465  , p_source_78 => l_array_source_78(Idx)
155466  , p_source_79 => l_array_source_79(Idx)
155467  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155468  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155469  , p_source_83 => l_array_source_83(Idx)
155470  , p_source_84 => l_array_source_84(Idx)
155471  , p_source_85 => l_array_source_85(Idx)
155472  , p_source_86 => l_array_source_86(Idx)
155473  , p_source_87 => l_array_source_87(Idx)
155474  , p_source_88 => l_array_source_88(Idx)
155475  , p_source_89 => l_array_source_89(Idx)
155476  , p_source_90 => l_array_source_90(Idx)
155477  , p_source_91 => l_array_source_91(Idx)
155478  , p_source_92 => l_array_source_92(Idx)
155479  , p_source_164 => g_array_event(l_event_id).array_value_char('source_164')
155480  , p_source_164_meaning => g_array_event(l_event_id).array_value_char('source_164_meaning')
155481  , p_source_166 => l_array_source_166(Idx)
155482  , p_source_167 => l_array_source_167(Idx)
155483  );
155484 If(l_balance_type_code = 'A') THEN
155485   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155486 END IF;
155487 
155488 --
155489 
155490 
155491 --
155492 AcctLineType_194 (
155493  p_application_id  => p_application_id
155494  ,p_event_id     => l_event_id
155495  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155496  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155497  ,p_actual_flag => l_actual_flag
155498  ,p_balance_type_code => l_balance_type_code
155499  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155500  
155501  , p_source_1 => l_array_source_1(Idx)
155502  , p_source_21 => l_array_source_21(Idx)
155503  , p_source_33 => l_array_source_33(Idx)
155504  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155505  , p_source_49 => l_array_source_49(Idx)
155506  , p_source_52 => l_array_source_52(Idx)
155507  , p_source_54 => l_array_source_54(Idx)
155508  , p_source_56 => l_array_source_56(Idx)
155509  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155510  , p_source_63 => l_array_source_63(Idx)
155511  , p_source_64 => l_array_source_64(Idx)
155512  , p_source_65 => l_array_source_65(Idx)
155513  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155514  , p_source_67 => l_array_source_67(Idx)
155515  , p_source_68 => l_array_source_68(Idx)
155516  , p_source_69 => l_array_source_69(Idx)
155517  , p_source_70 => l_array_source_70(Idx)
155518  , p_source_71 => l_array_source_71(Idx)
155519  , p_source_72 => l_array_source_72(Idx)
155520  , p_source_76 => l_array_source_76(Idx)
155521  , p_source_77 => l_array_source_77(Idx)
155522  , p_source_78 => l_array_source_78(Idx)
155523  , p_source_79 => l_array_source_79(Idx)
155524  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155525  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155526  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155527  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155531  , p_source_86 => l_array_source_86(Idx)
155528  , p_source_83 => l_array_source_83(Idx)
155529  , p_source_84 => l_array_source_84(Idx)
155530  , p_source_85 => l_array_source_85(Idx)
155532  , p_source_87 => l_array_source_87(Idx)
155533  , p_source_88 => l_array_source_88(Idx)
155534  , p_source_89 => l_array_source_89(Idx)
155535  , p_source_90 => l_array_source_90(Idx)
155536  , p_source_91 => l_array_source_91(Idx)
155537  , p_source_92 => l_array_source_92(Idx)
155538  , p_source_93 => l_array_source_93(Idx)
155539  , p_source_94 => l_array_source_94(Idx)
155540  , p_source_95 => l_array_source_95(Idx)
155541  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155542  , p_source_135 => l_array_source_135(Idx)
155543  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155544  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155545  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155546  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155547  );
155548 If(l_balance_type_code = 'A') THEN
155549   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155550 END IF;
155551 
155552 --
155553 
155554 
155555 --
155556 AcctLineType_198 (
155557  p_application_id  => p_application_id
155558  ,p_event_id     => l_event_id
155559  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155560  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155561  ,p_actual_flag => l_actual_flag
155562  ,p_balance_type_code => l_balance_type_code
155563  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155564  
155565  , p_source_1 => l_array_source_1(Idx)
155566  , p_source_21 => l_array_source_21(Idx)
155567  , p_source_33 => l_array_source_33(Idx)
155568  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155569  , p_source_49 => l_array_source_49(Idx)
155570  , p_source_52 => l_array_source_52(Idx)
155571  , p_source_54 => l_array_source_54(Idx)
155572  , p_source_56 => l_array_source_56(Idx)
155573  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155574  , p_source_63 => l_array_source_63(Idx)
155575  , p_source_64 => l_array_source_64(Idx)
155576  , p_source_65 => l_array_source_65(Idx)
155577  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155578  , p_source_67 => l_array_source_67(Idx)
155579  , p_source_68 => l_array_source_68(Idx)
155580  , p_source_69 => l_array_source_69(Idx)
155581  , p_source_70 => l_array_source_70(Idx)
155582  , p_source_71 => l_array_source_71(Idx)
155583  , p_source_72 => l_array_source_72(Idx)
155584  , p_source_76 => l_array_source_76(Idx)
155585  , p_source_77 => l_array_source_77(Idx)
155586  , p_source_78 => l_array_source_78(Idx)
155587  , p_source_79 => l_array_source_79(Idx)
155588  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155589  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155590  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155591  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155592  , p_source_83 => l_array_source_83(Idx)
155593  , p_source_84 => l_array_source_84(Idx)
155594  , p_source_85 => l_array_source_85(Idx)
155595  , p_source_86 => l_array_source_86(Idx)
155596  , p_source_87 => l_array_source_87(Idx)
155597  , p_source_88 => l_array_source_88(Idx)
155598  , p_source_89 => l_array_source_89(Idx)
155599  , p_source_90 => l_array_source_90(Idx)
155600  , p_source_91 => l_array_source_91(Idx)
155601  , p_source_92 => l_array_source_92(Idx)
155602  , p_source_93 => l_array_source_93(Idx)
155603  , p_source_94 => l_array_source_94(Idx)
155604  , p_source_135 => l_array_source_135(Idx)
155605  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155606  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155607  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155608  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155609  );
155610 If(l_balance_type_code = 'A') THEN
155611   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155612 END IF;
155613 
155614 --
155615 
155616 
155617 --
155618 AcctLineType_201 (
155619  p_application_id  => p_application_id
155620  ,p_event_id     => l_event_id
155621  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155622  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155623  ,p_actual_flag => l_actual_flag
155624  ,p_balance_type_code => l_balance_type_code
155625  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155626  
155627  , p_source_1 => l_array_source_1(Idx)
155628  , p_source_21 => l_array_source_21(Idx)
155629  , p_source_33 => l_array_source_33(Idx)
155630  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155631  , p_source_50 => l_array_source_50(Idx)
155632  , p_source_52 => l_array_source_52(Idx)
155633  , p_source_54 => l_array_source_54(Idx)
155634  , p_source_56 => l_array_source_56(Idx)
155635  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155636  , p_source_63 => l_array_source_63(Idx)
155637  , p_source_64 => l_array_source_64(Idx)
155638  , p_source_65 => l_array_source_65(Idx)
155639  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155640  , p_source_67 => l_array_source_67(Idx)
155641  , p_source_68 => l_array_source_68(Idx)
155642  , p_source_69 => l_array_source_69(Idx)
155643  , p_source_70 => l_array_source_70(Idx)
155644  , p_source_71 => l_array_source_71(Idx)
155645  , p_source_72 => l_array_source_72(Idx)
155646  , p_source_76 => l_array_source_76(Idx)
155647  , p_source_77 => l_array_source_77(Idx)
155648  , p_source_78 => l_array_source_78(Idx)
155649  , p_source_79 => l_array_source_79(Idx)
155650  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155651  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155652  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155653  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155654  , p_source_83 => l_array_source_83(Idx)
155658  , p_source_87 => l_array_source_87(Idx)
155655  , p_source_84 => l_array_source_84(Idx)
155656  , p_source_85 => l_array_source_85(Idx)
155657  , p_source_86 => l_array_source_86(Idx)
155659  , p_source_88 => l_array_source_88(Idx)
155660  , p_source_89 => l_array_source_89(Idx)
155661  , p_source_90 => l_array_source_90(Idx)
155662  , p_source_91 => l_array_source_91(Idx)
155663  , p_source_92 => l_array_source_92(Idx)
155664  , p_source_93 => l_array_source_93(Idx)
155665  , p_source_94 => l_array_source_94(Idx)
155666  , p_source_135 => l_array_source_135(Idx)
155667  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155668  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155669  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155670  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155671  );
155672 If(l_balance_type_code = 'A') THEN
155673   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155674 END IF;
155675 
155676 --
155677 
155678 
155679 --
155680 AcctLineType_206 (
155681  p_application_id  => p_application_id
155682  ,p_event_id     => l_event_id
155683  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155684  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155685  ,p_actual_flag => l_actual_flag
155686  ,p_balance_type_code => l_balance_type_code
155687  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155688  
155689  , p_source_1 => l_array_source_1(Idx)
155690  , p_source_21 => l_array_source_21(Idx)
155691  , p_source_33 => l_array_source_33(Idx)
155692  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155693  , p_source_49 => l_array_source_49(Idx)
155694  , p_source_52 => l_array_source_52(Idx)
155695  , p_source_54 => l_array_source_54(Idx)
155696  , p_source_56 => l_array_source_56(Idx)
155697  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155698  , p_source_63 => l_array_source_63(Idx)
155699  , p_source_64 => l_array_source_64(Idx)
155700  , p_source_65 => l_array_source_65(Idx)
155701  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155702  , p_source_67 => l_array_source_67(Idx)
155703  , p_source_68 => l_array_source_68(Idx)
155704  , p_source_69 => l_array_source_69(Idx)
155705  , p_source_70 => l_array_source_70(Idx)
155706  , p_source_71 => l_array_source_71(Idx)
155707  , p_source_72 => l_array_source_72(Idx)
155708  , p_source_73 => l_array_source_73(Idx)
155709  , p_source_74 => l_array_source_74(Idx)
155710  , p_source_75 => l_array_source_75(Idx)
155711  , p_source_76 => l_array_source_76(Idx)
155712  , p_source_77 => l_array_source_77(Idx)
155713  , p_source_78 => l_array_source_78(Idx)
155714  , p_source_79 => l_array_source_79(Idx)
155715  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155716  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155717  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155718  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155719  , p_source_83 => l_array_source_83(Idx)
155720  , p_source_84 => l_array_source_84(Idx)
155721  , p_source_85 => l_array_source_85(Idx)
155722  , p_source_86 => l_array_source_86(Idx)
155723  , p_source_87 => l_array_source_87(Idx)
155724  , p_source_88 => l_array_source_88(Idx)
155725  , p_source_89 => l_array_source_89(Idx)
155726  , p_source_90 => l_array_source_90(Idx)
155727  , p_source_91 => l_array_source_91(Idx)
155728  , p_source_92 => l_array_source_92(Idx)
155729  , p_source_93 => l_array_source_93(Idx)
155730  , p_source_94 => l_array_source_94(Idx)
155731  , p_source_95 => l_array_source_95(Idx)
155732  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155733  , p_source_135 => l_array_source_135(Idx)
155734  , p_source_135_meaning => l_array_source_135_meaning(Idx)
155735  );
155736 If(l_balance_type_code = 'A') THEN
155737   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155738 END IF;
155739 
155740 --
155741 
155742 
155743 --
155744 AcctLineType_210 (
155745  p_application_id  => p_application_id
155746  ,p_event_id     => l_event_id
155747  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155748  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155749  ,p_actual_flag => l_actual_flag
155750  ,p_balance_type_code => l_balance_type_code
155751  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155752  
155753  , p_source_1 => l_array_source_1(Idx)
155754  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155755  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155756  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
155757  , p_source_21 => l_array_source_21(Idx)
155758  , p_source_22 => l_array_source_22(Idx)
155759  , p_source_22_meaning => l_array_source_22_meaning(Idx)
155760  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
155761  , p_source_30 => l_array_source_30(Idx)
155762  , p_source_33 => l_array_source_33(Idx)
155763  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155764  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
155765  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
155766  , p_source_52 => l_array_source_52(Idx)
155767  , p_source_54 => l_array_source_54(Idx)
155768  , p_source_56 => l_array_source_56(Idx)
155769  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155770  , p_source_63 => l_array_source_63(Idx)
155771  , p_source_64 => l_array_source_64(Idx)
155772  , p_source_65 => l_array_source_65(Idx)
155773  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155774  , p_source_67 => l_array_source_67(Idx)
155775  , p_source_68 => l_array_source_68(Idx)
155776  , p_source_69 => l_array_source_69(Idx)
155777  , p_source_70 => l_array_source_70(Idx)
155778  , p_source_71 => l_array_source_71(Idx)
155779  , p_source_72 => l_array_source_72(Idx)
155780  , p_source_76 => l_array_source_76(Idx)
155781  , p_source_77 => l_array_source_77(Idx)
155785  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155782  , p_source_78 => l_array_source_78(Idx)
155783  , p_source_79 => l_array_source_79(Idx)
155784  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155786  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155787  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155788  , p_source_83 => l_array_source_83(Idx)
155789  , p_source_84 => l_array_source_84(Idx)
155790  , p_source_85 => l_array_source_85(Idx)
155791  , p_source_86 => l_array_source_86(Idx)
155792  , p_source_87 => l_array_source_87(Idx)
155793  , p_source_88 => l_array_source_88(Idx)
155794  , p_source_89 => l_array_source_89(Idx)
155795  , p_source_90 => l_array_source_90(Idx)
155796  , p_source_91 => l_array_source_91(Idx)
155797  , p_source_92 => l_array_source_92(Idx)
155798  , p_source_93 => l_array_source_93(Idx)
155799  , p_source_94 => l_array_source_94(Idx)
155800  , p_source_95 => l_array_source_95(Idx)
155801  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155802  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155803  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155804  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155805  );
155806 If(l_balance_type_code = 'A') THEN
155807   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155808 END IF;
155809 
155810 --
155811 
155812 
155813 --
155814 AcctLineType_214 (
155815  p_application_id  => p_application_id
155816  ,p_event_id     => l_event_id
155817  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155818  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155819  ,p_actual_flag => l_actual_flag
155820  ,p_balance_type_code => l_balance_type_code
155821  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155822  
155823  , p_source_1 => l_array_source_1(Idx)
155824  , p_source_21 => l_array_source_21(Idx)
155825  , p_source_30 => l_array_source_30(Idx)
155826  , p_source_33 => l_array_source_33(Idx)
155827  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155828  , p_source_52 => l_array_source_52(Idx)
155829  , p_source_54 => l_array_source_54(Idx)
155830  , p_source_56 => l_array_source_56(Idx)
155831  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155832  , p_source_63 => l_array_source_63(Idx)
155833  , p_source_64 => l_array_source_64(Idx)
155834  , p_source_65 => l_array_source_65(Idx)
155835  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155836  , p_source_67 => l_array_source_67(Idx)
155837  , p_source_68 => l_array_source_68(Idx)
155838  , p_source_69 => l_array_source_69(Idx)
155839  , p_source_70 => l_array_source_70(Idx)
155840  , p_source_71 => l_array_source_71(Idx)
155841  , p_source_72 => l_array_source_72(Idx)
155842  , p_source_76 => l_array_source_76(Idx)
155843  , p_source_77 => l_array_source_77(Idx)
155844  , p_source_78 => l_array_source_78(Idx)
155845  , p_source_79 => l_array_source_79(Idx)
155846  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155847  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155848  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155849  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155850  , p_source_83 => l_array_source_83(Idx)
155851  , p_source_84 => l_array_source_84(Idx)
155852  , p_source_85 => l_array_source_85(Idx)
155853  , p_source_86 => l_array_source_86(Idx)
155854  , p_source_87 => l_array_source_87(Idx)
155855  , p_source_88 => l_array_source_88(Idx)
155856  , p_source_89 => l_array_source_89(Idx)
155857  , p_source_90 => l_array_source_90(Idx)
155858  , p_source_91 => l_array_source_91(Idx)
155859  , p_source_92 => l_array_source_92(Idx)
155860  , p_source_93 => l_array_source_93(Idx)
155861  , p_source_94 => l_array_source_94(Idx)
155862  , p_source_95 => l_array_source_95(Idx)
155863  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155864  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155865  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155866  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155867  );
155868 If(l_balance_type_code = 'A') THEN
155869   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155870 END IF;
155871 
155872 --
155873 
155874 
155875 --
155876 AcctLineType_218 (
155877  p_application_id  => p_application_id
155878  ,p_event_id     => l_event_id
155879  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155880  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155881  ,p_actual_flag => l_actual_flag
155882  ,p_balance_type_code => l_balance_type_code
155883  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155884  
155885  , p_source_1 => l_array_source_1(Idx)
155886  , p_source_21 => l_array_source_21(Idx)
155887  , p_source_30 => l_array_source_30(Idx)
155888  , p_source_33 => l_array_source_33(Idx)
155889  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155890  , p_source_52 => l_array_source_52(Idx)
155891  , p_source_54 => l_array_source_54(Idx)
155892  , p_source_56 => l_array_source_56(Idx)
155893  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155894  , p_source_63 => l_array_source_63(Idx)
155895  , p_source_64 => l_array_source_64(Idx)
155896  , p_source_65 => l_array_source_65(Idx)
155897  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155898  , p_source_67 => l_array_source_67(Idx)
155899  , p_source_68 => l_array_source_68(Idx)
155900  , p_source_69 => l_array_source_69(Idx)
155901  , p_source_70 => l_array_source_70(Idx)
155902  , p_source_71 => l_array_source_71(Idx)
155903  , p_source_72 => l_array_source_72(Idx)
155904  , p_source_76 => l_array_source_76(Idx)
155905  , p_source_77 => l_array_source_77(Idx)
155906  , p_source_78 => l_array_source_78(Idx)
155907  , p_source_79 => l_array_source_79(Idx)
155908  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155912  , p_source_83 => l_array_source_83(Idx)
155909  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155910  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155911  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155913  , p_source_84 => l_array_source_84(Idx)
155914  , p_source_85 => l_array_source_85(Idx)
155915  , p_source_86 => l_array_source_86(Idx)
155916  , p_source_87 => l_array_source_87(Idx)
155917  , p_source_88 => l_array_source_88(Idx)
155918  , p_source_89 => l_array_source_89(Idx)
155919  , p_source_90 => l_array_source_90(Idx)
155920  , p_source_91 => l_array_source_91(Idx)
155921  , p_source_92 => l_array_source_92(Idx)
155922  , p_source_93 => l_array_source_93(Idx)
155923  , p_source_94 => l_array_source_94(Idx)
155924  , p_source_95 => l_array_source_95(Idx)
155925  , p_source_95_meaning => l_array_source_95_meaning(Idx)
155926  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155927  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155928  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155929  );
155930 If(l_balance_type_code = 'A') THEN
155931   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155932 END IF;
155933 
155934 --
155935 
155936 
155937 --
155938 AcctLineType_224 (
155939  p_application_id  => p_application_id
155940  ,p_event_id     => l_event_id
155941  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155942  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155943  ,p_actual_flag => l_actual_flag
155944  ,p_balance_type_code => l_balance_type_code
155945  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155946  
155947  , p_source_1 => l_array_source_1(Idx)
155948  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155949  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155950  , p_source_21 => l_array_source_21(Idx)
155951  , p_source_30 => l_array_source_30(Idx)
155952  , p_source_33 => l_array_source_33(Idx)
155953  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155954  , p_source_43 => l_array_source_43(Idx)
155955  , p_source_52 => l_array_source_52(Idx)
155956  , p_source_54 => l_array_source_54(Idx)
155957  , p_source_56 => l_array_source_56(Idx)
155958  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
155959  , p_source_63 => l_array_source_63(Idx)
155960  , p_source_64 => l_array_source_64(Idx)
155961  , p_source_65 => l_array_source_65(Idx)
155962  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
155963  , p_source_67 => l_array_source_67(Idx)
155964  , p_source_68 => l_array_source_68(Idx)
155965  , p_source_69 => l_array_source_69(Idx)
155966  , p_source_70 => l_array_source_70(Idx)
155967  , p_source_71 => l_array_source_71(Idx)
155968  , p_source_72 => l_array_source_72(Idx)
155969  , p_source_76 => l_array_source_76(Idx)
155970  , p_source_77 => l_array_source_77(Idx)
155971  , p_source_78 => l_array_source_78(Idx)
155972  , p_source_79 => l_array_source_79(Idx)
155973  , p_source_79_meaning => l_array_source_79_meaning(Idx)
155974  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
155975  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155976  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
155977  , p_source_83 => l_array_source_83(Idx)
155978  , p_source_84 => l_array_source_84(Idx)
155979  , p_source_85 => l_array_source_85(Idx)
155980  , p_source_86 => l_array_source_86(Idx)
155981  , p_source_87 => l_array_source_87(Idx)
155982  , p_source_88 => l_array_source_88(Idx)
155983  , p_source_89 => l_array_source_89(Idx)
155984  , p_source_90 => l_array_source_90(Idx)
155985  , p_source_91 => l_array_source_91(Idx)
155986  , p_source_92 => l_array_source_92(Idx)
155987  , p_source_93 => l_array_source_93(Idx)
155988  , p_source_94 => l_array_source_94(Idx)
155989  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
155990  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
155991  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
155992  );
155993 If(l_balance_type_code = 'A') THEN
155994   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155995 END IF;
155996 
155997 --
155998 
155999       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
156000       -- or secondary ledger that has different currency with primary
156001       -- or alc that is calculated by sla
156002       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
156003             (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'))
156004 
156005 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
156006 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
156007           AND (l_actual_flag = 'A')) THEN
156008         XLA_AE_LINES_PKG.CreateGainOrLossLines(
156009           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
156010          ,p_application_id   => p_application_id
156011          ,p_amb_context_code => 'DEFAULT'
156012          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
156013          ,p_event_class_code => C_EVENT_CLASS_CODE
156014          ,p_event_type_code  => C_EVENT_TYPE_CODE
156015          
156016          ,p_gain_ccid        => -1
156017          ,p_loss_ccid        => -1
156018 
156019          ,p_actual_flag      => l_actual_flag
156020          ,p_enc_flag         => null
156021          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
156022          ,p_enc_g_l_ref      => null
156023          );
156024       END IF;
156025    END IF;
156026 END IF;
156027 
156028    ELSE
156029       --
156030       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
156031       --
156035             ,p_level    => C_LEVEL_STATEMENT
156032       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156033          trace
156034             (p_msg      => 'Trancaction revesal option is Y'
156036             ,p_module   => l_log_module);
156037       END IF;
156038    END IF;
156039 
156040 END LOOP;
156041 l_result := XLA_AE_LINES_PKG.InsertLines ;
156042 end loop;
156043 close line_cur;
156044 
156045 
156046 --
156047 -- insert headers into xla_ae_headers_gt table
156048 --
156049 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
156050 
156051 -- insert into errors table here.
156052 
156053 END LOOP;
156054 
156055 --
156056 -- 4865292
156057 --
156058 -- Compare g_hdr_extract_count with event count in
156059 -- CreateHeadersAndLines.
156060 --
156061 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
156062 
156063 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156064    trace (p_msg     => '# rows extracted from header extract objects '
156065                     || ' (running total): '
156066                     || g_hdr_extract_count
156067          ,p_level   => C_LEVEL_STATEMENT
156068          ,p_module  => l_log_module);
156069 END IF;
156070 
156071 CLOSE header_cur;
156072 --
156073 
156074 --
156075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156076    trace
156077       (p_msg      => 'END of EventClass_229'
156078       ,p_level    => C_LEVEL_PROCEDURE
156079       ,p_module   => l_log_module);
156080 END IF;
156081 --
156082 RETURN l_result;
156083 EXCEPTION
156084 WHEN xla_exceptions_pkg.application_exception THEN
156085    
156086 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
156087 
156088    
156089 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
156090 
156091    RAISE;
156092 
156093 WHEN NO_DATA_FOUND THEN
156094 
156095 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
156096 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
156097 
156098 FOR header_record IN header_cur
156099 LOOP
156100     l_array_header_events(header_record.event_id) := header_record.event_id;
156101 END LOOP;
156102 
156103 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
156104 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
156105 
156106 fnd_file.put_line(fnd_file.LOG, '                    ');
156107 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
156108 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
156109 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
156110 
156111 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
156112 LOOP
156113 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
156114 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
156115         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
156116 	END IF;
156117 END LOOP;
156118 
156119 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
156120 fnd_file.put_line(fnd_file.LOG, '                    ');
156121 
156122 
156123 xla_exceptions_pkg.raise_message
156124       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_229');
156125 
156126 
156127 WHEN OTHERS THEN
156128    xla_exceptions_pkg.raise_message
156129       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_229');
156130 END EventClass_229;
156131 --
156132 
156133 ---------------------------------------
156134 --
156135 -- PRIVATE PROCEDURE
156136 --         insert_sources_230
156137 --
156138 ----------------------------------------
156139 --
156140 PROCEDURE insert_sources_230(
156141                                 p_target_ledger_id       IN NUMBER
156142                               , p_language               IN VARCHAR2
156143                               , p_sla_ledger_id          IN NUMBER
156144                               , p_pad_start_date         IN DATE
156145                               , p_pad_end_date           IN DATE
156146                          )
156147 IS
156148 
156149 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
156150 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
156151 p_apps_owner                   VARCHAR2(30);
156152 l_log_module                   VARCHAR2(240);
156153 BEGIN
156154 IF g_log_enabled THEN
156155       l_log_module := C_DEFAULT_MODULE||'.insert_sources_230';
156156 END IF;
156157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156158 
156159       trace
156160          (p_msg      => 'BEGIN of insert_sources_230'
156161          ,p_level    => C_LEVEL_PROCEDURE
156162          ,p_module   => l_log_module);
156163 
156164 END IF;
156165 
156166 -- select APPS owner
156167 SELECT oracle_username
156168   INTO p_apps_owner
156169   FROM fnd_oracle_userid
156170  WHERE read_only_flag = 'U'
156171 ;
156172 
156173 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156174       trace
156175          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
156176                         ' - p_language = '||p_language||
156177                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
156178                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
156179                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
156180                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
156181          ,p_level    => C_LEVEL_STATEMENT
156182          ,p_module   => l_log_module);
156183 END IF;
156184 
156185 
156186 --
156187 INSERT INTO xla_diag_sources --hdr2
156188 (
156189         event_id
156190       , ledger_id
156191       , sla_ledger_id
156195       , line_number
156192       , description_language
156193       , object_name
156194       , object_type_code
156196       , source_application_id
156197       , source_type_code
156198       , source_code
156199       , source_value
156200       , source_meaning
156201       , created_by
156202       , creation_date
156203       , last_update_date
156204       , last_updated_by
156205       , last_update_login
156206       , program_update_date
156207       , program_application_id
156208       , program_id
156209       , request_id
156210 )
156211 SELECT
156212         event_id
156213       , p_target_ledger_id
156214       , p_sla_ledger_id
156215       , p_language
156216       , object_name
156217       , object_type_code
156218       , line_number
156219       , source_application_id
156220       , source_type_code
156221       , source_code
156222       , SUBSTR(source_value ,1,1996)
156223       , SUBSTR(source_meaning ,1,200)
156224       , xla_environment_pkg.g_Usr_Id
156225       , TRUNC(SYSDATE)
156226       , TRUNC(SYSDATE)
156227       , xla_environment_pkg.g_Usr_Id
156228       , xla_environment_pkg.g_Login_Id
156229       , TRUNC(SYSDATE)
156230       , xla_environment_pkg.g_Prog_Appl_Id
156231       , xla_environment_pkg.g_Prog_Id
156232       , xla_environment_pkg.g_Req_Id
156233   FROM (
156234        SELECT xet.event_id                  event_id
156235             , 0                          line_number
156236             , CASE r
156237                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156238                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156239                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156240                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156241                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156242                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156243                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156244                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156245                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156246                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156247                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156248                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156249                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156250                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156251                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156252                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156253                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156254                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156255                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156256                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156257                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156258                 WHEN 22 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156259                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156260                 WHEN 24 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156261                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156262                 WHEN 26 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156263                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156264                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156265                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156266                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156267                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156268                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156269                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156270                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156271                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156272                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156273                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156274                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156275                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156276                 
156277                ELSE null
156278               END                           object_name
156279             , CASE r
156280                 WHEN 1 THEN 'HEADER' 
156281                 WHEN 2 THEN 'HEADER' 
156282                 WHEN 3 THEN 'HEADER' 
156283                 WHEN 4 THEN 'HEADER' 
156284                 WHEN 5 THEN 'HEADER' 
156285                 WHEN 6 THEN 'HEADER' 
156286                 WHEN 7 THEN 'HEADER' 
156287                 WHEN 8 THEN 'HEADER' 
156288                 WHEN 9 THEN 'HEADER' 
156289                 WHEN 10 THEN 'HEADER' 
156290                 WHEN 11 THEN 'HEADER' 
156291                 WHEN 12 THEN 'HEADER' 
156292                 WHEN 13 THEN 'HEADER' 
156293                 WHEN 14 THEN 'HEADER' 
156294                 WHEN 15 THEN 'HEADER' 
156295                 WHEN 16 THEN 'HEADER' 
156296                 WHEN 17 THEN 'HEADER' 
156297                 WHEN 18 THEN 'HEADER' 
156298                 WHEN 19 THEN 'HEADER' 
156299                 WHEN 20 THEN 'HEADER' 
156300                 WHEN 21 THEN 'HEADER' 
156301                 WHEN 22 THEN 'HEADER' 
156302                 WHEN 23 THEN 'HEADER' 
156303                 WHEN 24 THEN 'HEADER' 
156304                 WHEN 25 THEN 'HEADER' 
156305                 WHEN 26 THEN 'HEADER' 
156306                 WHEN 27 THEN 'HEADER' 
156307                 WHEN 28 THEN 'HEADER' 
156308                 WHEN 29 THEN 'HEADER' 
156309                 WHEN 30 THEN 'HEADER' 
156310                 WHEN 31 THEN 'HEADER' 
156311                 WHEN 32 THEN 'HEADER' 
156312                 WHEN 33 THEN 'HEADER' 
156313                 WHEN 34 THEN 'HEADER' 
156314                 WHEN 35 THEN 'HEADER' 
156315                 WHEN 36 THEN 'HEADER' 
156316                 WHEN 37 THEN 'HEADER' 
156317                 WHEN 38 THEN 'HEADER' 
156318                 WHEN 39 THEN 'HEADER' 
156319                 
156320                 ELSE null
156324                 WHEN 2 THEN '200' 
156321               END                           object_type_code
156322             , CASE r
156323                 WHEN 1 THEN '200' 
156325                 WHEN 3 THEN '200' 
156326                 WHEN 4 THEN '200' 
156327                 WHEN 5 THEN '200' 
156328                 WHEN 6 THEN '200' 
156329                 WHEN 7 THEN '200' 
156330                 WHEN 8 THEN '200' 
156331                 WHEN 9 THEN '200' 
156332                 WHEN 10 THEN '200' 
156333                 WHEN 11 THEN '200' 
156334                 WHEN 12 THEN '200' 
156335                 WHEN 13 THEN '200' 
156336                 WHEN 14 THEN '200' 
156337                 WHEN 15 THEN '200' 
156338                 WHEN 16 THEN '200' 
156339                 WHEN 17 THEN '200' 
156340                 WHEN 18 THEN '200' 
156341                 WHEN 19 THEN '200' 
156342                 WHEN 20 THEN '200' 
156343                 WHEN 21 THEN '200' 
156344                 WHEN 22 THEN '200' 
156345                 WHEN 23 THEN '200' 
156346                 WHEN 24 THEN '200' 
156347                 WHEN 25 THEN '200' 
156348                 WHEN 26 THEN '200' 
156349                 WHEN 27 THEN '200' 
156350                 WHEN 28 THEN '200' 
156351                 WHEN 29 THEN '200' 
156352                 WHEN 30 THEN '200' 
156353                 WHEN 31 THEN '200' 
156354                 WHEN 32 THEN '200' 
156355                 WHEN 33 THEN '200' 
156356                 WHEN 34 THEN '200' 
156357                 WHEN 35 THEN '200' 
156358                 WHEN 36 THEN '200' 
156359                 WHEN 37 THEN '200' 
156360                 WHEN 38 THEN '200' 
156361                 WHEN 39 THEN '200' 
156362                 
156363                 ELSE null
156364               END                           source_application_id
156365             , 'S'             source_type_code
156366             , CASE r
156367                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
156368                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
156369                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
156370                 WHEN 4 THEN 'AC_CHECK_DATE' 
156371                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
156372                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
156373                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
156374                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
156375                 WHEN 9 THEN 'FSP_DISC_TAKEN_CCID' 
156376                 WHEN 10 THEN 'ASP_DISCOUNT_DIST_METHOD' 
156377                 WHEN 11 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
156378                 WHEN 12 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
156379                 WHEN 13 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
156380                 WHEN 14 THEN 'POS_FDP_CCID' 
156381                 WHEN 15 THEN 'ASP_INTEREST_CCID' 
156382                 WHEN 16 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
156383                 WHEN 17 THEN 'CGAC_CASH_CLEARING_CCID' 
156384                 WHEN 18 THEN 'CGAC_GAIN_CCID' 
156385                 WHEN 19 THEN 'ASP_GAIN_CCID' 
156386                 WHEN 20 THEN 'CGAC_LOSS_CCID' 
156387                 WHEN 21 THEN 'ASP_LOSS_CCID' 
156388                 WHEN 22 THEN 'ASP_DISC_TAKEN_CCID' 
156389                 WHEN 23 THEN 'ASP_AUTO_OFFSET_FLAG' 
156390                 WHEN 24 THEN 'ASP_ROUNDING_ERROR_CCID' 
156391                 WHEN 25 THEN 'THIRD_PARTY_TYPE' 
156392                 WHEN 26 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
156393                 WHEN 27 THEN 'AC_VENDOR_ID' 
156394                 WHEN 28 THEN 'AC_VENDOR_SITE_ID' 
156395                 WHEN 29 THEN 'AC_CHECK_ID' 
156396                 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
156397                 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE' 
156398                 WHEN 32 THEN 'AC_EXCHANGE_DATE' 
156399                 WHEN 33 THEN 'AC_EXCHANGE_RATE' 
156400                 WHEN 34 THEN 'AC_EXCHANGE_RATE_TYPE' 
156401                 WHEN 35 THEN 'PAYMENT_TYPE' 
156402                 WHEN 36 THEN 'PAYMENT_PROCESSING_TYPE' 
156403                 WHEN 37 THEN 'AC_DOC_CATEGORY_CODE' 
156404                 WHEN 38 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
156405                 WHEN 39 THEN 'TRANSAC_REVERSAL_FLAG' 
156406                 
156407                 ELSE null
156408               END                           source_code
156409             , CASE r
156410                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
156411                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
156412                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
156413                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
156414                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
156415                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
156416                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
156417                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
156418                 WHEN 9 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
156419                 WHEN 10 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
156420                 WHEN 11 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
156421                 WHEN 12 THEN TO_CHAR(h3.ASP_FD_PMT_ACCT_SOURCE)
156422                 WHEN 13 THEN TO_CHAR(h3.FSP_FUTURE_DATED_PAYMENT_CCID)
156423                 WHEN 14 THEN TO_CHAR(h2.POS_FDP_CCID)
156424                 WHEN 15 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
156425                 WHEN 16 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
156426                 WHEN 17 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
156427                 WHEN 18 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
156428                 WHEN 19 THEN TO_CHAR(h3.ASP_GAIN_CCID)
156429                 WHEN 20 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
156430                 WHEN 21 THEN TO_CHAR(h3.ASP_LOSS_CCID)
156431                 WHEN 22 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
156432                 WHEN 23 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
156433                 WHEN 24 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
156434                 WHEN 25 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
156435                 WHEN 26 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
156439                 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
156436                 WHEN 27 THEN TO_CHAR(h2.AC_VENDOR_ID)
156437                 WHEN 28 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
156438                 WHEN 29 THEN TO_CHAR(h2.AC_CHECK_ID)
156440                 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
156441                 WHEN 32 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
156442                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
156443                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
156444                 WHEN 35 THEN TO_CHAR(h2.PAYMENT_TYPE)
156445                 WHEN 36 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
156446                 WHEN 37 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
156447                 WHEN 38 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
156448                 WHEN 39 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
156449                 
156450                 ELSE null
156451               END                           source_value
156452             , CASE r
156453                 WHEN 7 THEN fvl15.meaning
156454                 WHEN 10 THEN fvl19.meaning
156455                 WHEN 12 THEN fvl25.meaning
156456                 WHEN 23 THEN fvl47.meaning
156457                 WHEN 30 THEN fvl113.meaning
156458                 WHEN 35 THEN fvl122.meaning
156459                 WHEN 39 THEN fvl172.meaning
156460                 
156461                 ELSE null
156462               END               source_meaning
156463          FROM xla_events_gt     xet  
156464       , AP_PAYMENT_EXTRACT_HEADER_V  h2
156465       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
156466   , fnd_lookup_values    fvl15
156467   , fnd_lookup_values    fvl19
156468   , fnd_lookup_values    fvl25
156469   , fnd_lookup_values    fvl47
156470   , fnd_lookup_values    fvl113
156471   , fnd_lookup_values    fvl122
156472   , fnd_lookup_values    fvl172
156473              ,(select rownum r from all_objects where rownum <= 39 and owner = p_apps_owner)
156474          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
156475            AND xet.event_class_code = C_EVENT_CLASS_CODE
156476               AND h2.event_id = xet.event_id
156477  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
156478   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
156479   AND fvl15.view_application_id(+) = 200
156480   AND fvl15.language(+)            = USERENV('LANG')
156481      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
156482   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
156483   AND fvl19.view_application_id(+) = 200
156484   AND fvl19.language(+)            = USERENV('LANG')
156485      AND fvl25.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
156486   AND fvl25.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
156487   AND fvl25.view_application_id(+) = 200
156488   AND fvl25.language(+)            = USERENV('LANG')
156489      AND fvl47.lookup_type(+)         = 'YES_NO'
156490   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
156491   AND fvl47.view_application_id(+) = 0
156492   AND fvl47.language(+)            = USERENV('LANG')
156493      AND fvl113.lookup_type(+)         = 'YES_NO'
156494   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
156495   AND fvl113.view_application_id(+) = 0
156496   AND fvl113.language(+)            = USERENV('LANG')
156497      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
156498   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
156499   AND fvl122.view_application_id(+) = 200
156500   AND fvl122.language(+)            = USERENV('LANG')
156501      AND fvl172.lookup_type(+)         = 'YES_NO'
156502   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
156503   AND fvl172.view_application_id(+) = 0
156504   AND fvl172.language(+)            = USERENV('LANG')
156505   
156506 )
156507 ;
156508 --
156509 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156510 
156511       trace
156512          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
156513          ,p_level    => C_LEVEL_STATEMENT
156514          ,p_module   => l_log_module);
156515 
156516 END IF;
156517 --
156518 
156519 
156520 
156521 --
156522 INSERT INTO xla_diag_sources  --line2
156523 (
156524         event_id
156525       , ledger_id
156526       , sla_ledger_id
156527       , description_language
156528       , object_name
156529       , object_type_code
156530       , line_number
156531       , source_application_id
156532       , source_type_code
156533       , source_code
156534       , source_value
156535       , source_meaning
156536       , created_by
156537       , creation_date
156538       , last_update_date
156539       , last_updated_by
156540       , last_update_login
156541       , program_update_date
156542       , program_application_id
156543       , program_id
156544       , request_id
156545 )
156546 SELECT  event_id
156547       , p_target_ledger_id
156548       , p_sla_ledger_id
156549       , p_language
156550       , object_name
156551       , object_type_code
156552       , line_number
156553       , source_application_id
156554       , source_type_code
156555       , source_code
156556       , SUBSTR(source_value,1,1996)
156557       , SUBSTR(source_meaning ,1,200)
156558       , xla_environment_pkg.g_Usr_Id
156559       , TRUNC(SYSDATE)
156560       , TRUNC(SYSDATE)
156561       , xla_environment_pkg.g_Usr_Id
156562       , xla_environment_pkg.g_Login_Id
156563       , TRUNC(SYSDATE)
156564       , xla_environment_pkg.g_Prog_Appl_Id
156565       , xla_environment_pkg.g_Prog_Id
156566       , xla_environment_pkg.g_Req_Id
156567   FROM (
156568        SELECT xet.event_id                  event_id
156569             , l1.line_number                 line_number
156570             , CASE r
156571                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156572                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156576                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156573                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156574                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156575                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156577                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156578                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156579                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156580                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156581                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156582                 WHEN 12 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
156583                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156584                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156585                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156586                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156587                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156588                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156589                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156590                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156591                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156592                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156593                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156594                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156595                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156596                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156597                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156598                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156599                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156600                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156601                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156602                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156603                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156604                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156605                 
156606                ELSE null
156607               END                           object_name
156608             , CASE r
156609                 WHEN 1 THEN 'LINE' 
156610                 WHEN 2 THEN 'LINE' 
156611                 WHEN 3 THEN 'LINE' 
156612                 WHEN 4 THEN 'LINE' 
156613                 WHEN 5 THEN 'LINE' 
156614                 WHEN 6 THEN 'LINE' 
156615                 WHEN 7 THEN 'LINE' 
156616                 WHEN 8 THEN 'LINE' 
156617                 WHEN 9 THEN 'LINE' 
156618                 WHEN 10 THEN 'LINE' 
156619                 WHEN 11 THEN 'LINE' 
156620                 WHEN 12 THEN 'LINE' 
156621                 WHEN 13 THEN 'LINE' 
156622                 WHEN 14 THEN 'LINE' 
156623                 WHEN 15 THEN 'LINE' 
156624                 WHEN 16 THEN 'LINE' 
156625                 WHEN 17 THEN 'LINE' 
156626                 WHEN 18 THEN 'LINE' 
156627                 WHEN 19 THEN 'LINE' 
156628                 WHEN 20 THEN 'LINE' 
156629                 WHEN 21 THEN 'LINE' 
156630                 WHEN 22 THEN 'LINE' 
156631                 WHEN 23 THEN 'LINE' 
156632                 WHEN 24 THEN 'LINE' 
156633                 WHEN 25 THEN 'LINE' 
156634                 WHEN 26 THEN 'LINE' 
156635                 WHEN 27 THEN 'LINE' 
156636                 WHEN 28 THEN 'LINE' 
156637                 WHEN 29 THEN 'LINE' 
156638                 WHEN 30 THEN 'LINE' 
156639                 WHEN 31 THEN 'LINE' 
156640                 WHEN 32 THEN 'LINE' 
156641                 WHEN 33 THEN 'LINE' 
156642                 WHEN 34 THEN 'LINE' 
156643                 
156644                 ELSE null
156645               END                           object_type_code
156646             , CASE r
156647                 WHEN 1 THEN '200' 
156648                 WHEN 2 THEN '200' 
156649                 WHEN 3 THEN '200' 
156650                 WHEN 4 THEN '200' 
156651                 WHEN 5 THEN '200' 
156652                 WHEN 6 THEN '200' 
156653                 WHEN 7 THEN '200' 
156654                 WHEN 8 THEN '200' 
156655                 WHEN 9 THEN '200' 
156656                 WHEN 10 THEN '200' 
156657                 WHEN 11 THEN '200' 
156658                 WHEN 12 THEN '200' 
156659                 WHEN 13 THEN '200' 
156660                 WHEN 14 THEN '200' 
156661                 WHEN 15 THEN '200' 
156662                 WHEN 16 THEN '200' 
156663                 WHEN 17 THEN '200' 
156664                 WHEN 18 THEN '200' 
156665                 WHEN 19 THEN '200' 
156666                 WHEN 20 THEN '200' 
156667                 WHEN 21 THEN '200' 
156668                 WHEN 22 THEN '200' 
156669                 WHEN 23 THEN '200' 
156670                 WHEN 24 THEN '200' 
156671                 WHEN 25 THEN '200' 
156672                 WHEN 26 THEN '200' 
156673                 WHEN 27 THEN '200' 
156674                 WHEN 28 THEN '200' 
156675                 WHEN 29 THEN '200' 
156676                 WHEN 30 THEN '200' 
156677                 WHEN 31 THEN '200' 
156678                 WHEN 32 THEN '200' 
156679                 WHEN 33 THEN '200' 
156680                 WHEN 34 THEN '200' 
156681                 
156682                 ELSE null
156683               END                           source_application_id
156684             , 'S'             source_type_code
156685             , CASE r
156686                 WHEN 1 THEN 'AID_DIST_CCID' 
156687                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
156688                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
156689                 WHEN 4 THEN 'POD_CCID' 
156690                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
156691                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
156692                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
156693                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
156694                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
156698                 WHEN 13 THEN 'SUMMARY_TAX_LINE_ID' 
156695                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
156696                 WHEN 11 THEN 'TAX_LINE_ID' 
156697                 WHEN 12 THEN 'REC_NREC_TAX_DIST_ID' 
156699                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
156700                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
156701                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
156702                 WHEN 17 THEN 'BUS_FLOW_INV_DIST_ID' 
156703                 WHEN 18 THEN 'BUS_FLOW_INV_ID' 
156704                 WHEN 19 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
156705                 WHEN 20 THEN 'APHD_AMOUNT' 
156706                 WHEN 21 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
156707                 WHEN 22 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
156708                 WHEN 23 THEN 'APHD_PAYMENT_BASE_AMT' 
156709                 WHEN 24 THEN 'APHD_INVOICE_BASE_AMT' 
156710                 WHEN 25 THEN 'APHD_INVOICE_DIST_AMOUNT' 
156711                 WHEN 26 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
156712                 WHEN 27 THEN 'AWT_RELATED_DIST_TYPE' 
156713                 WHEN 28 THEN 'INV_EXCHANGE_DATE' 
156714                 WHEN 29 THEN 'INV_EXCHANGE_RATE' 
156715                 WHEN 30 THEN 'INV_EXCHANGE_RATE_TYPE' 
156716                 WHEN 31 THEN 'INV_PMT_BASE_AMT_DIFF' 
156717                 WHEN 32 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
156718                 WHEN 33 THEN 'AI_INVOICE_TYPE_PAID' 
156719                 WHEN 34 THEN 'AWT_AT_PMT_TIME' 
156720                 
156721                 ELSE null
156722               END                           source_code
156723             , CASE r
156724                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
156725                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
156726                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
156727                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
156728                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
156729                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
156730                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
156731                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
156732                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
156733                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
156734                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
156735                 WHEN 12 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
156736                 WHEN 13 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
156737                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
156738                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
156739                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
156740                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
156741                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
156742                 WHEN 19 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
156743                 WHEN 20 THEN TO_CHAR(l1.APHD_AMOUNT)
156744                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
156745                 WHEN 22 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
156746                 WHEN 23 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
156747                 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
156748                 WHEN 25 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
156749                 WHEN 26 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
156750                 WHEN 27 THEN TO_CHAR(l1.AWT_RELATED_DIST_TYPE)
156751                 WHEN 28 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
156752                 WHEN 29 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
156753                 WHEN 30 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
156754                 WHEN 31 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
156755                 WHEN 32 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
156756                 WHEN 33 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
156757                 WHEN 34 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
156758                 
156759                 ELSE null
156760               END                           source_value
156761             , CASE r
156762                 WHEN 2 THEN fvl33.meaning
156763                 WHEN 10 THEN fvl79.meaning
156764                 WHEN 19 THEN fvl97.meaning
156765                 WHEN 26 THEN fvl125.meaning
156766                 WHEN 33 THEN fvl160.meaning
156767                 WHEN 34 THEN fvl161.meaning
156768                 
156769                 ELSE null
156770               END               source_meaning
156771          FROM  xla_events_gt     xet  
156772         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
156773         , ZX_AP_DEF_TAX_EXTRACT_V  l4
156774         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
156775   , fnd_lookup_values    fvl33
156776   , fnd_lookup_values    fvl79
156777   , fnd_lookup_values    fvl97
156778   , fnd_lookup_values    fvl125
156779   , fnd_lookup_values    fvl160
156780   , fnd_lookup_values    fvl161
156781             , (select rownum r from all_objects where rownum <= 34 and owner = p_apps_owner)
156782         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
156783           AND xet.event_class_code = C_EVENT_CLASS_CODE
156784             AND l1.event_id          = xet.event_id
156785  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'
156786   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
156787   AND fvl33.view_application_id(+) = 200
156788   AND fvl33.language(+)            = USERENV('LANG')
156789      AND fvl79.lookup_type(+)         = 'YES_NO'
156790   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
156791   AND fvl79.view_application_id(+) = 0
156792   AND fvl79.language(+)            = USERENV('LANG')
156793      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
156794   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
156795   AND fvl97.view_application_id(+) = 200
156796   AND fvl97.language(+)            = USERENV('LANG')
156797      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
156798   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
156802   AND fvl160.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
156799   AND fvl125.view_application_id(+) = 0
156800   AND fvl125.language(+)            = USERENV('LANG')
156801      AND fvl160.lookup_type(+)         = 'INVOICE TYPE'
156803   AND fvl160.view_application_id(+) = 200
156804   AND fvl160.language(+)            = USERENV('LANG')
156805      AND fvl161.lookup_type(+)         = 'YES_NO'
156806   AND fvl161.lookup_code(+)         = l1.AWT_AT_PMT_TIME
156807   AND fvl161.view_application_id(+) = 0
156808   AND fvl161.language(+)            = USERENV('LANG')
156809   
156810 )
156811 ;
156812 --
156813 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156814 
156815       trace
156816          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
156817          ,p_level    => C_LEVEL_STATEMENT
156818          ,p_module   => l_log_module);
156819 
156820 END IF;
156821 
156822 
156823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156824       trace
156825          (p_msg      => 'END of insert_sources_230'
156826          ,p_level    => C_LEVEL_PROCEDURE
156827          ,p_module   => l_log_module);
156828 END IF;
156829 EXCEPTION
156830   WHEN xla_exceptions_pkg.application_exception THEN
156831       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156832             trace
156833                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156834                ,p_level    => C_LEVEL_EXCEPTION
156835                ,p_module   => l_log_module);
156836       END IF;
156837       RAISE;
156838   WHEN OTHERS THEN
156839       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156840             trace
156841                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156842                ,p_level    => C_LEVEL_EXCEPTION
156843                ,p_module   => l_log_module);
156844        END IF;
156845        xla_exceptions_pkg.raise_message
156846            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_230');
156847 END insert_sources_230;
156848 --
156849 
156850 ---------------------------------------
156851 --
156852 -- PRIVATE FUNCTION
156853 --         EventClass_230
156854 --
156855 ----------------------------------------
156856 --
156857 FUNCTION EventClass_230
156858        (p_application_id         IN NUMBER
156859        ,p_base_ledger_id         IN NUMBER
156860        ,p_target_ledger_id       IN NUMBER
156861        ,p_language               IN VARCHAR2
156862        ,p_currency_code          IN VARCHAR2
156863        ,p_sla_ledger_id          IN NUMBER
156864        ,p_pad_start_date         IN DATE
156865        ,p_pad_end_date           IN DATE
156866        ,p_primary_ledger_id      IN NUMBER)
156867 RETURN BOOLEAN IS
156868 --
156869 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
156870 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
156871 
156872 l_calculate_acctd_flag   VARCHAR2(1) :='N';
156873 l_calculate_g_l_flag     VARCHAR2(1) :='N';
156874 --
156875 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156876 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156877 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156878 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156879 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156880 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156881 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156882 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156883 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156884 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156885 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156886 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156887 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156888 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156889 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156890 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156891 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156892 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156893 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156894 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156895 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156896 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156897 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
156898 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156899 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156900 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156901 
156902 l_event_id                             NUMBER;
156903 l_previous_event_id                    NUMBER;
156904 l_first_event_id                       NUMBER;
156905 l_last_event_id                        NUMBER;
156906 
156907 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
156908 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
156909 --
156910 --
156911 l_result                    BOOLEAN := TRUE;
156912 l_rows                      NUMBER  := 1000;
156913 l_event_type_name           VARCHAR2(80) := 'All';
156914 l_event_class_name          VARCHAR2(80) := 'Payments';
156915 l_description               VARCHAR2(4000);
156916 l_transaction_reversal      NUMBER;
156917 l_ae_header_id              NUMBER;
156918 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
156919 l_log_module                VARCHAR2(240);
156920 --
156921 l_acct_reversal_source      VARCHAR2(30);
156925 --
156922 l_trx_reversal_source       VARCHAR2(30);
156923 
156924 l_continue_with_lines       BOOLEAN := TRUE;
156926 l_acc_rev_gl_date_source    DATE;                      -- 4262811
156927 --
156928 type t_array_event_id is table of number index by binary_integer;
156929 
156930 l_rec_array_event                    t_rec_array_event;
156931 l_null_rec_array_event               t_rec_array_event;
156932 l_array_ae_header_id                 xla_number_array_type;
156933 l_actual_flag                        VARCHAR2(1) := NULL;
156934 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
156935 l_balance_type_code                  VARCHAR2(1) :=NULL;
156936 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
156937 
156938 --
156939 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
156940 --
156941 
156942 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
156943 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
156944 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
156945 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
156946 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
156947 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
156948 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
156949 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
156950 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
156951 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
156952 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
156953 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
156954 TYPE t_array_source_26 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
156955 TYPE t_array_source_27 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
156956 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
156957 TYPE t_array_source_29 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
156958 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
156959 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
156960 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
156961 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
156962 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
156963 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
156964 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
156965 TYPE t_array_source_48 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
156966 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
156967 TYPE t_array_source_96 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
156968 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
156969 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
156970 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_ID%TYPE INDEX BY BINARY_INTEGER;
156971 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
156972 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
156973 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
156974 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
156975 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
156976 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
156977 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
156978 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
156979 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
156980 TYPE t_array_source_172 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
156981 
156982 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
156983 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
156984 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
156985 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
156986 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
156987 TYPE t_array_source_51 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
156988 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
156989 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
156993 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156990 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
156991 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
156992 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
156994 TYPE t_array_source_87 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
156995 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
156996 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
156997 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
156998 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
156999 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
157000 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
157001 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
157002 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157003 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157004 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
157005 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
157006 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
157007 TYPE t_array_source_125 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
157008 TYPE t_array_source_126 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
157009 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
157010 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
157011 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
157012 TYPE t_array_source_150 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
157013 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
157014 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
157015 TYPE t_array_source_161 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
157016 
157017 l_array_source_6              t_array_source_6;
157018 l_array_source_9              t_array_source_9;
157019 l_array_source_10              t_array_source_10;
157020 l_array_source_11              t_array_source_11;
157021 l_array_source_12              t_array_source_12;
157022 l_array_source_13              t_array_source_13;
157023 l_array_source_15              t_array_source_15;
157024 l_array_source_15_meaning      t_array_lookup_meaning;
157025 l_array_source_17              t_array_source_17;
157026 l_array_source_18              t_array_source_18;
157027 l_array_source_19              t_array_source_19;
157028 l_array_source_19_meaning      t_array_lookup_meaning;
157029 l_array_source_24              t_array_source_24;
157030 l_array_source_25              t_array_source_25;
157031 l_array_source_25_meaning      t_array_lookup_meaning;
157032 l_array_source_26              t_array_source_26;
157033 l_array_source_27              t_array_source_27;
157034 l_array_source_28              t_array_source_28;
157035 l_array_source_29              t_array_source_29;
157036 l_array_source_35              t_array_source_35;
157037 l_array_source_36              t_array_source_36;
157038 l_array_source_37              t_array_source_37;
157039 l_array_source_38              t_array_source_38;
157040 l_array_source_39              t_array_source_39;
157041 l_array_source_44              t_array_source_44;
157042 l_array_source_47              t_array_source_47;
157043 l_array_source_47_meaning      t_array_lookup_meaning;
157044 l_array_source_48              t_array_source_48;
157045 l_array_source_82              t_array_source_82;
157046 l_array_source_96              t_array_source_96;
157047 l_array_source_109              t_array_source_109;
157048 l_array_source_110              t_array_source_110;
157049 l_array_source_112              t_array_source_112;
157050 l_array_source_113              t_array_source_113;
157051 l_array_source_113_meaning      t_array_lookup_meaning;
157052 l_array_source_114              t_array_source_114;
157053 l_array_source_117              t_array_source_117;
157054 l_array_source_118              t_array_source_118;
157055 l_array_source_119              t_array_source_119;
157056 l_array_source_122              t_array_source_122;
157057 l_array_source_122_meaning      t_array_lookup_meaning;
157058 l_array_source_123              t_array_source_123;
157059 l_array_source_170              t_array_source_170;
157060 l_array_source_171              t_array_source_171;
157061 l_array_source_172              t_array_source_172;
157062 l_array_source_172_meaning      t_array_lookup_meaning;
157063 
157064 l_array_source_30      t_array_source_30;
157065 l_array_source_33      t_array_source_33;
157066 l_array_source_33_meaning      t_array_lookup_meaning;
157067 l_array_source_43      t_array_source_43;
157068 l_array_source_45      t_array_source_45;
157069 l_array_source_46      t_array_source_46;
157070 l_array_source_51      t_array_source_51;
157071 l_array_source_52      t_array_source_52;
157072 l_array_source_54      t_array_source_54;
157073 l_array_source_66      t_array_source_66;
157074 l_array_source_79      t_array_source_79;
157075 l_array_source_79_meaning      t_array_lookup_meaning;
157079 l_array_source_90      t_array_source_90;
157076 l_array_source_85      t_array_source_85;
157077 l_array_source_86      t_array_source_86;
157078 l_array_source_87      t_array_source_87;
157080 l_array_source_91      t_array_source_91;
157081 l_array_source_92      t_array_source_92;
157082 l_array_source_93      t_array_source_93;
157083 l_array_source_94      t_array_source_94;
157084 l_array_source_97      t_array_source_97;
157085 l_array_source_97_meaning      t_array_lookup_meaning;
157086 l_array_source_98      t_array_source_98;
157087 l_array_source_103      t_array_source_103;
157088 l_array_source_111      t_array_source_111;
157089 l_array_source_115      t_array_source_115;
157090 l_array_source_116      t_array_source_116;
157091 l_array_source_124      t_array_source_124;
157092 l_array_source_125      t_array_source_125;
157093 l_array_source_125_meaning      t_array_lookup_meaning;
157094 l_array_source_126      t_array_source_126;
157095 l_array_source_136      t_array_source_136;
157096 l_array_source_137      t_array_source_137;
157097 l_array_source_138      t_array_source_138;
157098 l_array_source_150      t_array_source_150;
157099 l_array_source_155      t_array_source_155;
157100 l_array_source_160      t_array_source_160;
157101 l_array_source_160_meaning      t_array_lookup_meaning;
157102 l_array_source_161      t_array_source_161;
157103 l_array_source_161_meaning      t_array_lookup_meaning;
157104 
157105 --
157106 CURSOR header_cur
157107 IS
157108 SELECT /*+ leading(xet) cardinality(xet,1) */
157109 -- Event Class Code: PAYMENTS
157110     xet.entity_id
157111    ,xet.legal_entity_id
157112    ,xet.entity_code
157113    ,xet.transaction_number
157114    ,xet.event_id
157115    ,xet.event_class_code
157116    ,xet.event_type_code
157117    ,xet.event_number
157118    ,xet.event_date
157119    ,xet.transaction_date
157120    ,xet.reference_num_1
157121    ,xet.reference_num_2
157122    ,xet.reference_num_3
157123    ,xet.reference_num_4
157124    ,xet.reference_char_1
157125    ,xet.reference_char_2
157126    ,xet.reference_char_3
157127    ,xet.reference_char_4
157128    ,xet.reference_date_1
157129    ,xet.reference_date_2
157130    ,xet.reference_date_3
157131    ,xet.reference_date_4
157132    ,xet.event_created_by
157133    ,xet.budgetary_control_flag 
157134   , h2.DOC_SEQUENCE_NAME    source_6
157135   , h2.AC_DOC_SEQUENCE_VALUE    source_9
157136   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
157137   , h2.AC_CHECK_DATE    source_11
157138   , h2.CBA_BANK_ACCOUNT_NAME    source_12
157139   , h2.AC_CURRENCY_CODE    source_13
157140   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
157141   , fvl15.meaning   source_15_meaning
157142   , h2.CGAC_AP_ASSET_CCID    source_17
157143   , h3.FSP_DISC_TAKEN_CCID    source_18
157144   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
157145   , fvl19.meaning   source_19_meaning
157146   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_24
157147   , h3.ASP_FD_PMT_ACCT_SOURCE    source_25
157148   , fvl25.meaning   source_25_meaning
157149   , h3.FSP_FUTURE_DATED_PAYMENT_CCID    source_26
157150   , h2.POS_FDP_CCID    source_27
157151   , h3.ASP_INTEREST_CCID    source_28
157152   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_29
157153   , h2.CGAC_CASH_CLEARING_CCID    source_35
157154   , h2.CGAC_GAIN_CCID    source_36
157155   , h3.ASP_GAIN_CCID    source_37
157156   , h2.CGAC_LOSS_CCID    source_38
157157   , h3.ASP_LOSS_CCID    source_39
157158   , h3.ASP_DISC_TAKEN_CCID    source_44
157159   , h3.ASP_AUTO_OFFSET_FLAG    source_47
157160   , fvl47.meaning   source_47_meaning
157161   , h3.ASP_ROUNDING_ERROR_CCID    source_48
157162   , h2.THIRD_PARTY_TYPE    source_82
157163   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_96
157164   , h2.AC_VENDOR_ID    source_109
157165   , h2.AC_VENDOR_SITE_ID    source_110
157166   , h2.AC_CHECK_ID    source_112
157167   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
157168   , fvl113.meaning   source_113_meaning
157169   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
157170   , h2.AC_EXCHANGE_DATE    source_117
157171   , h2.AC_EXCHANGE_RATE    source_118
157172   , h2.AC_EXCHANGE_RATE_TYPE    source_119
157173   , h2.PAYMENT_TYPE    source_122
157174   , fvl122.meaning   source_122_meaning
157175   , h2.PAYMENT_PROCESSING_TYPE    source_123
157176   , h2.AC_DOC_CATEGORY_CODE    source_170
157177   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
157178   , h2.TRANSAC_REVERSAL_FLAG    source_172
157179   , fvl172.meaning   source_172_meaning
157180   FROM xla_events_gt     xet 
157181   , AP_PAYMENT_EXTRACT_HEADER_V  h2
157182   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
157183   , fnd_lookup_values    fvl15
157184   , fnd_lookup_values    fvl19
157185   , fnd_lookup_values    fvl25
157186   , fnd_lookup_values    fvl47
157187   , fnd_lookup_values    fvl113
157188   , fnd_lookup_values    fvl122
157189   , fnd_lookup_values    fvl172
157190  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
157191    and xet.event_class_code = C_EVENT_CLASS_CODE
157192    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
157193  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
157194   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
157195   AND fvl15.view_application_id(+) = 200
157196   AND fvl15.language(+)            = USERENV('LANG')
157197      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
157198   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
157199   AND fvl19.view_application_id(+) = 200
157200   AND fvl19.language(+)            = USERENV('LANG')
157201      AND fvl25.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
157202   AND fvl25.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
157203   AND fvl25.view_application_id(+) = 200
157204   AND fvl25.language(+)            = USERENV('LANG')
157205      AND fvl47.lookup_type(+)         = 'YES_NO'
157206   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
157207   AND fvl47.view_application_id(+) = 0
157211   AND fvl113.view_application_id(+) = 0
157208   AND fvl47.language(+)            = USERENV('LANG')
157209      AND fvl113.lookup_type(+)         = 'YES_NO'
157210   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
157212   AND fvl113.language(+)            = USERENV('LANG')
157213      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
157214   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
157215   AND fvl122.view_application_id(+) = 200
157216   AND fvl122.language(+)            = USERENV('LANG')
157217      AND fvl172.lookup_type(+)         = 'YES_NO'
157218   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
157219   AND fvl172.view_application_id(+) = 0
157220   AND fvl172.language(+)            = USERENV('LANG')
157221   
157222  ORDER BY event_id
157223 ;
157224 
157225 
157226 --
157227 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
157228 IS
157229 SELECT  /*+ leading(xet) cardinality(xet,1) */
157230 -- Event Class Code: PAYMENTS
157231     xet.entity_id
157232    ,xet.legal_entity_id
157233    ,xet.entity_code
157234    ,xet.transaction_number
157235    ,xet.event_id
157236    ,xet.event_class_code
157237    ,xet.event_type_code
157238    ,xet.event_number
157239    ,xet.event_date
157240    ,xet.transaction_date
157241    ,xet.reference_num_1
157242    ,xet.reference_num_2
157243    ,xet.reference_num_3
157244    ,xet.reference_num_4
157245    ,xet.reference_char_1
157246    ,xet.reference_char_2
157247    ,xet.reference_char_3
157248    ,xet.reference_char_4
157249    ,xet.reference_date_1
157250    ,xet.reference_date_2
157251    ,xet.reference_date_3
157252    ,xet.reference_date_4
157253    ,xet.event_created_by
157254    ,xet.budgetary_control_flag
157255  , l1.LINE_NUMBER  
157256   , l1.AID_DIST_CCID    source_30
157257   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
157258   , fvl33.meaning   source_33_meaning
157259   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
157260   , l1.POD_CCID    source_45
157261   , l1.PO_VARIANCE_ACCOUNT    source_46
157262   , l4.TAX_ACCOUNT_CCID    source_51
157263   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
157264   , l1.DISTRIBUTION_LINK_TYPE    source_54
157265   , l1.AI_INVOICE_CURRENCY_CODE    source_66
157266   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
157267   , fvl79.meaning   source_79_meaning
157268   , l4.TAX_LINE_ID    source_85
157269   , l5.REC_NREC_TAX_DIST_ID    source_86
157270   , l4.SUMMARY_TAX_LINE_ID    source_87
157271   , l1.BUS_FLOW_AP_APP_ID    source_90
157272   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
157273   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
157274   , l1.BUS_FLOW_INV_DIST_ID    source_93
157275   , l1.BUS_FLOW_INV_ID    source_94
157276   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_97
157277   , fvl97.meaning   source_97_meaning
157278   , l1.APHD_AMOUNT    source_98
157279   , l1.APHD_PAYMENT_HIST_DIST_ID    source_103
157280   , l1.APHD_REV_PAY_HIST_DIST_ID    source_111
157281   , l1.APHD_PAYMENT_BASE_AMT    source_115
157282   , l1.APHD_INVOICE_BASE_AMT    source_116
157283   , l1.APHD_INVOICE_DIST_AMOUNT    source_124
157284   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_125
157285   , fvl125.meaning   source_125_meaning
157286   , l1.AWT_RELATED_DIST_TYPE    source_126
157287   , l1.INV_EXCHANGE_DATE    source_136
157288   , l1.INV_EXCHANGE_RATE    source_137
157289   , l1.INV_EXCHANGE_RATE_TYPE    source_138
157290   , l1.INV_PMT_BASE_AMT_DIFF    source_150
157291   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_155
157292   , l1.AI_INVOICE_TYPE_PAID    source_160
157293   , fvl160.meaning   source_160_meaning
157294   , l1.AWT_AT_PMT_TIME    source_161
157295   , fvl161.meaning   source_161_meaning
157296   FROM xla_events_gt     xet 
157297   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
157298   , ZX_AP_DEF_TAX_EXTRACT_V  l4
157299   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
157300   , fnd_lookup_values    fvl33
157301   , fnd_lookup_values    fvl79
157302   , fnd_lookup_values    fvl97
157303   , fnd_lookup_values    fvl125
157304   , fnd_lookup_values    fvl160
157305   , fnd_lookup_values    fvl161
157306  WHERE xet.event_id between x_first_event_id and x_last_event_id
157307    and xet.event_date between p_pad_start_date and p_pad_end_date
157308    and xet.event_class_code = C_EVENT_CLASS_CODE
157309    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
157310  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'
157311   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
157312   AND fvl33.view_application_id(+) = 200
157313   AND fvl33.language(+)            = USERENV('LANG')
157314      AND fvl79.lookup_type(+)         = 'YES_NO'
157315   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
157316   AND fvl79.view_application_id(+) = 0
157317   AND fvl79.language(+)            = USERENV('LANG')
157318      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
157319   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
157320   AND fvl97.view_application_id(+) = 200
157321   AND fvl97.language(+)            = USERENV('LANG')
157322      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
157323   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
157324   AND fvl125.view_application_id(+) = 0
157325   AND fvl125.language(+)            = USERENV('LANG')
157326      AND fvl160.lookup_type(+)         = 'INVOICE TYPE'
157327   AND fvl160.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
157328   AND fvl160.view_application_id(+) = 200
157329   AND fvl160.language(+)            = USERENV('LANG')
157330      AND fvl161.lookup_type(+)         = 'YES_NO'
157331   AND fvl161.lookup_code(+)         = l1.AWT_AT_PMT_TIME
157332   AND fvl161.view_application_id(+) = 0
157333   AND fvl161.language(+)            = USERENV('LANG')
157334   ;
157335 
157336 --
157337 BEGIN
157338 IF g_log_enabled THEN
157342    trace
157339    l_log_module := C_DEFAULT_MODULE||'.EventClass_230';
157340 END IF;
157341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
157343       (p_msg      => 'BEGIN of EventClass_230'
157344       ,p_level    => C_LEVEL_PROCEDURE
157345       ,p_module   => l_log_module);
157346 END IF;
157347 
157348 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157349    trace
157350       (p_msg      => 'p_application_id = '||p_application_id||
157351                      ' - p_base_ledger_id = '||p_base_ledger_id||
157352                      ' - p_target_ledger_id  = '||p_target_ledger_id||
157353                      ' - p_language = '||p_language||
157354                      ' - p_currency_code = '||p_currency_code||
157355                      ' - p_sla_ledger_id = '||p_sla_ledger_id
157356       ,p_level    => C_LEVEL_STATEMENT
157357       ,p_module   => l_log_module);
157358 END IF;
157359 --
157360 -- initialze arrays
157361 --
157362 g_array_event.DELETE;
157363 l_rec_array_event := l_null_rec_array_event;
157364 --
157365 --------------------------------------
157366 -- 4262811 Initialze MPA Line Number
157367 --------------------------------------
157368 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
157369 
157370 --
157371 
157372 --
157373 OPEN header_cur;
157374 --
157375 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157376    trace
157377    (p_msg      => 'SQL - FETCH header_cur'
157378    ,p_level    => C_LEVEL_STATEMENT
157379    ,p_module   => l_log_module);
157380 END IF;
157381 --
157382 LOOP
157383 FETCH header_cur BULK COLLECT INTO
157384         l_array_entity_id
157385       , l_array_legal_entity_id
157386       , l_array_entity_code
157387       , l_array_transaction_num
157388       , l_array_event_id
157389       , l_array_class_code
157390       , l_array_event_type
157391       , l_array_event_number
157392       , l_array_event_date
157393       , l_array_transaction_date
157394       , l_array_reference_num_1
157395       , l_array_reference_num_2
157396       , l_array_reference_num_3
157397       , l_array_reference_num_4
157398       , l_array_reference_char_1
157399       , l_array_reference_char_2
157400       , l_array_reference_char_3
157401       , l_array_reference_char_4
157402       , l_array_reference_date_1
157403       , l_array_reference_date_2
157404       , l_array_reference_date_3
157405       , l_array_reference_date_4
157406       , l_array_event_created_by
157407       , l_array_budgetary_control_flag 
157408       , l_array_source_6
157409       , l_array_source_9
157410       , l_array_source_10
157411       , l_array_source_11
157412       , l_array_source_12
157413       , l_array_source_13
157414       , l_array_source_15
157415       , l_array_source_15_meaning
157416       , l_array_source_17
157417       , l_array_source_18
157418       , l_array_source_19
157419       , l_array_source_19_meaning
157420       , l_array_source_24
157421       , l_array_source_25
157422       , l_array_source_25_meaning
157423       , l_array_source_26
157424       , l_array_source_27
157425       , l_array_source_28
157426       , l_array_source_29
157427       , l_array_source_35
157428       , l_array_source_36
157429       , l_array_source_37
157430       , l_array_source_38
157431       , l_array_source_39
157432       , l_array_source_44
157433       , l_array_source_47
157434       , l_array_source_47_meaning
157435       , l_array_source_48
157436       , l_array_source_82
157437       , l_array_source_96
157438       , l_array_source_109
157439       , l_array_source_110
157440       , l_array_source_112
157441       , l_array_source_113
157442       , l_array_source_113_meaning
157443       , l_array_source_114
157444       , l_array_source_117
157445       , l_array_source_118
157446       , l_array_source_119
157447       , l_array_source_122
157448       , l_array_source_122_meaning
157449       , l_array_source_123
157450       , l_array_source_170
157451       , l_array_source_171
157452       , l_array_source_172
157453       , l_array_source_172_meaning
157454       LIMIT l_rows;
157455 --
157456 IF (C_LEVEL_EVENT >= g_log_level) THEN
157457    trace
157458    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
157459    ,p_level    => C_LEVEL_EVENT
157460    ,p_module   => l_log_module);
157461 END IF;
157462 --
157463 EXIT WHEN l_array_entity_id.COUNT = 0;
157464 
157465 -- initialize arrays
157466 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
157467 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
157468 
157469 --
157470 -- Bug 4458708
157471 --
157472 XLA_AE_LINES_PKG.g_LineNumber := 0;
157473 
157474 
157475 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
157476 g_last_hdr_idx := l_array_event_id.LAST;
157477 --
157478 -- loop for the headers. Each iteration is for each header extract row
157479 -- fetched in header cursor
157480 --
157481 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
157482 
157483 --
157484 -- set event info as cache for other routines to refer event attributes
157485 --
157486 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
157487    (p_application_id           => p_application_id
157488    ,p_primary_ledger_id        => p_primary_ledger_id
157489    ,p_base_ledger_id           => p_base_ledger_id
157490    ,p_target_ledger_id         => p_target_ledger_id
157491    ,p_entity_id                => l_array_entity_id(hdr_idx)
157492    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
157493    ,p_entity_code              => l_array_entity_code(hdr_idx)
157494    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
157495    ,p_event_id                 => l_array_event_id(hdr_idx)
157496    ,p_event_class_code         => l_array_class_code(hdr_idx)
157500    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
157497    ,p_event_type_code          => l_array_event_type(hdr_idx)
157498    ,p_event_number             => l_array_event_number(hdr_idx)
157499    ,p_event_date               => l_array_event_date(hdr_idx)
157501    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
157502    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
157503    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
157504    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
157505    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
157506    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
157507    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
157508    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
157509    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
157510    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
157511    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
157512    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
157513    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
157514    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
157515 
157516 --
157517 -- set the status of entry to C_VALID (0)
157518 --
157519 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
157520 
157521 --
157522 -- initialize a row for ae header
157523 --
157524 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
157525 
157526 l_event_id := l_array_event_id(hdr_idx);
157527 
157528 --
157529 -- storing the hdr_idx for event. May be used by line cursor.
157530 --
157531 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
157532 
157533 --
157534 -- store sources from header extract. This can be improved to
157535 -- store only those sources from header extract that may be used in lines
157536 --
157537 
157538 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
157539 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
157540 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
157541 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
157542 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
157543 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
157544 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
157545 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
157546 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
157547 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
157548 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
157549 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
157550 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
157551 g_array_event(l_event_id).array_value_char('source_25') := l_array_source_25(hdr_idx);
157552 g_array_event(l_event_id).array_value_char('source_25_meaning') := l_array_source_25_meaning(hdr_idx);
157553 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
157554 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
157555 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
157556 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
157557 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
157558 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
157559 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
157560 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
157561 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
157562 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
157563 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
157564 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
157565 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
157566 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
157567 g_array_event(l_event_id).array_value_char('source_96') := l_array_source_96(hdr_idx);
157568 g_array_event(l_event_id).array_value_num('source_109') := l_array_source_109(hdr_idx);
157569 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
157570 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
157571 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
157572 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
157573 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
157574 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
157575 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
157576 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
157577 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
157578 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
157579 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
157580 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
157581 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
157582 g_array_event(l_event_id).array_value_char('source_172') := l_array_source_172(hdr_idx);
157583 g_array_event(l_event_id).array_value_char('source_172_meaning') := l_array_source_172_meaning(hdr_idx);
157584 
157588 --
157585 --
157586 -- initilaize the status of ae headers for diffrent balance types
157587 -- the status is initialised to C_NOT_CREATED (2)
157589 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157590 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157591 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157592 
157593 --
157594 -- call api to validate and store accounting attributes for header
157595 --
157596 
157597 ------------------------------------------------------------
157598 -- Accrual Reversal : to get date for Standard Source (NONE)
157599 ------------------------------------------------------------
157600 l_acc_rev_gl_date_source := NULL;
157601 
157602      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
157603       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
157604      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
157605       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
157606      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
157607       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
157608      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
157609       l_rec_acct_attrs.array_date_value(4) := 
157610 xla_ae_sources_pkg.GetSystemSourceDate(
157611    p_source_code           => 'XLA_EVENT_DATE'
157612  , p_source_type_code      => 'Y'
157613  , p_source_application_id =>  602
157614 );
157615      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
157616       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_172');
157617 
157618 
157619 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
157620 
157621 XLA_AE_HEADER_PKG.SetJeCategoryName;
157622 
157623 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
157624 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
157625 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
157626 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
157627 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
157628 
157629 
157630 --
157631 xla_ae_header_pkg.SetHdrDescription(
157632    p_description => Description_3 (
157633    p_application_id => p_application_id 
157634  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
157635  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
157636  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
157637  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
157638  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
157639  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
157640    )
157641 );
157642 --
157643 
157644 -- No header level analytical criteria
157645 
157646 --
157647 --accounting attribute enhancement, bug 3612931
157648 --
157649 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_172'), 1,30);
157650 
157651 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
157652    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157653 
157654    xla_accounting_err_pkg.build_message
157655       (p_appli_s_name            => 'XLA'
157656       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
157657       ,p_token_1                 => 'ACCT_ATTR_NAME'
157658       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
157659       ,p_token_2                 => 'PRODUCT_NAME'
157660       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157661       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157662       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157663       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157664 
157665 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
157666    --
157667    -- following sets the accounting attributes needed to reverse
157668    -- accounting for a distributeion
157669    --
157670    xla_ae_lines_pkg.SetTrxReversalAttrs
157671       (p_event_id              => l_event_id
157672       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
157673       ,p_trx_reversal_source   => l_trx_reversal_source);
157674 
157675 END IF;
157676 
157677 
157678 ----------------------------------------------------------------
157679 -- 4262811 -  update the header statuses to invalid in need be
157680 ----------------------------------------------------------------
157681 --
157682 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
157683 
157684 
157685   -----------------------------------------------
157686   -- No accrual reversal for the event class/type
157687   -----------------------------------------------
157688 ----------------------------------------------------------------
157689 
157690 --
157691 -- this ends the header loop iteration for one bulk fetch
157692 --
157693 END LOOP;
157694 
157695 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
157696 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
157697 
157698 --
157699 -- insert dummy rows into lines gt table that were created due to
157700 -- transaction reversals
157701 --
157702 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
157703    l_result := XLA_AE_LINES_PKG.InsertLines;
157704 END IF;
157705 
157706 --
157707 -- reset the temp_line_num for each set of events fetched from header
157711 xla_ae_lines_pkg.g_temp_line_num := 0;
157708 -- cursor rather than doing it for each new event in line cursor
157709 -- Bug 3939231
157710 --
157712 
157713 
157714 
157715 --
157716 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
157717 --
157718 --
157719 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157720 
157721       trace
157722          (p_msg      => 'SQL - FETCH line_cur'
157723          ,p_level    => C_LEVEL_STATEMENT
157724          ,p_module   => l_log_module);
157725 
157726 END IF;
157727 --
157728 --
157729 LOOP
157730   --
157731   FETCH line_cur BULK COLLECT INTO
157732         l_array_entity_id
157733       , l_array_legal_entity_id
157734       , l_array_entity_code
157735       , l_array_transaction_num
157736       , l_array_event_id
157737       , l_array_class_code
157738       , l_array_event_type
157739       , l_array_event_number
157740       , l_array_event_date
157741       , l_array_transaction_date
157742       , l_array_reference_num_1
157743       , l_array_reference_num_2
157744       , l_array_reference_num_3
157745       , l_array_reference_num_4
157746       , l_array_reference_char_1
157747       , l_array_reference_char_2
157748       , l_array_reference_char_3
157749       , l_array_reference_char_4
157750       , l_array_reference_date_1
157751       , l_array_reference_date_2
157752       , l_array_reference_date_3
157753       , l_array_reference_date_4
157754       , l_array_event_created_by
157755       , l_array_budgetary_control_flag
157756       , l_array_extract_line_num 
157757       , l_array_source_30
157758       , l_array_source_33
157759       , l_array_source_33_meaning
157760       , l_array_source_43
157761       , l_array_source_45
157762       , l_array_source_46
157763       , l_array_source_51
157764       , l_array_source_52
157765       , l_array_source_54
157766       , l_array_source_66
157767       , l_array_source_79
157768       , l_array_source_79_meaning
157769       , l_array_source_85
157770       , l_array_source_86
157771       , l_array_source_87
157772       , l_array_source_90
157773       , l_array_source_91
157774       , l_array_source_92
157775       , l_array_source_93
157776       , l_array_source_94
157777       , l_array_source_97
157778       , l_array_source_97_meaning
157779       , l_array_source_98
157780       , l_array_source_103
157781       , l_array_source_111
157782       , l_array_source_115
157783       , l_array_source_116
157784       , l_array_source_124
157785       , l_array_source_125
157786       , l_array_source_125_meaning
157787       , l_array_source_126
157788       , l_array_source_136
157789       , l_array_source_137
157790       , l_array_source_138
157791       , l_array_source_150
157792       , l_array_source_155
157793       , l_array_source_160
157794       , l_array_source_160_meaning
157795       , l_array_source_161
157796       , l_array_source_161_meaning
157797       LIMIT l_rows;
157798 
157799   --
157800   IF (C_LEVEL_EVENT >= g_log_level) THEN
157801             trace
157802                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
157803                ,p_level    => C_LEVEL_EVENT
157804                ,p_module   => l_log_module);
157805   END IF;
157806   --
157807   EXIT WHEN l_array_entity_id.count = 0;
157808 
157809   XLA_AE_LINES_PKG.g_rec_lines := null;
157810 
157811 --
157812 -- Bug 4458708
157813 --
157814 XLA_AE_LINES_PKG.g_LineNumber := 0;
157815 --
157816 --
157817 
157818 FOR Idx IN 1..l_array_event_id.count LOOP
157819    --
157820    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
157821    --
157822    l_event_id := l_array_event_id(idx);  -- 5648433
157823 
157824    --
157825    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
157826    --
157827 
157828    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
157829              (g_array_event(l_event_id).array_value_num('header_index'))
157830          ,'N'
157831          ) <> 'Y'
157832    THEN
157833       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157834          trace
157835             (p_msg      => 'Trancaction revesal option is not Y '
157836             ,p_level    => C_LEVEL_STATEMENT
157837             ,p_module   => l_log_module);
157838       END IF;
157839 
157840 --
157841 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
157842 --
157843 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
157844 --
157845 -- set event info as cache for other routines to refer event attributes
157846 --
157847 
157848 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
157849    l_previous_event_id := l_event_id;
157850 
157851    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
157852       (p_application_id           => p_application_id
157853       ,p_primary_ledger_id        => p_primary_ledger_id
157854       ,p_base_ledger_id           => p_base_ledger_id
157855       ,p_target_ledger_id         => p_target_ledger_id
157856       ,p_entity_id                => l_array_entity_id(Idx)
157857       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
157858       ,p_entity_code              => l_array_entity_code(Idx)
157859       ,p_transaction_num          => l_array_transaction_num(Idx)
157860       ,p_event_id                 => l_array_event_id(Idx)
157861       ,p_event_class_code         => l_array_class_code(Idx)
157862       ,p_event_type_code          => l_array_event_type(Idx)
157863       ,p_event_number             => l_array_event_number(Idx)
157864       ,p_event_date               => l_array_event_date(Idx)
157865       ,p_transaction_date         => l_array_transaction_date(Idx)
157869       ,p_reference_num_4          => l_array_reference_num_4(Idx)
157866       ,p_reference_num_1          => l_array_reference_num_1(Idx)
157867       ,p_reference_num_2          => l_array_reference_num_2(Idx)
157868       ,p_reference_num_3          => l_array_reference_num_3(Idx)
157870       ,p_reference_char_1         => l_array_reference_char_1(Idx)
157871       ,p_reference_char_2         => l_array_reference_char_2(Idx)
157872       ,p_reference_char_3         => l_array_reference_char_3(Idx)
157873       ,p_reference_char_4         => l_array_reference_char_4(Idx)
157874       ,p_reference_date_1         => l_array_reference_date_1(Idx)
157875       ,p_reference_date_2         => l_array_reference_date_2(Idx)
157876       ,p_reference_date_3         => l_array_reference_date_3(Idx)
157877       ,p_reference_date_4         => l_array_reference_date_4(Idx)
157878       ,p_event_created_by         => l_array_event_created_by(Idx)
157879       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
157880        --
157881 END IF;
157882 
157883 
157884 
157885 --
157886 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
157887 
157888 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
157889 
157890 IF l_continue_with_lines THEN
157891    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
157892       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157893 
157894       xla_accounting_err_pkg.build_message
157895          (p_appli_s_name            => 'XLA'
157896          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
157897          ,p_token_1                 => 'LINE_NUMBER'
157898          ,p_value_1                 => l_array_extract_line_num(Idx)
157899          ,p_token_2                 => 'PRODUCT_NAME'
157900          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157901          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157902          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157903          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157904 
157905    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
157906       --
157907       -- following sets the accounting attributes needed to reverse
157908       -- accounting for a distributeion
157909       --
157910 
157911       --
157912       -- 5217187
157913       --
157914       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
157915       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
157916                                        g_array_event(l_event_id).array_value_num('header_index'));
157917       --
157918       --
157919 
157920       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
157921       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
157922       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
157923       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_103(Idx);
157924       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
157925       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
157926       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
157927       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_82');
157928       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
157929       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_111(Idx);
157930       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
157931       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_54(Idx);
157932       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
157933       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_85(Idx);
157934       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
157935       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_86(Idx);
157936       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
157937       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_87(Idx);
157938 
157939 
157940       xla_ae_lines_pkg.SetAcctReversalAttrs
157941          (p_event_id             => l_event_id
157942          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
157943          ,p_calculate_acctd_flag => l_calculate_acctd_flag
157944          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
157945    END IF;
157946 
157947    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
157948        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
157949 
157950 --
157951 AcctLineType_68 (
157952  p_application_id  => p_application_id
157953  ,p_event_id     => l_event_id
157954  ,p_calculate_acctd_flag => l_calculate_acctd_flag
157955  ,p_calculate_g_l_flag => l_calculate_g_l_flag
157956  ,p_actual_flag => l_actual_flag
157957  ,p_balance_type_code => l_balance_type_code
157958  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
157959  
157960  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
157961  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
157962  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
157963  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
157964  , p_source_52 => l_array_source_52(Idx)
157965  , p_source_54 => l_array_source_54(Idx)
157966  , p_source_79 => l_array_source_79(Idx)
157967  , p_source_79_meaning => l_array_source_79_meaning(Idx)
157968  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
157969  , p_source_85 => l_array_source_85(Idx)
157970  , p_source_86 => l_array_source_86(Idx)
157971  , p_source_87 => l_array_source_87(Idx)
157972  , p_source_90 => l_array_source_90(Idx)
157973  , p_source_91 => l_array_source_91(Idx)
157974  , p_source_92 => l_array_source_92(Idx)
157975  , p_source_93 => l_array_source_93(Idx)
157979  , p_source_97_meaning => l_array_source_97_meaning(Idx)
157976  , p_source_94 => l_array_source_94(Idx)
157977  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
157978  , p_source_97 => l_array_source_97(Idx)
157980  , p_source_98 => l_array_source_98(Idx)
157981  , p_source_103 => l_array_source_103(Idx)
157982  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
157983  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
157984  , p_source_111 => l_array_source_111(Idx)
157985  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
157986  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
157987  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
157988  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
157989  , p_source_115 => l_array_source_115(Idx)
157990  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
157991  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
157992  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
157993  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
157994  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
157995  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
157996  , p_source_124 => l_array_source_124(Idx)
157997  );
157998 If(l_balance_type_code = 'A') THEN
157999   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158000 END IF;
158001 
158002 --
158003 
158004 
158005 --
158006 AcctLineType_69 (
158007  p_application_id  => p_application_id
158008  ,p_event_id     => l_event_id
158009  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158010  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158011  ,p_actual_flag => l_actual_flag
158012  ,p_balance_type_code => l_balance_type_code
158013  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158014  
158015  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158016  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158017  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158018  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158019  , p_source_52 => l_array_source_52(Idx)
158020  , p_source_54 => l_array_source_54(Idx)
158021  , p_source_79 => l_array_source_79(Idx)
158022  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158023  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158024  , p_source_85 => l_array_source_85(Idx)
158025  , p_source_86 => l_array_source_86(Idx)
158026  , p_source_87 => l_array_source_87(Idx)
158027  , p_source_90 => l_array_source_90(Idx)
158028  , p_source_91 => l_array_source_91(Idx)
158029  , p_source_92 => l_array_source_92(Idx)
158030  , p_source_93 => l_array_source_93(Idx)
158031  , p_source_94 => l_array_source_94(Idx)
158032  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158033  , p_source_97 => l_array_source_97(Idx)
158034  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158035  , p_source_98 => l_array_source_98(Idx)
158036  , p_source_103 => l_array_source_103(Idx)
158037  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158038  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158039  , p_source_111 => l_array_source_111(Idx)
158040  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158041  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158042  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158043  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158044  , p_source_115 => l_array_source_115(Idx)
158045  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158046  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158047  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158048  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158049  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158050  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158051  , p_source_124 => l_array_source_124(Idx)
158052  );
158053 If(l_balance_type_code = 'A') THEN
158054   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158055 END IF;
158056 
158057 --
158058 
158059 
158060 --
158061 AcctLineType_70 (
158062  p_application_id  => p_application_id
158063  ,p_event_id     => l_event_id
158064  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158065  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158066  ,p_actual_flag => l_actual_flag
158067  ,p_balance_type_code => l_balance_type_code
158068  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158069  
158070  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158071  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158072  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158073  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158074  , p_source_52 => l_array_source_52(Idx)
158075  , p_source_54 => l_array_source_54(Idx)
158076  , p_source_79 => l_array_source_79(Idx)
158077  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158078  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158079  , p_source_85 => l_array_source_85(Idx)
158080  , p_source_86 => l_array_source_86(Idx)
158081  , p_source_87 => l_array_source_87(Idx)
158082  , p_source_90 => l_array_source_90(Idx)
158083  , p_source_91 => l_array_source_91(Idx)
158084  , p_source_92 => l_array_source_92(Idx)
158085  , p_source_93 => l_array_source_93(Idx)
158086  , p_source_94 => l_array_source_94(Idx)
158087  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158088  , p_source_97 => l_array_source_97(Idx)
158092  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158089  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158090  , p_source_98 => l_array_source_98(Idx)
158091  , p_source_103 => l_array_source_103(Idx)
158093  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158094  , p_source_111 => l_array_source_111(Idx)
158095  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158096  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158097  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158098  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158099  , p_source_115 => l_array_source_115(Idx)
158100  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158101  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158102  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158103  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158104  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158105  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158106  , p_source_124 => l_array_source_124(Idx)
158107  );
158108 If(l_balance_type_code = 'A') THEN
158109   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158110 END IF;
158111 
158112 --
158113 
158114 
158115 --
158116 AcctLineType_71 (
158117  p_application_id  => p_application_id
158118  ,p_event_id     => l_event_id
158119  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158120  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158121  ,p_actual_flag => l_actual_flag
158122  ,p_balance_type_code => l_balance_type_code
158123  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158124  
158125  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158126  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158127  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158128  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158129  , p_source_52 => l_array_source_52(Idx)
158130  , p_source_54 => l_array_source_54(Idx)
158131  , p_source_79 => l_array_source_79(Idx)
158132  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158133  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158134  , p_source_85 => l_array_source_85(Idx)
158135  , p_source_86 => l_array_source_86(Idx)
158136  , p_source_87 => l_array_source_87(Idx)
158137  , p_source_90 => l_array_source_90(Idx)
158138  , p_source_91 => l_array_source_91(Idx)
158139  , p_source_92 => l_array_source_92(Idx)
158140  , p_source_93 => l_array_source_93(Idx)
158141  , p_source_94 => l_array_source_94(Idx)
158142  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158143  , p_source_97 => l_array_source_97(Idx)
158144  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158145  , p_source_98 => l_array_source_98(Idx)
158146  , p_source_103 => l_array_source_103(Idx)
158147  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158148  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158149  , p_source_111 => l_array_source_111(Idx)
158150  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158151  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158152  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158153  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158154  , p_source_116 => l_array_source_116(Idx)
158155  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158156  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158157  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158158  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158159  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158160  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158161  , p_source_124 => l_array_source_124(Idx)
158162  );
158163 If(l_balance_type_code = 'A') THEN
158164   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158165 END IF;
158166 
158167 --
158168 
158169 
158170 --
158171 AcctLineType_72 (
158172  p_application_id  => p_application_id
158173  ,p_event_id     => l_event_id
158174  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158175  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158176  ,p_actual_flag => l_actual_flag
158177  ,p_balance_type_code => l_balance_type_code
158178  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158179  
158180  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158181  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158182  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158183  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158184  , p_source_52 => l_array_source_52(Idx)
158185  , p_source_54 => l_array_source_54(Idx)
158186  , p_source_79 => l_array_source_79(Idx)
158187  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158188  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158189  , p_source_85 => l_array_source_85(Idx)
158190  , p_source_86 => l_array_source_86(Idx)
158191  , p_source_87 => l_array_source_87(Idx)
158192  , p_source_90 => l_array_source_90(Idx)
158193  , p_source_91 => l_array_source_91(Idx)
158194  , p_source_92 => l_array_source_92(Idx)
158195  , p_source_93 => l_array_source_93(Idx)
158196  , p_source_94 => l_array_source_94(Idx)
158197  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158198  , p_source_97 => l_array_source_97(Idx)
158199  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158200  , p_source_98 => l_array_source_98(Idx)
158201  , p_source_103 => l_array_source_103(Idx)
158205  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158202  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158203  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158204  , p_source_111 => l_array_source_111(Idx)
158206  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158207  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158208  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158209  , p_source_116 => l_array_source_116(Idx)
158210  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158211  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158212  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158213  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158214  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158215  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158216  , p_source_124 => l_array_source_124(Idx)
158217  );
158218 If(l_balance_type_code = 'A') THEN
158219   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158220 END IF;
158221 
158222 --
158223 
158224 
158225 --
158226 AcctLineType_73 (
158227  p_application_id  => p_application_id
158228  ,p_event_id     => l_event_id
158229  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158230  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158231  ,p_actual_flag => l_actual_flag
158232  ,p_balance_type_code => l_balance_type_code
158233  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158234  
158235  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158236  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158237  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
158238  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
158239  , p_source_52 => l_array_source_52(Idx)
158240  , p_source_54 => l_array_source_54(Idx)
158241  , p_source_79 => l_array_source_79(Idx)
158242  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158243  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158244  , p_source_85 => l_array_source_85(Idx)
158245  , p_source_86 => l_array_source_86(Idx)
158246  , p_source_87 => l_array_source_87(Idx)
158247  , p_source_90 => l_array_source_90(Idx)
158248  , p_source_91 => l_array_source_91(Idx)
158249  , p_source_92 => l_array_source_92(Idx)
158250  , p_source_93 => l_array_source_93(Idx)
158251  , p_source_94 => l_array_source_94(Idx)
158252  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158253  , p_source_97 => l_array_source_97(Idx)
158254  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158255  , p_source_98 => l_array_source_98(Idx)
158256  , p_source_103 => l_array_source_103(Idx)
158257  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158258  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158259  , p_source_111 => l_array_source_111(Idx)
158260  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158261  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158262  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158263  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158264  , p_source_116 => l_array_source_116(Idx)
158265  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158266  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158267  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158268  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158269  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158270  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158271  , p_source_124 => l_array_source_124(Idx)
158272  );
158273 If(l_balance_type_code = 'A') THEN
158274   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158275 END IF;
158276 
158277 --
158278 
158279 
158280 --
158281 AcctLineType_84 (
158282  p_application_id  => p_application_id
158283  ,p_event_id     => l_event_id
158284  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158285  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158286  ,p_actual_flag => l_actual_flag
158287  ,p_balance_type_code => l_balance_type_code
158288  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158289  
158290  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158291  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158292  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
158293  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
158294  , p_source_52 => l_array_source_52(Idx)
158295  , p_source_54 => l_array_source_54(Idx)
158296  , p_source_79 => l_array_source_79(Idx)
158297  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158298  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158299  , p_source_85 => l_array_source_85(Idx)
158300  , p_source_86 => l_array_source_86(Idx)
158301  , p_source_87 => l_array_source_87(Idx)
158302  , p_source_90 => l_array_source_90(Idx)
158303  , p_source_91 => l_array_source_91(Idx)
158304  , p_source_92 => l_array_source_92(Idx)
158305  , p_source_93 => l_array_source_93(Idx)
158306  , p_source_94 => l_array_source_94(Idx)
158307  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158308  , p_source_97 => l_array_source_97(Idx)
158309  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158310  , p_source_98 => l_array_source_98(Idx)
158311  , p_source_103 => l_array_source_103(Idx)
158312  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158313  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158314  , p_source_111 => l_array_source_111(Idx)
158318  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158315  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158316  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158317  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158319  , p_source_115 => l_array_source_115(Idx)
158320  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158321  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158322  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158323  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158324  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158325  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158326  , p_source_124 => l_array_source_124(Idx)
158327  );
158328 If(l_balance_type_code = 'A') THEN
158329   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158330 END IF;
158331 
158332 --
158333 
158334 
158335 --
158336 AcctLineType_85 (
158337  p_application_id  => p_application_id
158338  ,p_event_id     => l_event_id
158339  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158340  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158341  ,p_actual_flag => l_actual_flag
158342  ,p_balance_type_code => l_balance_type_code
158343  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158344  
158345  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158346  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158347  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158348  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158349  , p_source_52 => l_array_source_52(Idx)
158350  , p_source_54 => l_array_source_54(Idx)
158351  , p_source_79 => l_array_source_79(Idx)
158352  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158353  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158354  , p_source_85 => l_array_source_85(Idx)
158355  , p_source_86 => l_array_source_86(Idx)
158356  , p_source_87 => l_array_source_87(Idx)
158357  , p_source_90 => l_array_source_90(Idx)
158358  , p_source_91 => l_array_source_91(Idx)
158359  , p_source_92 => l_array_source_92(Idx)
158360  , p_source_93 => l_array_source_93(Idx)
158361  , p_source_94 => l_array_source_94(Idx)
158362  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158363  , p_source_97 => l_array_source_97(Idx)
158364  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158365  , p_source_98 => l_array_source_98(Idx)
158366  , p_source_103 => l_array_source_103(Idx)
158367  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158368  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158369  , p_source_111 => l_array_source_111(Idx)
158370  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158371  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158372  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158373  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158374  , p_source_115 => l_array_source_115(Idx)
158375  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158376  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158377  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158378  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158379  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158380  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158381  , p_source_124 => l_array_source_124(Idx)
158382  );
158383 If(l_balance_type_code = 'A') THEN
158384   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158385 END IF;
158386 
158387 --
158388 
158389 
158390 --
158391 AcctLineType_86 (
158392  p_application_id  => p_application_id
158393  ,p_event_id     => l_event_id
158394  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158395  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158396  ,p_actual_flag => l_actual_flag
158397  ,p_balance_type_code => l_balance_type_code
158398  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158399  
158400  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158401  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158402  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158403  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158404  , p_source_52 => l_array_source_52(Idx)
158405  , p_source_54 => l_array_source_54(Idx)
158406  , p_source_79 => l_array_source_79(Idx)
158407  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158408  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158409  , p_source_85 => l_array_source_85(Idx)
158410  , p_source_86 => l_array_source_86(Idx)
158411  , p_source_87 => l_array_source_87(Idx)
158412  , p_source_90 => l_array_source_90(Idx)
158413  , p_source_91 => l_array_source_91(Idx)
158414  , p_source_92 => l_array_source_92(Idx)
158415  , p_source_93 => l_array_source_93(Idx)
158416  , p_source_94 => l_array_source_94(Idx)
158417  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158418  , p_source_97 => l_array_source_97(Idx)
158419  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158420  , p_source_98 => l_array_source_98(Idx)
158421  , p_source_103 => l_array_source_103(Idx)
158422  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158423  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158424  , p_source_111 => l_array_source_111(Idx)
158425  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158426  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158430  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158427  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158428  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158429  , p_source_115 => l_array_source_115(Idx)
158431  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158432  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158433  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158434  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158435  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158436  , p_source_124 => l_array_source_124(Idx)
158437  );
158438 If(l_balance_type_code = 'A') THEN
158439   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158440 END IF;
158441 
158442 --
158443 
158444 
158445 --
158446 AcctLineType_96 (
158447  p_application_id  => p_application_id
158448  ,p_event_id     => l_event_id
158449  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158450  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158451  ,p_actual_flag => l_actual_flag
158452  ,p_balance_type_code => l_balance_type_code
158453  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158454  
158455  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158456  , p_source_33 => l_array_source_33(Idx)
158457  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158458  , p_source_52 => l_array_source_52(Idx)
158459  , p_source_54 => l_array_source_54(Idx)
158460  , p_source_79 => l_array_source_79(Idx)
158461  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158462  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158463  , p_source_85 => l_array_source_85(Idx)
158464  , p_source_86 => l_array_source_86(Idx)
158465  , p_source_87 => l_array_source_87(Idx)
158466  , p_source_90 => l_array_source_90(Idx)
158467  , p_source_91 => l_array_source_91(Idx)
158468  , p_source_92 => l_array_source_92(Idx)
158469  , p_source_93 => l_array_source_93(Idx)
158470  , p_source_94 => l_array_source_94(Idx)
158471  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158472  , p_source_97 => l_array_source_97(Idx)
158473  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158474  , p_source_98 => l_array_source_98(Idx)
158475  , p_source_103 => l_array_source_103(Idx)
158476  , p_source_111 => l_array_source_111(Idx)
158477  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158478  , p_source_116 => l_array_source_116(Idx)
158479  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158480  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158481  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158482  , p_source_124 => l_array_source_124(Idx)
158483  , p_source_125 => l_array_source_125(Idx)
158484  , p_source_125_meaning => l_array_source_125_meaning(Idx)
158485  , p_source_126 => l_array_source_126(Idx)
158486  );
158487 If(l_balance_type_code = 'A') THEN
158488   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158489 END IF;
158490 
158491 --
158492 
158493 
158494 --
158495 AcctLineType_100 (
158496  p_application_id  => p_application_id
158497  ,p_event_id     => l_event_id
158498  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158499  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158500  ,p_actual_flag => l_actual_flag
158501  ,p_balance_type_code => l_balance_type_code
158502  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158503  
158504  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158505  , p_source_33 => l_array_source_33(Idx)
158506  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158507  , p_source_51 => l_array_source_51(Idx)
158508  , p_source_52 => l_array_source_52(Idx)
158509  , p_source_54 => l_array_source_54(Idx)
158510  , p_source_79 => l_array_source_79(Idx)
158511  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158512  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158513  , p_source_85 => l_array_source_85(Idx)
158514  , p_source_86 => l_array_source_86(Idx)
158515  , p_source_87 => l_array_source_87(Idx)
158516  , p_source_90 => l_array_source_90(Idx)
158517  , p_source_91 => l_array_source_91(Idx)
158518  , p_source_92 => l_array_source_92(Idx)
158519  , p_source_93 => l_array_source_93(Idx)
158520  , p_source_94 => l_array_source_94(Idx)
158521  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158522  , p_source_97 => l_array_source_97(Idx)
158523  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158524  , p_source_98 => l_array_source_98(Idx)
158525  , p_source_103 => l_array_source_103(Idx)
158526  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158527  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158528  , p_source_111 => l_array_source_111(Idx)
158529  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158530  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158531  , p_source_116 => l_array_source_116(Idx)
158532  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158533  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158534  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158535  , p_source_124 => l_array_source_124(Idx)
158536  , p_source_125 => l_array_source_125(Idx)
158537  , p_source_125_meaning => l_array_source_125_meaning(Idx)
158538  , p_source_126 => l_array_source_126(Idx)
158539  , p_source_136 => l_array_source_136(Idx)
158540  , p_source_137 => l_array_source_137(Idx)
158541  , p_source_138 => l_array_source_138(Idx)
158542  );
158543 If(l_balance_type_code = 'A') THEN
158544   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158545 END IF;
158546 
158547 --
158548 
158549 
158550 --
158551 AcctLineType_103 (
158555  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158552  p_application_id  => p_application_id
158553  ,p_event_id     => l_event_id
158554  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158556  ,p_actual_flag => l_actual_flag
158557  ,p_balance_type_code => l_balance_type_code
158558  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158559  
158560  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158561  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158562  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158563  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
158564  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
158565  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
158566  , p_source_30 => l_array_source_30(Idx)
158567  , p_source_33 => l_array_source_33(Idx)
158568  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158569  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
158570  , p_source_45 => l_array_source_45(Idx)
158571  , p_source_46 => l_array_source_46(Idx)
158572  , p_source_52 => l_array_source_52(Idx)
158573  , p_source_54 => l_array_source_54(Idx)
158574  , p_source_79 => l_array_source_79(Idx)
158575  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158576  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158577  , p_source_85 => l_array_source_85(Idx)
158578  , p_source_86 => l_array_source_86(Idx)
158579  , p_source_87 => l_array_source_87(Idx)
158580  , p_source_90 => l_array_source_90(Idx)
158581  , p_source_91 => l_array_source_91(Idx)
158582  , p_source_92 => l_array_source_92(Idx)
158583  , p_source_93 => l_array_source_93(Idx)
158584  , p_source_94 => l_array_source_94(Idx)
158585  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158586  , p_source_97 => l_array_source_97(Idx)
158587  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158588  , p_source_98 => l_array_source_98(Idx)
158589  , p_source_103 => l_array_source_103(Idx)
158590  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158591  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158592  , p_source_111 => l_array_source_111(Idx)
158593  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158594  , p_source_115 => l_array_source_115(Idx)
158595  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158596  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158597  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158598  , p_source_124 => l_array_source_124(Idx)
158599  , p_source_136 => l_array_source_136(Idx)
158600  , p_source_137 => l_array_source_137(Idx)
158601  , p_source_138 => l_array_source_138(Idx)
158602  );
158603 If(l_balance_type_code = 'A') THEN
158604   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158605 END IF;
158606 
158607 --
158608 
158609 
158610 --
158611 AcctLineType_111 (
158612  p_application_id  => p_application_id
158613  ,p_event_id     => l_event_id
158614  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158615  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158616  ,p_actual_flag => l_actual_flag
158617  ,p_balance_type_code => l_balance_type_code
158618  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158619  
158620  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158621  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158622  , p_source_30 => l_array_source_30(Idx)
158623  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
158624  , p_source_52 => l_array_source_52(Idx)
158625  , p_source_54 => l_array_source_54(Idx)
158626  , p_source_66 => l_array_source_66(Idx)
158627  , p_source_79 => l_array_source_79(Idx)
158628  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158629  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158630  , p_source_85 => l_array_source_85(Idx)
158631  , p_source_86 => l_array_source_86(Idx)
158632  , p_source_87 => l_array_source_87(Idx)
158633  , p_source_90 => l_array_source_90(Idx)
158634  , p_source_91 => l_array_source_91(Idx)
158635  , p_source_92 => l_array_source_92(Idx)
158636  , p_source_93 => l_array_source_93(Idx)
158637  , p_source_94 => l_array_source_94(Idx)
158638  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158639  , p_source_97 => l_array_source_97(Idx)
158640  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158641  , p_source_98 => l_array_source_98(Idx)
158642  , p_source_103 => l_array_source_103(Idx)
158643  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158644  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158645  , p_source_111 => l_array_source_111(Idx)
158646  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158647  , p_source_116 => l_array_source_116(Idx)
158648  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158649  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158650  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158651  , p_source_124 => l_array_source_124(Idx)
158652  , p_source_136 => l_array_source_136(Idx)
158653  , p_source_137 => l_array_source_137(Idx)
158654  , p_source_138 => l_array_source_138(Idx)
158655  );
158656 If(l_balance_type_code = 'A') THEN
158657   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158658 END IF;
158659 
158660 --
158661 
158662 
158663 --
158664 AcctLineType_118 (
158665  p_application_id  => p_application_id
158666  ,p_event_id     => l_event_id
158667  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158668  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158669  ,p_actual_flag => l_actual_flag
158670  ,p_balance_type_code => l_balance_type_code
158671  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158672  
158676  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
158673  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158674  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158675  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158677  , p_source_25 => g_array_event(l_event_id).array_value_char('source_25')
158678  , p_source_25_meaning => g_array_event(l_event_id).array_value_char('source_25_meaning')
158679  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
158680  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
158681  , p_source_30 => l_array_source_30(Idx)
158682  , p_source_52 => l_array_source_52(Idx)
158683  , p_source_54 => l_array_source_54(Idx)
158684  , p_source_79 => l_array_source_79(Idx)
158685  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158686  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158687  , p_source_85 => l_array_source_85(Idx)
158688  , p_source_86 => l_array_source_86(Idx)
158689  , p_source_87 => l_array_source_87(Idx)
158690  , p_source_90 => l_array_source_90(Idx)
158691  , p_source_91 => l_array_source_91(Idx)
158692  , p_source_92 => l_array_source_92(Idx)
158693  , p_source_93 => l_array_source_93(Idx)
158694  , p_source_94 => l_array_source_94(Idx)
158695  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158696  , p_source_97 => l_array_source_97(Idx)
158697  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158698  , p_source_98 => l_array_source_98(Idx)
158699  , p_source_103 => l_array_source_103(Idx)
158700  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158701  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158702  , p_source_111 => l_array_source_111(Idx)
158703  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158704  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158705  , p_source_115 => l_array_source_115(Idx)
158706  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158707  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158708  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158709  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158710  , p_source_124 => l_array_source_124(Idx)
158711  );
158712 If(l_balance_type_code = 'A') THEN
158713   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158714 END IF;
158715 
158716 --
158717 
158718 
158719 --
158720 AcctLineType_119 (
158721  p_application_id  => p_application_id
158722  ,p_event_id     => l_event_id
158723  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158724  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158725  ,p_actual_flag => l_actual_flag
158726  ,p_balance_type_code => l_balance_type_code
158727  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158728  
158729  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158730  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158731  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158732  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
158733  , p_source_25 => g_array_event(l_event_id).array_value_char('source_25')
158734  , p_source_25_meaning => g_array_event(l_event_id).array_value_char('source_25_meaning')
158735  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
158736  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
158737  , p_source_30 => l_array_source_30(Idx)
158738  , p_source_52 => l_array_source_52(Idx)
158739  , p_source_54 => l_array_source_54(Idx)
158740  , p_source_79 => l_array_source_79(Idx)
158741  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158742  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158743  , p_source_85 => l_array_source_85(Idx)
158744  , p_source_86 => l_array_source_86(Idx)
158745  , p_source_87 => l_array_source_87(Idx)
158746  , p_source_90 => l_array_source_90(Idx)
158747  , p_source_91 => l_array_source_91(Idx)
158748  , p_source_92 => l_array_source_92(Idx)
158749  , p_source_93 => l_array_source_93(Idx)
158750  , p_source_94 => l_array_source_94(Idx)
158751  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158752  , p_source_97 => l_array_source_97(Idx)
158753  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158754  , p_source_98 => l_array_source_98(Idx)
158755  , p_source_103 => l_array_source_103(Idx)
158756  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158757  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158758  , p_source_111 => l_array_source_111(Idx)
158759  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158760  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158761  , p_source_116 => l_array_source_116(Idx)
158762  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158763  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158764  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158765  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158766  , p_source_124 => l_array_source_124(Idx)
158767  );
158768 If(l_balance_type_code = 'A') THEN
158769   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158770 END IF;
158771 
158772 --
158773 
158774 
158775 --
158776 AcctLineType_124 (
158777  p_application_id  => p_application_id
158778  ,p_event_id     => l_event_id
158779  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158780  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158781  ,p_actual_flag => l_actual_flag
158782  ,p_balance_type_code => l_balance_type_code
158783  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158784  
158785  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158786  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158790  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
158787  , p_source_30 => l_array_source_30(Idx)
158788  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
158789  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
158791  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
158792  , p_source_52 => l_array_source_52(Idx)
158793  , p_source_54 => l_array_source_54(Idx)
158794  , p_source_79 => l_array_source_79(Idx)
158795  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158796  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158797  , p_source_85 => l_array_source_85(Idx)
158798  , p_source_86 => l_array_source_86(Idx)
158799  , p_source_87 => l_array_source_87(Idx)
158800  , p_source_90 => l_array_source_90(Idx)
158801  , p_source_91 => l_array_source_91(Idx)
158802  , p_source_92 => l_array_source_92(Idx)
158803  , p_source_93 => l_array_source_93(Idx)
158804  , p_source_94 => l_array_source_94(Idx)
158805  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158806  , p_source_97 => l_array_source_97(Idx)
158807  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158808  , p_source_103 => l_array_source_103(Idx)
158809  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158810  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158811  , p_source_111 => l_array_source_111(Idx)
158812  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158813  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158814  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158815  , p_source_124 => l_array_source_124(Idx)
158816  , p_source_150 => l_array_source_150(Idx)
158817  );
158818 If(l_balance_type_code = 'A') THEN
158819   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158820 END IF;
158821 
158822 --
158823 
158824 
158825 --
158826 AcctLineType_129 (
158827  p_application_id  => p_application_id
158828  ,p_event_id     => l_event_id
158829  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158830  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158831  ,p_actual_flag => l_actual_flag
158832  ,p_balance_type_code => l_balance_type_code
158833  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158834  
158835  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158836  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158837  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158838  , p_source_30 => l_array_source_30(Idx)
158839  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
158840  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
158841  , p_source_52 => l_array_source_52(Idx)
158842  , p_source_54 => l_array_source_54(Idx)
158843  , p_source_79 => l_array_source_79(Idx)
158844  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158845  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158846  , p_source_85 => l_array_source_85(Idx)
158847  , p_source_86 => l_array_source_86(Idx)
158848  , p_source_87 => l_array_source_87(Idx)
158849  , p_source_90 => l_array_source_90(Idx)
158850  , p_source_91 => l_array_source_91(Idx)
158851  , p_source_92 => l_array_source_92(Idx)
158852  , p_source_93 => l_array_source_93(Idx)
158853  , p_source_94 => l_array_source_94(Idx)
158854  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158855  , p_source_97 => l_array_source_97(Idx)
158856  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158857  , p_source_98 => l_array_source_98(Idx)
158858  , p_source_103 => l_array_source_103(Idx)
158859  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158860  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158861  , p_source_111 => l_array_source_111(Idx)
158862  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158863  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158864  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158865  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158866  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158867  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158868  , p_source_124 => l_array_source_124(Idx)
158869  , p_source_150 => l_array_source_150(Idx)
158870  , p_source_155 => l_array_source_155(Idx)
158871  );
158872 If(l_balance_type_code = 'A') THEN
158873   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158874 END IF;
158875 
158876 --
158877 
158878 
158879 --
158880 AcctLineType_135 (
158881  p_application_id  => p_application_id
158882  ,p_event_id     => l_event_id
158883  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158884  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158885  ,p_actual_flag => l_actual_flag
158886  ,p_balance_type_code => l_balance_type_code
158887  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158888  
158889  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158890  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
158891  , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
158892  , p_source_30 => l_array_source_30(Idx)
158893  , p_source_33 => l_array_source_33(Idx)
158894  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158895  , p_source_52 => l_array_source_52(Idx)
158896  , p_source_54 => l_array_source_54(Idx)
158897  , p_source_79 => l_array_source_79(Idx)
158898  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158899  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158900  , p_source_85 => l_array_source_85(Idx)
158901  , p_source_86 => l_array_source_86(Idx)
158902  , p_source_87 => l_array_source_87(Idx)
158903  , p_source_90 => l_array_source_90(Idx)
158904  , p_source_91 => l_array_source_91(Idx)
158908  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158905  , p_source_92 => l_array_source_92(Idx)
158906  , p_source_93 => l_array_source_93(Idx)
158907  , p_source_94 => l_array_source_94(Idx)
158909  , p_source_97 => l_array_source_97(Idx)
158910  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158911  , p_source_98 => l_array_source_98(Idx)
158912  , p_source_103 => l_array_source_103(Idx)
158913  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
158914  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158915  , p_source_111 => l_array_source_111(Idx)
158916  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
158917  , p_source_115 => l_array_source_115(Idx)
158918  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158919  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158920  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158921  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158922  , p_source_124 => l_array_source_124(Idx)
158923  , p_source_160 => l_array_source_160(Idx)
158924  , p_source_160_meaning => l_array_source_160_meaning(Idx)
158925  );
158926 If(l_balance_type_code = 'A') THEN
158927   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158928 END IF;
158929 
158930 --
158931 
158932 
158933 --
158934 AcctLineType_144 (
158935  p_application_id  => p_application_id
158936  ,p_event_id     => l_event_id
158937  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158938  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158939  ,p_actual_flag => l_actual_flag
158940  ,p_balance_type_code => l_balance_type_code
158941  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158942  
158943  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158944  , p_source_52 => l_array_source_52(Idx)
158945  , p_source_54 => l_array_source_54(Idx)
158946  , p_source_79 => l_array_source_79(Idx)
158947  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158948  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158949  , p_source_85 => l_array_source_85(Idx)
158950  , p_source_86 => l_array_source_86(Idx)
158951  , p_source_87 => l_array_source_87(Idx)
158952  , p_source_90 => l_array_source_90(Idx)
158953  , p_source_91 => l_array_source_91(Idx)
158954  , p_source_92 => l_array_source_92(Idx)
158955  , p_source_93 => l_array_source_93(Idx)
158956  , p_source_94 => l_array_source_94(Idx)
158957  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
158958  , p_source_97 => l_array_source_97(Idx)
158959  , p_source_97_meaning => l_array_source_97_meaning(Idx)
158960  , p_source_98 => l_array_source_98(Idx)
158961  , p_source_103 => l_array_source_103(Idx)
158962  , p_source_111 => l_array_source_111(Idx)
158963  , p_source_116 => l_array_source_116(Idx)
158964  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158965  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158966  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158967  , p_source_124 => l_array_source_124(Idx)
158968  , p_source_160 => l_array_source_160(Idx)
158969  , p_source_160_meaning => l_array_source_160_meaning(Idx)
158970  , p_source_161 => l_array_source_161(Idx)
158971  , p_source_161_meaning => l_array_source_161_meaning(Idx)
158972  );
158973 If(l_balance_type_code = 'A') THEN
158974   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158975 END IF;
158976 
158977 --
158978 
158979 
158980 --
158981 AcctLineType_155 (
158982  p_application_id  => p_application_id
158983  ,p_event_id     => l_event_id
158984  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158985  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158986  ,p_actual_flag => l_actual_flag
158987  ,p_balance_type_code => l_balance_type_code
158988  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158989  
158990  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158991  , p_source_52 => l_array_source_52(Idx)
158992  , p_source_54 => l_array_source_54(Idx)
158993  , p_source_79 => l_array_source_79(Idx)
158994  , p_source_79_meaning => l_array_source_79_meaning(Idx)
158995  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
158996  , p_source_85 => l_array_source_85(Idx)
158997  , p_source_86 => l_array_source_86(Idx)
158998  , p_source_87 => l_array_source_87(Idx)
158999  , p_source_90 => l_array_source_90(Idx)
159000  , p_source_91 => l_array_source_91(Idx)
159001  , p_source_92 => l_array_source_92(Idx)
159002  , p_source_93 => l_array_source_93(Idx)
159003  , p_source_94 => l_array_source_94(Idx)
159004  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
159005  , p_source_97 => l_array_source_97(Idx)
159006  , p_source_97_meaning => l_array_source_97_meaning(Idx)
159007  , p_source_98 => l_array_source_98(Idx)
159008  , p_source_103 => l_array_source_103(Idx)
159009  , p_source_111 => l_array_source_111(Idx)
159010  , p_source_116 => l_array_source_116(Idx)
159011  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159012  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159013  , p_source_124 => l_array_source_124(Idx)
159014  , p_source_160 => l_array_source_160(Idx)
159015  , p_source_160_meaning => l_array_source_160_meaning(Idx)
159016  );
159017 If(l_balance_type_code = 'A') THEN
159018   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159019 END IF;
159020 
159021 --
159022 
159023 
159024 --
159025 AcctLineType_163 (
159026  p_application_id  => p_application_id
159027  ,p_event_id     => l_event_id
159028  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159029  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159030  ,p_actual_flag => l_actual_flag
159031  ,p_balance_type_code => l_balance_type_code
159032  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159033  
159037  , p_source_30 => l_array_source_30(Idx)
159034  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159035  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
159036  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
159038  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
159039  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
159040  , p_source_52 => l_array_source_52(Idx)
159041  , p_source_54 => l_array_source_54(Idx)
159042  , p_source_79 => l_array_source_79(Idx)
159043  , p_source_79_meaning => l_array_source_79_meaning(Idx)
159044  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
159045  , p_source_85 => l_array_source_85(Idx)
159046  , p_source_86 => l_array_source_86(Idx)
159047  , p_source_87 => l_array_source_87(Idx)
159048  , p_source_90 => l_array_source_90(Idx)
159049  , p_source_91 => l_array_source_91(Idx)
159050  , p_source_92 => l_array_source_92(Idx)
159051  , p_source_93 => l_array_source_93(Idx)
159052  , p_source_94 => l_array_source_94(Idx)
159053  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
159054  , p_source_97 => l_array_source_97(Idx)
159055  , p_source_97_meaning => l_array_source_97_meaning(Idx)
159056  , p_source_98 => l_array_source_98(Idx)
159057  , p_source_103 => l_array_source_103(Idx)
159058  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
159059  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
159060  , p_source_111 => l_array_source_111(Idx)
159061  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
159062  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
159063  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
159064  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
159065  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159066  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159067  , p_source_124 => l_array_source_124(Idx)
159068  , p_source_150 => l_array_source_150(Idx)
159069  , p_source_155 => l_array_source_155(Idx)
159070  );
159071 If(l_balance_type_code = 'A') THEN
159072   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159073 END IF;
159074 
159075 --
159076 
159077 
159078 --
159079 AcctLineType_221 (
159080  p_application_id  => p_application_id
159081  ,p_event_id     => l_event_id
159082  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159083  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159084  ,p_actual_flag => l_actual_flag
159085  ,p_balance_type_code => l_balance_type_code
159086  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159087  
159088  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159089  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
159090  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
159091  , p_source_30 => l_array_source_30(Idx)
159092  , p_source_43 => l_array_source_43(Idx)
159093  , p_source_52 => l_array_source_52(Idx)
159094  , p_source_54 => l_array_source_54(Idx)
159095  , p_source_79 => l_array_source_79(Idx)
159096  , p_source_79_meaning => l_array_source_79_meaning(Idx)
159097  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
159098  , p_source_85 => l_array_source_85(Idx)
159099  , p_source_86 => l_array_source_86(Idx)
159100  , p_source_87 => l_array_source_87(Idx)
159101  , p_source_90 => l_array_source_90(Idx)
159102  , p_source_91 => l_array_source_91(Idx)
159103  , p_source_92 => l_array_source_92(Idx)
159104  , p_source_93 => l_array_source_93(Idx)
159105  , p_source_94 => l_array_source_94(Idx)
159106  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
159107  , p_source_97 => l_array_source_97(Idx)
159108  , p_source_97_meaning => l_array_source_97_meaning(Idx)
159109  , p_source_98 => l_array_source_98(Idx)
159110  , p_source_103 => l_array_source_103(Idx)
159111  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
159112  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
159113  , p_source_111 => l_array_source_111(Idx)
159114  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
159115  , p_source_116 => l_array_source_116(Idx)
159116  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159117  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159118  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
159119  , p_source_124 => l_array_source_124(Idx)
159120  , p_source_136 => l_array_source_136(Idx)
159121  , p_source_137 => l_array_source_137(Idx)
159122  , p_source_138 => l_array_source_138(Idx)
159123  , p_source_161 => l_array_source_161(Idx)
159124  , p_source_161_meaning => l_array_source_161_meaning(Idx)
159125  );
159126 If(l_balance_type_code = 'A') THEN
159127   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159128 END IF;
159129 
159130 --
159131 
159132       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
159133       -- or secondary ledger that has different currency with primary
159134       -- or alc that is calculated by sla
159135       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
159136             (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'))
159137 
159138 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
159139 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
159140           AND (l_actual_flag = 'A')) THEN
159141         XLA_AE_LINES_PKG.CreateGainOrLossLines(
159142           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
159143          ,p_application_id   => p_application_id
159144          ,p_amb_context_code => 'DEFAULT'
159148          
159145          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
159146          ,p_event_class_code => C_EVENT_CLASS_CODE
159147          ,p_event_type_code  => C_EVENT_TYPE_CODE
159149          ,p_gain_ccid        => -1
159150          ,p_loss_ccid        => -1
159151 
159152          ,p_actual_flag      => l_actual_flag
159153          ,p_enc_flag         => null
159154          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
159155          ,p_enc_g_l_ref      => null
159156          );
159157       END IF;
159158    END IF;
159159 END IF;
159160 
159161    ELSE
159162       --
159163       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
159164       --
159165       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159166          trace
159167             (p_msg      => 'Trancaction revesal option is Y'
159168             ,p_level    => C_LEVEL_STATEMENT
159169             ,p_module   => l_log_module);
159170       END IF;
159171    END IF;
159172 
159173 END LOOP;
159174 l_result := XLA_AE_LINES_PKG.InsertLines ;
159175 end loop;
159176 close line_cur;
159177 
159178 
159179 --
159180 -- insert headers into xla_ae_headers_gt table
159181 --
159182 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
159183 
159184 -- insert into errors table here.
159185 
159186 END LOOP;
159187 
159188 --
159189 -- 4865292
159190 --
159191 -- Compare g_hdr_extract_count with event count in
159192 -- CreateHeadersAndLines.
159193 --
159194 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
159195 
159196 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159197    trace (p_msg     => '# rows extracted from header extract objects '
159198                     || ' (running total): '
159199                     || g_hdr_extract_count
159200          ,p_level   => C_LEVEL_STATEMENT
159201          ,p_module  => l_log_module);
159202 END IF;
159203 
159204 CLOSE header_cur;
159205 --
159206 
159207 --
159208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159209    trace
159210       (p_msg      => 'END of EventClass_230'
159211       ,p_level    => C_LEVEL_PROCEDURE
159212       ,p_module   => l_log_module);
159213 END IF;
159214 --
159215 RETURN l_result;
159216 EXCEPTION
159217 WHEN xla_exceptions_pkg.application_exception THEN
159218    
159219 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
159220 
159221    
159222 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
159223 
159224    RAISE;
159225 
159226 WHEN NO_DATA_FOUND THEN
159227 
159228 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
159229 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
159230 
159231 FOR header_record IN header_cur
159232 LOOP
159233     l_array_header_events(header_record.event_id) := header_record.event_id;
159234 END LOOP;
159235 
159236 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
159237 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
159238 
159239 fnd_file.put_line(fnd_file.LOG, '                    ');
159240 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
159241 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
159242 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
159243 
159244 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
159245 LOOP
159246 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
159247 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
159248         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
159249 	END IF;
159250 END LOOP;
159251 
159252 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
159253 fnd_file.put_line(fnd_file.LOG, '                    ');
159254 
159255 
159256 xla_exceptions_pkg.raise_message
159257       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_230');
159258 
159259 
159260 WHEN OTHERS THEN
159261    xla_exceptions_pkg.raise_message
159262       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_230');
159263 END EventClass_230;
159264 --
159265 
159266 ---------------------------------------
159267 --
159268 -- PRIVATE PROCEDURE
159269 --         insert_sources_231
159270 --
159271 ----------------------------------------
159272 --
159273 PROCEDURE insert_sources_231(
159274                                 p_target_ledger_id       IN NUMBER
159275                               , p_language               IN VARCHAR2
159276                               , p_sla_ledger_id          IN NUMBER
159277                               , p_pad_start_date         IN DATE
159278                               , p_pad_end_date           IN DATE
159279                          )
159280 IS
159281 
159282 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
159283 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
159284 p_apps_owner                   VARCHAR2(30);
159285 l_log_module                   VARCHAR2(240);
159286 BEGIN
159287 IF g_log_enabled THEN
159288       l_log_module := C_DEFAULT_MODULE||'.insert_sources_231';
159289 END IF;
159290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159291 
159292       trace
159293          (p_msg      => 'BEGIN of insert_sources_231'
159294          ,p_level    => C_LEVEL_PROCEDURE
159295          ,p_module   => l_log_module);
159296 
159297 END IF;
159298 
159299 -- select APPS owner
159300 SELECT oracle_username
159301   INTO p_apps_owner
159302   FROM fnd_oracle_userid
159303  WHERE read_only_flag = 'U'
159304 ;
159305 
159309                         ' - p_language = '||p_language||
159306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159307       trace
159308          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
159310                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
159311                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
159312                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
159313                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
159314          ,p_level    => C_LEVEL_STATEMENT
159315          ,p_module   => l_log_module);
159316 END IF;
159317 
159318 
159319 --
159320 INSERT INTO xla_diag_sources --hdr2
159321 (
159322         event_id
159323       , ledger_id
159324       , sla_ledger_id
159325       , description_language
159326       , object_name
159327       , object_type_code
159328       , line_number
159329       , source_application_id
159330       , source_type_code
159331       , source_code
159332       , source_value
159333       , source_meaning
159334       , created_by
159335       , creation_date
159336       , last_update_date
159337       , last_updated_by
159338       , last_update_login
159339       , program_update_date
159340       , program_application_id
159341       , program_id
159342       , request_id
159343 )
159344 SELECT
159345         event_id
159346       , p_target_ledger_id
159347       , p_sla_ledger_id
159348       , p_language
159349       , object_name
159350       , object_type_code
159351       , line_number
159352       , source_application_id
159353       , source_type_code
159354       , source_code
159355       , SUBSTR(source_value ,1,1996)
159356       , SUBSTR(source_meaning ,1,200)
159357       , xla_environment_pkg.g_Usr_Id
159358       , TRUNC(SYSDATE)
159359       , TRUNC(SYSDATE)
159360       , xla_environment_pkg.g_Usr_Id
159361       , xla_environment_pkg.g_Login_Id
159362       , TRUNC(SYSDATE)
159363       , xla_environment_pkg.g_Prog_Appl_Id
159364       , xla_environment_pkg.g_Prog_Id
159365       , xla_environment_pkg.g_Req_Id
159366   FROM (
159367        SELECT xet.event_id                  event_id
159368             , 0                          line_number
159369             , CASE r
159370                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159371                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159372                 WHEN 3 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159373                 WHEN 4 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159374                 WHEN 5 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159375                 WHEN 6 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159376                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159377                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159378                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159379                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159380                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159381                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159382                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159383                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159384                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159385                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159386                 
159387                ELSE null
159388               END                           object_name
159389             , CASE r
159390                 WHEN 1 THEN 'HEADER' 
159391                 WHEN 2 THEN 'HEADER' 
159392                 WHEN 3 THEN 'HEADER' 
159393                 WHEN 4 THEN 'HEADER' 
159394                 WHEN 5 THEN 'HEADER' 
159395                 WHEN 6 THEN 'HEADER' 
159396                 WHEN 7 THEN 'HEADER' 
159397                 WHEN 8 THEN 'HEADER' 
159398                 WHEN 9 THEN 'HEADER' 
159399                 WHEN 10 THEN 'HEADER' 
159400                 WHEN 11 THEN 'HEADER' 
159401                 WHEN 12 THEN 'HEADER' 
159402                 WHEN 13 THEN 'HEADER' 
159403                 WHEN 14 THEN 'HEADER' 
159404                 WHEN 15 THEN 'HEADER' 
159405                 WHEN 16 THEN 'HEADER' 
159406                 
159407                 ELSE null
159408               END                           object_type_code
159409             , CASE r
159410                 WHEN 1 THEN '200' 
159411                 WHEN 2 THEN '200' 
159412                 WHEN 3 THEN '200' 
159413                 WHEN 4 THEN '200' 
159414                 WHEN 5 THEN '200' 
159415                 WHEN 6 THEN '200' 
159416                 WHEN 7 THEN '200' 
159417                 WHEN 8 THEN '200' 
159418                 WHEN 9 THEN '200' 
159419                 WHEN 10 THEN '200' 
159420                 WHEN 11 THEN '200' 
159421                 WHEN 12 THEN '200' 
159422                 WHEN 13 THEN '200' 
159423                 WHEN 14 THEN '200' 
159424                 WHEN 15 THEN '200' 
159425                 WHEN 16 THEN '200' 
159426                 
159427                 ELSE null
159428               END                           source_application_id
159429             , 'S'             source_type_code
159430             , CASE r
159431                 WHEN 1 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
159432                 WHEN 2 THEN 'INV_DOC_SEQUENCE_VALUE' 
159433                 WHEN 3 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
159434                 WHEN 4 THEN 'ASP_GAIN_CCID' 
159435                 WHEN 5 THEN 'ASP_LOSS_CCID' 
159436                 WHEN 6 THEN 'ASP_PREPAY_TAX_DIFF_CCID' 
159437                 WHEN 7 THEN 'ASP_ROUNDING_ERROR_CCID' 
159438                 WHEN 8 THEN 'AI_INVOICE_ID' 
159439                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
159440                 WHEN 10 THEN 'AI_VENDOR_ID' 
159441                 WHEN 11 THEN 'AI_VENDOR_SITE_ID' 
159442                 WHEN 12 THEN 'THIRD_PARTY_TYPE' 
159443                 WHEN 13 THEN 'INV_EXCHANGE_DATE' 
159447                 
159444                 WHEN 14 THEN 'INV_EXCHANGE_RATE' 
159445                 WHEN 15 THEN 'INV_EXCHANGE_RATE_TYPE' 
159446                 WHEN 16 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
159448                 ELSE null
159449               END                           source_code
159450             , CASE r
159451                 WHEN 1 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
159452                 WHEN 2 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
159453                 WHEN 3 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
159454                 WHEN 4 THEN TO_CHAR(h4.ASP_GAIN_CCID)
159455                 WHEN 5 THEN TO_CHAR(h4.ASP_LOSS_CCID)
159456                 WHEN 6 THEN TO_CHAR(h4.ASP_PREPAY_TAX_DIFF_CCID)
159457                 WHEN 7 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
159458                 WHEN 8 THEN TO_CHAR(h1.AI_INVOICE_ID)
159459                 WHEN 9 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
159460                 WHEN 10 THEN TO_CHAR(h1.AI_VENDOR_ID)
159461                 WHEN 11 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
159462                 WHEN 12 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
159463                 WHEN 13 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
159464                 WHEN 14 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
159465                 WHEN 15 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
159466                 WHEN 16 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
159467                 
159468                 ELSE null
159469               END                           source_value
159470             , CASE r
159471                 WHEN 3 THEN fvl15.meaning
159472                 
159473                 ELSE null
159474               END               source_meaning
159475          FROM xla_events_gt     xet  
159476       , AP_INVOICE_EXTRACT_HEADER_V  h1
159477       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
159478   , fnd_lookup_values    fvl15
159479              ,(select rownum r from all_objects where rownum <= 16 and owner = p_apps_owner)
159480          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159481            AND xet.event_class_code = C_EVENT_CLASS_CODE
159482               AND h1.event_id = xet.event_id
159483  AND h4.asp_org_id = h1.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
159484   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
159485   AND fvl15.view_application_id(+) = 200
159486   AND fvl15.language(+)            = USERENV('LANG')
159487   
159488 )
159489 ;
159490 --
159491 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159492 
159493       trace
159494          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
159495          ,p_level    => C_LEVEL_STATEMENT
159496          ,p_module   => l_log_module);
159497 
159498 END IF;
159499 --
159500 
159501 
159502 
159503 --
159504 INSERT INTO xla_diag_sources  --line2
159505 (
159506         event_id
159507       , ledger_id
159508       , sla_ledger_id
159509       , description_language
159510       , object_name
159511       , object_type_code
159512       , line_number
159513       , source_application_id
159514       , source_type_code
159515       , source_code
159516       , source_value
159517       , source_meaning
159518       , created_by
159519       , creation_date
159520       , last_update_date
159521       , last_updated_by
159522       , last_update_login
159523       , program_update_date
159524       , program_application_id
159525       , program_id
159526       , request_id
159527 )
159528 SELECT  event_id
159529       , p_target_ledger_id
159530       , p_sla_ledger_id
159531       , p_language
159532       , object_name
159533       , object_type_code
159534       , line_number
159535       , source_application_id
159536       , source_type_code
159537       , source_code
159538       , SUBSTR(source_value,1,1996)
159539       , SUBSTR(source_meaning ,1,200)
159540       , xla_environment_pkg.g_Usr_Id
159541       , TRUNC(SYSDATE)
159542       , TRUNC(SYSDATE)
159543       , xla_environment_pkg.g_Usr_Id
159544       , xla_environment_pkg.g_Login_Id
159545       , TRUNC(SYSDATE)
159546       , xla_environment_pkg.g_Prog_Appl_Id
159547       , xla_environment_pkg.g_Prog_Id
159548       , xla_environment_pkg.g_Req_Id
159549   FROM (
159550        SELECT xet.event_id                  event_id
159551             , l2.line_number                 line_number
159552             , CASE r
159553                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159554                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159555                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159556                 WHEN 4 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159557                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159558                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159559                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159560                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159561                 WHEN 9 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159562                 WHEN 10 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159563                 WHEN 11 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159564                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159565                 WHEN 13 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159566                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159567                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159568                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159569                 WHEN 17 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159570                 WHEN 18 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159571                 WHEN 19 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
159572                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159573                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159574                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159575                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159579                 WHEN 27 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159576                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159577                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159578                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159580                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159581                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159582                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159583                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159584                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159585                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159586                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159587                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159588                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159589                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159590                 WHEN 38 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159591                 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159592                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159593                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159594                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159595                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159596                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159597                 WHEN 45 THEN 'AP_PREPAY_DEF_TAX_EXTRACT_V' 
159598                 
159599                ELSE null
159600               END                           object_name
159601             , CASE r
159602                 WHEN 1 THEN 'LINE' 
159603                 WHEN 2 THEN 'LINE' 
159604                 WHEN 3 THEN 'LINE' 
159605                 WHEN 4 THEN 'LINE' 
159606                 WHEN 5 THEN 'LINE' 
159607                 WHEN 6 THEN 'LINE' 
159608                 WHEN 7 THEN 'LINE' 
159609                 WHEN 8 THEN 'LINE' 
159610                 WHEN 9 THEN 'LINE' 
159611                 WHEN 10 THEN 'LINE' 
159612                 WHEN 11 THEN 'LINE' 
159613                 WHEN 12 THEN 'LINE' 
159614                 WHEN 13 THEN 'LINE' 
159615                 WHEN 14 THEN 'LINE' 
159616                 WHEN 15 THEN 'LINE' 
159617                 WHEN 16 THEN 'LINE' 
159618                 WHEN 17 THEN 'LINE' 
159619                 WHEN 18 THEN 'LINE' 
159620                 WHEN 19 THEN 'LINE' 
159621                 WHEN 20 THEN 'LINE' 
159622                 WHEN 21 THEN 'LINE' 
159623                 WHEN 22 THEN 'LINE' 
159624                 WHEN 23 THEN 'LINE' 
159625                 WHEN 24 THEN 'LINE' 
159626                 WHEN 25 THEN 'LINE' 
159627                 WHEN 26 THEN 'LINE' 
159628                 WHEN 27 THEN 'LINE' 
159629                 WHEN 28 THEN 'LINE' 
159630                 WHEN 29 THEN 'LINE' 
159631                 WHEN 30 THEN 'LINE' 
159632                 WHEN 31 THEN 'LINE' 
159633                 WHEN 32 THEN 'LINE' 
159634                 WHEN 33 THEN 'LINE' 
159635                 WHEN 34 THEN 'LINE' 
159636                 WHEN 35 THEN 'LINE' 
159637                 WHEN 36 THEN 'LINE' 
159638                 WHEN 37 THEN 'LINE' 
159639                 WHEN 38 THEN 'LINE' 
159640                 WHEN 39 THEN 'LINE' 
159641                 WHEN 40 THEN 'LINE' 
159642                 WHEN 41 THEN 'LINE' 
159643                 WHEN 42 THEN 'LINE' 
159644                 WHEN 43 THEN 'LINE' 
159645                 WHEN 44 THEN 'LINE' 
159646                 WHEN 45 THEN 'LINE' 
159647                 
159648                 ELSE null
159649               END                           object_type_code
159650             , CASE r
159651                 WHEN 1 THEN '200' 
159652                 WHEN 2 THEN '200' 
159653                 WHEN 3 THEN '200' 
159654                 WHEN 4 THEN '200' 
159655                 WHEN 5 THEN '200' 
159656                 WHEN 6 THEN '200' 
159657                 WHEN 7 THEN '200' 
159658                 WHEN 8 THEN '200' 
159659                 WHEN 9 THEN '200' 
159660                 WHEN 10 THEN '200' 
159661                 WHEN 11 THEN '200' 
159662                 WHEN 12 THEN '200' 
159663                 WHEN 13 THEN '200' 
159664                 WHEN 14 THEN '200' 
159665                 WHEN 15 THEN '200' 
159666                 WHEN 16 THEN '200' 
159667                 WHEN 17 THEN '200' 
159668                 WHEN 18 THEN '200' 
159669                 WHEN 19 THEN '200' 
159670                 WHEN 20 THEN '200' 
159671                 WHEN 21 THEN '200' 
159672                 WHEN 22 THEN '200' 
159673                 WHEN 23 THEN '200' 
159674                 WHEN 24 THEN '200' 
159675                 WHEN 25 THEN '200' 
159676                 WHEN 26 THEN '200' 
159677                 WHEN 27 THEN '200' 
159678                 WHEN 28 THEN '200' 
159679                 WHEN 29 THEN '200' 
159680                 WHEN 30 THEN '200' 
159681                 WHEN 31 THEN '200' 
159682                 WHEN 32 THEN '200' 
159683                 WHEN 33 THEN '200' 
159684                 WHEN 34 THEN '200' 
159685                 WHEN 35 THEN '200' 
159686                 WHEN 36 THEN '200' 
159687                 WHEN 37 THEN '200' 
159688                 WHEN 38 THEN '200' 
159689                 WHEN 39 THEN '200' 
159690                 WHEN 40 THEN '200' 
159691                 WHEN 41 THEN '200' 
159692                 WHEN 42 THEN '200' 
159693                 WHEN 43 THEN '200' 
159694                 WHEN 44 THEN '200' 
159695                 WHEN 45 THEN '200' 
159696                 
159697                 ELSE null
159698               END                           source_application_id
159699             , 'S'             source_type_code
159700             , CASE r
159701                 WHEN 1 THEN 'AID_DIST_CCID' 
159702                 WHEN 2 THEN 'CGAC_GAIN_CCID' 
159703                 WHEN 3 THEN 'CGAC_LOSS_CCID' 
159707                 WHEN 7 THEN 'UPG_ENC_CR_CCID' 
159704                 WHEN 4 THEN 'TAX_ACCOUNT_CCID' 
159705                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
159706                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
159708                 WHEN 8 THEN 'UPG_ENC_CR_AMT' 
159709                 WHEN 9 THEN 'UPG_ENC_CR_BASE_AMT' 
159710                 WHEN 10 THEN 'UPG_ENC_DR_CCID' 
159711                 WHEN 11 THEN 'UPG_ENC_DR_AMT' 
159712                 WHEN 12 THEN 'UPG_ENC_DR_BASE_AMT' 
159713                 WHEN 13 THEN 'UPG_AP_ENCUM_OPTION' 
159714                 WHEN 14 THEN 'DEFERRED_END_DATE' 
159715                 WHEN 15 THEN 'DEFERRED_OPTION' 
159716                 WHEN 16 THEN 'DEFERRED_START_DATE' 
159717                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
159718                 WHEN 18 THEN 'TAX_LINE_ID' 
159719                 WHEN 19 THEN 'REC_NREC_TAX_DIST_ID' 
159720                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
159721                 WHEN 21 THEN 'UPG_CR_ENC_TYPE_ID' 
159722                 WHEN 22 THEN 'UPG_DR_ENC_TYPE_ID' 
159723                 WHEN 23 THEN 'BUS_FLOW_AP_APP_ID' 
159724                 WHEN 24 THEN 'BUS_FLOW_INV_DIST_TYPE' 
159725                 WHEN 25 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
159726                 WHEN 26 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
159727                 WHEN 27 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
159728                 WHEN 28 THEN 'BF_PREPAY_REC_DIST_ID' 
159729                 WHEN 29 THEN 'BF_PREPAY_REC_INV' 
159730                 WHEN 30 THEN 'UPG_ENC_CR_ACCT_CLASS' 
159731                 WHEN 31 THEN 'UPG_ENC_DR_ACCT_CLASS' 
159732                 WHEN 32 THEN 'APAD_AMOUNT' 
159733                 WHEN 33 THEN 'APAD_BASE_AMOUNT' 
159734                 WHEN 34 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
159735                 WHEN 35 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
159736                 WHEN 36 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
159737                 WHEN 37 THEN 'BF_ACCRUAL_PP_DIST_ID' 
159738                 WHEN 38 THEN 'BF_ACCRUAL_PP_INV' 
159739                 WHEN 39 THEN 'APAD_DIST_LOOKUP_CODE' 
159740                 WHEN 40 THEN 'BASE_AMT_AT_PP_XRATE' 
159741                 WHEN 41 THEN 'AID_PROJECT_ID' 
159742                 WHEN 42 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
159743                 WHEN 43 THEN 'APAD_BASE_AMOUNT_DIFF' 
159744                 WHEN 44 THEN 'INV_PREPMT_GAIN_LOSS_INDICATOR' 
159745                 WHEN 45 THEN 'DEF_REC_PP_SET_OPTION_CODE' 
159746                 
159747                 ELSE null
159748               END                           source_code
159749             , CASE r
159750                 WHEN 1 THEN TO_CHAR(l2.AID_DIST_CCID)
159751                 WHEN 2 THEN TO_CHAR(l2.CGAC_GAIN_CCID)
159752                 WHEN 3 THEN TO_CHAR(l2.CGAC_LOSS_CCID)
159753                 WHEN 4 THEN TO_CHAR(l5.TAX_ACCOUNT_CCID)
159754                 WHEN 5 THEN TO_CHAR(l2.DIST_ACCOUNT_REVERSAL_OPTION)
159755                 WHEN 6 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
159756                 WHEN 7 THEN TO_CHAR(l2.UPG_ENC_CR_CCID)
159757                 WHEN 8 THEN TO_CHAR(l2.UPG_ENC_CR_AMT)
159758                 WHEN 9 THEN TO_CHAR(l2.UPG_ENC_CR_BASE_AMT)
159759                 WHEN 10 THEN TO_CHAR(l2.UPG_ENC_DR_CCID)
159760                 WHEN 11 THEN TO_CHAR(l2.UPG_ENC_DR_AMT)
159761                 WHEN 12 THEN TO_CHAR(l2.UPG_ENC_DR_BASE_AMT)
159762                 WHEN 13 THEN TO_CHAR(l2.UPG_AP_ENCUM_OPTION)
159763                 WHEN 14 THEN TO_CHAR(l2.DEFERRED_END_DATE)
159764                 WHEN 15 THEN TO_CHAR(l2.DEFERRED_OPTION)
159765                 WHEN 16 THEN TO_CHAR(l2.DEFERRED_START_DATE)
159766                 WHEN 17 THEN TO_CHAR(l2.OVERRIDE_ACCTD_AMT_FLAG)
159767                 WHEN 18 THEN TO_CHAR(l5.TAX_LINE_ID)
159768                 WHEN 19 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
159769                 WHEN 20 THEN TO_CHAR(l2.SUMMARY_TAX_LINE_ID)
159770                 WHEN 21 THEN TO_CHAR(l2.UPG_CR_ENC_TYPE_ID)
159771                 WHEN 22 THEN TO_CHAR(l2.UPG_DR_ENC_TYPE_ID)
159772                 WHEN 23 THEN TO_CHAR(l2.BUS_FLOW_AP_APP_ID)
159773                 WHEN 24 THEN TO_CHAR(l2.BUS_FLOW_INV_DIST_TYPE)
159774                 WHEN 25 THEN TO_CHAR(l2.BUS_FLOW_INV_ENTITY_CODE)
159775                 WHEN 26 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
159776                 WHEN 27 THEN TO_CHAR(l2.APAD_DISTRIBUTION_IDENTIFIER)
159777                 WHEN 28 THEN TO_CHAR(l2.BF_PREPAY_REC_DIST_ID)
159778                 WHEN 29 THEN TO_CHAR(l2.BF_PREPAY_REC_INV)
159779                 WHEN 30 THEN TO_CHAR(l2.UPG_ENC_CR_ACCT_CLASS)
159780                 WHEN 31 THEN TO_CHAR(l2.UPG_ENC_DR_ACCT_CLASS)
159781                 WHEN 32 THEN TO_CHAR(l2.APAD_AMOUNT)
159782                 WHEN 33 THEN TO_CHAR(l2.APAD_BASE_AMOUNT)
159783                 WHEN 34 THEN TO_CHAR(l2.REVERSED_PREPAY_APP_DIST_ID)
159784                 WHEN 35 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_DIST_TYPE)
159785                 WHEN 36 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_ENTITY_CODE)
159786                 WHEN 37 THEN TO_CHAR(l2.BF_ACCRUAL_PP_DIST_ID)
159787                 WHEN 38 THEN TO_CHAR(l2.BF_ACCRUAL_PP_INV)
159788                 WHEN 39 THEN TO_CHAR(l2.APAD_DIST_LOOKUP_CODE)
159789                 WHEN 40 THEN TO_CHAR(l2.BASE_AMT_AT_PP_XRATE)
159790                 WHEN 41 THEN TO_CHAR(l2.AID_PROJECT_ID)
159791                 WHEN 42 THEN TO_CHAR(l2.BASE_AMT_AT_PP_PAY_XRATE)
159792                 WHEN 43 THEN TO_CHAR(l2.APAD_BASE_AMOUNT_DIFF)
159793                 WHEN 44 THEN TO_CHAR(l2.INV_PREPMT_GAIN_LOSS_INDICATOR)
159794                 WHEN 45 THEN TO_CHAR(l3.DEF_REC_PP_SET_OPTION_CODE)
159795                 
159796                 ELSE null
159797               END                           source_value
159798             , CASE r
159799                 WHEN 17 THEN fvl79.meaning
159800                 WHEN 26 THEN fvl125.meaning
159801                 WHEN 45 THEN fvl165.meaning
159802                 
159803                 ELSE null
159804               END               source_meaning
159805          FROM  xla_events_gt     xet  
159806         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
159807         , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
159811   , fnd_lookup_values    fvl125
159808         , ZX_AP_DEF_TAX_EXTRACT_V  l5
159809         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
159810   , fnd_lookup_values    fvl79
159812   , fnd_lookup_values    fvl165
159813             , (select rownum r from all_objects where rownum <= 45 and owner = p_apps_owner)
159814         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159815           AND xet.event_class_code = C_EVENT_CLASS_CODE
159816             AND l2.event_id          = xet.event_id
159817  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 fvl79.lookup_type(+)         = 'YES_NO'
159818   AND fvl79.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
159819   AND fvl79.view_application_id(+) = 0
159820   AND fvl79.language(+)            = USERENV('LANG')
159821      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159822   AND fvl125.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
159823   AND fvl125.view_application_id(+) = 0
159824   AND fvl125.language(+)            = USERENV('LANG')
159825      AND fvl165.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159826   AND fvl165.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
159827   AND fvl165.view_application_id(+) = 0
159828   AND fvl165.language(+)            = USERENV('LANG')
159829   
159830 )
159831 ;
159832 --
159833 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159834 
159835       trace
159836          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
159837          ,p_level    => C_LEVEL_STATEMENT
159838          ,p_module   => l_log_module);
159839 
159840 END IF;
159841 
159842 
159843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159844       trace
159845          (p_msg      => 'END of insert_sources_231'
159846          ,p_level    => C_LEVEL_PROCEDURE
159847          ,p_module   => l_log_module);
159848 END IF;
159849 EXCEPTION
159850   WHEN xla_exceptions_pkg.application_exception THEN
159851       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159852             trace
159853                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159854                ,p_level    => C_LEVEL_EXCEPTION
159855                ,p_module   => l_log_module);
159856       END IF;
159857       RAISE;
159858   WHEN OTHERS THEN
159859       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159860             trace
159861                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159862                ,p_level    => C_LEVEL_EXCEPTION
159863                ,p_module   => l_log_module);
159864        END IF;
159865        xla_exceptions_pkg.raise_message
159866            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_231');
159867 END insert_sources_231;
159868 --
159869 
159870 ---------------------------------------
159871 --
159872 -- PRIVATE FUNCTION
159873 --         EventClass_231
159874 --
159875 ----------------------------------------
159876 --
159877 FUNCTION EventClass_231
159878        (p_application_id         IN NUMBER
159879        ,p_base_ledger_id         IN NUMBER
159880        ,p_target_ledger_id       IN NUMBER
159881        ,p_language               IN VARCHAR2
159882        ,p_currency_code          IN VARCHAR2
159883        ,p_sla_ledger_id          IN NUMBER
159884        ,p_pad_start_date         IN DATE
159885        ,p_pad_end_date           IN DATE
159886        ,p_primary_ledger_id      IN NUMBER)
159887 RETURN BOOLEAN IS
159888 --
159889 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
159890 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
159891 
159892 l_calculate_acctd_flag   VARCHAR2(1) :='N';
159893 l_calculate_g_l_flag     VARCHAR2(1) :='N';
159894 --
159895 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159896 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159897 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159898 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159899 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159900 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159901 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159902 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159903 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159904 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159905 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159906 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159907 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159908 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159909 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159910 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159911 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159912 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159913 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159914 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159915 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159916 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
159917 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
159918 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159919 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
159920 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
159921 
159922 l_event_id                             NUMBER;
159923 l_previous_event_id                    NUMBER;
159927 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
159924 l_first_event_id                       NUMBER;
159925 l_last_event_id                        NUMBER;
159926 
159928 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
159929 --
159930 --
159931 l_result                    BOOLEAN := TRUE;
159932 l_rows                      NUMBER  := 1000;
159933 l_event_type_name           VARCHAR2(80) := 'All';
159934 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
159935 l_description               VARCHAR2(4000);
159936 l_transaction_reversal      NUMBER;
159937 l_ae_header_id              NUMBER;
159938 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
159939 l_log_module                VARCHAR2(240);
159940 --
159941 l_acct_reversal_source      VARCHAR2(30);
159942 l_trx_reversal_source       VARCHAR2(30);
159943 
159944 l_continue_with_lines       BOOLEAN := TRUE;
159945 --
159946 l_acc_rev_gl_date_source    DATE;                      -- 4262811
159947 --
159948 type t_array_event_id is table of number index by binary_integer;
159949 
159950 l_rec_array_event                    t_rec_array_event;
159951 l_null_rec_array_event               t_rec_array_event;
159952 l_array_ae_header_id                 xla_number_array_type;
159953 l_actual_flag                        VARCHAR2(1) := NULL;
159954 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
159955 l_balance_type_code                  VARCHAR2(1) :=NULL;
159956 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
159957 
159958 --
159959 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
159960 --
159961 
159962 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
159963 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
159964 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
159965 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
159966 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
159967 TYPE t_array_source_41 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PREPAY_TAX_DIFF_CCID%TYPE INDEX BY BINARY_INTEGER;
159968 TYPE t_array_source_48 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
159969 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
159970 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
159971 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
159972 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
159973 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
159974 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
159975 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
159976 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
159977 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
159978 
159979 TYPE t_array_source_30 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
159980 TYPE t_array_source_36 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
159981 TYPE t_array_source_38 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
159982 TYPE t_array_source_51 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
159983 TYPE t_array_source_52 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
159984 TYPE t_array_source_54 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
159985 TYPE t_array_source_64 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
159986 TYPE t_array_source_65 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
159987 TYPE t_array_source_67 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
159988 TYPE t_array_source_68 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
159989 TYPE t_array_source_69 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
159990 TYPE t_array_source_70 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
159991 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
159992 TYPE t_array_source_76 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
159993 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
159994 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
159995 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
159996 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
159997 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
159998 TYPE t_array_source_87 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
159999 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
160000 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
160001 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
160005 TYPE t_array_source_127 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
160002 TYPE t_array_source_91 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
160003 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
160004 TYPE t_array_source_125 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
160006 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160007 TYPE t_array_source_129 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_INV%TYPE INDEX BY BINARY_INTEGER;
160008 TYPE t_array_source_130 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
160009 TYPE t_array_source_131 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
160010 TYPE t_array_source_132 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
160011 TYPE t_array_source_133 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
160012 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160013 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
160014 TYPE t_array_source_140 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
160015 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160016 TYPE t_array_source_142 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
160017 TYPE t_array_source_143 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
160018 TYPE t_array_source_144 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_XRATE%TYPE INDEX BY BINARY_INTEGER;
160019 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
160020 TYPE t_array_source_147 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
160021 TYPE t_array_source_152 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT_DIFF%TYPE INDEX BY BINARY_INTEGER;
160022 TYPE t_array_source_159 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_PREPMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
160023 TYPE t_array_source_165 IS TABLE OF AP_PREPAY_DEF_TAX_EXTRACT_V.DEF_REC_PP_SET_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
160024 
160025 l_array_source_5              t_array_source_5;
160026 l_array_source_7              t_array_source_7;
160027 l_array_source_15              t_array_source_15;
160028 l_array_source_15_meaning      t_array_lookup_meaning;
160029 l_array_source_37              t_array_source_37;
160030 l_array_source_39              t_array_source_39;
160031 l_array_source_41              t_array_source_41;
160032 l_array_source_48              t_array_source_48;
160033 l_array_source_57              t_array_source_57;
160034 l_array_source_66              t_array_source_66;
160035 l_array_source_80              t_array_source_80;
160036 l_array_source_81              t_array_source_81;
160037 l_array_source_82              t_array_source_82;
160038 l_array_source_136              t_array_source_136;
160039 l_array_source_137              t_array_source_137;
160040 l_array_source_138              t_array_source_138;
160041 l_array_source_168              t_array_source_168;
160042 
160043 l_array_source_30      t_array_source_30;
160044 l_array_source_36      t_array_source_36;
160045 l_array_source_38      t_array_source_38;
160046 l_array_source_51      t_array_source_51;
160047 l_array_source_52      t_array_source_52;
160048 l_array_source_54      t_array_source_54;
160049 l_array_source_64      t_array_source_64;
160050 l_array_source_65      t_array_source_65;
160051 l_array_source_67      t_array_source_67;
160052 l_array_source_68      t_array_source_68;
160053 l_array_source_69      t_array_source_69;
160054 l_array_source_70      t_array_source_70;
160055 l_array_source_71      t_array_source_71;
160056 l_array_source_76      t_array_source_76;
160057 l_array_source_77      t_array_source_77;
160058 l_array_source_78      t_array_source_78;
160059 l_array_source_79      t_array_source_79;
160060 l_array_source_79_meaning      t_array_lookup_meaning;
160061 l_array_source_85      t_array_source_85;
160062 l_array_source_86      t_array_source_86;
160063 l_array_source_87      t_array_source_87;
160064 l_array_source_88      t_array_source_88;
160065 l_array_source_89      t_array_source_89;
160066 l_array_source_90      t_array_source_90;
160067 l_array_source_91      t_array_source_91;
160068 l_array_source_92      t_array_source_92;
160069 l_array_source_125      t_array_source_125;
160070 l_array_source_125_meaning      t_array_lookup_meaning;
160071 l_array_source_127      t_array_source_127;
160072 l_array_source_128      t_array_source_128;
160073 l_array_source_129      t_array_source_129;
160074 l_array_source_130      t_array_source_130;
160075 l_array_source_131      t_array_source_131;
160076 l_array_source_132      t_array_source_132;
160077 l_array_source_133      t_array_source_133;
160078 l_array_source_134      t_array_source_134;
160079 l_array_source_139      t_array_source_139;
160080 l_array_source_140      t_array_source_140;
160081 l_array_source_141      t_array_source_141;
160082 l_array_source_142      t_array_source_142;
160083 l_array_source_143      t_array_source_143;
160084 l_array_source_144      t_array_source_144;
160085 l_array_source_146      t_array_source_146;
160086 l_array_source_147      t_array_source_147;
160087 l_array_source_152      t_array_source_152;
160088 l_array_source_159      t_array_source_159;
160089 l_array_source_165      t_array_source_165;
160090 l_array_source_165_meaning      t_array_lookup_meaning;
160091 
160092 --
160093 CURSOR header_cur
160094 IS
160095 SELECT /*+ leading(xet) cardinality(xet,1) */
160096 -- Event Class Code: PREPAYMENT APPLICATIONS
160097     xet.entity_id
160101    ,xet.event_id
160098    ,xet.legal_entity_id
160099    ,xet.entity_code
160100    ,xet.transaction_number
160102    ,xet.event_class_code
160103    ,xet.event_type_code
160104    ,xet.event_number
160105    ,xet.event_date
160106    ,xet.transaction_date
160107    ,xet.reference_num_1
160108    ,xet.reference_num_2
160109    ,xet.reference_num_3
160110    ,xet.reference_num_4
160111    ,xet.reference_char_1
160112    ,xet.reference_char_2
160113    ,xet.reference_char_3
160114    ,xet.reference_char_4
160115    ,xet.reference_date_1
160116    ,xet.reference_date_2
160117    ,xet.reference_date_3
160118    ,xet.reference_date_4
160119    ,xet.event_created_by
160120    ,xet.budgetary_control_flag 
160121   , h1.INV_DOC_SEQUENCE_CATEGORY    source_5
160122   , h1.INV_DOC_SEQUENCE_VALUE    source_7
160123   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
160124   , fvl15.meaning   source_15_meaning
160125   , h4.ASP_GAIN_CCID    source_37
160126   , h4.ASP_LOSS_CCID    source_39
160127   , h4.ASP_PREPAY_TAX_DIFF_CCID    source_41
160128   , h4.ASP_ROUNDING_ERROR_CCID    source_48
160129   , h1.AI_INVOICE_ID    source_57
160130   , h1.AI_INVOICE_CURRENCY_CODE    source_66
160131   , h1.AI_VENDOR_ID    source_80
160132   , h1.AI_VENDOR_SITE_ID    source_81
160133   , h1.THIRD_PARTY_TYPE    source_82
160134   , h1.INV_EXCHANGE_DATE    source_136
160135   , h1.INV_EXCHANGE_RATE    source_137
160136   , h1.INV_EXCHANGE_RATE_TYPE    source_138
160137   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_168
160138   FROM xla_events_gt     xet 
160139   , AP_INVOICE_EXTRACT_HEADER_V  h1
160140   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
160141   , fnd_lookup_values    fvl15
160142  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
160143    and xet.event_class_code = C_EVENT_CLASS_CODE
160144    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
160145  AND h4.asp_org_id = h1.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
160146   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
160147   AND fvl15.view_application_id(+) = 200
160148   AND fvl15.language(+)            = USERENV('LANG')
160149   
160150  ORDER BY event_id
160151 ;
160152 
160153 
160154 --
160155 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
160156 IS
160157 SELECT  /*+ leading(xet) cardinality(xet,1) */
160158 -- Event Class Code: PREPAYMENT APPLICATIONS
160159     xet.entity_id
160160    ,xet.legal_entity_id
160161    ,xet.entity_code
160162    ,xet.transaction_number
160163    ,xet.event_id
160164    ,xet.event_class_code
160165    ,xet.event_type_code
160166    ,xet.event_number
160167    ,xet.event_date
160168    ,xet.transaction_date
160169    ,xet.reference_num_1
160170    ,xet.reference_num_2
160171    ,xet.reference_num_3
160172    ,xet.reference_num_4
160173    ,xet.reference_char_1
160174    ,xet.reference_char_2
160175    ,xet.reference_char_3
160176    ,xet.reference_char_4
160177    ,xet.reference_date_1
160178    ,xet.reference_date_2
160179    ,xet.reference_date_3
160180    ,xet.reference_date_4
160181    ,xet.event_created_by
160182    ,xet.budgetary_control_flag
160183  , l2.LINE_NUMBER  
160184   , l2.AID_DIST_CCID    source_30
160185   , l2.CGAC_GAIN_CCID    source_36
160186   , l2.CGAC_LOSS_CCID    source_38
160187   , l5.TAX_ACCOUNT_CCID    source_51
160188   , l2.DIST_ACCOUNT_REVERSAL_OPTION    source_52
160189   , l2.DISTRIBUTION_LINK_TYPE    source_54
160190   , l2.UPG_ENC_CR_CCID    source_64
160191   , l2.UPG_ENC_CR_AMT    source_65
160192   , l2.UPG_ENC_CR_BASE_AMT    source_67
160193   , l2.UPG_ENC_DR_CCID    source_68
160194   , l2.UPG_ENC_DR_AMT    source_69
160195   , l2.UPG_ENC_DR_BASE_AMT    source_70
160196   , l2.UPG_AP_ENCUM_OPTION    source_71
160197   , l2.DEFERRED_END_DATE    source_76
160198   , l2.DEFERRED_OPTION    source_77
160199   , l2.DEFERRED_START_DATE    source_78
160200   , l2.OVERRIDE_ACCTD_AMT_FLAG    source_79
160201   , fvl79.meaning   source_79_meaning
160202   , l5.TAX_LINE_ID    source_85
160203   , l6.REC_NREC_TAX_DIST_ID    source_86
160204   , l2.SUMMARY_TAX_LINE_ID    source_87
160205   , l2.UPG_CR_ENC_TYPE_ID    source_88
160206   , l2.UPG_DR_ENC_TYPE_ID    source_89
160207   , l2.BUS_FLOW_AP_APP_ID    source_90
160208   , l2.BUS_FLOW_INV_DIST_TYPE    source_91
160209   , l2.BUS_FLOW_INV_ENTITY_CODE    source_92
160210   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_125
160211   , fvl125.meaning   source_125_meaning
160212   , l2.APAD_DISTRIBUTION_IDENTIFIER    source_127
160213   , l2.BF_PREPAY_REC_DIST_ID    source_128
160214   , l2.BF_PREPAY_REC_INV    source_129
160215   , l2.UPG_ENC_CR_ACCT_CLASS    source_130
160216   , l2.UPG_ENC_DR_ACCT_CLASS    source_131
160217   , l2.APAD_AMOUNT    source_132
160218   , l2.APAD_BASE_AMOUNT    source_133
160219   , l2.REVERSED_PREPAY_APP_DIST_ID    source_134
160220   , l2.BF_ACCRUAL_PREPAY_DIST_TYPE    source_139
160221   , l2.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_140
160222   , l2.BF_ACCRUAL_PP_DIST_ID    source_141
160223   , l2.BF_ACCRUAL_PP_INV    source_142
160224   , l2.APAD_DIST_LOOKUP_CODE    source_143
160225   , l2.BASE_AMT_AT_PP_XRATE    source_144
160226   , l2.AID_PROJECT_ID    source_146
160227   , l2.BASE_AMT_AT_PP_PAY_XRATE    source_147
160228   , l2.APAD_BASE_AMOUNT_DIFF    source_152
160229   , l2.INV_PREPMT_GAIN_LOSS_INDICATOR    source_159
160230   , l3.DEF_REC_PP_SET_OPTION_CODE    source_165
160231   , fvl165.meaning   source_165_meaning
160232   FROM xla_events_gt     xet 
160233   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
160234   , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
160235   , ZX_AP_DEF_TAX_EXTRACT_V  l5
160236   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
160237   , fnd_lookup_values    fvl79
160238   , fnd_lookup_values    fvl125
160239   , fnd_lookup_values    fvl165
160240  WHERE xet.event_id between x_first_event_id and x_last_event_id
160241    and xet.event_date between p_pad_start_date and p_pad_end_date
160245   AND fvl79.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
160242    and xet.event_class_code = C_EVENT_CLASS_CODE
160243    and xet.event_status_code <> 'N'   AND l2.event_id      = xet.event_id
160244  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 fvl79.lookup_type(+)         = 'YES_NO'
160246   AND fvl79.view_application_id(+) = 0
160247   AND fvl79.language(+)            = USERENV('LANG')
160248      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
160249   AND fvl125.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
160250   AND fvl125.view_application_id(+) = 0
160251   AND fvl125.language(+)            = USERENV('LANG')
160252      AND fvl165.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
160253   AND fvl165.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
160254   AND fvl165.view_application_id(+) = 0
160255   AND fvl165.language(+)            = USERENV('LANG')
160256   ;
160257 
160258 --
160259 BEGIN
160260 IF g_log_enabled THEN
160261    l_log_module := C_DEFAULT_MODULE||'.EventClass_231';
160262 END IF;
160263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
160264    trace
160265       (p_msg      => 'BEGIN of EventClass_231'
160266       ,p_level    => C_LEVEL_PROCEDURE
160267       ,p_module   => l_log_module);
160268 END IF;
160269 
160270 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160271    trace
160272       (p_msg      => 'p_application_id = '||p_application_id||
160273                      ' - p_base_ledger_id = '||p_base_ledger_id||
160274                      ' - p_target_ledger_id  = '||p_target_ledger_id||
160275                      ' - p_language = '||p_language||
160276                      ' - p_currency_code = '||p_currency_code||
160277                      ' - p_sla_ledger_id = '||p_sla_ledger_id
160278       ,p_level    => C_LEVEL_STATEMENT
160279       ,p_module   => l_log_module);
160280 END IF;
160281 --
160282 -- initialze arrays
160283 --
160284 g_array_event.DELETE;
160285 l_rec_array_event := l_null_rec_array_event;
160286 --
160287 --------------------------------------
160288 -- 4262811 Initialze MPA Line Number
160289 --------------------------------------
160290 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
160291 
160292 --
160293 
160294 --
160295 OPEN header_cur;
160296 --
160297 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160298    trace
160299    (p_msg      => 'SQL - FETCH header_cur'
160300    ,p_level    => C_LEVEL_STATEMENT
160301    ,p_module   => l_log_module);
160302 END IF;
160303 --
160304 LOOP
160305 FETCH header_cur BULK COLLECT INTO
160306         l_array_entity_id
160307       , l_array_legal_entity_id
160308       , l_array_entity_code
160309       , l_array_transaction_num
160310       , l_array_event_id
160311       , l_array_class_code
160312       , l_array_event_type
160313       , l_array_event_number
160314       , l_array_event_date
160315       , l_array_transaction_date
160316       , l_array_reference_num_1
160317       , l_array_reference_num_2
160318       , l_array_reference_num_3
160319       , l_array_reference_num_4
160320       , l_array_reference_char_1
160321       , l_array_reference_char_2
160322       , l_array_reference_char_3
160323       , l_array_reference_char_4
160324       , l_array_reference_date_1
160325       , l_array_reference_date_2
160326       , l_array_reference_date_3
160327       , l_array_reference_date_4
160328       , l_array_event_created_by
160329       , l_array_budgetary_control_flag 
160330       , l_array_source_5
160331       , l_array_source_7
160332       , l_array_source_15
160333       , l_array_source_15_meaning
160334       , l_array_source_37
160335       , l_array_source_39
160336       , l_array_source_41
160337       , l_array_source_48
160338       , l_array_source_57
160339       , l_array_source_66
160340       , l_array_source_80
160341       , l_array_source_81
160342       , l_array_source_82
160343       , l_array_source_136
160344       , l_array_source_137
160345       , l_array_source_138
160346       , l_array_source_168
160347       LIMIT l_rows;
160348 --
160349 IF (C_LEVEL_EVENT >= g_log_level) THEN
160350    trace
160351    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
160352    ,p_level    => C_LEVEL_EVENT
160353    ,p_module   => l_log_module);
160354 END IF;
160355 --
160356 EXIT WHEN l_array_entity_id.COUNT = 0;
160357 
160358 -- initialize arrays
160359 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
160360 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
160361 
160362 --
160363 -- Bug 4458708
160364 --
160365 XLA_AE_LINES_PKG.g_LineNumber := 0;
160366 
160367 
160368 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
160369 g_last_hdr_idx := l_array_event_id.LAST;
160370 --
160371 -- loop for the headers. Each iteration is for each header extract row
160372 -- fetched in header cursor
160373 --
160374 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
160375 
160376 --
160377 -- set event info as cache for other routines to refer event attributes
160378 --
160379 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
160380    (p_application_id           => p_application_id
160381    ,p_primary_ledger_id        => p_primary_ledger_id
160382    ,p_base_ledger_id           => p_base_ledger_id
160383    ,p_target_ledger_id         => p_target_ledger_id
160384    ,p_entity_id                => l_array_entity_id(hdr_idx)
160385    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
160386    ,p_entity_code              => l_array_entity_code(hdr_idx)
160387    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
160388    ,p_event_id                 => l_array_event_id(hdr_idx)
160392    ,p_event_date               => l_array_event_date(hdr_idx)
160389    ,p_event_class_code         => l_array_class_code(hdr_idx)
160390    ,p_event_type_code          => l_array_event_type(hdr_idx)
160391    ,p_event_number             => l_array_event_number(hdr_idx)
160393    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
160394    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
160395    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
160396    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
160397    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
160398    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
160399    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
160400    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
160401    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
160402    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
160403    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
160404    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
160405    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
160406    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
160407    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
160408 
160409 --
160410 -- set the status of entry to C_VALID (0)
160411 --
160412 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160413 
160414 --
160415 -- initialize a row for ae header
160416 --
160417 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
160418 
160419 l_event_id := l_array_event_id(hdr_idx);
160420 
160421 --
160422 -- storing the hdr_idx for event. May be used by line cursor.
160423 --
160424 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
160425 
160426 --
160427 -- store sources from header extract. This can be improved to
160428 -- store only those sources from header extract that may be used in lines
160429 --
160430 
160431 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
160432 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
160433 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
160434 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
160435 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
160436 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
160437 g_array_event(l_event_id).array_value_num('source_41') := l_array_source_41(hdr_idx);
160438 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
160439 g_array_event(l_event_id).array_value_num('source_57') := l_array_source_57(hdr_idx);
160440 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
160441 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
160442 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
160443 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
160444 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
160445 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
160446 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
160447 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
160448 
160449 --
160450 -- initilaize the status of ae headers for diffrent balance types
160451 -- the status is initialised to C_NOT_CREATED (2)
160452 --
160453 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160454 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160455 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160456 
160457 --
160458 -- call api to validate and store accounting attributes for header
160459 --
160460 
160461 ------------------------------------------------------------
160462 -- Accrual Reversal : to get date for Standard Source (NONE)
160463 ------------------------------------------------------------
160464 l_acc_rev_gl_date_source := NULL;
160465 
160466      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
160467       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
160468      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
160469       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
160470      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
160471       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
160472      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
160473       l_rec_acct_attrs.array_date_value(4) := 
160474 xla_ae_sources_pkg.GetSystemSourceDate(
160475    p_source_code           => 'XLA_EVENT_DATE'
160476  , p_source_type_code      => 'Y'
160477  , p_source_application_id =>  602
160478 );
160479 
160480 
160481 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
160482 
160483 XLA_AE_HEADER_PKG.SetJeCategoryName;
160484 
160485 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
160486 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
160487 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
160488 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
160489 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
160490 
160491 
160492 -- No header level analytical criteria
160493 
160494 --
160495 --accounting attribute enhancement, bug 3612931
160496 --
160497 l_trx_reversal_source := SUBSTR(NULL, 1,30);
160501 
160498 
160499 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
160500    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160502    xla_accounting_err_pkg.build_message
160503       (p_appli_s_name            => 'XLA'
160504       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
160505       ,p_token_1                 => 'ACCT_ATTR_NAME'
160506       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
160507       ,p_token_2                 => 'PRODUCT_NAME'
160508       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160509       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160510       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160511       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160512 
160513 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
160514    --
160515    -- following sets the accounting attributes needed to reverse
160516    -- accounting for a distributeion
160517    --
160518    xla_ae_lines_pkg.SetTrxReversalAttrs
160519       (p_event_id              => l_event_id
160520       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
160521       ,p_trx_reversal_source   => l_trx_reversal_source);
160522 
160523 END IF;
160524 
160525 
160526 ----------------------------------------------------------------
160527 -- 4262811 -  update the header statuses to invalid in need be
160528 ----------------------------------------------------------------
160529 --
160530 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
160531 
160532 
160533   -----------------------------------------------
160534   -- No accrual reversal for the event class/type
160535   -----------------------------------------------
160536 ----------------------------------------------------------------
160537 
160538 --
160539 -- this ends the header loop iteration for one bulk fetch
160540 --
160541 END LOOP;
160542 
160543 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
160544 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
160545 
160546 --
160547 -- insert dummy rows into lines gt table that were created due to
160548 -- transaction reversals
160549 --
160550 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
160551    l_result := XLA_AE_LINES_PKG.InsertLines;
160552 END IF;
160553 
160554 --
160555 -- reset the temp_line_num for each set of events fetched from header
160556 -- cursor rather than doing it for each new event in line cursor
160557 -- Bug 3939231
160558 --
160559 xla_ae_lines_pkg.g_temp_line_num := 0;
160560 
160561 
160562 
160563 --
160564 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
160565 --
160566 --
160567 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160568 
160569       trace
160570          (p_msg      => 'SQL - FETCH line_cur'
160571          ,p_level    => C_LEVEL_STATEMENT
160572          ,p_module   => l_log_module);
160573 
160574 END IF;
160575 --
160576 --
160577 LOOP
160578   --
160579   FETCH line_cur BULK COLLECT INTO
160580         l_array_entity_id
160581       , l_array_legal_entity_id
160582       , l_array_entity_code
160583       , l_array_transaction_num
160584       , l_array_event_id
160585       , l_array_class_code
160586       , l_array_event_type
160587       , l_array_event_number
160588       , l_array_event_date
160589       , l_array_transaction_date
160590       , l_array_reference_num_1
160591       , l_array_reference_num_2
160592       , l_array_reference_num_3
160593       , l_array_reference_num_4
160594       , l_array_reference_char_1
160595       , l_array_reference_char_2
160596       , l_array_reference_char_3
160597       , l_array_reference_char_4
160598       , l_array_reference_date_1
160599       , l_array_reference_date_2
160600       , l_array_reference_date_3
160601       , l_array_reference_date_4
160602       , l_array_event_created_by
160603       , l_array_budgetary_control_flag
160604       , l_array_extract_line_num 
160605       , l_array_source_30
160606       , l_array_source_36
160607       , l_array_source_38
160608       , l_array_source_51
160609       , l_array_source_52
160610       , l_array_source_54
160611       , l_array_source_64
160612       , l_array_source_65
160613       , l_array_source_67
160614       , l_array_source_68
160615       , l_array_source_69
160616       , l_array_source_70
160617       , l_array_source_71
160618       , l_array_source_76
160619       , l_array_source_77
160620       , l_array_source_78
160621       , l_array_source_79
160622       , l_array_source_79_meaning
160623       , l_array_source_85
160624       , l_array_source_86
160625       , l_array_source_87
160626       , l_array_source_88
160627       , l_array_source_89
160628       , l_array_source_90
160629       , l_array_source_91
160630       , l_array_source_92
160631       , l_array_source_125
160632       , l_array_source_125_meaning
160633       , l_array_source_127
160634       , l_array_source_128
160635       , l_array_source_129
160636       , l_array_source_130
160637       , l_array_source_131
160638       , l_array_source_132
160639       , l_array_source_133
160640       , l_array_source_134
160641       , l_array_source_139
160642       , l_array_source_140
160643       , l_array_source_141
160644       , l_array_source_142
160645       , l_array_source_143
160646       , l_array_source_144
160647       , l_array_source_146
160648       , l_array_source_147
160649       , l_array_source_152
160650       , l_array_source_159
160651       , l_array_source_165
160652       , l_array_source_165_meaning
160656   IF (C_LEVEL_EVENT >= g_log_level) THEN
160653       LIMIT l_rows;
160654 
160655   --
160657             trace
160658                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
160659                ,p_level    => C_LEVEL_EVENT
160660                ,p_module   => l_log_module);
160661   END IF;
160662   --
160663   EXIT WHEN l_array_entity_id.count = 0;
160664 
160665   XLA_AE_LINES_PKG.g_rec_lines := null;
160666 
160667 --
160668 -- Bug 4458708
160669 --
160670 XLA_AE_LINES_PKG.g_LineNumber := 0;
160671 --
160672 --
160673 
160674 FOR Idx IN 1..l_array_event_id.count LOOP
160675    --
160676    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
160677    --
160678    l_event_id := l_array_event_id(idx);  -- 5648433
160679 
160680    --
160681    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
160682    --
160683 
160684    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
160685              (g_array_event(l_event_id).array_value_num('header_index'))
160686          ,'N'
160687          ) <> 'Y'
160688    THEN
160689       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160690          trace
160691             (p_msg      => 'Trancaction revesal option is not Y '
160692             ,p_level    => C_LEVEL_STATEMENT
160693             ,p_module   => l_log_module);
160694       END IF;
160695 
160696 --
160697 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
160698 --
160699 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160700 --
160701 -- set event info as cache for other routines to refer event attributes
160702 --
160703 
160704 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
160705    l_previous_event_id := l_event_id;
160706 
160707    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
160708       (p_application_id           => p_application_id
160709       ,p_primary_ledger_id        => p_primary_ledger_id
160710       ,p_base_ledger_id           => p_base_ledger_id
160711       ,p_target_ledger_id         => p_target_ledger_id
160712       ,p_entity_id                => l_array_entity_id(Idx)
160713       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
160714       ,p_entity_code              => l_array_entity_code(Idx)
160715       ,p_transaction_num          => l_array_transaction_num(Idx)
160716       ,p_event_id                 => l_array_event_id(Idx)
160717       ,p_event_class_code         => l_array_class_code(Idx)
160718       ,p_event_type_code          => l_array_event_type(Idx)
160719       ,p_event_number             => l_array_event_number(Idx)
160720       ,p_event_date               => l_array_event_date(Idx)
160721       ,p_transaction_date         => l_array_transaction_date(Idx)
160722       ,p_reference_num_1          => l_array_reference_num_1(Idx)
160723       ,p_reference_num_2          => l_array_reference_num_2(Idx)
160724       ,p_reference_num_3          => l_array_reference_num_3(Idx)
160725       ,p_reference_num_4          => l_array_reference_num_4(Idx)
160726       ,p_reference_char_1         => l_array_reference_char_1(Idx)
160727       ,p_reference_char_2         => l_array_reference_char_2(Idx)
160728       ,p_reference_char_3         => l_array_reference_char_3(Idx)
160729       ,p_reference_char_4         => l_array_reference_char_4(Idx)
160730       ,p_reference_date_1         => l_array_reference_date_1(Idx)
160731       ,p_reference_date_2         => l_array_reference_date_2(Idx)
160732       ,p_reference_date_3         => l_array_reference_date_3(Idx)
160733       ,p_reference_date_4         => l_array_reference_date_4(Idx)
160734       ,p_event_created_by         => l_array_event_created_by(Idx)
160735       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
160736        --
160737 END IF;
160738 
160739 
160740 
160741 --
160742 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
160743 
160744 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
160745 
160746 IF l_continue_with_lines THEN
160747    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
160748       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160749 
160750       xla_accounting_err_pkg.build_message
160751          (p_appli_s_name            => 'XLA'
160752          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
160753          ,p_token_1                 => 'LINE_NUMBER'
160754          ,p_value_1                 => l_array_extract_line_num(Idx)
160755          ,p_token_2                 => 'PRODUCT_NAME'
160756          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160757          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160758          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160759          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160760 
160761    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
160762       --
160763       -- following sets the accounting attributes needed to reverse
160764       -- accounting for a distributeion
160765       --
160766 
160767       --
160768       -- 5217187
160769       --
160770       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
160771       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
160772                                        g_array_event(l_event_id).array_value_num('header_index'));
160773       --
160774       --
160775 
160776       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
160777       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
160778       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
160779       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_127(Idx);
160783       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_130(Idx);
160780       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
160781       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
160782       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
160784       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
160785       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_64(Idx);
160786       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
160787       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_65(Idx);
160788       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
160789       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_66');
160790       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
160791       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_67(Idx);
160792       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
160793       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_131(Idx);
160794       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
160795       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_68(Idx);
160796       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
160797       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_69(Idx);
160798       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
160799       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_66');
160800       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
160801       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_70(Idx);
160802       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
160803       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_71(Idx);
160804       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
160805       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_82');
160806       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
160807       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_134(Idx);
160808       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
160809       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_54(Idx);
160810       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
160811       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_85(Idx);
160812       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
160813       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_86(Idx);
160814       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
160815       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_87(Idx);
160816       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
160817       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_88(Idx);
160818       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
160819       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_89(Idx);
160820 
160821 
160822       xla_ae_lines_pkg.SetAcctReversalAttrs
160823          (p_event_id             => l_event_id
160824          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
160825          ,p_calculate_acctd_flag => l_calculate_acctd_flag
160826          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
160827    END IF;
160828 
160829    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
160830        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
160831 
160832 --
160833 AcctLineType_97 (
160834  p_application_id  => p_application_id
160835  ,p_event_id     => l_event_id
160836  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160837  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160838  ,p_actual_flag => l_actual_flag
160839  ,p_balance_type_code => l_balance_type_code
160840  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160841  
160842  , p_source_52 => l_array_source_52(Idx)
160843  , p_source_54 => l_array_source_54(Idx)
160844  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
160845  , p_source_64 => l_array_source_64(Idx)
160846  , p_source_65 => l_array_source_65(Idx)
160847  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
160848  , p_source_67 => l_array_source_67(Idx)
160849  , p_source_68 => l_array_source_68(Idx)
160850  , p_source_69 => l_array_source_69(Idx)
160851  , p_source_70 => l_array_source_70(Idx)
160852  , p_source_71 => l_array_source_71(Idx)
160853  , p_source_76 => l_array_source_76(Idx)
160854  , p_source_77 => l_array_source_77(Idx)
160855  , p_source_78 => l_array_source_78(Idx)
160856  , p_source_79 => l_array_source_79(Idx)
160857  , p_source_79_meaning => l_array_source_79_meaning(Idx)
160858  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
160859  , p_source_85 => l_array_source_85(Idx)
160860  , p_source_86 => l_array_source_86(Idx)
160861  , p_source_87 => l_array_source_87(Idx)
160862  , p_source_88 => l_array_source_88(Idx)
160863  , p_source_89 => l_array_source_89(Idx)
160864  , p_source_90 => l_array_source_90(Idx)
160865  , p_source_91 => l_array_source_91(Idx)
160866  , p_source_92 => l_array_source_92(Idx)
160867  , p_source_125 => l_array_source_125(Idx)
160868  , p_source_125_meaning => l_array_source_125_meaning(Idx)
160869  , p_source_127 => l_array_source_127(Idx)
160870  , p_source_128 => l_array_source_128(Idx)
160871  , p_source_129 => l_array_source_129(Idx)
160872  , p_source_130 => l_array_source_130(Idx)
160873  , p_source_131 => l_array_source_131(Idx)
160874  , p_source_132 => l_array_source_132(Idx)
160875  , p_source_133 => l_array_source_133(Idx)
160876  , p_source_134 => l_array_source_134(Idx)
160877  );
160878 If(l_balance_type_code = 'A') THEN
160879   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160880 END IF;
160881 
160882 --
160883 
160884 
160885 --
160889  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160886 AcctLineType_101 (
160887  p_application_id  => p_application_id
160888  ,p_event_id     => l_event_id
160890  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160891  ,p_actual_flag => l_actual_flag
160892  ,p_balance_type_code => l_balance_type_code
160893  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160894  
160895  , p_source_51 => l_array_source_51(Idx)
160896  , p_source_52 => l_array_source_52(Idx)
160897  , p_source_54 => l_array_source_54(Idx)
160898  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
160899  , p_source_64 => l_array_source_64(Idx)
160900  , p_source_65 => l_array_source_65(Idx)
160901  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
160902  , p_source_67 => l_array_source_67(Idx)
160903  , p_source_68 => l_array_source_68(Idx)
160904  , p_source_69 => l_array_source_69(Idx)
160905  , p_source_70 => l_array_source_70(Idx)
160906  , p_source_71 => l_array_source_71(Idx)
160907  , p_source_76 => l_array_source_76(Idx)
160908  , p_source_77 => l_array_source_77(Idx)
160909  , p_source_78 => l_array_source_78(Idx)
160910  , p_source_79 => l_array_source_79(Idx)
160911  , p_source_79_meaning => l_array_source_79_meaning(Idx)
160912  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
160913  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
160914  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
160915  , p_source_85 => l_array_source_85(Idx)
160916  , p_source_86 => l_array_source_86(Idx)
160917  , p_source_87 => l_array_source_87(Idx)
160918  , p_source_88 => l_array_source_88(Idx)
160919  , p_source_89 => l_array_source_89(Idx)
160920  , p_source_90 => l_array_source_90(Idx)
160921  , p_source_125 => l_array_source_125(Idx)
160922  , p_source_125_meaning => l_array_source_125_meaning(Idx)
160923  , p_source_127 => l_array_source_127(Idx)
160924  , p_source_130 => l_array_source_130(Idx)
160925  , p_source_131 => l_array_source_131(Idx)
160926  , p_source_132 => l_array_source_132(Idx)
160927  , p_source_133 => l_array_source_133(Idx)
160928  , p_source_134 => l_array_source_134(Idx)
160929  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
160930  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
160931  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
160932  , p_source_139 => l_array_source_139(Idx)
160933  , p_source_140 => l_array_source_140(Idx)
160934  , p_source_141 => l_array_source_141(Idx)
160935  , p_source_142 => l_array_source_142(Idx)
160936  );
160937 If(l_balance_type_code = 'A') THEN
160938   l_actual_gain_loss_ref := l_gain_or_loss_ref;
160939 END IF;
160940 
160941 --
160942 
160943 
160944 --
160945 AcctLineType_109 (
160946  p_application_id  => p_application_id
160947  ,p_event_id     => l_event_id
160948  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160949  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160950  ,p_actual_flag => l_actual_flag
160951  ,p_balance_type_code => l_balance_type_code
160952  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160953  
160954  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
160955  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
160956  , p_source_30 => l_array_source_30(Idx)
160957  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
160958  , p_source_52 => l_array_source_52(Idx)
160959  , p_source_54 => l_array_source_54(Idx)
160960  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
160961  , p_source_64 => l_array_source_64(Idx)
160962  , p_source_65 => l_array_source_65(Idx)
160963  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
160964  , p_source_67 => l_array_source_67(Idx)
160965  , p_source_68 => l_array_source_68(Idx)
160966  , p_source_69 => l_array_source_69(Idx)
160967  , p_source_70 => l_array_source_70(Idx)
160968  , p_source_71 => l_array_source_71(Idx)
160969  , p_source_76 => l_array_source_76(Idx)
160970  , p_source_77 => l_array_source_77(Idx)
160971  , p_source_78 => l_array_source_78(Idx)
160972  , p_source_79 => l_array_source_79(Idx)
160973  , p_source_79_meaning => l_array_source_79_meaning(Idx)
160974  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
160975  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
160976  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
160977  , p_source_85 => l_array_source_85(Idx)
160978  , p_source_86 => l_array_source_86(Idx)
160979  , p_source_87 => l_array_source_87(Idx)
160980  , p_source_88 => l_array_source_88(Idx)
160981  , p_source_89 => l_array_source_89(Idx)
160982  , p_source_90 => l_array_source_90(Idx)
160983  , p_source_127 => l_array_source_127(Idx)
160984  , p_source_130 => l_array_source_130(Idx)
160985  , p_source_131 => l_array_source_131(Idx)
160986  , p_source_132 => l_array_source_132(Idx)
160987  , p_source_134 => l_array_source_134(Idx)
160988  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
160989  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
160990  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
160991  , p_source_139 => l_array_source_139(Idx)
160992  , p_source_140 => l_array_source_140(Idx)
160993  , p_source_141 => l_array_source_141(Idx)
160994  , p_source_142 => l_array_source_142(Idx)
160995  , p_source_143 => l_array_source_143(Idx)
160996  , p_source_144 => l_array_source_144(Idx)
160997  , p_source_146 => l_array_source_146(Idx)
160998  );
160999 If(l_balance_type_code = 'A') THEN
161000   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161001 END IF;
161002 
161003 --
161004 
161005 
161006 --
161007 AcctLineType_113 (
161008  p_application_id  => p_application_id
161009  ,p_event_id     => l_event_id
161010  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161011  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161015  
161012  ,p_actual_flag => l_actual_flag
161013  ,p_balance_type_code => l_balance_type_code
161014  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161016  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161017  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161018  , p_source_30 => l_array_source_30(Idx)
161019  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
161020  , p_source_52 => l_array_source_52(Idx)
161021  , p_source_54 => l_array_source_54(Idx)
161022  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161023  , p_source_64 => l_array_source_64(Idx)
161024  , p_source_65 => l_array_source_65(Idx)
161025  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161026  , p_source_67 => l_array_source_67(Idx)
161027  , p_source_68 => l_array_source_68(Idx)
161028  , p_source_69 => l_array_source_69(Idx)
161029  , p_source_70 => l_array_source_70(Idx)
161030  , p_source_71 => l_array_source_71(Idx)
161031  , p_source_76 => l_array_source_76(Idx)
161032  , p_source_77 => l_array_source_77(Idx)
161033  , p_source_78 => l_array_source_78(Idx)
161034  , p_source_79 => l_array_source_79(Idx)
161035  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161036  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
161037  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161038  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161039  , p_source_85 => l_array_source_85(Idx)
161040  , p_source_86 => l_array_source_86(Idx)
161041  , p_source_87 => l_array_source_87(Idx)
161042  , p_source_88 => l_array_source_88(Idx)
161043  , p_source_89 => l_array_source_89(Idx)
161044  , p_source_90 => l_array_source_90(Idx)
161045  , p_source_127 => l_array_source_127(Idx)
161046  , p_source_130 => l_array_source_130(Idx)
161047  , p_source_131 => l_array_source_131(Idx)
161048  , p_source_132 => l_array_source_132(Idx)
161049  , p_source_134 => l_array_source_134(Idx)
161050  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
161051  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
161052  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
161053  , p_source_139 => l_array_source_139(Idx)
161054  , p_source_140 => l_array_source_140(Idx)
161055  , p_source_141 => l_array_source_141(Idx)
161056  , p_source_142 => l_array_source_142(Idx)
161057  , p_source_143 => l_array_source_143(Idx)
161058  , p_source_147 => l_array_source_147(Idx)
161059  );
161060 If(l_balance_type_code = 'A') THEN
161061   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161062 END IF;
161063 
161064 --
161065 
161066 
161067 --
161068 AcctLineType_126 (
161069  p_application_id  => p_application_id
161070  ,p_event_id     => l_event_id
161071  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161072  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161073  ,p_actual_flag => l_actual_flag
161074  ,p_balance_type_code => l_balance_type_code
161075  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161076  
161077  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161078  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161079  , p_source_30 => l_array_source_30(Idx)
161080  , p_source_36 => l_array_source_36(Idx)
161081  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
161082  , p_source_38 => l_array_source_38(Idx)
161083  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
161084  , p_source_52 => l_array_source_52(Idx)
161085  , p_source_54 => l_array_source_54(Idx)
161086  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161087  , p_source_64 => l_array_source_64(Idx)
161088  , p_source_65 => l_array_source_65(Idx)
161089  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161090  , p_source_67 => l_array_source_67(Idx)
161091  , p_source_68 => l_array_source_68(Idx)
161092  , p_source_69 => l_array_source_69(Idx)
161093  , p_source_70 => l_array_source_70(Idx)
161094  , p_source_71 => l_array_source_71(Idx)
161095  , p_source_76 => l_array_source_76(Idx)
161096  , p_source_77 => l_array_source_77(Idx)
161097  , p_source_78 => l_array_source_78(Idx)
161098  , p_source_79 => l_array_source_79(Idx)
161099  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161100  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
161101  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161102  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161103  , p_source_85 => l_array_source_85(Idx)
161104  , p_source_86 => l_array_source_86(Idx)
161105  , p_source_87 => l_array_source_87(Idx)
161106  , p_source_88 => l_array_source_88(Idx)
161107  , p_source_89 => l_array_source_89(Idx)
161108  , p_source_90 => l_array_source_90(Idx)
161109  , p_source_127 => l_array_source_127(Idx)
161110  , p_source_130 => l_array_source_130(Idx)
161111  , p_source_131 => l_array_source_131(Idx)
161112  , p_source_134 => l_array_source_134(Idx)
161113  , p_source_139 => l_array_source_139(Idx)
161114  , p_source_140 => l_array_source_140(Idx)
161115  , p_source_141 => l_array_source_141(Idx)
161116  , p_source_142 => l_array_source_142(Idx)
161117  , p_source_143 => l_array_source_143(Idx)
161118  , p_source_152 => l_array_source_152(Idx)
161119  );
161120 If(l_balance_type_code = 'A') THEN
161121   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161122 END IF;
161123 
161124 --
161125 
161126 
161127 --
161128 AcctLineType_132 (
161129  p_application_id  => p_application_id
161130  ,p_event_id     => l_event_id
161131  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161132  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161133  ,p_actual_flag => l_actual_flag
161134  ,p_balance_type_code => l_balance_type_code
161135  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161136  
161137  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161141  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
161138  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161139  , p_source_30 => l_array_source_30(Idx)
161140  , p_source_36 => l_array_source_36(Idx)
161142  , p_source_52 => l_array_source_52(Idx)
161143  , p_source_54 => l_array_source_54(Idx)
161144  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161145  , p_source_64 => l_array_source_64(Idx)
161146  , p_source_65 => l_array_source_65(Idx)
161147  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161148  , p_source_67 => l_array_source_67(Idx)
161149  , p_source_68 => l_array_source_68(Idx)
161150  , p_source_69 => l_array_source_69(Idx)
161151  , p_source_70 => l_array_source_70(Idx)
161152  , p_source_71 => l_array_source_71(Idx)
161153  , p_source_76 => l_array_source_76(Idx)
161154  , p_source_77 => l_array_source_77(Idx)
161155  , p_source_78 => l_array_source_78(Idx)
161156  , p_source_79 => l_array_source_79(Idx)
161157  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161158  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
161159  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161160  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161161  , p_source_85 => l_array_source_85(Idx)
161162  , p_source_86 => l_array_source_86(Idx)
161163  , p_source_87 => l_array_source_87(Idx)
161164  , p_source_88 => l_array_source_88(Idx)
161165  , p_source_89 => l_array_source_89(Idx)
161166  , p_source_90 => l_array_source_90(Idx)
161167  , p_source_127 => l_array_source_127(Idx)
161168  , p_source_130 => l_array_source_130(Idx)
161169  , p_source_131 => l_array_source_131(Idx)
161170  , p_source_132 => l_array_source_132(Idx)
161171  , p_source_134 => l_array_source_134(Idx)
161172  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
161173  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
161174  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
161175  , p_source_139 => l_array_source_139(Idx)
161176  , p_source_140 => l_array_source_140(Idx)
161177  , p_source_141 => l_array_source_141(Idx)
161178  , p_source_142 => l_array_source_142(Idx)
161179  , p_source_143 => l_array_source_143(Idx)
161180  , p_source_152 => l_array_source_152(Idx)
161181  , p_source_159 => l_array_source_159(Idx)
161182  );
161183 If(l_balance_type_code = 'A') THEN
161184   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161185 END IF;
161186 
161187 --
161188 
161189 
161190 --
161191 AcctLineType_159 (
161192  p_application_id  => p_application_id
161193  ,p_event_id     => l_event_id
161194  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161195  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161196  ,p_actual_flag => l_actual_flag
161197  ,p_balance_type_code => l_balance_type_code
161198  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161199  
161200  , p_source_52 => l_array_source_52(Idx)
161201  , p_source_54 => l_array_source_54(Idx)
161202  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161203  , p_source_64 => l_array_source_64(Idx)
161204  , p_source_65 => l_array_source_65(Idx)
161205  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161206  , p_source_67 => l_array_source_67(Idx)
161207  , p_source_68 => l_array_source_68(Idx)
161208  , p_source_69 => l_array_source_69(Idx)
161209  , p_source_70 => l_array_source_70(Idx)
161210  , p_source_71 => l_array_source_71(Idx)
161211  , p_source_76 => l_array_source_76(Idx)
161212  , p_source_77 => l_array_source_77(Idx)
161213  , p_source_78 => l_array_source_78(Idx)
161214  , p_source_79 => l_array_source_79(Idx)
161215  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161216  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161217  , p_source_85 => l_array_source_85(Idx)
161218  , p_source_86 => l_array_source_86(Idx)
161219  , p_source_87 => l_array_source_87(Idx)
161220  , p_source_88 => l_array_source_88(Idx)
161221  , p_source_89 => l_array_source_89(Idx)
161222  , p_source_90 => l_array_source_90(Idx)
161223  , p_source_127 => l_array_source_127(Idx)
161224  , p_source_128 => l_array_source_128(Idx)
161225  , p_source_129 => l_array_source_129(Idx)
161226  , p_source_130 => l_array_source_130(Idx)
161227  , p_source_131 => l_array_source_131(Idx)
161228  , p_source_132 => l_array_source_132(Idx)
161229  , p_source_133 => l_array_source_133(Idx)
161230  , p_source_134 => l_array_source_134(Idx)
161231  , p_source_139 => l_array_source_139(Idx)
161232  , p_source_140 => l_array_source_140(Idx)
161233  , p_source_143 => l_array_source_143(Idx)
161234  );
161235 If(l_balance_type_code = 'A') THEN
161236   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161237 END IF;
161238 
161239 --
161240 
161241 
161242 --
161243 AcctLineType_166 (
161244  p_application_id  => p_application_id
161245  ,p_event_id     => l_event_id
161246  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161247  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161248  ,p_actual_flag => l_actual_flag
161249  ,p_balance_type_code => l_balance_type_code
161250  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161251  
161252  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161253  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161254  , p_source_30 => l_array_source_30(Idx)
161255  , p_source_38 => l_array_source_38(Idx)
161256  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
161257  , p_source_52 => l_array_source_52(Idx)
161258  , p_source_54 => l_array_source_54(Idx)
161259  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161260  , p_source_64 => l_array_source_64(Idx)
161261  , p_source_65 => l_array_source_65(Idx)
161262  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161263  , p_source_67 => l_array_source_67(Idx)
161264  , p_source_68 => l_array_source_68(Idx)
161268  , p_source_76 => l_array_source_76(Idx)
161265  , p_source_69 => l_array_source_69(Idx)
161266  , p_source_70 => l_array_source_70(Idx)
161267  , p_source_71 => l_array_source_71(Idx)
161269  , p_source_77 => l_array_source_77(Idx)
161270  , p_source_78 => l_array_source_78(Idx)
161271  , p_source_79 => l_array_source_79(Idx)
161272  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161273  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
161274  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161275  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161276  , p_source_85 => l_array_source_85(Idx)
161277  , p_source_86 => l_array_source_86(Idx)
161278  , p_source_87 => l_array_source_87(Idx)
161279  , p_source_88 => l_array_source_88(Idx)
161280  , p_source_89 => l_array_source_89(Idx)
161281  , p_source_90 => l_array_source_90(Idx)
161282  , p_source_127 => l_array_source_127(Idx)
161283  , p_source_130 => l_array_source_130(Idx)
161284  , p_source_131 => l_array_source_131(Idx)
161285  , p_source_132 => l_array_source_132(Idx)
161286  , p_source_134 => l_array_source_134(Idx)
161287  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
161288  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
161289  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
161290  , p_source_139 => l_array_source_139(Idx)
161291  , p_source_140 => l_array_source_140(Idx)
161292  , p_source_141 => l_array_source_141(Idx)
161293  , p_source_142 => l_array_source_142(Idx)
161294  , p_source_143 => l_array_source_143(Idx)
161295  , p_source_152 => l_array_source_152(Idx)
161296  , p_source_159 => l_array_source_159(Idx)
161297  );
161298 If(l_balance_type_code = 'A') THEN
161299   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161300 END IF;
161301 
161302 --
161303 
161304 
161305 --
161306 AcctLineType_182 (
161307  p_application_id  => p_application_id
161308  ,p_event_id     => l_event_id
161309  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161310  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161311  ,p_actual_flag => l_actual_flag
161312  ,p_balance_type_code => l_balance_type_code
161313  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161314  
161315  , p_source_52 => l_array_source_52(Idx)
161316  , p_source_54 => l_array_source_54(Idx)
161317  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161318  , p_source_64 => l_array_source_64(Idx)
161319  , p_source_65 => l_array_source_65(Idx)
161320  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161321  , p_source_67 => l_array_source_67(Idx)
161322  , p_source_68 => l_array_source_68(Idx)
161323  , p_source_69 => l_array_source_69(Idx)
161324  , p_source_70 => l_array_source_70(Idx)
161325  , p_source_71 => l_array_source_71(Idx)
161326  , p_source_76 => l_array_source_76(Idx)
161327  , p_source_77 => l_array_source_77(Idx)
161328  , p_source_78 => l_array_source_78(Idx)
161329  , p_source_79 => l_array_source_79(Idx)
161330  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161331  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161332  , p_source_85 => l_array_source_85(Idx)
161333  , p_source_86 => l_array_source_86(Idx)
161334  , p_source_87 => l_array_source_87(Idx)
161335  , p_source_88 => l_array_source_88(Idx)
161336  , p_source_89 => l_array_source_89(Idx)
161337  , p_source_90 => l_array_source_90(Idx)
161338  , p_source_127 => l_array_source_127(Idx)
161339  , p_source_130 => l_array_source_130(Idx)
161340  , p_source_131 => l_array_source_131(Idx)
161341  , p_source_132 => l_array_source_132(Idx)
161342  , p_source_134 => l_array_source_134(Idx)
161343  , p_source_139 => l_array_source_139(Idx)
161344  , p_source_140 => l_array_source_140(Idx)
161345  , p_source_141 => l_array_source_141(Idx)
161346  , p_source_142 => l_array_source_142(Idx)
161347  , p_source_143 => l_array_source_143(Idx)
161348  , p_source_144 => l_array_source_144(Idx)
161349  , p_source_165 => l_array_source_165(Idx)
161350  , p_source_165_meaning => l_array_source_165_meaning(Idx)
161351  );
161352 If(l_balance_type_code = 'A') THEN
161353   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161354 END IF;
161355 
161356 --
161357 
161358 
161359 --
161360 AcctLineType_207 (
161361  p_application_id  => p_application_id
161362  ,p_event_id     => l_event_id
161363  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161364  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161365  ,p_actual_flag => l_actual_flag
161366  ,p_balance_type_code => l_balance_type_code
161367  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161368  
161369  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161370  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161371  , p_source_30 => l_array_source_30(Idx)
161372  , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
161373  , p_source_52 => l_array_source_52(Idx)
161374  , p_source_54 => l_array_source_54(Idx)
161375  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
161376  , p_source_64 => l_array_source_64(Idx)
161377  , p_source_65 => l_array_source_65(Idx)
161378  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
161379  , p_source_67 => l_array_source_67(Idx)
161380  , p_source_68 => l_array_source_68(Idx)
161381  , p_source_69 => l_array_source_69(Idx)
161382  , p_source_70 => l_array_source_70(Idx)
161383  , p_source_71 => l_array_source_71(Idx)
161384  , p_source_76 => l_array_source_76(Idx)
161385  , p_source_77 => l_array_source_77(Idx)
161386  , p_source_78 => l_array_source_78(Idx)
161387  , p_source_79 => l_array_source_79(Idx)
161388  , p_source_79_meaning => l_array_source_79_meaning(Idx)
161389  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
161390  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161391  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
161395  , p_source_88 => l_array_source_88(Idx)
161392  , p_source_85 => l_array_source_85(Idx)
161393  , p_source_86 => l_array_source_86(Idx)
161394  , p_source_87 => l_array_source_87(Idx)
161396  , p_source_89 => l_array_source_89(Idx)
161397  , p_source_90 => l_array_source_90(Idx)
161398  , p_source_127 => l_array_source_127(Idx)
161399  , p_source_130 => l_array_source_130(Idx)
161400  , p_source_131 => l_array_source_131(Idx)
161401  , p_source_132 => l_array_source_132(Idx)
161402  , p_source_133 => l_array_source_133(Idx)
161403  , p_source_134 => l_array_source_134(Idx)
161404  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
161405  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
161406  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
161407  , p_source_139 => l_array_source_139(Idx)
161408  , p_source_140 => l_array_source_140(Idx)
161409  , p_source_141 => l_array_source_141(Idx)
161410  , p_source_142 => l_array_source_142(Idx)
161411  , p_source_143 => l_array_source_143(Idx)
161412  );
161413 If(l_balance_type_code = 'A') THEN
161414   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161415 END IF;
161416 
161417 --
161418 
161419       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
161420       -- or secondary ledger that has different currency with primary
161421       -- or alc that is calculated by sla
161422       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
161423             (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'))
161424 
161425 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
161426 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
161427           AND (l_actual_flag = 'A')) THEN
161428         XLA_AE_LINES_PKG.CreateGainOrLossLines(
161429           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
161430          ,p_application_id   => p_application_id
161431          ,p_amb_context_code => 'DEFAULT'
161432          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
161433          ,p_event_class_code => C_EVENT_CLASS_CODE
161434          ,p_event_type_code  => C_EVENT_TYPE_CODE
161435          
161436          ,p_gain_ccid        => -1
161437          ,p_loss_ccid        => -1
161438 
161439          ,p_actual_flag      => l_actual_flag
161440          ,p_enc_flag         => null
161441          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
161442          ,p_enc_g_l_ref      => null
161443          );
161444       END IF;
161445    END IF;
161446 END IF;
161447 
161448    ELSE
161449       --
161450       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
161451       --
161452       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161453          trace
161454             (p_msg      => 'Trancaction revesal option is Y'
161455             ,p_level    => C_LEVEL_STATEMENT
161456             ,p_module   => l_log_module);
161457       END IF;
161458    END IF;
161459 
161460 END LOOP;
161461 l_result := XLA_AE_LINES_PKG.InsertLines ;
161462 end loop;
161463 close line_cur;
161464 
161465 
161466 --
161467 -- insert headers into xla_ae_headers_gt table
161468 --
161469 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
161470 
161471 -- insert into errors table here.
161472 
161473 END LOOP;
161474 
161475 --
161476 -- 4865292
161477 --
161478 -- Compare g_hdr_extract_count with event count in
161479 -- CreateHeadersAndLines.
161480 --
161481 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
161482 
161483 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161484    trace (p_msg     => '# rows extracted from header extract objects '
161485                     || ' (running total): '
161486                     || g_hdr_extract_count
161487          ,p_level   => C_LEVEL_STATEMENT
161488          ,p_module  => l_log_module);
161489 END IF;
161490 
161491 CLOSE header_cur;
161492 --
161493 
161494 --
161495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161496    trace
161497       (p_msg      => 'END of EventClass_231'
161498       ,p_level    => C_LEVEL_PROCEDURE
161499       ,p_module   => l_log_module);
161500 END IF;
161501 --
161502 RETURN l_result;
161503 EXCEPTION
161504 WHEN xla_exceptions_pkg.application_exception THEN
161505    
161506 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161507 
161508    
161509 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161510 
161511    RAISE;
161512 
161513 WHEN NO_DATA_FOUND THEN
161514 
161515 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161516 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161517 
161518 FOR header_record IN header_cur
161519 LOOP
161520     l_array_header_events(header_record.event_id) := header_record.event_id;
161521 END LOOP;
161522 
161523 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
161524 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
161525 
161526 fnd_file.put_line(fnd_file.LOG, '                    ');
161527 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161528 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
161529 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
161530 
161531 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
161532 LOOP
161533 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
161534 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
161538 
161535         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
161536 	END IF;
161537 END LOOP;
161539 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161540 fnd_file.put_line(fnd_file.LOG, '                    ');
161541 
161542 
161543 xla_exceptions_pkg.raise_message
161544       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_231');
161545 
161546 
161547 WHEN OTHERS THEN
161548    xla_exceptions_pkg.raise_message
161549       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_231');
161550 END EventClass_231;
161551 --
161552 
161553 ---------------------------------------
161554 --
161555 -- PRIVATE PROCEDURE
161556 --         insert_sources_232
161557 --
161558 ----------------------------------------
161559 --
161560 PROCEDURE insert_sources_232(
161561                                 p_target_ledger_id       IN NUMBER
161562                               , p_language               IN VARCHAR2
161563                               , p_sla_ledger_id          IN NUMBER
161564                               , p_pad_start_date         IN DATE
161565                               , p_pad_end_date           IN DATE
161566                          )
161567 IS
161568 
161569 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
161570 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
161571 p_apps_owner                   VARCHAR2(30);
161572 l_log_module                   VARCHAR2(240);
161573 BEGIN
161574 IF g_log_enabled THEN
161575       l_log_module := C_DEFAULT_MODULE||'.insert_sources_232';
161576 END IF;
161577 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161578 
161579       trace
161580          (p_msg      => 'BEGIN of insert_sources_232'
161581          ,p_level    => C_LEVEL_PROCEDURE
161582          ,p_module   => l_log_module);
161583 
161584 END IF;
161585 
161586 -- select APPS owner
161587 SELECT oracle_username
161588   INTO p_apps_owner
161589   FROM fnd_oracle_userid
161590  WHERE read_only_flag = 'U'
161591 ;
161592 
161593 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161594       trace
161595          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
161596                         ' - p_language = '||p_language||
161597                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
161598                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
161599                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
161600                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
161601          ,p_level    => C_LEVEL_STATEMENT
161602          ,p_module   => l_log_module);
161603 END IF;
161604 
161605 
161606 --
161607 INSERT INTO xla_diag_sources --hdr2
161608 (
161609         event_id
161610       , ledger_id
161611       , sla_ledger_id
161612       , description_language
161613       , object_name
161614       , object_type_code
161615       , line_number
161616       , source_application_id
161617       , source_type_code
161618       , source_code
161619       , source_value
161620       , source_meaning
161621       , created_by
161622       , creation_date
161623       , last_update_date
161624       , last_updated_by
161625       , last_update_login
161626       , program_update_date
161627       , program_application_id
161628       , program_id
161629       , request_id
161630 )
161631 SELECT
161632         event_id
161633       , p_target_ledger_id
161634       , p_sla_ledger_id
161635       , p_language
161636       , object_name
161637       , object_type_code
161638       , line_number
161639       , source_application_id
161640       , source_type_code
161641       , source_code
161642       , SUBSTR(source_value ,1,1996)
161643       , SUBSTR(source_meaning ,1,200)
161644       , xla_environment_pkg.g_Usr_Id
161645       , TRUNC(SYSDATE)
161646       , TRUNC(SYSDATE)
161647       , xla_environment_pkg.g_Usr_Id
161648       , xla_environment_pkg.g_Login_Id
161649       , TRUNC(SYSDATE)
161650       , xla_environment_pkg.g_Prog_Appl_Id
161651       , xla_environment_pkg.g_Prog_Id
161652       , xla_environment_pkg.g_Req_Id
161653   FROM (
161654        SELECT xet.event_id                  event_id
161655             , 0                          line_number
161656             , CASE r
161657                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161658                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161659                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161660                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161661                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161662                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161663                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161664                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161665                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161666                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161667                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161668                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161669                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161670                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161671                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161672                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161673                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161674                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161675                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161676                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161677                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161678                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161679                 
161680                ELSE null
161684                 WHEN 2 THEN 'HEADER' 
161681               END                           object_name
161682             , CASE r
161683                 WHEN 1 THEN 'HEADER' 
161685                 WHEN 3 THEN 'HEADER' 
161686                 WHEN 4 THEN 'HEADER' 
161687                 WHEN 5 THEN 'HEADER' 
161688                 WHEN 6 THEN 'HEADER' 
161689                 WHEN 7 THEN 'HEADER' 
161690                 WHEN 8 THEN 'HEADER' 
161691                 WHEN 9 THEN 'HEADER' 
161692                 WHEN 10 THEN 'HEADER' 
161693                 WHEN 11 THEN 'HEADER' 
161694                 WHEN 12 THEN 'HEADER' 
161695                 WHEN 13 THEN 'HEADER' 
161696                 WHEN 14 THEN 'HEADER' 
161697                 WHEN 15 THEN 'HEADER' 
161698                 WHEN 16 THEN 'HEADER' 
161699                 WHEN 17 THEN 'HEADER' 
161700                 WHEN 18 THEN 'HEADER' 
161701                 WHEN 19 THEN 'HEADER' 
161702                 WHEN 20 THEN 'HEADER' 
161703                 WHEN 21 THEN 'HEADER' 
161704                 WHEN 22 THEN 'HEADER' 
161705                 
161706                 ELSE null
161707               END                           object_type_code
161708             , CASE r
161709                 WHEN 1 THEN '200' 
161710                 WHEN 2 THEN '200' 
161711                 WHEN 3 THEN '200' 
161712                 WHEN 4 THEN '200' 
161713                 WHEN 5 THEN '200' 
161714                 WHEN 6 THEN '200' 
161715                 WHEN 7 THEN '200' 
161716                 WHEN 8 THEN '200' 
161717                 WHEN 9 THEN '200' 
161718                 WHEN 10 THEN '200' 
161719                 WHEN 11 THEN '200' 
161720                 WHEN 12 THEN '200' 
161721                 WHEN 13 THEN '200' 
161722                 WHEN 14 THEN '200' 
161723                 WHEN 15 THEN '200' 
161724                 WHEN 16 THEN '200' 
161725                 WHEN 17 THEN '200' 
161726                 WHEN 18 THEN '200' 
161727                 WHEN 19 THEN '200' 
161728                 WHEN 20 THEN '200' 
161729                 WHEN 21 THEN '200' 
161730                 WHEN 22 THEN '200' 
161731                 
161732                 ELSE null
161733               END                           source_application_id
161734             , 'S'             source_type_code
161735             , CASE r
161736                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
161737                 WHEN 2 THEN 'AI_INVOICE_DATE' 
161738                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
161739                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
161740                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
161741                 WHEN 6 THEN 'AI_DESCRIPTION' 
161742                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
161743                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
161744                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
161745                 WHEN 10 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
161746                 WHEN 11 THEN 'AI_ACCTS_PAY_CCID' 
161747                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
161748                 WHEN 13 THEN 'AI_INVOICE_ID' 
161749                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
161750                 WHEN 15 THEN 'AI_VENDOR_ID' 
161751                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
161752                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
161753                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
161754                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
161755                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
161756                 WHEN 21 THEN 'AI_SOURCE' 
161757                 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
161758                 
161759                 ELSE null
161760               END                           source_code
161761             , CASE r
161762                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
161763                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
161764                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
161765                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
161766                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
161767                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
161768                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
161769                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
161770                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
161771                 WHEN 10 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
161772                 WHEN 11 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
161773                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
161774                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
161775                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
161776                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
161777                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
161778                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
161779                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
161780                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
161781                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
161782                 WHEN 21 THEN TO_CHAR(h2.AI_SOURCE)
161783                 WHEN 22 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
161784                 
161785                 ELSE null
161786               END                           source_value
161787             , CASE r
161788                 WHEN 7 THEN fvl15.meaning
161789                 WHEN 10 THEN fvl31.meaning
161790                 WHEN 12 THEN fvl47.meaning
161791                 
161792                 ELSE null
161793               END               source_meaning
161794          FROM xla_events_gt     xet  
161795       , AP_INVOICE_EXTRACT_HEADER_V  h2
161796       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
161797   , fnd_lookup_values    fvl15
161798   , fnd_lookup_values    fvl31
161799   , fnd_lookup_values    fvl47
161800              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
161801          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
161805   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
161802            AND xet.event_class_code = C_EVENT_CLASS_CODE
161803               AND h2.event_id = xet.event_id
161804  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
161806   AND fvl15.view_application_id(+) = 200
161807   AND fvl15.language(+)            = USERENV('LANG')
161808      AND fvl31.lookup_type(+)         = 'YES_NO'
161809   AND fvl31.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
161810   AND fvl31.view_application_id(+) = 0
161811   AND fvl31.language(+)            = USERENV('LANG')
161812      AND fvl47.lookup_type(+)         = 'YES_NO'
161813   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
161814   AND fvl47.view_application_id(+) = 0
161815   AND fvl47.language(+)            = USERENV('LANG')
161816   
161817 )
161818 ;
161819 --
161820 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161821 
161822       trace
161823          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
161824          ,p_level    => C_LEVEL_STATEMENT
161825          ,p_module   => l_log_module);
161826 
161827 END IF;
161828 --
161829 
161830 
161831 
161832 --
161833 INSERT INTO xla_diag_sources  --line2
161834 (
161835         event_id
161836       , ledger_id
161837       , sla_ledger_id
161838       , description_language
161839       , object_name
161840       , object_type_code
161841       , line_number
161842       , source_application_id
161843       , source_type_code
161844       , source_code
161845       , source_value
161846       , source_meaning
161847       , created_by
161848       , creation_date
161849       , last_update_date
161850       , last_updated_by
161851       , last_update_login
161852       , program_update_date
161853       , program_application_id
161854       , program_id
161855       , request_id
161856 )
161857 SELECT  event_id
161858       , p_target_ledger_id
161859       , p_sla_ledger_id
161860       , p_language
161861       , object_name
161862       , object_type_code
161863       , line_number
161864       , source_application_id
161865       , source_type_code
161866       , source_code
161867       , SUBSTR(source_value,1,1996)
161868       , SUBSTR(source_meaning ,1,200)
161869       , xla_environment_pkg.g_Usr_Id
161870       , TRUNC(SYSDATE)
161871       , TRUNC(SYSDATE)
161872       , xla_environment_pkg.g_Usr_Id
161873       , xla_environment_pkg.g_Login_Id
161874       , TRUNC(SYSDATE)
161875       , xla_environment_pkg.g_Prog_Appl_Id
161876       , xla_environment_pkg.g_Prog_Id
161877       , xla_environment_pkg.g_Req_Id
161878   FROM (
161879        SELECT xet.event_id                  event_id
161880             , l1.line_number                 line_number
161881             , CASE r
161882                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161883                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161884                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161885                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161886                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161887                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161888                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161889                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161890                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161891                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161892                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161893                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161894                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161895                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161896                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161897                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161898                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161899                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161900                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161901                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161902                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161903                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161904                 WHEN 23 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161905                 WHEN 24 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161906                 WHEN 25 THEN 'AP_PO_HEADERS_EXTRACT_V' 
161907                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161908                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161909                 WHEN 28 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161910                 WHEN 29 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161911                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161912                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161913                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
161914                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
161915                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161916                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161917                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161918                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161919                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161920                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161921                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161922                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161923                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161924                 WHEN 43 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
161925                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161926                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
161927                 
161928                ELSE null
161929               END                           object_name
161930             , CASE r
161931                 WHEN 1 THEN 'LINE' 
161932                 WHEN 2 THEN 'LINE' 
161936                 WHEN 6 THEN 'LINE' 
161933                 WHEN 3 THEN 'LINE' 
161934                 WHEN 4 THEN 'LINE' 
161935                 WHEN 5 THEN 'LINE' 
161937                 WHEN 7 THEN 'LINE' 
161938                 WHEN 8 THEN 'LINE' 
161939                 WHEN 9 THEN 'LINE' 
161940                 WHEN 10 THEN 'LINE' 
161941                 WHEN 11 THEN 'LINE' 
161942                 WHEN 12 THEN 'LINE' 
161943                 WHEN 13 THEN 'LINE' 
161944                 WHEN 14 THEN 'LINE' 
161945                 WHEN 15 THEN 'LINE' 
161946                 WHEN 16 THEN 'LINE' 
161947                 WHEN 17 THEN 'LINE' 
161948                 WHEN 18 THEN 'LINE' 
161949                 WHEN 19 THEN 'LINE' 
161950                 WHEN 20 THEN 'LINE' 
161951                 WHEN 21 THEN 'LINE' 
161952                 WHEN 22 THEN 'LINE' 
161953                 WHEN 23 THEN 'LINE' 
161954                 WHEN 24 THEN 'LINE' 
161955                 WHEN 25 THEN 'LINE' 
161956                 WHEN 26 THEN 'LINE' 
161957                 WHEN 27 THEN 'LINE' 
161958                 WHEN 28 THEN 'LINE' 
161959                 WHEN 29 THEN 'LINE' 
161960                 WHEN 30 THEN 'LINE' 
161961                 WHEN 31 THEN 'LINE' 
161962                 WHEN 32 THEN 'LINE' 
161963                 WHEN 33 THEN 'LINE' 
161964                 WHEN 34 THEN 'LINE' 
161965                 WHEN 35 THEN 'LINE' 
161966                 WHEN 36 THEN 'LINE' 
161967                 WHEN 37 THEN 'LINE' 
161968                 WHEN 38 THEN 'LINE' 
161969                 WHEN 39 THEN 'LINE' 
161970                 WHEN 40 THEN 'LINE' 
161971                 WHEN 41 THEN 'LINE' 
161972                 WHEN 42 THEN 'LINE' 
161973                 WHEN 43 THEN 'LINE' 
161974                 WHEN 44 THEN 'LINE' 
161975                 WHEN 45 THEN 'LINE' 
161976                 
161977                 ELSE null
161978               END                           object_type_code
161979             , CASE r
161980                 WHEN 1 THEN '200' 
161981                 WHEN 2 THEN '200' 
161982                 WHEN 3 THEN '200' 
161983                 WHEN 4 THEN '200' 
161984                 WHEN 5 THEN '200' 
161985                 WHEN 6 THEN '200' 
161986                 WHEN 7 THEN '200' 
161987                 WHEN 8 THEN '200' 
161988                 WHEN 9 THEN '200' 
161989                 WHEN 10 THEN '200' 
161990                 WHEN 11 THEN '200' 
161991                 WHEN 12 THEN '200' 
161992                 WHEN 13 THEN '200' 
161993                 WHEN 14 THEN '200' 
161994                 WHEN 15 THEN '200' 
161995                 WHEN 16 THEN '200' 
161996                 WHEN 17 THEN '200' 
161997                 WHEN 18 THEN '200' 
161998                 WHEN 19 THEN '200' 
161999                 WHEN 20 THEN '200' 
162000                 WHEN 21 THEN '200' 
162001                 WHEN 22 THEN '200' 
162002                 WHEN 23 THEN '200' 
162003                 WHEN 24 THEN '200' 
162004                 WHEN 25 THEN '200' 
162005                 WHEN 26 THEN '200' 
162006                 WHEN 27 THEN '200' 
162007                 WHEN 28 THEN '200' 
162008                 WHEN 29 THEN '200' 
162009                 WHEN 30 THEN '200' 
162010                 WHEN 31 THEN '200' 
162011                 WHEN 32 THEN '200' 
162012                 WHEN 33 THEN '200' 
162013                 WHEN 34 THEN '200' 
162014                 WHEN 35 THEN '200' 
162015                 WHEN 36 THEN '200' 
162016                 WHEN 37 THEN '200' 
162017                 WHEN 38 THEN '200' 
162018                 WHEN 39 THEN '200' 
162019                 WHEN 40 THEN '200' 
162020                 WHEN 41 THEN '200' 
162021                 WHEN 42 THEN '200' 
162022                 WHEN 43 THEN '200' 
162023                 WHEN 44 THEN '200' 
162024                 WHEN 45 THEN '200' 
162025                 
162026                 ELSE null
162027               END                           source_application_id
162028             , 'S'             source_type_code
162029             , CASE r
162030                 WHEN 1 THEN 'AID_DESCRIPTION' 
162031                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
162032                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
162033                 WHEN 4 THEN 'AID_DIST_CCID' 
162034                 WHEN 5 THEN 'PO_NUMBER' 
162035                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
162036                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
162037                 WHEN 8 THEN 'POD_CCID' 
162038                 WHEN 9 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
162039                 WHEN 10 THEN 'ASAT_LIAB_CCID' 
162040                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
162041                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
162042                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
162043                 WHEN 14 THEN 'AID_INVOICE_DIST_ID' 
162044                 WHEN 15 THEN 'UPG_ENC_CR_CCID' 
162045                 WHEN 16 THEN 'UPG_ENC_CR_AMT' 
162046                 WHEN 17 THEN 'UPG_ENC_CR_BASE_AMT' 
162047                 WHEN 18 THEN 'UPG_ENC_DR_CCID' 
162048                 WHEN 19 THEN 'UPG_ENC_DR_AMT' 
162049                 WHEN 20 THEN 'UPG_ENC_DR_BASE_AMT' 
162050                 WHEN 21 THEN 'UPG_AP_ENCUM_OPTION' 
162051                 WHEN 22 THEN 'AID_AMOUNT' 
162052                 WHEN 23 THEN 'POH_RATE_DATE' 
162053                 WHEN 24 THEN 'POH_RATE' 
162054                 WHEN 25 THEN 'POH_RATE_TYPE' 
162055                 WHEN 26 THEN 'DEFERRED_END_DATE' 
162056                 WHEN 27 THEN 'DEFERRED_OPTION' 
162057                 WHEN 28 THEN 'DEFERRED_START_DATE' 
162058                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
162059                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
162060                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
162061                 WHEN 32 THEN 'TAX_LINE_ID' 
162062                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
162066                 WHEN 37 THEN 'BUS_FLOW_AP_APP_ID' 
162063                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
162064                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
162065                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
162067                 WHEN 38 THEN 'BUS_FLOW_INV_DIST_TYPE' 
162068                 WHEN 39 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
162069                 WHEN 40 THEN 'BUS_FLOW_INV_DIST_ID' 
162070                 WHEN 41 THEN 'BUS_FLOW_INV_ID' 
162071                 WHEN 42 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
162072                 WHEN 43 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
162073                 WHEN 44 THEN 'SELF_ASSESSED_TAX_FLAG' 
162074                 WHEN 45 THEN 'AID_PROJECT_ID' 
162075                 
162076                 ELSE null
162077               END                           source_code
162078             , CASE r
162079                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
162080                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
162081                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
162082                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
162083                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
162084                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
162085                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
162086                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
162087                 WHEN 9 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
162088                 WHEN 10 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
162089                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
162090                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
162091                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
162092                 WHEN 14 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
162093                 WHEN 15 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
162094                 WHEN 16 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
162095                 WHEN 17 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
162096                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
162097                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
162098                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
162099                 WHEN 21 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
162100                 WHEN 22 THEN TO_CHAR(l1.AID_AMOUNT)
162101                 WHEN 23 THEN TO_CHAR(l3.POH_RATE_DATE)
162102                 WHEN 24 THEN TO_CHAR(l3.POH_RATE)
162103                 WHEN 25 THEN TO_CHAR(l3.POH_RATE_TYPE)
162104                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
162105                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
162106                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
162107                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
162108                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
162109                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
162110                 WHEN 32 THEN TO_CHAR(l5.TAX_LINE_ID)
162111                 WHEN 33 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
162112                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
162113                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
162114                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
162115                 WHEN 37 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
162116                 WHEN 38 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
162117                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
162118                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
162119                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
162120                 WHEN 42 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
162121                 WHEN 43 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
162122                 WHEN 44 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
162123                 WHEN 45 THEN TO_CHAR(l1.AID_PROJECT_ID)
162124                 
162125                 ELSE null
162126               END                           source_value
162127             , CASE r
162128                 WHEN 3 THEN fvl22.meaning
162129                 WHEN 6 THEN fvl33.meaning
162130                 WHEN 29 THEN fvl79.meaning
162131                 WHEN 42 THEN fvl95.meaning
162132                 WHEN 43 THEN fvl125.meaning
162133                 WHEN 44 THEN fvl135.meaning
162134                 
162135                 ELSE null
162136               END               source_meaning
162137          FROM  xla_events_gt     xet  
162138         , AP_INVOICE_EXTRACT_DETAILS_V  l1
162139         , AP_PO_HEADERS_EXTRACT_V  l3
162140         , ZX_AP_DEF_TAX_EXTRACT_V  l5
162141         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
162142   , fnd_lookup_values    fvl22
162143   , fnd_lookup_values    fvl33
162144   , fnd_lookup_values    fvl79
162145   , fnd_lookup_values    fvl95
162146   , fnd_lookup_values    fvl125
162147   , fnd_lookup_values    fvl135
162148             , (select rownum r from all_objects where rownum <= 45 and owner = p_apps_owner)
162149         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
162150           AND xet.event_class_code = C_EVENT_CLASS_CODE
162151             AND l1.event_id          = xet.event_id
162152  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'
162153   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
162154   AND fvl22.view_application_id(+) = 201
162155   AND fvl22.language(+)            = USERENV('LANG')
162156      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
162157   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
162158   AND fvl33.view_application_id(+) = 200
162159   AND fvl33.language(+)            = USERENV('LANG')
162160      AND fvl79.lookup_type(+)         = 'YES_NO'
162161   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
162162   AND fvl79.view_application_id(+) = 0
162163   AND fvl79.language(+)            = USERENV('LANG')
162164      AND fvl95.lookup_type(+)         = 'YES_NO'
162165   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
162166   AND fvl95.view_application_id(+) = 0
162167   AND fvl95.language(+)            = USERENV('LANG')
162171   AND fvl125.language(+)            = USERENV('LANG')
162168      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
162169   AND fvl125.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
162170   AND fvl125.view_application_id(+) = 0
162172      AND fvl135.lookup_type(+)         = 'YES_NO'
162173   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
162174   AND fvl135.view_application_id(+) = 0
162175   AND fvl135.language(+)            = USERENV('LANG')
162176   
162177 )
162178 ;
162179 --
162180 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162181 
162182       trace
162183          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
162184          ,p_level    => C_LEVEL_STATEMENT
162185          ,p_module   => l_log_module);
162186 
162187 END IF;
162188 
162189 
162190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162191       trace
162192          (p_msg      => 'END of insert_sources_232'
162193          ,p_level    => C_LEVEL_PROCEDURE
162194          ,p_module   => l_log_module);
162195 END IF;
162196 EXCEPTION
162197   WHEN xla_exceptions_pkg.application_exception THEN
162198       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
162199             trace
162200                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
162201                ,p_level    => C_LEVEL_EXCEPTION
162202                ,p_module   => l_log_module);
162203       END IF;
162204       RAISE;
162205   WHEN OTHERS THEN
162206       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
162207             trace
162208                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
162209                ,p_level    => C_LEVEL_EXCEPTION
162210                ,p_module   => l_log_module);
162211        END IF;
162212        xla_exceptions_pkg.raise_message
162213            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_232');
162214 END insert_sources_232;
162215 --
162216 
162217 ---------------------------------------
162218 --
162219 -- PRIVATE FUNCTION
162220 --         EventClass_232
162221 --
162222 ----------------------------------------
162223 --
162224 FUNCTION EventClass_232
162225        (p_application_id         IN NUMBER
162226        ,p_base_ledger_id         IN NUMBER
162227        ,p_target_ledger_id       IN NUMBER
162228        ,p_language               IN VARCHAR2
162229        ,p_currency_code          IN VARCHAR2
162230        ,p_sla_ledger_id          IN NUMBER
162231        ,p_pad_start_date         IN DATE
162232        ,p_pad_end_date           IN DATE
162233        ,p_primary_ledger_id      IN NUMBER)
162234 RETURN BOOLEAN IS
162235 --
162236 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
162237 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
162238 
162239 l_calculate_acctd_flag   VARCHAR2(1) :='N';
162240 l_calculate_g_l_flag     VARCHAR2(1) :='N';
162241 --
162242 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162243 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162244 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162245 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162246 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162247 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162248 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162249 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162250 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162251 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162252 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162253 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162254 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162255 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162256 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162257 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162258 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162259 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162260 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162261 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162262 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162263 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162264 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
162265 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162266 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
162267 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
162268 
162269 l_event_id                             NUMBER;
162270 l_previous_event_id                    NUMBER;
162271 l_first_event_id                       NUMBER;
162272 l_last_event_id                        NUMBER;
162273 
162274 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
162275 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
162276 --
162277 --
162278 l_result                    BOOLEAN := TRUE;
162279 l_rows                      NUMBER  := 1000;
162280 l_event_type_name           VARCHAR2(80) := 'All';
162281 l_event_class_name          VARCHAR2(80) := 'Prepayments';
162282 l_description               VARCHAR2(4000);
162283 l_transaction_reversal      NUMBER;
162284 l_ae_header_id              NUMBER;
162285 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
162286 l_log_module                VARCHAR2(240);
162287 --
162288 l_acct_reversal_source      VARCHAR2(30);
162289 l_trx_reversal_source       VARCHAR2(30);
162290 
162294 --
162291 l_continue_with_lines       BOOLEAN := TRUE;
162292 --
162293 l_acc_rev_gl_date_source    DATE;                      -- 4262811
162295 type t_array_event_id is table of number index by binary_integer;
162296 
162297 l_rec_array_event                    t_rec_array_event;
162298 l_null_rec_array_event               t_rec_array_event;
162299 l_array_ae_header_id                 xla_number_array_type;
162300 l_actual_flag                        VARCHAR2(1) := NULL;
162301 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
162302 l_balance_type_code                  VARCHAR2(1) :=NULL;
162303 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
162304 
162305 --
162306 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
162307 --
162308 
162309 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
162310 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
162311 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
162312 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
162313 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
162314 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
162315 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
162316 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
162317 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
162318 TYPE t_array_source_31 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
162319 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
162320 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
162321 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
162322 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
162323 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
162324 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
162325 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
162326 TYPE t_array_source_136 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
162327 TYPE t_array_source_137 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
162328 TYPE t_array_source_138 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162329 TYPE t_array_source_163 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_SOURCE%TYPE INDEX BY BINARY_INTEGER;
162330 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
162331 
162332 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
162333 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162334 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162335 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
162336 TYPE t_array_source_32 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
162337 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
162338 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162339 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
162340 TYPE t_array_source_49 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162341 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
162342 TYPE t_array_source_52 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
162343 TYPE t_array_source_54 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
162344 TYPE t_array_source_56 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162345 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162346 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
162347 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
162348 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162349 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
162350 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
162351 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162352 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
162353 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162354 TYPE t_array_source_73 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
162355 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
162356 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162357 TYPE t_array_source_76 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
162361 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
162358 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
162359 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
162360 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162362 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162363 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162364 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162365 TYPE t_array_source_87 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162366 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162367 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162368 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
162369 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162370 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
162371 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162372 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
162373 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162374 TYPE t_array_source_125 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
162375 TYPE t_array_source_135 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
162376 TYPE t_array_source_146 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
162377 
162378 l_array_source_3              t_array_source_3;
162379 l_array_source_4              t_array_source_4;
162380 l_array_source_5              t_array_source_5;
162381 l_array_source_6              t_array_source_6;
162382 l_array_source_7              t_array_source_7;
162383 l_array_source_8              t_array_source_8;
162384 l_array_source_15              t_array_source_15;
162385 l_array_source_15_meaning      t_array_lookup_meaning;
162386 l_array_source_20              t_array_source_20;
162387 l_array_source_23              t_array_source_23;
162388 l_array_source_31              t_array_source_31;
162389 l_array_source_31_meaning      t_array_lookup_meaning;
162390 l_array_source_34              t_array_source_34;
162391 l_array_source_47              t_array_source_47;
162392 l_array_source_47_meaning      t_array_lookup_meaning;
162393 l_array_source_57              t_array_source_57;
162394 l_array_source_66              t_array_source_66;
162395 l_array_source_80              t_array_source_80;
162396 l_array_source_81              t_array_source_81;
162397 l_array_source_82              t_array_source_82;
162398 l_array_source_136              t_array_source_136;
162399 l_array_source_137              t_array_source_137;
162400 l_array_source_138              t_array_source_138;
162401 l_array_source_163              t_array_source_163;
162402 l_array_source_168              t_array_source_168;
162403 
162404 l_array_source_1      t_array_source_1;
162405 l_array_source_21      t_array_source_21;
162406 l_array_source_22      t_array_source_22;
162407 l_array_source_22_meaning      t_array_lookup_meaning;
162408 l_array_source_30      t_array_source_30;
162409 l_array_source_32      t_array_source_32;
162410 l_array_source_33      t_array_source_33;
162411 l_array_source_33_meaning      t_array_lookup_meaning;
162412 l_array_source_43      t_array_source_43;
162413 l_array_source_45      t_array_source_45;
162414 l_array_source_49      t_array_source_49;
162415 l_array_source_50      t_array_source_50;
162416 l_array_source_52      t_array_source_52;
162417 l_array_source_54      t_array_source_54;
162418 l_array_source_56      t_array_source_56;
162419 l_array_source_63      t_array_source_63;
162420 l_array_source_64      t_array_source_64;
162421 l_array_source_65      t_array_source_65;
162422 l_array_source_67      t_array_source_67;
162423 l_array_source_68      t_array_source_68;
162424 l_array_source_69      t_array_source_69;
162425 l_array_source_70      t_array_source_70;
162426 l_array_source_71      t_array_source_71;
162427 l_array_source_72      t_array_source_72;
162428 l_array_source_73      t_array_source_73;
162429 l_array_source_74      t_array_source_74;
162430 l_array_source_75      t_array_source_75;
162431 l_array_source_76      t_array_source_76;
162432 l_array_source_77      t_array_source_77;
162433 l_array_source_78      t_array_source_78;
162434 l_array_source_79      t_array_source_79;
162435 l_array_source_79_meaning      t_array_lookup_meaning;
162436 l_array_source_83      t_array_source_83;
162437 l_array_source_84      t_array_source_84;
162438 l_array_source_85      t_array_source_85;
162439 l_array_source_86      t_array_source_86;
162440 l_array_source_87      t_array_source_87;
162441 l_array_source_88      t_array_source_88;
162442 l_array_source_89      t_array_source_89;
162443 l_array_source_90      t_array_source_90;
162444 l_array_source_91      t_array_source_91;
162445 l_array_source_92      t_array_source_92;
162446 l_array_source_93      t_array_source_93;
162447 l_array_source_94      t_array_source_94;
162448 l_array_source_95      t_array_source_95;
162449 l_array_source_95_meaning      t_array_lookup_meaning;
162450 l_array_source_125      t_array_source_125;
162451 l_array_source_125_meaning      t_array_lookup_meaning;
162452 l_array_source_135      t_array_source_135;
162453 l_array_source_135_meaning      t_array_lookup_meaning;
162454 l_array_source_146      t_array_source_146;
162455 
162456 --
162457 CURSOR header_cur
162461     xet.entity_id
162458 IS
162459 SELECT /*+ leading(xet) cardinality(xet,1) */
162460 -- Event Class Code: PREPAYMENTS
162462    ,xet.legal_entity_id
162463    ,xet.entity_code
162464    ,xet.transaction_number
162465    ,xet.event_id
162466    ,xet.event_class_code
162467    ,xet.event_type_code
162468    ,xet.event_number
162469    ,xet.event_date
162470    ,xet.transaction_date
162471    ,xet.reference_num_1
162472    ,xet.reference_num_2
162473    ,xet.reference_num_3
162474    ,xet.reference_num_4
162475    ,xet.reference_char_1
162476    ,xet.reference_char_2
162477    ,xet.reference_char_3
162478    ,xet.reference_char_4
162479    ,xet.reference_date_1
162480    ,xet.reference_date_2
162481    ,xet.reference_date_3
162482    ,xet.reference_date_4
162483    ,xet.event_created_by
162484    ,xet.budgetary_control_flag 
162485   , h2.INV_TRANSACTION_NUMBER    source_3
162486   , h2.AI_INVOICE_DATE    source_4
162487   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
162488   , h2.DOC_SEQUENCE_NAME    source_6
162489   , h2.INV_DOC_SEQUENCE_VALUE    source_7
162490   , h2.AI_DESCRIPTION    source_8
162491   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
162492   , fvl15.meaning   source_15_meaning
162493   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
162494   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
162495   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_31
162496   , fvl31.meaning   source_31_meaning
162497   , h2.AI_ACCTS_PAY_CCID    source_34
162498   , h4.ASP_AUTO_OFFSET_FLAG    source_47
162499   , fvl47.meaning   source_47_meaning
162500   , h2.AI_INVOICE_ID    source_57
162501   , h2.AI_INVOICE_CURRENCY_CODE    source_66
162502   , h2.AI_VENDOR_ID    source_80
162503   , h2.AI_VENDOR_SITE_ID    source_81
162504   , h2.THIRD_PARTY_TYPE    source_82
162505   , h2.INV_EXCHANGE_DATE    source_136
162506   , h2.INV_EXCHANGE_RATE    source_137
162507   , h2.INV_EXCHANGE_RATE_TYPE    source_138
162508   , h2.AI_SOURCE    source_163
162509   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
162510   FROM xla_events_gt     xet 
162511   , AP_INVOICE_EXTRACT_HEADER_V  h2
162512   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
162513   , fnd_lookup_values    fvl15
162514   , fnd_lookup_values    fvl31
162515   , fnd_lookup_values    fvl47
162516  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
162517    and xet.event_class_code = C_EVENT_CLASS_CODE
162518    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
162519  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
162520   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
162521   AND fvl15.view_application_id(+) = 200
162522   AND fvl15.language(+)            = USERENV('LANG')
162523      AND fvl31.lookup_type(+)         = 'YES_NO'
162524   AND fvl31.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
162525   AND fvl31.view_application_id(+) = 0
162526   AND fvl31.language(+)            = USERENV('LANG')
162527      AND fvl47.lookup_type(+)         = 'YES_NO'
162528   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
162529   AND fvl47.view_application_id(+) = 0
162530   AND fvl47.language(+)            = USERENV('LANG')
162531   
162532  ORDER BY event_id
162533 ;
162534 
162535 
162536 --
162537 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
162538 IS
162539 SELECT  /*+ leading(xet) cardinality(xet,1) */
162540 -- Event Class Code: PREPAYMENTS
162541     xet.entity_id
162542    ,xet.legal_entity_id
162543    ,xet.entity_code
162544    ,xet.transaction_number
162545    ,xet.event_id
162546    ,xet.event_class_code
162547    ,xet.event_type_code
162548    ,xet.event_number
162549    ,xet.event_date
162550    ,xet.transaction_date
162551    ,xet.reference_num_1
162552    ,xet.reference_num_2
162553    ,xet.reference_num_3
162554    ,xet.reference_num_4
162555    ,xet.reference_char_1
162556    ,xet.reference_char_2
162557    ,xet.reference_char_3
162558    ,xet.reference_char_4
162559    ,xet.reference_date_1
162560    ,xet.reference_date_2
162561    ,xet.reference_date_3
162562    ,xet.reference_date_4
162563    ,xet.event_created_by
162564    ,xet.budgetary_control_flag
162565  , l1.LINE_NUMBER  
162566   , l1.AID_DESCRIPTION    source_1
162567   , l1.INV_DIST_BASE_AMOUNT    source_21
162568   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
162569   , fvl22.meaning   source_22_meaning
162570   , l1.AID_DIST_CCID    source_30
162571   , l3.PO_NUMBER    source_32
162572   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
162573   , fvl33.meaning   source_33_meaning
162574   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
162575   , l1.POD_CCID    source_45
162576   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_49
162577   , l1.ASAT_LIAB_CCID    source_50
162578   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
162579   , l1.DISTRIBUTION_LINK_TYPE    source_54
162580   , l1.ALLOC_TO_MAIN_DIST_ID    source_56
162581   , l1.AID_INVOICE_DIST_ID    source_63
162582   , l1.UPG_ENC_CR_CCID    source_64
162583   , l1.UPG_ENC_CR_AMT    source_65
162584   , l1.UPG_ENC_CR_BASE_AMT    source_67
162585   , l1.UPG_ENC_DR_CCID    source_68
162586   , l1.UPG_ENC_DR_AMT    source_69
162587   , l1.UPG_ENC_DR_BASE_AMT    source_70
162588   , l1.UPG_AP_ENCUM_OPTION    source_71
162589   , l1.AID_AMOUNT    source_72
162590   , l3.POH_RATE_DATE    source_73
162591   , l3.POH_RATE    source_74
162592   , l3.POH_RATE_TYPE    source_75
162593   , l1.DEFERRED_END_DATE    source_76
162594   , l1.DEFERRED_OPTION    source_77
162595   , l1.DEFERRED_START_DATE    source_78
162596   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
162597   , fvl79.meaning   source_79_meaning
162598   , l1.AID_PARENT_REVERSAL_ID    source_83
162599   , l1.AID_STAT_AMOUNT    source_84
162600   , l5.TAX_LINE_ID    source_85
162601   , l6.REC_NREC_TAX_DIST_ID    source_86
162602   , l1.SUMMARY_TAX_LINE_ID    source_87
162603   , l1.UPG_CR_ENC_TYPE_ID    source_88
162607   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
162604   , l1.UPG_DR_ENC_TYPE_ID    source_89
162605   , l1.BUS_FLOW_AP_APP_ID    source_90
162606   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
162608   , l1.BUS_FLOW_INV_DIST_ID    source_93
162609   , l1.BUS_FLOW_INV_ID    source_94
162610   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_95
162611   , fvl95.meaning   source_95_meaning
162612   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_125
162613   , fvl125.meaning   source_125_meaning
162614   , l1.SELF_ASSESSED_TAX_FLAG    source_135
162615   , fvl135.meaning   source_135_meaning
162616   , l1.AID_PROJECT_ID    source_146
162617   FROM xla_events_gt     xet 
162618   , AP_INVOICE_EXTRACT_DETAILS_V  l1
162619   , AP_PO_HEADERS_EXTRACT_V  l3
162620   , ZX_AP_DEF_TAX_EXTRACT_V  l5
162621   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
162622   , fnd_lookup_values    fvl22
162623   , fnd_lookup_values    fvl33
162624   , fnd_lookup_values    fvl79
162625   , fnd_lookup_values    fvl95
162626   , fnd_lookup_values    fvl125
162627   , fnd_lookup_values    fvl135
162628  WHERE xet.event_id between x_first_event_id and x_last_event_id
162629    and xet.event_date between p_pad_start_date and p_pad_end_date
162630    and xet.event_class_code = C_EVENT_CLASS_CODE
162631    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
162632  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'
162633   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
162634   AND fvl22.view_application_id(+) = 201
162635   AND fvl22.language(+)            = USERENV('LANG')
162636      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
162637   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
162638   AND fvl33.view_application_id(+) = 200
162639   AND fvl33.language(+)            = USERENV('LANG')
162640      AND fvl79.lookup_type(+)         = 'YES_NO'
162641   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
162642   AND fvl79.view_application_id(+) = 0
162643   AND fvl79.language(+)            = USERENV('LANG')
162644      AND fvl95.lookup_type(+)         = 'YES_NO'
162645   AND fvl95.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
162646   AND fvl95.view_application_id(+) = 0
162647   AND fvl95.language(+)            = USERENV('LANG')
162648      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
162649   AND fvl125.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
162650   AND fvl125.view_application_id(+) = 0
162651   AND fvl125.language(+)            = USERENV('LANG')
162652      AND fvl135.lookup_type(+)         = 'YES_NO'
162653   AND fvl135.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
162654   AND fvl135.view_application_id(+) = 0
162655   AND fvl135.language(+)            = USERENV('LANG')
162656   ;
162657 
162658 --
162659 BEGIN
162660 IF g_log_enabled THEN
162661    l_log_module := C_DEFAULT_MODULE||'.EventClass_232';
162662 END IF;
162663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162664    trace
162665       (p_msg      => 'BEGIN of EventClass_232'
162666       ,p_level    => C_LEVEL_PROCEDURE
162667       ,p_module   => l_log_module);
162668 END IF;
162669 
162670 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162671    trace
162672       (p_msg      => 'p_application_id = '||p_application_id||
162673                      ' - p_base_ledger_id = '||p_base_ledger_id||
162674                      ' - p_target_ledger_id  = '||p_target_ledger_id||
162675                      ' - p_language = '||p_language||
162676                      ' - p_currency_code = '||p_currency_code||
162677                      ' - p_sla_ledger_id = '||p_sla_ledger_id
162678       ,p_level    => C_LEVEL_STATEMENT
162679       ,p_module   => l_log_module);
162680 END IF;
162681 --
162682 -- initialze arrays
162683 --
162684 g_array_event.DELETE;
162685 l_rec_array_event := l_null_rec_array_event;
162686 --
162687 --------------------------------------
162688 -- 4262811 Initialze MPA Line Number
162689 --------------------------------------
162690 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
162691 
162692 --
162693 
162694 --
162695 OPEN header_cur;
162696 --
162697 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162698    trace
162699    (p_msg      => 'SQL - FETCH header_cur'
162700    ,p_level    => C_LEVEL_STATEMENT
162701    ,p_module   => l_log_module);
162702 END IF;
162703 --
162704 LOOP
162705 FETCH header_cur BULK COLLECT INTO
162706         l_array_entity_id
162707       , l_array_legal_entity_id
162708       , l_array_entity_code
162709       , l_array_transaction_num
162710       , l_array_event_id
162711       , l_array_class_code
162712       , l_array_event_type
162713       , l_array_event_number
162714       , l_array_event_date
162715       , l_array_transaction_date
162716       , l_array_reference_num_1
162717       , l_array_reference_num_2
162718       , l_array_reference_num_3
162719       , l_array_reference_num_4
162720       , l_array_reference_char_1
162721       , l_array_reference_char_2
162722       , l_array_reference_char_3
162723       , l_array_reference_char_4
162724       , l_array_reference_date_1
162725       , l_array_reference_date_2
162726       , l_array_reference_date_3
162727       , l_array_reference_date_4
162728       , l_array_event_created_by
162729       , l_array_budgetary_control_flag 
162730       , l_array_source_3
162731       , l_array_source_4
162732       , l_array_source_5
162733       , l_array_source_6
162734       , l_array_source_7
162735       , l_array_source_8
162736       , l_array_source_15
162737       , l_array_source_15_meaning
162738       , l_array_source_20
162739       , l_array_source_23
162740       , l_array_source_31
162741       , l_array_source_31_meaning
162742       , l_array_source_34
162743       , l_array_source_47
162747       , l_array_source_80
162744       , l_array_source_47_meaning
162745       , l_array_source_57
162746       , l_array_source_66
162748       , l_array_source_81
162749       , l_array_source_82
162750       , l_array_source_136
162751       , l_array_source_137
162752       , l_array_source_138
162753       , l_array_source_163
162754       , l_array_source_168
162755       LIMIT l_rows;
162756 --
162757 IF (C_LEVEL_EVENT >= g_log_level) THEN
162758    trace
162759    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
162760    ,p_level    => C_LEVEL_EVENT
162761    ,p_module   => l_log_module);
162762 END IF;
162763 --
162764 EXIT WHEN l_array_entity_id.COUNT = 0;
162765 
162766 -- initialize arrays
162767 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
162768 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
162769 
162770 --
162771 -- Bug 4458708
162772 --
162773 XLA_AE_LINES_PKG.g_LineNumber := 0;
162774 
162775 
162776 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
162777 g_last_hdr_idx := l_array_event_id.LAST;
162778 --
162779 -- loop for the headers. Each iteration is for each header extract row
162780 -- fetched in header cursor
162781 --
162782 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
162783 
162784 --
162785 -- set event info as cache for other routines to refer event attributes
162786 --
162787 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
162788    (p_application_id           => p_application_id
162789    ,p_primary_ledger_id        => p_primary_ledger_id
162790    ,p_base_ledger_id           => p_base_ledger_id
162791    ,p_target_ledger_id         => p_target_ledger_id
162792    ,p_entity_id                => l_array_entity_id(hdr_idx)
162793    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
162794    ,p_entity_code              => l_array_entity_code(hdr_idx)
162795    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
162796    ,p_event_id                 => l_array_event_id(hdr_idx)
162797    ,p_event_class_code         => l_array_class_code(hdr_idx)
162798    ,p_event_type_code          => l_array_event_type(hdr_idx)
162799    ,p_event_number             => l_array_event_number(hdr_idx)
162800    ,p_event_date               => l_array_event_date(hdr_idx)
162801    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
162802    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
162803    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
162804    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
162805    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
162806    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
162807    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
162808    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
162809    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
162810    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
162811    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
162812    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
162813    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
162814    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
162815    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
162816 
162817 --
162818 -- set the status of entry to C_VALID (0)
162819 --
162820 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
162821 
162822 --
162823 -- initialize a row for ae header
162824 --
162825 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
162826 
162827 l_event_id := l_array_event_id(hdr_idx);
162828 
162829 --
162830 -- storing the hdr_idx for event. May be used by line cursor.
162831 --
162832 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
162833 
162834 --
162835 -- store sources from header extract. This can be improved to
162836 -- store only those sources from header extract that may be used in lines
162837 --
162838 
162839 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
162840 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
162841 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
162842 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
162843 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
162844 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
162845 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
162846 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
162847 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
162848 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
162849 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
162850 g_array_event(l_event_id).array_value_char('source_31_meaning') := l_array_source_31_meaning(hdr_idx);
162851 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
162852 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
162853 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
162854 g_array_event(l_event_id).array_value_num('source_57') := l_array_source_57(hdr_idx);
162855 g_array_event(l_event_id).array_value_char('source_66') := l_array_source_66(hdr_idx);
162856 g_array_event(l_event_id).array_value_num('source_80') := l_array_source_80(hdr_idx);
162857 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
162858 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
162859 g_array_event(l_event_id).array_value_date('source_136') := l_array_source_136(hdr_idx);
162863 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
162860 g_array_event(l_event_id).array_value_num('source_137') := l_array_source_137(hdr_idx);
162861 g_array_event(l_event_id).array_value_char('source_138') := l_array_source_138(hdr_idx);
162862 g_array_event(l_event_id).array_value_char('source_163') := l_array_source_163(hdr_idx);
162864 
162865 --
162866 -- initilaize the status of ae headers for diffrent balance types
162867 -- the status is initialised to C_NOT_CREATED (2)
162868 --
162869 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162870 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162871 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
162872 
162873 --
162874 -- call api to validate and store accounting attributes for header
162875 --
162876 
162877 ------------------------------------------------------------
162878 -- Accrual Reversal : to get date for Standard Source (NONE)
162879 ------------------------------------------------------------
162880 l_acc_rev_gl_date_source := NULL;
162881 
162882      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
162883       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
162884      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
162885       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
162886      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
162887       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
162888      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
162889       l_rec_acct_attrs.array_date_value(4) := 
162890 xla_ae_sources_pkg.GetSystemSourceDate(
162891    p_source_code           => 'XLA_EVENT_DATE'
162892  , p_source_type_code      => 'Y'
162893  , p_source_application_id =>  602
162894 );
162895 
162896 
162897 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
162898 
162899 XLA_AE_HEADER_PKG.SetJeCategoryName;
162900 
162901 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
162902 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
162903 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
162904 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
162905 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
162906 
162907 
162908 --
162909 xla_ae_header_pkg.SetHdrDescription(
162910    p_description => Description_2 (
162911    p_application_id => p_application_id 
162912  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
162913  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
162914  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
162915  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
162916  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
162917  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
162918    )
162919 );
162920 --
162921 
162922 -- No header level analytical criteria
162923 
162924 --
162925 --accounting attribute enhancement, bug 3612931
162926 --
162927 l_trx_reversal_source := SUBSTR(NULL, 1,30);
162928 
162929 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
162930    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
162931 
162932    xla_accounting_err_pkg.build_message
162933       (p_appli_s_name            => 'XLA'
162934       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
162935       ,p_token_1                 => 'ACCT_ATTR_NAME'
162936       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
162937       ,p_token_2                 => 'PRODUCT_NAME'
162938       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
162939       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
162940       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
162941       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
162942 
162943 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
162944    --
162945    -- following sets the accounting attributes needed to reverse
162946    -- accounting for a distributeion
162947    --
162948    xla_ae_lines_pkg.SetTrxReversalAttrs
162949       (p_event_id              => l_event_id
162950       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
162951       ,p_trx_reversal_source   => l_trx_reversal_source);
162952 
162953 END IF;
162954 
162955 
162956 ----------------------------------------------------------------
162957 -- 4262811 -  update the header statuses to invalid in need be
162958 ----------------------------------------------------------------
162959 --
162960 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
162961 
162962 
162963   -----------------------------------------------
162964   -- No accrual reversal for the event class/type
162965   -----------------------------------------------
162966 ----------------------------------------------------------------
162967 
162968 --
162969 -- this ends the header loop iteration for one bulk fetch
162970 --
162971 END LOOP;
162972 
162973 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
162974 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
162975 
162976 --
162977 -- insert dummy rows into lines gt table that were created due to
162978 -- transaction reversals
162979 --
162980 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
162981    l_result := XLA_AE_LINES_PKG.InsertLines;
162985 -- reset the temp_line_num for each set of events fetched from header
162982 END IF;
162983 
162984 --
162986 -- cursor rather than doing it for each new event in line cursor
162987 -- Bug 3939231
162988 --
162989 xla_ae_lines_pkg.g_temp_line_num := 0;
162990 
162991 
162992 
162993 --
162994 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
162995 --
162996 --
162997 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162998 
162999       trace
163000          (p_msg      => 'SQL - FETCH line_cur'
163001          ,p_level    => C_LEVEL_STATEMENT
163002          ,p_module   => l_log_module);
163003 
163004 END IF;
163005 --
163006 --
163007 LOOP
163008   --
163009   FETCH line_cur BULK COLLECT INTO
163010         l_array_entity_id
163011       , l_array_legal_entity_id
163012       , l_array_entity_code
163013       , l_array_transaction_num
163014       , l_array_event_id
163015       , l_array_class_code
163016       , l_array_event_type
163017       , l_array_event_number
163018       , l_array_event_date
163019       , l_array_transaction_date
163020       , l_array_reference_num_1
163021       , l_array_reference_num_2
163022       , l_array_reference_num_3
163023       , l_array_reference_num_4
163024       , l_array_reference_char_1
163025       , l_array_reference_char_2
163026       , l_array_reference_char_3
163027       , l_array_reference_char_4
163028       , l_array_reference_date_1
163029       , l_array_reference_date_2
163030       , l_array_reference_date_3
163031       , l_array_reference_date_4
163032       , l_array_event_created_by
163033       , l_array_budgetary_control_flag
163034       , l_array_extract_line_num 
163035       , l_array_source_1
163036       , l_array_source_21
163037       , l_array_source_22
163038       , l_array_source_22_meaning
163039       , l_array_source_30
163040       , l_array_source_32
163041       , l_array_source_33
163042       , l_array_source_33_meaning
163043       , l_array_source_43
163044       , l_array_source_45
163045       , l_array_source_49
163046       , l_array_source_50
163047       , l_array_source_52
163048       , l_array_source_54
163049       , l_array_source_56
163050       , l_array_source_63
163051       , l_array_source_64
163052       , l_array_source_65
163053       , l_array_source_67
163054       , l_array_source_68
163055       , l_array_source_69
163056       , l_array_source_70
163057       , l_array_source_71
163058       , l_array_source_72
163059       , l_array_source_73
163060       , l_array_source_74
163061       , l_array_source_75
163062       , l_array_source_76
163063       , l_array_source_77
163064       , l_array_source_78
163065       , l_array_source_79
163066       , l_array_source_79_meaning
163067       , l_array_source_83
163068       , l_array_source_84
163069       , l_array_source_85
163070       , l_array_source_86
163071       , l_array_source_87
163072       , l_array_source_88
163073       , l_array_source_89
163074       , l_array_source_90
163075       , l_array_source_91
163076       , l_array_source_92
163077       , l_array_source_93
163078       , l_array_source_94
163079       , l_array_source_95
163080       , l_array_source_95_meaning
163081       , l_array_source_125
163082       , l_array_source_125_meaning
163083       , l_array_source_135
163084       , l_array_source_135_meaning
163085       , l_array_source_146
163086       LIMIT l_rows;
163087 
163088   --
163089   IF (C_LEVEL_EVENT >= g_log_level) THEN
163090             trace
163091                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
163092                ,p_level    => C_LEVEL_EVENT
163093                ,p_module   => l_log_module);
163094   END IF;
163095   --
163096   EXIT WHEN l_array_entity_id.count = 0;
163097 
163098   XLA_AE_LINES_PKG.g_rec_lines := null;
163099 
163100 --
163101 -- Bug 4458708
163102 --
163103 XLA_AE_LINES_PKG.g_LineNumber := 0;
163104 --
163105 --
163106 
163107 FOR Idx IN 1..l_array_event_id.count LOOP
163108    --
163109    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
163110    --
163111    l_event_id := l_array_event_id(idx);  -- 5648433
163112 
163113    --
163114    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
163115    --
163116 
163117    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
163118              (g_array_event(l_event_id).array_value_num('header_index'))
163119          ,'N'
163120          ) <> 'Y'
163121    THEN
163122       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
163123          trace
163124             (p_msg      => 'Trancaction revesal option is not Y '
163125             ,p_level    => C_LEVEL_STATEMENT
163126             ,p_module   => l_log_module);
163127       END IF;
163128 
163129 --
163130 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
163131 --
163132 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
163133 --
163134 -- set event info as cache for other routines to refer event attributes
163135 --
163136 
163137 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
163138    l_previous_event_id := l_event_id;
163139 
163140    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
163141       (p_application_id           => p_application_id
163142       ,p_primary_ledger_id        => p_primary_ledger_id
163143       ,p_base_ledger_id           => p_base_ledger_id
163144       ,p_target_ledger_id         => p_target_ledger_id
163145       ,p_entity_id                => l_array_entity_id(Idx)
163146       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
163150       ,p_event_class_code         => l_array_class_code(Idx)
163147       ,p_entity_code              => l_array_entity_code(Idx)
163148       ,p_transaction_num          => l_array_transaction_num(Idx)
163149       ,p_event_id                 => l_array_event_id(Idx)
163151       ,p_event_type_code          => l_array_event_type(Idx)
163152       ,p_event_number             => l_array_event_number(Idx)
163153       ,p_event_date               => l_array_event_date(Idx)
163154       ,p_transaction_date         => l_array_transaction_date(Idx)
163155       ,p_reference_num_1          => l_array_reference_num_1(Idx)
163156       ,p_reference_num_2          => l_array_reference_num_2(Idx)
163157       ,p_reference_num_3          => l_array_reference_num_3(Idx)
163158       ,p_reference_num_4          => l_array_reference_num_4(Idx)
163159       ,p_reference_char_1         => l_array_reference_char_1(Idx)
163160       ,p_reference_char_2         => l_array_reference_char_2(Idx)
163161       ,p_reference_char_3         => l_array_reference_char_3(Idx)
163162       ,p_reference_char_4         => l_array_reference_char_4(Idx)
163163       ,p_reference_date_1         => l_array_reference_date_1(Idx)
163164       ,p_reference_date_2         => l_array_reference_date_2(Idx)
163165       ,p_reference_date_3         => l_array_reference_date_3(Idx)
163166       ,p_reference_date_4         => l_array_reference_date_4(Idx)
163167       ,p_event_created_by         => l_array_event_created_by(Idx)
163168       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
163169        --
163170 END IF;
163171 
163172 
163173 
163174 --
163175 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
163176 
163177 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
163178 
163179 IF l_continue_with_lines THEN
163180    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
163181       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
163182 
163183       xla_accounting_err_pkg.build_message
163184          (p_appli_s_name            => 'XLA'
163185          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
163186          ,p_token_1                 => 'LINE_NUMBER'
163187          ,p_value_1                 => l_array_extract_line_num(Idx)
163188          ,p_token_2                 => 'PRODUCT_NAME'
163189          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
163190          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
163191          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
163192          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
163193 
163194    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
163195       --
163196       -- following sets the accounting attributes needed to reverse
163197       -- accounting for a distributeion
163198       --
163199 
163200       --
163201       -- 5217187
163202       --
163203       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
163204       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
163205                                        g_array_event(l_event_id).array_value_num('header_index'));
163206       --
163207       --
163208 
163209       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
163210       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
163211       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
163212       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_63(Idx);
163213       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
163214       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
163215       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
163216       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_64(Idx);
163217       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
163218       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_65(Idx);
163219       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
163220       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_66');
163221       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
163222       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_67(Idx);
163223       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
163224       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_68(Idx);
163225       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
163226       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_69(Idx);
163227       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
163228       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_66');
163229       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
163230       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_70(Idx);
163231       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
163232       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_71(Idx);
163233       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
163234       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_82');
163235       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
163236       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_83(Idx);
163237       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
163238       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_54(Idx);
163239       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
163240       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_85(Idx);
163241       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
163242       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_86(Idx);
163246       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_88(Idx);
163243       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
163244       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_87(Idx);
163245       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
163247       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
163248       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_89(Idx);
163249 
163250 
163251       xla_ae_lines_pkg.SetAcctReversalAttrs
163252          (p_event_id             => l_event_id
163253          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
163254          ,p_calculate_acctd_flag => l_calculate_acctd_flag
163255          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
163256    END IF;
163257 
163258    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
163259        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
163260 
163261 --
163262 AcctLineType_49 (
163263  p_application_id  => p_application_id
163264  ,p_event_id     => l_event_id
163265  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163266  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163267  ,p_actual_flag => l_actual_flag
163268  ,p_balance_type_code => l_balance_type_code
163269  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163270  
163271  , p_source_1 => l_array_source_1(Idx)
163272  , p_source_21 => l_array_source_21(Idx)
163273  , p_source_30 => l_array_source_30(Idx)
163274  , p_source_33 => l_array_source_33(Idx)
163275  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163276  , p_source_52 => l_array_source_52(Idx)
163277  , p_source_54 => l_array_source_54(Idx)
163278  , p_source_56 => l_array_source_56(Idx)
163279  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163280  , p_source_63 => l_array_source_63(Idx)
163281  , p_source_64 => l_array_source_64(Idx)
163282  , p_source_65 => l_array_source_65(Idx)
163283  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163284  , p_source_67 => l_array_source_67(Idx)
163285  , p_source_68 => l_array_source_68(Idx)
163286  , p_source_69 => l_array_source_69(Idx)
163287  , p_source_70 => l_array_source_70(Idx)
163288  , p_source_71 => l_array_source_71(Idx)
163289  , p_source_72 => l_array_source_72(Idx)
163290  , p_source_73 => l_array_source_73(Idx)
163291  , p_source_74 => l_array_source_74(Idx)
163292  , p_source_75 => l_array_source_75(Idx)
163293  , p_source_76 => l_array_source_76(Idx)
163294  , p_source_77 => l_array_source_77(Idx)
163295  , p_source_78 => l_array_source_78(Idx)
163296  , p_source_79 => l_array_source_79(Idx)
163297  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163298  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163299  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163300  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163301  , p_source_83 => l_array_source_83(Idx)
163302  , p_source_84 => l_array_source_84(Idx)
163303  , p_source_85 => l_array_source_85(Idx)
163304  , p_source_86 => l_array_source_86(Idx)
163305  , p_source_87 => l_array_source_87(Idx)
163306  , p_source_88 => l_array_source_88(Idx)
163307  , p_source_89 => l_array_source_89(Idx)
163308  , p_source_90 => l_array_source_90(Idx)
163309  , p_source_91 => l_array_source_91(Idx)
163310  , p_source_92 => l_array_source_92(Idx)
163311  , p_source_93 => l_array_source_93(Idx)
163312  , p_source_94 => l_array_source_94(Idx)
163313  );
163314 If(l_balance_type_code = 'A') THEN
163315   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163316 END IF;
163317 
163318 --
163319 
163320 
163321 --
163322 AcctLineType_53 (
163323  p_application_id  => p_application_id
163324  ,p_event_id     => l_event_id
163325  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163326  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163327  ,p_actual_flag => l_actual_flag
163328  ,p_balance_type_code => l_balance_type_code
163329  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163330  
163331  , p_source_1 => l_array_source_1(Idx)
163332  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163333  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163334  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163335  , p_source_21 => l_array_source_21(Idx)
163336  , p_source_22 => l_array_source_22(Idx)
163337  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163338  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163339  , p_source_30 => l_array_source_30(Idx)
163340  , p_source_33 => l_array_source_33(Idx)
163341  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163342  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163343  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163344  , p_source_52 => l_array_source_52(Idx)
163345  , p_source_54 => l_array_source_54(Idx)
163346  , p_source_56 => l_array_source_56(Idx)
163347  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163348  , p_source_63 => l_array_source_63(Idx)
163349  , p_source_64 => l_array_source_64(Idx)
163350  , p_source_65 => l_array_source_65(Idx)
163351  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163352  , p_source_67 => l_array_source_67(Idx)
163353  , p_source_68 => l_array_source_68(Idx)
163354  , p_source_69 => l_array_source_69(Idx)
163355  , p_source_70 => l_array_source_70(Idx)
163356  , p_source_71 => l_array_source_71(Idx)
163357  , p_source_76 => l_array_source_76(Idx)
163358  , p_source_77 => l_array_source_77(Idx)
163359  , p_source_78 => l_array_source_78(Idx)
163360  , p_source_79 => l_array_source_79(Idx)
163361  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163362  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163363  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163364  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163368  , p_source_86 => l_array_source_86(Idx)
163365  , p_source_83 => l_array_source_83(Idx)
163366  , p_source_84 => l_array_source_84(Idx)
163367  , p_source_85 => l_array_source_85(Idx)
163369  , p_source_87 => l_array_source_87(Idx)
163370  , p_source_88 => l_array_source_88(Idx)
163371  , p_source_89 => l_array_source_89(Idx)
163372  , p_source_90 => l_array_source_90(Idx)
163373  , p_source_91 => l_array_source_91(Idx)
163374  , p_source_92 => l_array_source_92(Idx)
163375  , p_source_93 => l_array_source_93(Idx)
163376  , p_source_94 => l_array_source_94(Idx)
163377  );
163378 If(l_balance_type_code = 'A') THEN
163379   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163380 END IF;
163381 
163382 --
163383 
163384 
163385 --
163386 AcctLineType_57 (
163387  p_application_id  => p_application_id
163388  ,p_event_id     => l_event_id
163389  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163390  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163391  ,p_actual_flag => l_actual_flag
163392  ,p_balance_type_code => l_balance_type_code
163393  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163394  
163395  , p_source_1 => l_array_source_1(Idx)
163396  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163397  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163398  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163399  , p_source_21 => l_array_source_21(Idx)
163400  , p_source_22 => l_array_source_22(Idx)
163401  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163402  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163403  , p_source_30 => l_array_source_30(Idx)
163404  , p_source_33 => l_array_source_33(Idx)
163405  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163406  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163407  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163408  , p_source_52 => l_array_source_52(Idx)
163409  , p_source_54 => l_array_source_54(Idx)
163410  , p_source_56 => l_array_source_56(Idx)
163411  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163412  , p_source_63 => l_array_source_63(Idx)
163413  , p_source_64 => l_array_source_64(Idx)
163414  , p_source_65 => l_array_source_65(Idx)
163415  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163416  , p_source_67 => l_array_source_67(Idx)
163417  , p_source_68 => l_array_source_68(Idx)
163418  , p_source_69 => l_array_source_69(Idx)
163419  , p_source_70 => l_array_source_70(Idx)
163420  , p_source_71 => l_array_source_71(Idx)
163421  , p_source_76 => l_array_source_76(Idx)
163422  , p_source_77 => l_array_source_77(Idx)
163423  , p_source_78 => l_array_source_78(Idx)
163424  , p_source_79 => l_array_source_79(Idx)
163425  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163426  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163427  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163428  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163429  , p_source_83 => l_array_source_83(Idx)
163430  , p_source_84 => l_array_source_84(Idx)
163431  , p_source_85 => l_array_source_85(Idx)
163432  , p_source_86 => l_array_source_86(Idx)
163433  , p_source_87 => l_array_source_87(Idx)
163434  , p_source_88 => l_array_source_88(Idx)
163435  , p_source_89 => l_array_source_89(Idx)
163436  , p_source_90 => l_array_source_90(Idx)
163437  , p_source_91 => l_array_source_91(Idx)
163438  , p_source_92 => l_array_source_92(Idx)
163439  , p_source_93 => l_array_source_93(Idx)
163440  , p_source_94 => l_array_source_94(Idx)
163441  , p_source_95 => l_array_source_95(Idx)
163442  , p_source_95_meaning => l_array_source_95_meaning(Idx)
163443  );
163444 If(l_balance_type_code = 'A') THEN
163445   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163446 END IF;
163447 
163448 --
163449 
163450 
163451 --
163452 AcctLineType_98 (
163453  p_application_id  => p_application_id
163454  ,p_event_id     => l_event_id
163455  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163456  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163457  ,p_actual_flag => l_actual_flag
163458  ,p_balance_type_code => l_balance_type_code
163459  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163460  
163461  , p_source_1 => l_array_source_1(Idx)
163462  , p_source_21 => l_array_source_21(Idx)
163463  , p_source_30 => l_array_source_30(Idx)
163464  , p_source_33 => l_array_source_33(Idx)
163465  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163466  , p_source_52 => l_array_source_52(Idx)
163467  , p_source_54 => l_array_source_54(Idx)
163468  , p_source_56 => l_array_source_56(Idx)
163469  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163470  , p_source_63 => l_array_source_63(Idx)
163471  , p_source_64 => l_array_source_64(Idx)
163472  , p_source_65 => l_array_source_65(Idx)
163473  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163474  , p_source_67 => l_array_source_67(Idx)
163475  , p_source_68 => l_array_source_68(Idx)
163476  , p_source_69 => l_array_source_69(Idx)
163477  , p_source_70 => l_array_source_70(Idx)
163478  , p_source_71 => l_array_source_71(Idx)
163479  , p_source_72 => l_array_source_72(Idx)
163480  , p_source_76 => l_array_source_76(Idx)
163481  , p_source_77 => l_array_source_77(Idx)
163482  , p_source_78 => l_array_source_78(Idx)
163483  , p_source_79 => l_array_source_79(Idx)
163484  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163485  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163486  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163487  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163488  , p_source_83 => l_array_source_83(Idx)
163489  , p_source_84 => l_array_source_84(Idx)
163490  , p_source_85 => l_array_source_85(Idx)
163491  , p_source_86 => l_array_source_86(Idx)
163492  , p_source_87 => l_array_source_87(Idx)
163496  , p_source_91 => l_array_source_91(Idx)
163493  , p_source_88 => l_array_source_88(Idx)
163494  , p_source_89 => l_array_source_89(Idx)
163495  , p_source_90 => l_array_source_90(Idx)
163497  , p_source_92 => l_array_source_92(Idx)
163498  , p_source_93 => l_array_source_93(Idx)
163499  , p_source_94 => l_array_source_94(Idx)
163500  , p_source_125 => l_array_source_125(Idx)
163501  , p_source_125_meaning => l_array_source_125_meaning(Idx)
163502  , p_source_135 => l_array_source_135(Idx)
163503  , p_source_135_meaning => l_array_source_135_meaning(Idx)
163504  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163505  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163506  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163507  );
163508 If(l_balance_type_code = 'A') THEN
163509   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163510 END IF;
163511 
163512 --
163513 
163514 
163515 --
163516 AcctLineType_108 (
163517  p_application_id  => p_application_id
163518  ,p_event_id     => l_event_id
163519  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163520  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163521  ,p_actual_flag => l_actual_flag
163522  ,p_balance_type_code => l_balance_type_code
163523  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163524  
163525  , p_source_1 => l_array_source_1(Idx)
163526  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163527  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163528  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163529  , p_source_21 => l_array_source_21(Idx)
163530  , p_source_22 => l_array_source_22(Idx)
163531  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163532  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163533  , p_source_30 => l_array_source_30(Idx)
163534  , p_source_33 => l_array_source_33(Idx)
163535  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163536  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163537  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163538  , p_source_52 => l_array_source_52(Idx)
163539  , p_source_54 => l_array_source_54(Idx)
163540  , p_source_56 => l_array_source_56(Idx)
163541  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163542  , p_source_63 => l_array_source_63(Idx)
163543  , p_source_64 => l_array_source_64(Idx)
163544  , p_source_65 => l_array_source_65(Idx)
163545  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163546  , p_source_67 => l_array_source_67(Idx)
163547  , p_source_68 => l_array_source_68(Idx)
163548  , p_source_69 => l_array_source_69(Idx)
163549  , p_source_70 => l_array_source_70(Idx)
163550  , p_source_71 => l_array_source_71(Idx)
163551  , p_source_72 => l_array_source_72(Idx)
163552  , p_source_76 => l_array_source_76(Idx)
163553  , p_source_77 => l_array_source_77(Idx)
163554  , p_source_78 => l_array_source_78(Idx)
163555  , p_source_79 => l_array_source_79(Idx)
163556  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163557  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163558  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163559  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163560  , p_source_83 => l_array_source_83(Idx)
163561  , p_source_84 => l_array_source_84(Idx)
163562  , p_source_85 => l_array_source_85(Idx)
163563  , p_source_86 => l_array_source_86(Idx)
163564  , p_source_87 => l_array_source_87(Idx)
163565  , p_source_88 => l_array_source_88(Idx)
163566  , p_source_89 => l_array_source_89(Idx)
163567  , p_source_90 => l_array_source_90(Idx)
163568  , p_source_91 => l_array_source_91(Idx)
163569  , p_source_92 => l_array_source_92(Idx)
163570  , p_source_93 => l_array_source_93(Idx)
163571  , p_source_94 => l_array_source_94(Idx)
163572  , p_source_95 => l_array_source_95(Idx)
163573  , p_source_95_meaning => l_array_source_95_meaning(Idx)
163574  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163575  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163576  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163577  );
163578 If(l_balance_type_code = 'A') THEN
163579   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163580 END IF;
163581 
163582 --
163583 
163584 
163585 --
163586 AcctLineType_117 (
163587  p_application_id  => p_application_id
163588  ,p_event_id     => l_event_id
163589  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163590  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163591  ,p_actual_flag => l_actual_flag
163592  ,p_balance_type_code => l_balance_type_code
163593  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163594  
163595  , p_source_1 => l_array_source_1(Idx)
163596  , p_source_21 => l_array_source_21(Idx)
163597  , p_source_30 => l_array_source_30(Idx)
163598  , p_source_33 => l_array_source_33(Idx)
163599  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163600  , p_source_52 => l_array_source_52(Idx)
163601  , p_source_54 => l_array_source_54(Idx)
163602  , p_source_56 => l_array_source_56(Idx)
163603  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163604  , p_source_63 => l_array_source_63(Idx)
163605  , p_source_64 => l_array_source_64(Idx)
163606  , p_source_65 => l_array_source_65(Idx)
163607  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163608  , p_source_67 => l_array_source_67(Idx)
163609  , p_source_68 => l_array_source_68(Idx)
163610  , p_source_69 => l_array_source_69(Idx)
163611  , p_source_70 => l_array_source_70(Idx)
163612  , p_source_71 => l_array_source_71(Idx)
163613  , p_source_72 => l_array_source_72(Idx)
163614  , p_source_76 => l_array_source_76(Idx)
163615  , p_source_77 => l_array_source_77(Idx)
163616  , p_source_78 => l_array_source_78(Idx)
163617  , p_source_79 => l_array_source_79(Idx)
163621  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163618  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163619  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163620  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163622  , p_source_83 => l_array_source_83(Idx)
163623  , p_source_84 => l_array_source_84(Idx)
163624  , p_source_85 => l_array_source_85(Idx)
163625  , p_source_86 => l_array_source_86(Idx)
163626  , p_source_87 => l_array_source_87(Idx)
163627  , p_source_88 => l_array_source_88(Idx)
163628  , p_source_89 => l_array_source_89(Idx)
163629  , p_source_90 => l_array_source_90(Idx)
163630  , p_source_91 => l_array_source_91(Idx)
163631  , p_source_92 => l_array_source_92(Idx)
163632  , p_source_93 => l_array_source_93(Idx)
163633  , p_source_94 => l_array_source_94(Idx)
163634  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163635  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163636  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163637  , p_source_146 => l_array_source_146(Idx)
163638  );
163639 If(l_balance_type_code = 'A') THEN
163640   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163641 END IF;
163642 
163643 --
163644 
163645 
163646 --
163647 AcctLineType_139 (
163648  p_application_id  => p_application_id
163649  ,p_event_id     => l_event_id
163650  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163651  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163652  ,p_actual_flag => l_actual_flag
163653  ,p_balance_type_code => l_balance_type_code
163654  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163655  
163656  , p_source_1 => l_array_source_1(Idx)
163657  , p_source_21 => l_array_source_21(Idx)
163658  , p_source_30 => l_array_source_30(Idx)
163659  , p_source_33 => l_array_source_33(Idx)
163660  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163661  , p_source_52 => l_array_source_52(Idx)
163662  , p_source_54 => l_array_source_54(Idx)
163663  , p_source_56 => l_array_source_56(Idx)
163664  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163665  , p_source_63 => l_array_source_63(Idx)
163666  , p_source_64 => l_array_source_64(Idx)
163667  , p_source_65 => l_array_source_65(Idx)
163668  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163669  , p_source_67 => l_array_source_67(Idx)
163670  , p_source_68 => l_array_source_68(Idx)
163671  , p_source_69 => l_array_source_69(Idx)
163672  , p_source_70 => l_array_source_70(Idx)
163673  , p_source_71 => l_array_source_71(Idx)
163674  , p_source_72 => l_array_source_72(Idx)
163675  , p_source_76 => l_array_source_76(Idx)
163676  , p_source_77 => l_array_source_77(Idx)
163677  , p_source_78 => l_array_source_78(Idx)
163678  , p_source_79 => l_array_source_79(Idx)
163679  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163680  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163681  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163682  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163683  , p_source_83 => l_array_source_83(Idx)
163684  , p_source_84 => l_array_source_84(Idx)
163685  , p_source_85 => l_array_source_85(Idx)
163686  , p_source_86 => l_array_source_86(Idx)
163687  , p_source_87 => l_array_source_87(Idx)
163688  , p_source_88 => l_array_source_88(Idx)
163689  , p_source_89 => l_array_source_89(Idx)
163690  , p_source_90 => l_array_source_90(Idx)
163691  , p_source_91 => l_array_source_91(Idx)
163692  , p_source_92 => l_array_source_92(Idx)
163693  , p_source_93 => l_array_source_93(Idx)
163694  , p_source_94 => l_array_source_94(Idx)
163695  , p_source_95 => l_array_source_95(Idx)
163696  , p_source_95_meaning => l_array_source_95_meaning(Idx)
163697  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163698  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163699  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163700  );
163701 If(l_balance_type_code = 'A') THEN
163702   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163703 END IF;
163704 
163705 --
163706 
163707 
163708 --
163709 AcctLineType_156 (
163710  p_application_id  => p_application_id
163711  ,p_event_id     => l_event_id
163712  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163713  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163714  ,p_actual_flag => l_actual_flag
163715  ,p_balance_type_code => l_balance_type_code
163716  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163717  
163718  , p_source_1 => l_array_source_1(Idx)
163719  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163720  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163721  , p_source_21 => l_array_source_21(Idx)
163722  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
163723  , p_source_52 => l_array_source_52(Idx)
163724  , p_source_54 => l_array_source_54(Idx)
163725  , p_source_56 => l_array_source_56(Idx)
163726  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163727  , p_source_63 => l_array_source_63(Idx)
163728  , p_source_64 => l_array_source_64(Idx)
163729  , p_source_65 => l_array_source_65(Idx)
163730  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163731  , p_source_67 => l_array_source_67(Idx)
163732  , p_source_68 => l_array_source_68(Idx)
163733  , p_source_69 => l_array_source_69(Idx)
163734  , p_source_70 => l_array_source_70(Idx)
163735  , p_source_71 => l_array_source_71(Idx)
163736  , p_source_72 => l_array_source_72(Idx)
163737  , p_source_76 => l_array_source_76(Idx)
163738  , p_source_77 => l_array_source_77(Idx)
163739  , p_source_78 => l_array_source_78(Idx)
163740  , p_source_79 => l_array_source_79(Idx)
163741  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163742  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163746  , p_source_84 => l_array_source_84(Idx)
163743  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163744  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163745  , p_source_83 => l_array_source_83(Idx)
163747  , p_source_85 => l_array_source_85(Idx)
163748  , p_source_86 => l_array_source_86(Idx)
163749  , p_source_87 => l_array_source_87(Idx)
163750  , p_source_88 => l_array_source_88(Idx)
163751  , p_source_89 => l_array_source_89(Idx)
163752  , p_source_90 => l_array_source_90(Idx)
163753  , p_source_91 => l_array_source_91(Idx)
163754  , p_source_92 => l_array_source_92(Idx)
163755  , p_source_93 => l_array_source_93(Idx)
163756  , p_source_94 => l_array_source_94(Idx)
163757  , p_source_135 => l_array_source_135(Idx)
163758  , p_source_135_meaning => l_array_source_135_meaning(Idx)
163759  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163760  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163761  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163762  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
163763  );
163764 If(l_balance_type_code = 'A') THEN
163765   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163766 END IF;
163767 
163768 --
163769 
163770 
163771 --
163772 AcctLineType_157 (
163773  p_application_id  => p_application_id
163774  ,p_event_id     => l_event_id
163775  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163776  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163777  ,p_actual_flag => l_actual_flag
163778  ,p_balance_type_code => l_balance_type_code
163779  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163780  
163781  , p_source_1 => l_array_source_1(Idx)
163782  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163783  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163784  , p_source_21 => l_array_source_21(Idx)
163785  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
163786  , p_source_52 => l_array_source_52(Idx)
163787  , p_source_54 => l_array_source_54(Idx)
163788  , p_source_56 => l_array_source_56(Idx)
163789  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163790  , p_source_63 => l_array_source_63(Idx)
163791  , p_source_64 => l_array_source_64(Idx)
163792  , p_source_65 => l_array_source_65(Idx)
163793  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163794  , p_source_67 => l_array_source_67(Idx)
163795  , p_source_68 => l_array_source_68(Idx)
163796  , p_source_69 => l_array_source_69(Idx)
163797  , p_source_70 => l_array_source_70(Idx)
163798  , p_source_71 => l_array_source_71(Idx)
163799  , p_source_72 => l_array_source_72(Idx)
163800  , p_source_76 => l_array_source_76(Idx)
163801  , p_source_77 => l_array_source_77(Idx)
163802  , p_source_78 => l_array_source_78(Idx)
163803  , p_source_79 => l_array_source_79(Idx)
163804  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163805  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163806  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163807  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163808  , p_source_83 => l_array_source_83(Idx)
163809  , p_source_84 => l_array_source_84(Idx)
163810  , p_source_85 => l_array_source_85(Idx)
163811  , p_source_86 => l_array_source_86(Idx)
163812  , p_source_87 => l_array_source_87(Idx)
163813  , p_source_88 => l_array_source_88(Idx)
163814  , p_source_89 => l_array_source_89(Idx)
163815  , p_source_90 => l_array_source_90(Idx)
163816  , p_source_91 => l_array_source_91(Idx)
163817  , p_source_92 => l_array_source_92(Idx)
163818  , p_source_93 => l_array_source_93(Idx)
163819  , p_source_94 => l_array_source_94(Idx)
163820  , p_source_135 => l_array_source_135(Idx)
163821  , p_source_135_meaning => l_array_source_135_meaning(Idx)
163822  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163823  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163824  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163825  , p_source_146 => l_array_source_146(Idx)
163826  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
163827  );
163828 If(l_balance_type_code = 'A') THEN
163829   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163830 END IF;
163831 
163832 --
163833 
163834 
163835 --
163836 AcctLineType_158 (
163837  p_application_id  => p_application_id
163838  ,p_event_id     => l_event_id
163839  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163840  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163841  ,p_actual_flag => l_actual_flag
163842  ,p_balance_type_code => l_balance_type_code
163843  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163844  
163845  , p_source_1 => l_array_source_1(Idx)
163846  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163847  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163848  , p_source_21 => l_array_source_21(Idx)
163849  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
163850  , p_source_52 => l_array_source_52(Idx)
163851  , p_source_54 => l_array_source_54(Idx)
163852  , p_source_56 => l_array_source_56(Idx)
163853  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163854  , p_source_63 => l_array_source_63(Idx)
163855  , p_source_64 => l_array_source_64(Idx)
163856  , p_source_65 => l_array_source_65(Idx)
163857  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163858  , p_source_67 => l_array_source_67(Idx)
163859  , p_source_68 => l_array_source_68(Idx)
163860  , p_source_69 => l_array_source_69(Idx)
163861  , p_source_70 => l_array_source_70(Idx)
163862  , p_source_71 => l_array_source_71(Idx)
163863  , p_source_72 => l_array_source_72(Idx)
163864  , p_source_76 => l_array_source_76(Idx)
163865  , p_source_77 => l_array_source_77(Idx)
163866  , p_source_78 => l_array_source_78(Idx)
163870  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163867  , p_source_79 => l_array_source_79(Idx)
163868  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163869  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163871  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163872  , p_source_83 => l_array_source_83(Idx)
163873  , p_source_84 => l_array_source_84(Idx)
163874  , p_source_85 => l_array_source_85(Idx)
163875  , p_source_86 => l_array_source_86(Idx)
163876  , p_source_87 => l_array_source_87(Idx)
163877  , p_source_88 => l_array_source_88(Idx)
163878  , p_source_89 => l_array_source_89(Idx)
163879  , p_source_90 => l_array_source_90(Idx)
163880  , p_source_91 => l_array_source_91(Idx)
163881  , p_source_92 => l_array_source_92(Idx)
163882  , p_source_93 => l_array_source_93(Idx)
163883  , p_source_94 => l_array_source_94(Idx)
163884  , p_source_135 => l_array_source_135(Idx)
163885  , p_source_135_meaning => l_array_source_135_meaning(Idx)
163886  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163887  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163888  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163889  , p_source_163 => g_array_event(l_event_id).array_value_char('source_163')
163890  );
163891 If(l_balance_type_code = 'A') THEN
163892   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163893 END IF;
163894 
163895 --
163896 
163897 
163898 --
163899 AcctLineType_171 (
163900  p_application_id  => p_application_id
163901  ,p_event_id     => l_event_id
163902  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163903  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163904  ,p_actual_flag => l_actual_flag
163905  ,p_balance_type_code => l_balance_type_code
163906  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163907  
163908  , p_source_1 => l_array_source_1(Idx)
163909  , p_source_21 => l_array_source_21(Idx)
163910  , p_source_30 => l_array_source_30(Idx)
163911  , p_source_33 => l_array_source_33(Idx)
163912  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163913  , p_source_52 => l_array_source_52(Idx)
163914  , p_source_54 => l_array_source_54(Idx)
163915  , p_source_56 => l_array_source_56(Idx)
163916  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163917  , p_source_63 => l_array_source_63(Idx)
163918  , p_source_64 => l_array_source_64(Idx)
163919  , p_source_65 => l_array_source_65(Idx)
163920  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163921  , p_source_67 => l_array_source_67(Idx)
163922  , p_source_68 => l_array_source_68(Idx)
163923  , p_source_69 => l_array_source_69(Idx)
163924  , p_source_70 => l_array_source_70(Idx)
163925  , p_source_71 => l_array_source_71(Idx)
163926  , p_source_72 => l_array_source_72(Idx)
163927  , p_source_76 => l_array_source_76(Idx)
163928  , p_source_77 => l_array_source_77(Idx)
163929  , p_source_78 => l_array_source_78(Idx)
163930  , p_source_79 => l_array_source_79(Idx)
163931  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163932  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163933  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163934  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163935  , p_source_83 => l_array_source_83(Idx)
163936  , p_source_84 => l_array_source_84(Idx)
163937  , p_source_85 => l_array_source_85(Idx)
163938  , p_source_86 => l_array_source_86(Idx)
163939  , p_source_87 => l_array_source_87(Idx)
163940  , p_source_88 => l_array_source_88(Idx)
163941  , p_source_89 => l_array_source_89(Idx)
163942  , p_source_90 => l_array_source_90(Idx)
163943  , p_source_91 => l_array_source_91(Idx)
163944  , p_source_92 => l_array_source_92(Idx)
163945  , p_source_93 => l_array_source_93(Idx)
163946  , p_source_94 => l_array_source_94(Idx)
163947  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
163948  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
163949  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
163950  , p_source_146 => l_array_source_146(Idx)
163951  );
163952 If(l_balance_type_code = 'A') THEN
163953   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163954 END IF;
163955 
163956 --
163957 
163958 
163959 --
163960 AcctLineType_178 (
163961  p_application_id  => p_application_id
163962  ,p_event_id     => l_event_id
163963  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163964  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163965  ,p_actual_flag => l_actual_flag
163966  ,p_balance_type_code => l_balance_type_code
163967  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163968  
163969  , p_source_1 => l_array_source_1(Idx)
163970  , p_source_21 => l_array_source_21(Idx)
163971  , p_source_30 => l_array_source_30(Idx)
163972  , p_source_33 => l_array_source_33(Idx)
163973  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163974  , p_source_52 => l_array_source_52(Idx)
163975  , p_source_54 => l_array_source_54(Idx)
163976  , p_source_56 => l_array_source_56(Idx)
163977  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
163978  , p_source_63 => l_array_source_63(Idx)
163979  , p_source_64 => l_array_source_64(Idx)
163980  , p_source_65 => l_array_source_65(Idx)
163981  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
163982  , p_source_67 => l_array_source_67(Idx)
163983  , p_source_68 => l_array_source_68(Idx)
163984  , p_source_69 => l_array_source_69(Idx)
163985  , p_source_70 => l_array_source_70(Idx)
163986  , p_source_71 => l_array_source_71(Idx)
163987  , p_source_72 => l_array_source_72(Idx)
163988  , p_source_76 => l_array_source_76(Idx)
163989  , p_source_77 => l_array_source_77(Idx)
163990  , p_source_78 => l_array_source_78(Idx)
163991  , p_source_79 => l_array_source_79(Idx)
163992  , p_source_79_meaning => l_array_source_79_meaning(Idx)
163993  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
163997  , p_source_84 => l_array_source_84(Idx)
163994  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163995  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
163996  , p_source_83 => l_array_source_83(Idx)
163998  , p_source_85 => l_array_source_85(Idx)
163999  , p_source_86 => l_array_source_86(Idx)
164000  , p_source_87 => l_array_source_87(Idx)
164001  , p_source_88 => l_array_source_88(Idx)
164002  , p_source_89 => l_array_source_89(Idx)
164003  , p_source_90 => l_array_source_90(Idx)
164004  , p_source_91 => l_array_source_91(Idx)
164005  , p_source_92 => l_array_source_92(Idx)
164006  , p_source_93 => l_array_source_93(Idx)
164007  , p_source_94 => l_array_source_94(Idx)
164008  , p_source_95 => l_array_source_95(Idx)
164009  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164010  , p_source_135 => l_array_source_135(Idx)
164011  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164012  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164013  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164014  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164015  );
164016 If(l_balance_type_code = 'A') THEN
164017   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164018 END IF;
164019 
164020 --
164021 
164022 
164023 --
164024 AcctLineType_179 (
164025  p_application_id  => p_application_id
164026  ,p_event_id     => l_event_id
164027  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164028  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164029  ,p_actual_flag => l_actual_flag
164030  ,p_balance_type_code => l_balance_type_code
164031  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164032  
164033  , p_source_1 => l_array_source_1(Idx)
164034  , p_source_21 => l_array_source_21(Idx)
164035  , p_source_30 => l_array_source_30(Idx)
164036  , p_source_33 => l_array_source_33(Idx)
164037  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164038  , p_source_52 => l_array_source_52(Idx)
164039  , p_source_54 => l_array_source_54(Idx)
164040  , p_source_56 => l_array_source_56(Idx)
164041  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164042  , p_source_63 => l_array_source_63(Idx)
164043  , p_source_64 => l_array_source_64(Idx)
164044  , p_source_65 => l_array_source_65(Idx)
164045  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164046  , p_source_67 => l_array_source_67(Idx)
164047  , p_source_68 => l_array_source_68(Idx)
164048  , p_source_69 => l_array_source_69(Idx)
164049  , p_source_70 => l_array_source_70(Idx)
164050  , p_source_71 => l_array_source_71(Idx)
164051  , p_source_72 => l_array_source_72(Idx)
164052  , p_source_73 => l_array_source_73(Idx)
164053  , p_source_74 => l_array_source_74(Idx)
164054  , p_source_75 => l_array_source_75(Idx)
164055  , p_source_76 => l_array_source_76(Idx)
164056  , p_source_77 => l_array_source_77(Idx)
164057  , p_source_78 => l_array_source_78(Idx)
164058  , p_source_79 => l_array_source_79(Idx)
164059  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164060  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164061  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164062  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164063  , p_source_83 => l_array_source_83(Idx)
164064  , p_source_84 => l_array_source_84(Idx)
164065  , p_source_85 => l_array_source_85(Idx)
164066  , p_source_86 => l_array_source_86(Idx)
164067  , p_source_87 => l_array_source_87(Idx)
164068  , p_source_88 => l_array_source_88(Idx)
164069  , p_source_89 => l_array_source_89(Idx)
164070  , p_source_90 => l_array_source_90(Idx)
164071  , p_source_91 => l_array_source_91(Idx)
164072  , p_source_92 => l_array_source_92(Idx)
164073  , p_source_93 => l_array_source_93(Idx)
164074  , p_source_94 => l_array_source_94(Idx)
164075  , p_source_95 => l_array_source_95(Idx)
164076  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164077  , p_source_135 => l_array_source_135(Idx)
164078  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164079  );
164080 If(l_balance_type_code = 'A') THEN
164081   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164082 END IF;
164083 
164084 --
164085 
164086 
164087 --
164088 AcctLineType_181 (
164089  p_application_id  => p_application_id
164090  ,p_event_id     => l_event_id
164091  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164092  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164093  ,p_actual_flag => l_actual_flag
164094  ,p_balance_type_code => l_balance_type_code
164095  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164096  
164097  , p_source_1 => l_array_source_1(Idx)
164098  , p_source_21 => l_array_source_21(Idx)
164099  , p_source_30 => l_array_source_30(Idx)
164100  , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
164101  , p_source_31_meaning => g_array_event(l_event_id).array_value_char('source_31_meaning')
164102  , p_source_32 => l_array_source_32(Idx)
164103  , p_source_33 => l_array_source_33(Idx)
164104  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164105  , p_source_45 => l_array_source_45(Idx)
164106  , p_source_52 => l_array_source_52(Idx)
164107  , p_source_54 => l_array_source_54(Idx)
164108  , p_source_56 => l_array_source_56(Idx)
164109  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164110  , p_source_63 => l_array_source_63(Idx)
164111  , p_source_64 => l_array_source_64(Idx)
164112  , p_source_65 => l_array_source_65(Idx)
164113  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164114  , p_source_67 => l_array_source_67(Idx)
164115  , p_source_68 => l_array_source_68(Idx)
164116  , p_source_69 => l_array_source_69(Idx)
164117  , p_source_70 => l_array_source_70(Idx)
164118  , p_source_71 => l_array_source_71(Idx)
164119  , p_source_72 => l_array_source_72(Idx)
164120  , p_source_76 => l_array_source_76(Idx)
164121  , p_source_77 => l_array_source_77(Idx)
164125  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164122  , p_source_78 => l_array_source_78(Idx)
164123  , p_source_79 => l_array_source_79(Idx)
164124  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164126  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164127  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164128  , p_source_83 => l_array_source_83(Idx)
164129  , p_source_84 => l_array_source_84(Idx)
164130  , p_source_85 => l_array_source_85(Idx)
164131  , p_source_86 => l_array_source_86(Idx)
164132  , p_source_87 => l_array_source_87(Idx)
164133  , p_source_88 => l_array_source_88(Idx)
164134  , p_source_89 => l_array_source_89(Idx)
164135  , p_source_90 => l_array_source_90(Idx)
164136  , p_source_91 => l_array_source_91(Idx)
164137  , p_source_92 => l_array_source_92(Idx)
164138  , p_source_93 => l_array_source_93(Idx)
164139  , p_source_94 => l_array_source_94(Idx)
164140  , p_source_95 => l_array_source_95(Idx)
164141  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164142  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164143  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164144  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164145  );
164146 If(l_balance_type_code = 'A') THEN
164147   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164148 END IF;
164149 
164150 --
164151 
164152 
164153 --
164154 AcctLineType_186 (
164155  p_application_id  => p_application_id
164156  ,p_event_id     => l_event_id
164157  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164158  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164159  ,p_actual_flag => l_actual_flag
164160  ,p_balance_type_code => l_balance_type_code
164161  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164162  
164163  , p_source_1 => l_array_source_1(Idx)
164164  , p_source_21 => l_array_source_21(Idx)
164165  , p_source_30 => l_array_source_30(Idx)
164166  , p_source_33 => l_array_source_33(Idx)
164167  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164168  , p_source_52 => l_array_source_52(Idx)
164169  , p_source_54 => l_array_source_54(Idx)
164170  , p_source_56 => l_array_source_56(Idx)
164171  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164172  , p_source_63 => l_array_source_63(Idx)
164173  , p_source_64 => l_array_source_64(Idx)
164174  , p_source_65 => l_array_source_65(Idx)
164175  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164176  , p_source_67 => l_array_source_67(Idx)
164177  , p_source_68 => l_array_source_68(Idx)
164178  , p_source_69 => l_array_source_69(Idx)
164179  , p_source_70 => l_array_source_70(Idx)
164180  , p_source_71 => l_array_source_71(Idx)
164181  , p_source_72 => l_array_source_72(Idx)
164182  , p_source_76 => l_array_source_76(Idx)
164183  , p_source_77 => l_array_source_77(Idx)
164184  , p_source_78 => l_array_source_78(Idx)
164185  , p_source_79 => l_array_source_79(Idx)
164186  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164187  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164188  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164189  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164190  , p_source_83 => l_array_source_83(Idx)
164191  , p_source_84 => l_array_source_84(Idx)
164192  , p_source_85 => l_array_source_85(Idx)
164193  , p_source_86 => l_array_source_86(Idx)
164194  , p_source_87 => l_array_source_87(Idx)
164195  , p_source_88 => l_array_source_88(Idx)
164196  , p_source_89 => l_array_source_89(Idx)
164197  , p_source_90 => l_array_source_90(Idx)
164198  , p_source_91 => l_array_source_91(Idx)
164199  , p_source_92 => l_array_source_92(Idx)
164200  , p_source_93 => l_array_source_93(Idx)
164201  , p_source_94 => l_array_source_94(Idx)
164202  , p_source_125 => l_array_source_125(Idx)
164203  , p_source_125_meaning => l_array_source_125_meaning(Idx)
164204  , p_source_135 => l_array_source_135(Idx)
164205  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164206  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164207  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164208  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164209  );
164210 If(l_balance_type_code = 'A') THEN
164211   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164212 END IF;
164213 
164214 --
164215 
164216 
164217 --
164218 AcctLineType_191 (
164219  p_application_id  => p_application_id
164220  ,p_event_id     => l_event_id
164221  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164222  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164223  ,p_actual_flag => l_actual_flag
164224  ,p_balance_type_code => l_balance_type_code
164225  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164226  
164227  , p_source_1 => l_array_source_1(Idx)
164228  , p_source_21 => l_array_source_21(Idx)
164229  , p_source_33 => l_array_source_33(Idx)
164230  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164231  , p_source_49 => l_array_source_49(Idx)
164232  , p_source_52 => l_array_source_52(Idx)
164233  , p_source_54 => l_array_source_54(Idx)
164234  , p_source_56 => l_array_source_56(Idx)
164235  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164236  , p_source_63 => l_array_source_63(Idx)
164237  , p_source_64 => l_array_source_64(Idx)
164238  , p_source_65 => l_array_source_65(Idx)
164239  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164240  , p_source_67 => l_array_source_67(Idx)
164241  , p_source_68 => l_array_source_68(Idx)
164242  , p_source_69 => l_array_source_69(Idx)
164243  , p_source_70 => l_array_source_70(Idx)
164244  , p_source_71 => l_array_source_71(Idx)
164245  , p_source_72 => l_array_source_72(Idx)
164246  , p_source_76 => l_array_source_76(Idx)
164247  , p_source_77 => l_array_source_77(Idx)
164248  , p_source_78 => l_array_source_78(Idx)
164252  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164249  , p_source_79 => l_array_source_79(Idx)
164250  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164251  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164253  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164254  , p_source_83 => l_array_source_83(Idx)
164255  , p_source_84 => l_array_source_84(Idx)
164256  , p_source_85 => l_array_source_85(Idx)
164257  , p_source_86 => l_array_source_86(Idx)
164258  , p_source_87 => l_array_source_87(Idx)
164259  , p_source_88 => l_array_source_88(Idx)
164260  , p_source_89 => l_array_source_89(Idx)
164261  , p_source_90 => l_array_source_90(Idx)
164262  , p_source_91 => l_array_source_91(Idx)
164263  , p_source_92 => l_array_source_92(Idx)
164264  , p_source_93 => l_array_source_93(Idx)
164265  , p_source_94 => l_array_source_94(Idx)
164266  , p_source_95 => l_array_source_95(Idx)
164267  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164268  , p_source_135 => l_array_source_135(Idx)
164269  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164270  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164271  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164272  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164273  );
164274 If(l_balance_type_code = 'A') THEN
164275   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164276 END IF;
164277 
164278 --
164279 
164280 
164281 --
164282 AcctLineType_195 (
164283  p_application_id  => p_application_id
164284  ,p_event_id     => l_event_id
164285  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164286  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164287  ,p_actual_flag => l_actual_flag
164288  ,p_balance_type_code => l_balance_type_code
164289  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164290  
164291  , p_source_1 => l_array_source_1(Idx)
164292  , p_source_21 => l_array_source_21(Idx)
164293  , p_source_33 => l_array_source_33(Idx)
164294  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164295  , p_source_49 => l_array_source_49(Idx)
164296  , p_source_52 => l_array_source_52(Idx)
164297  , p_source_54 => l_array_source_54(Idx)
164298  , p_source_56 => l_array_source_56(Idx)
164299  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164300  , p_source_63 => l_array_source_63(Idx)
164301  , p_source_64 => l_array_source_64(Idx)
164302  , p_source_65 => l_array_source_65(Idx)
164303  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164304  , p_source_67 => l_array_source_67(Idx)
164305  , p_source_68 => l_array_source_68(Idx)
164306  , p_source_69 => l_array_source_69(Idx)
164307  , p_source_70 => l_array_source_70(Idx)
164308  , p_source_71 => l_array_source_71(Idx)
164309  , p_source_72 => l_array_source_72(Idx)
164310  , p_source_76 => l_array_source_76(Idx)
164311  , p_source_77 => l_array_source_77(Idx)
164312  , p_source_78 => l_array_source_78(Idx)
164313  , p_source_79 => l_array_source_79(Idx)
164314  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164315  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164316  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164317  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164318  , p_source_83 => l_array_source_83(Idx)
164319  , p_source_84 => l_array_source_84(Idx)
164320  , p_source_85 => l_array_source_85(Idx)
164321  , p_source_86 => l_array_source_86(Idx)
164322  , p_source_87 => l_array_source_87(Idx)
164323  , p_source_88 => l_array_source_88(Idx)
164324  , p_source_89 => l_array_source_89(Idx)
164325  , p_source_90 => l_array_source_90(Idx)
164326  , p_source_91 => l_array_source_91(Idx)
164327  , p_source_92 => l_array_source_92(Idx)
164328  , p_source_93 => l_array_source_93(Idx)
164329  , p_source_94 => l_array_source_94(Idx)
164330  , p_source_135 => l_array_source_135(Idx)
164331  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164332  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164333  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164334  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164335  );
164336 If(l_balance_type_code = 'A') THEN
164337   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164338 END IF;
164339 
164340 --
164341 
164342 
164343 --
164344 AcctLineType_202 (
164345  p_application_id  => p_application_id
164346  ,p_event_id     => l_event_id
164347  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164348  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164349  ,p_actual_flag => l_actual_flag
164350  ,p_balance_type_code => l_balance_type_code
164351  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164352  
164353  , p_source_1 => l_array_source_1(Idx)
164354  , p_source_21 => l_array_source_21(Idx)
164355  , p_source_33 => l_array_source_33(Idx)
164356  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164357  , p_source_50 => l_array_source_50(Idx)
164358  , p_source_52 => l_array_source_52(Idx)
164359  , p_source_54 => l_array_source_54(Idx)
164360  , p_source_56 => l_array_source_56(Idx)
164361  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164362  , p_source_63 => l_array_source_63(Idx)
164363  , p_source_64 => l_array_source_64(Idx)
164364  , p_source_65 => l_array_source_65(Idx)
164365  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164366  , p_source_67 => l_array_source_67(Idx)
164367  , p_source_68 => l_array_source_68(Idx)
164368  , p_source_69 => l_array_source_69(Idx)
164369  , p_source_70 => l_array_source_70(Idx)
164370  , p_source_71 => l_array_source_71(Idx)
164371  , p_source_72 => l_array_source_72(Idx)
164372  , p_source_76 => l_array_source_76(Idx)
164373  , p_source_77 => l_array_source_77(Idx)
164374  , p_source_78 => l_array_source_78(Idx)
164375  , p_source_79 => l_array_source_79(Idx)
164379  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164376  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164377  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164378  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164380  , p_source_83 => l_array_source_83(Idx)
164381  , p_source_84 => l_array_source_84(Idx)
164382  , p_source_85 => l_array_source_85(Idx)
164383  , p_source_86 => l_array_source_86(Idx)
164384  , p_source_87 => l_array_source_87(Idx)
164385  , p_source_88 => l_array_source_88(Idx)
164386  , p_source_89 => l_array_source_89(Idx)
164387  , p_source_90 => l_array_source_90(Idx)
164388  , p_source_91 => l_array_source_91(Idx)
164389  , p_source_92 => l_array_source_92(Idx)
164390  , p_source_93 => l_array_source_93(Idx)
164391  , p_source_94 => l_array_source_94(Idx)
164392  , p_source_135 => l_array_source_135(Idx)
164393  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164394  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164395  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164396  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164397  );
164398 If(l_balance_type_code = 'A') THEN
164399   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164400 END IF;
164401 
164402 --
164403 
164404 
164405 --
164406 AcctLineType_203 (
164407  p_application_id  => p_application_id
164408  ,p_event_id     => l_event_id
164409  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164410  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164411  ,p_actual_flag => l_actual_flag
164412  ,p_balance_type_code => l_balance_type_code
164413  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164414  
164415  , p_source_1 => l_array_source_1(Idx)
164416  , p_source_21 => l_array_source_21(Idx)
164417  , p_source_33 => l_array_source_33(Idx)
164418  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164419  , p_source_49 => l_array_source_49(Idx)
164420  , p_source_52 => l_array_source_52(Idx)
164421  , p_source_54 => l_array_source_54(Idx)
164422  , p_source_56 => l_array_source_56(Idx)
164423  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164424  , p_source_63 => l_array_source_63(Idx)
164425  , p_source_64 => l_array_source_64(Idx)
164426  , p_source_65 => l_array_source_65(Idx)
164427  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164428  , p_source_67 => l_array_source_67(Idx)
164429  , p_source_68 => l_array_source_68(Idx)
164430  , p_source_69 => l_array_source_69(Idx)
164431  , p_source_70 => l_array_source_70(Idx)
164432  , p_source_71 => l_array_source_71(Idx)
164433  , p_source_72 => l_array_source_72(Idx)
164434  , p_source_73 => l_array_source_73(Idx)
164435  , p_source_74 => l_array_source_74(Idx)
164436  , p_source_75 => l_array_source_75(Idx)
164437  , p_source_76 => l_array_source_76(Idx)
164438  , p_source_77 => l_array_source_77(Idx)
164439  , p_source_78 => l_array_source_78(Idx)
164440  , p_source_79 => l_array_source_79(Idx)
164441  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164442  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164443  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164444  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164445  , p_source_83 => l_array_source_83(Idx)
164446  , p_source_84 => l_array_source_84(Idx)
164447  , p_source_85 => l_array_source_85(Idx)
164448  , p_source_86 => l_array_source_86(Idx)
164449  , p_source_87 => l_array_source_87(Idx)
164450  , p_source_88 => l_array_source_88(Idx)
164451  , p_source_89 => l_array_source_89(Idx)
164452  , p_source_90 => l_array_source_90(Idx)
164453  , p_source_91 => l_array_source_91(Idx)
164454  , p_source_92 => l_array_source_92(Idx)
164455  , p_source_93 => l_array_source_93(Idx)
164456  , p_source_94 => l_array_source_94(Idx)
164457  , p_source_95 => l_array_source_95(Idx)
164458  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164459  , p_source_135 => l_array_source_135(Idx)
164460  , p_source_135_meaning => l_array_source_135_meaning(Idx)
164461  );
164462 If(l_balance_type_code = 'A') THEN
164463   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164464 END IF;
164465 
164466 --
164467 
164468 
164469 --
164470 AcctLineType_211 (
164471  p_application_id  => p_application_id
164472  ,p_event_id     => l_event_id
164473  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164474  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164475  ,p_actual_flag => l_actual_flag
164476  ,p_balance_type_code => l_balance_type_code
164477  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164478  
164479  , p_source_1 => l_array_source_1(Idx)
164480  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
164481  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
164482  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
164483  , p_source_21 => l_array_source_21(Idx)
164484  , p_source_22 => l_array_source_22(Idx)
164485  , p_source_22_meaning => l_array_source_22_meaning(Idx)
164486  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
164487  , p_source_30 => l_array_source_30(Idx)
164488  , p_source_33 => l_array_source_33(Idx)
164489  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164490  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
164491  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
164492  , p_source_52 => l_array_source_52(Idx)
164493  , p_source_54 => l_array_source_54(Idx)
164494  , p_source_56 => l_array_source_56(Idx)
164495  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164496  , p_source_63 => l_array_source_63(Idx)
164497  , p_source_64 => l_array_source_64(Idx)
164498  , p_source_65 => l_array_source_65(Idx)
164499  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164500  , p_source_67 => l_array_source_67(Idx)
164504  , p_source_71 => l_array_source_71(Idx)
164501  , p_source_68 => l_array_source_68(Idx)
164502  , p_source_69 => l_array_source_69(Idx)
164503  , p_source_70 => l_array_source_70(Idx)
164505  , p_source_72 => l_array_source_72(Idx)
164506  , p_source_76 => l_array_source_76(Idx)
164507  , p_source_77 => l_array_source_77(Idx)
164508  , p_source_78 => l_array_source_78(Idx)
164509  , p_source_79 => l_array_source_79(Idx)
164510  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164511  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164512  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164513  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164514  , p_source_83 => l_array_source_83(Idx)
164515  , p_source_84 => l_array_source_84(Idx)
164516  , p_source_85 => l_array_source_85(Idx)
164517  , p_source_86 => l_array_source_86(Idx)
164518  , p_source_87 => l_array_source_87(Idx)
164519  , p_source_88 => l_array_source_88(Idx)
164520  , p_source_89 => l_array_source_89(Idx)
164521  , p_source_90 => l_array_source_90(Idx)
164522  , p_source_91 => l_array_source_91(Idx)
164523  , p_source_92 => l_array_source_92(Idx)
164524  , p_source_93 => l_array_source_93(Idx)
164525  , p_source_94 => l_array_source_94(Idx)
164526  , p_source_95 => l_array_source_95(Idx)
164527  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164528  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164529  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164530  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164531  );
164532 If(l_balance_type_code = 'A') THEN
164533   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164534 END IF;
164535 
164536 --
164537 
164538 
164539 --
164540 AcctLineType_215 (
164541  p_application_id  => p_application_id
164542  ,p_event_id     => l_event_id
164543  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164544  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164545  ,p_actual_flag => l_actual_flag
164546  ,p_balance_type_code => l_balance_type_code
164547  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164548  
164549  , p_source_1 => l_array_source_1(Idx)
164550  , p_source_21 => l_array_source_21(Idx)
164551  , p_source_30 => l_array_source_30(Idx)
164552  , p_source_33 => l_array_source_33(Idx)
164553  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164554  , p_source_52 => l_array_source_52(Idx)
164555  , p_source_54 => l_array_source_54(Idx)
164556  , p_source_56 => l_array_source_56(Idx)
164557  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164558  , p_source_63 => l_array_source_63(Idx)
164559  , p_source_64 => l_array_source_64(Idx)
164560  , p_source_65 => l_array_source_65(Idx)
164561  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164562  , p_source_67 => l_array_source_67(Idx)
164563  , p_source_68 => l_array_source_68(Idx)
164564  , p_source_69 => l_array_source_69(Idx)
164565  , p_source_70 => l_array_source_70(Idx)
164566  , p_source_71 => l_array_source_71(Idx)
164567  , p_source_72 => l_array_source_72(Idx)
164568  , p_source_76 => l_array_source_76(Idx)
164569  , p_source_77 => l_array_source_77(Idx)
164570  , p_source_78 => l_array_source_78(Idx)
164571  , p_source_79 => l_array_source_79(Idx)
164572  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164573  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164574  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164575  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164576  , p_source_83 => l_array_source_83(Idx)
164577  , p_source_84 => l_array_source_84(Idx)
164578  , p_source_85 => l_array_source_85(Idx)
164579  , p_source_86 => l_array_source_86(Idx)
164580  , p_source_87 => l_array_source_87(Idx)
164581  , p_source_88 => l_array_source_88(Idx)
164582  , p_source_89 => l_array_source_89(Idx)
164583  , p_source_90 => l_array_source_90(Idx)
164584  , p_source_91 => l_array_source_91(Idx)
164585  , p_source_92 => l_array_source_92(Idx)
164586  , p_source_93 => l_array_source_93(Idx)
164587  , p_source_94 => l_array_source_94(Idx)
164588  , p_source_95 => l_array_source_95(Idx)
164589  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164590  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164591  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164592  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164593  );
164594 If(l_balance_type_code = 'A') THEN
164595   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164596 END IF;
164597 
164598 --
164599 
164600 
164601 --
164602 AcctLineType_219 (
164603  p_application_id  => p_application_id
164604  ,p_event_id     => l_event_id
164605  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164606  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164607  ,p_actual_flag => l_actual_flag
164608  ,p_balance_type_code => l_balance_type_code
164609  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164610  
164611  , p_source_1 => l_array_source_1(Idx)
164612  , p_source_21 => l_array_source_21(Idx)
164613  , p_source_30 => l_array_source_30(Idx)
164614  , p_source_33 => l_array_source_33(Idx)
164615  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164616  , p_source_52 => l_array_source_52(Idx)
164617  , p_source_54 => l_array_source_54(Idx)
164618  , p_source_56 => l_array_source_56(Idx)
164619  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164620  , p_source_63 => l_array_source_63(Idx)
164621  , p_source_64 => l_array_source_64(Idx)
164622  , p_source_65 => l_array_source_65(Idx)
164623  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164624  , p_source_67 => l_array_source_67(Idx)
164625  , p_source_68 => l_array_source_68(Idx)
164626  , p_source_69 => l_array_source_69(Idx)
164627  , p_source_70 => l_array_source_70(Idx)
164628  , p_source_71 => l_array_source_71(Idx)
164632  , p_source_78 => l_array_source_78(Idx)
164629  , p_source_72 => l_array_source_72(Idx)
164630  , p_source_76 => l_array_source_76(Idx)
164631  , p_source_77 => l_array_source_77(Idx)
164633  , p_source_79 => l_array_source_79(Idx)
164634  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164635  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164636  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164637  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164638  , p_source_83 => l_array_source_83(Idx)
164639  , p_source_84 => l_array_source_84(Idx)
164640  , p_source_85 => l_array_source_85(Idx)
164641  , p_source_86 => l_array_source_86(Idx)
164642  , p_source_87 => l_array_source_87(Idx)
164643  , p_source_88 => l_array_source_88(Idx)
164644  , p_source_89 => l_array_source_89(Idx)
164645  , p_source_90 => l_array_source_90(Idx)
164646  , p_source_91 => l_array_source_91(Idx)
164647  , p_source_92 => l_array_source_92(Idx)
164648  , p_source_93 => l_array_source_93(Idx)
164649  , p_source_94 => l_array_source_94(Idx)
164650  , p_source_95 => l_array_source_95(Idx)
164651  , p_source_95_meaning => l_array_source_95_meaning(Idx)
164652  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164653  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164654  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164655  );
164656 If(l_balance_type_code = 'A') THEN
164657   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164658 END IF;
164659 
164660 --
164661 
164662 
164663 --
164664 AcctLineType_225 (
164665  p_application_id  => p_application_id
164666  ,p_event_id     => l_event_id
164667  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164668  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164669  ,p_actual_flag => l_actual_flag
164670  ,p_balance_type_code => l_balance_type_code
164671  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164672  
164673  , p_source_1 => l_array_source_1(Idx)
164674  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
164675  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
164676  , p_source_21 => l_array_source_21(Idx)
164677  , p_source_30 => l_array_source_30(Idx)
164678  , p_source_33 => l_array_source_33(Idx)
164679  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164680  , p_source_43 => l_array_source_43(Idx)
164681  , p_source_52 => l_array_source_52(Idx)
164682  , p_source_54 => l_array_source_54(Idx)
164683  , p_source_56 => l_array_source_56(Idx)
164684  , p_source_57 => g_array_event(l_event_id).array_value_num('source_57')
164685  , p_source_63 => l_array_source_63(Idx)
164686  , p_source_64 => l_array_source_64(Idx)
164687  , p_source_65 => l_array_source_65(Idx)
164688  , p_source_66 => g_array_event(l_event_id).array_value_char('source_66')
164689  , p_source_67 => l_array_source_67(Idx)
164690  , p_source_68 => l_array_source_68(Idx)
164691  , p_source_69 => l_array_source_69(Idx)
164692  , p_source_70 => l_array_source_70(Idx)
164693  , p_source_71 => l_array_source_71(Idx)
164694  , p_source_72 => l_array_source_72(Idx)
164695  , p_source_76 => l_array_source_76(Idx)
164696  , p_source_77 => l_array_source_77(Idx)
164697  , p_source_78 => l_array_source_78(Idx)
164698  , p_source_79 => l_array_source_79(Idx)
164699  , p_source_79_meaning => l_array_source_79_meaning(Idx)
164700  , p_source_80 => g_array_event(l_event_id).array_value_num('source_80')
164701  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164702  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
164703  , p_source_83 => l_array_source_83(Idx)
164704  , p_source_84 => l_array_source_84(Idx)
164705  , p_source_85 => l_array_source_85(Idx)
164706  , p_source_86 => l_array_source_86(Idx)
164707  , p_source_87 => l_array_source_87(Idx)
164708  , p_source_88 => l_array_source_88(Idx)
164709  , p_source_89 => l_array_source_89(Idx)
164710  , p_source_90 => l_array_source_90(Idx)
164711  , p_source_91 => l_array_source_91(Idx)
164712  , p_source_92 => l_array_source_92(Idx)
164713  , p_source_93 => l_array_source_93(Idx)
164714  , p_source_94 => l_array_source_94(Idx)
164715  , p_source_136 => g_array_event(l_event_id).array_value_date('source_136')
164716  , p_source_137 => g_array_event(l_event_id).array_value_num('source_137')
164717  , p_source_138 => g_array_event(l_event_id).array_value_char('source_138')
164718  );
164719 If(l_balance_type_code = 'A') THEN
164720   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164721 END IF;
164722 
164723 --
164724 
164725       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
164726       -- or secondary ledger that has different currency with primary
164727       -- or alc that is calculated by sla
164728       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
164729             (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'))
164730 
164731 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
164732 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
164733           AND (l_actual_flag = 'A')) THEN
164734         XLA_AE_LINES_PKG.CreateGainOrLossLines(
164735           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
164736          ,p_application_id   => p_application_id
164737          ,p_amb_context_code => 'DEFAULT'
164738          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
164739          ,p_event_class_code => C_EVENT_CLASS_CODE
164740          ,p_event_type_code  => C_EVENT_TYPE_CODE
164741          
164742          ,p_gain_ccid        => -1
164743          ,p_loss_ccid        => -1
164744 
164745          ,p_actual_flag      => l_actual_flag
164746          ,p_enc_flag         => null
164747          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
164751    END IF;
164748          ,p_enc_g_l_ref      => null
164749          );
164750       END IF;
164752 END IF;
164753 
164754    ELSE
164755       --
164756       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
164757       --
164758       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164759          trace
164760             (p_msg      => 'Trancaction revesal option is Y'
164761             ,p_level    => C_LEVEL_STATEMENT
164762             ,p_module   => l_log_module);
164763       END IF;
164764    END IF;
164765 
164766 END LOOP;
164767 l_result := XLA_AE_LINES_PKG.InsertLines ;
164768 end loop;
164769 close line_cur;
164770 
164771 
164772 --
164773 -- insert headers into xla_ae_headers_gt table
164774 --
164775 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
164776 
164777 -- insert into errors table here.
164778 
164779 END LOOP;
164780 
164781 --
164782 -- 4865292
164783 --
164784 -- Compare g_hdr_extract_count with event count in
164785 -- CreateHeadersAndLines.
164786 --
164787 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
164788 
164789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164790    trace (p_msg     => '# rows extracted from header extract objects '
164791                     || ' (running total): '
164792                     || g_hdr_extract_count
164793          ,p_level   => C_LEVEL_STATEMENT
164794          ,p_module  => l_log_module);
164795 END IF;
164796 
164797 CLOSE header_cur;
164798 --
164799 
164800 --
164801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164802    trace
164803       (p_msg      => 'END of EventClass_232'
164804       ,p_level    => C_LEVEL_PROCEDURE
164805       ,p_module   => l_log_module);
164806 END IF;
164807 --
164808 RETURN l_result;
164809 EXCEPTION
164810 WHEN xla_exceptions_pkg.application_exception THEN
164811    
164812 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164813 
164814    
164815 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164816 
164817    RAISE;
164818 
164819 WHEN NO_DATA_FOUND THEN
164820 
164821 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164822 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164823 
164824 FOR header_record IN header_cur
164825 LOOP
164826     l_array_header_events(header_record.event_id) := header_record.event_id;
164827 END LOOP;
164828 
164829 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
164830 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
164831 
164832 fnd_file.put_line(fnd_file.LOG, '                    ');
164833 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
164834 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
164835 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
164836 
164837 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
164838 LOOP
164839 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
164840 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
164841         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
164842 	END IF;
164843 END LOOP;
164844 
164845 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
164846 fnd_file.put_line(fnd_file.LOG, '                    ');
164847 
164848 
164849 xla_exceptions_pkg.raise_message
164850       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_232');
164851 
164852 
164853 WHEN OTHERS THEN
164854    xla_exceptions_pkg.raise_message
164855       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_232');
164856 END EventClass_232;
164857 --
164858 
164859 ---------------------------------------
164860 --
164861 -- PRIVATE PROCEDURE
164862 --         insert_sources_233
164863 --
164864 ----------------------------------------
164865 --
164866 PROCEDURE insert_sources_233(
164867                                 p_target_ledger_id       IN NUMBER
164868                               , p_language               IN VARCHAR2
164869                               , p_sla_ledger_id          IN NUMBER
164870                               , p_pad_start_date         IN DATE
164871                               , p_pad_end_date           IN DATE
164872                          )
164873 IS
164874 
164875 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
164876 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
164877 p_apps_owner                   VARCHAR2(30);
164878 l_log_module                   VARCHAR2(240);
164879 BEGIN
164880 IF g_log_enabled THEN
164881       l_log_module := C_DEFAULT_MODULE||'.insert_sources_233';
164882 END IF;
164883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164884 
164885       trace
164886          (p_msg      => 'BEGIN of insert_sources_233'
164887          ,p_level    => C_LEVEL_PROCEDURE
164888          ,p_module   => l_log_module);
164889 
164890 END IF;
164891 
164892 -- select APPS owner
164893 SELECT oracle_username
164894   INTO p_apps_owner
164895   FROM fnd_oracle_userid
164896  WHERE read_only_flag = 'U'
164897 ;
164898 
164899 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164900       trace
164901          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
164902                         ' - p_language = '||p_language||
164903                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
164904                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
164905                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
164906                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
164910 
164907          ,p_level    => C_LEVEL_STATEMENT
164908          ,p_module   => l_log_module);
164909 END IF;
164911 
164912 --
164913 INSERT INTO xla_diag_sources --hdr2
164914 (
164915         event_id
164916       , ledger_id
164917       , sla_ledger_id
164918       , description_language
164919       , object_name
164920       , object_type_code
164921       , line_number
164922       , source_application_id
164923       , source_type_code
164924       , source_code
164925       , source_value
164926       , source_meaning
164927       , created_by
164928       , creation_date
164929       , last_update_date
164930       , last_updated_by
164931       , last_update_login
164932       , program_update_date
164933       , program_application_id
164934       , program_id
164935       , request_id
164936 )
164937 SELECT
164938         event_id
164939       , p_target_ledger_id
164940       , p_sla_ledger_id
164941       , p_language
164942       , object_name
164943       , object_type_code
164944       , line_number
164945       , source_application_id
164946       , source_type_code
164947       , source_code
164948       , SUBSTR(source_value ,1,1996)
164949       , SUBSTR(source_meaning ,1,200)
164950       , xla_environment_pkg.g_Usr_Id
164951       , TRUNC(SYSDATE)
164952       , TRUNC(SYSDATE)
164953       , xla_environment_pkg.g_Usr_Id
164954       , xla_environment_pkg.g_Login_Id
164955       , TRUNC(SYSDATE)
164956       , xla_environment_pkg.g_Prog_Appl_Id
164957       , xla_environment_pkg.g_Prog_Id
164958       , xla_environment_pkg.g_Req_Id
164959   FROM (
164960        SELECT xet.event_id                  event_id
164961             , 0                          line_number
164962             , CASE r
164963                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164964                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164965                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164966                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164967                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164968                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164969                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164970                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164971                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164972                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164973                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164974                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164975                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164976                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164977                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164978                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164979                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164980                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164981                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164982                 WHEN 20 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164983                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164984                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164985                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
164986                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164987                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164988                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164989                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164990                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164991                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164992                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164993                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164994                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164995                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164996                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164997                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164998                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
164999                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165000                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165001                 
165002                ELSE null
165003               END                           object_name
165004             , CASE r
165005                 WHEN 1 THEN 'HEADER' 
165006                 WHEN 2 THEN 'HEADER' 
165007                 WHEN 3 THEN 'HEADER' 
165008                 WHEN 4 THEN 'HEADER' 
165009                 WHEN 5 THEN 'HEADER' 
165010                 WHEN 6 THEN 'HEADER' 
165011                 WHEN 7 THEN 'HEADER' 
165012                 WHEN 8 THEN 'HEADER' 
165013                 WHEN 9 THEN 'HEADER' 
165014                 WHEN 10 THEN 'HEADER' 
165015                 WHEN 11 THEN 'HEADER' 
165016                 WHEN 12 THEN 'HEADER' 
165017                 WHEN 13 THEN 'HEADER' 
165018                 WHEN 14 THEN 'HEADER' 
165019                 WHEN 15 THEN 'HEADER' 
165020                 WHEN 16 THEN 'HEADER' 
165021                 WHEN 17 THEN 'HEADER' 
165022                 WHEN 18 THEN 'HEADER' 
165023                 WHEN 19 THEN 'HEADER' 
165024                 WHEN 20 THEN 'HEADER' 
165025                 WHEN 21 THEN 'HEADER' 
165026                 WHEN 22 THEN 'HEADER' 
165027                 WHEN 23 THEN 'HEADER' 
165028                 WHEN 24 THEN 'HEADER' 
165029                 WHEN 25 THEN 'HEADER' 
165030                 WHEN 26 THEN 'HEADER' 
165031                 WHEN 27 THEN 'HEADER' 
165032                 WHEN 28 THEN 'HEADER' 
165033                 WHEN 29 THEN 'HEADER' 
165034                 WHEN 30 THEN 'HEADER' 
165035                 WHEN 31 THEN 'HEADER' 
165036                 WHEN 32 THEN 'HEADER' 
165037                 WHEN 33 THEN 'HEADER' 
165038                 WHEN 34 THEN 'HEADER' 
165039                 WHEN 35 THEN 'HEADER' 
165043                 
165040                 WHEN 36 THEN 'HEADER' 
165041                 WHEN 37 THEN 'HEADER' 
165042                 WHEN 38 THEN 'HEADER' 
165044                 ELSE null
165045               END                           object_type_code
165046             , CASE r
165047                 WHEN 1 THEN '200' 
165048                 WHEN 2 THEN '200' 
165049                 WHEN 3 THEN '200' 
165050                 WHEN 4 THEN '200' 
165051                 WHEN 5 THEN '200' 
165052                 WHEN 6 THEN '200' 
165053                 WHEN 7 THEN '200' 
165054                 WHEN 8 THEN '200' 
165055                 WHEN 9 THEN '200' 
165056                 WHEN 10 THEN '200' 
165057                 WHEN 11 THEN '200' 
165058                 WHEN 12 THEN '200' 
165059                 WHEN 13 THEN '200' 
165060                 WHEN 14 THEN '200' 
165061                 WHEN 15 THEN '200' 
165062                 WHEN 16 THEN '200' 
165063                 WHEN 17 THEN '200' 
165064                 WHEN 18 THEN '200' 
165065                 WHEN 19 THEN '200' 
165066                 WHEN 20 THEN '200' 
165067                 WHEN 21 THEN '200' 
165068                 WHEN 22 THEN '200' 
165069                 WHEN 23 THEN '200' 
165070                 WHEN 24 THEN '200' 
165071                 WHEN 25 THEN '200' 
165072                 WHEN 26 THEN '200' 
165073                 WHEN 27 THEN '200' 
165074                 WHEN 28 THEN '200' 
165075                 WHEN 29 THEN '200' 
165076                 WHEN 30 THEN '200' 
165077                 WHEN 31 THEN '200' 
165078                 WHEN 32 THEN '200' 
165079                 WHEN 33 THEN '200' 
165080                 WHEN 34 THEN '200' 
165081                 WHEN 35 THEN '200' 
165082                 WHEN 36 THEN '200' 
165083                 WHEN 37 THEN '200' 
165084                 WHEN 38 THEN '200' 
165085                 
165086                 ELSE null
165087               END                           source_application_id
165088             , 'S'             source_type_code
165089             , CASE r
165090                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
165091                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
165092                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
165093                 WHEN 4 THEN 'AC_CHECK_DATE' 
165094                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
165095                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
165096                 WHEN 7 THEN 'CGAC_BANK_CHARGES_CCID' 
165097                 WHEN 8 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
165098                 WHEN 9 THEN 'CGAC_BANK_ERRORS_CCID' 
165099                 WHEN 10 THEN 'CGAC_AP_ASSET_CCID' 
165100                 WHEN 11 THEN 'FSP_DISC_TAKEN_CCID' 
165101                 WHEN 12 THEN 'ASP_DISCOUNT_DIST_METHOD' 
165102                 WHEN 13 THEN 'ASP_INTEREST_CCID' 
165103                 WHEN 14 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
165104                 WHEN 15 THEN 'CGAC_GAIN_CCID' 
165105                 WHEN 16 THEN 'ASP_GAIN_CCID' 
165106                 WHEN 17 THEN 'CGAC_LOSS_CCID' 
165107                 WHEN 18 THEN 'ASP_LOSS_CCID' 
165108                 WHEN 19 THEN 'ASP_DISC_TAKEN_CCID' 
165109                 WHEN 20 THEN 'ASP_AUTO_OFFSET_FLAG' 
165110                 WHEN 21 THEN 'ASP_ROUNDING_ERROR_CCID' 
165111                 WHEN 22 THEN 'THIRD_PARTY_TYPE' 
165112                 WHEN 23 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
165113                 WHEN 24 THEN 'APH_BANK_CURRENCY_CODE' 
165114                 WHEN 25 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
165115                 WHEN 26 THEN 'APH_BANK_TO_BASE_XRATE' 
165116                 WHEN 27 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
165117                 WHEN 28 THEN 'AC_VENDOR_ID' 
165118                 WHEN 29 THEN 'AC_VENDOR_SITE_ID' 
165119                 WHEN 30 THEN 'AC_CHECK_ID' 
165120                 WHEN 31 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
165121                 WHEN 32 THEN 'AC_FUTURE_PAY_DUE_DATE' 
165122                 WHEN 33 THEN 'AC_EXCHANGE_DATE' 
165123                 WHEN 34 THEN 'AC_EXCHANGE_RATE' 
165124                 WHEN 35 THEN 'AC_EXCHANGE_RATE_TYPE' 
165125                 WHEN 36 THEN 'PAYMENT_TYPE' 
165126                 WHEN 37 THEN 'AC_DOC_CATEGORY_CODE' 
165127                 WHEN 38 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
165128                 
165129                 ELSE null
165130               END                           source_code
165131             , CASE r
165132                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
165133                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
165134                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
165135                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
165136                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
165137                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
165138                 WHEN 7 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
165139                 WHEN 8 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
165140                 WHEN 9 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
165141                 WHEN 10 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
165142                 WHEN 11 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
165143                 WHEN 12 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
165144                 WHEN 13 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
165145                 WHEN 14 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
165146                 WHEN 15 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
165147                 WHEN 16 THEN TO_CHAR(h3.ASP_GAIN_CCID)
165148                 WHEN 17 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
165149                 WHEN 18 THEN TO_CHAR(h3.ASP_LOSS_CCID)
165150                 WHEN 19 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
165151                 WHEN 20 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
165152                 WHEN 21 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
165153                 WHEN 22 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
165154                 WHEN 23 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
165155                 WHEN 24 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
165159                 WHEN 28 THEN TO_CHAR(h2.AC_VENDOR_ID)
165156                 WHEN 25 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
165157                 WHEN 26 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
165158                 WHEN 27 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
165160                 WHEN 29 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
165161                 WHEN 30 THEN TO_CHAR(h2.AC_CHECK_ID)
165162                 WHEN 31 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
165163                 WHEN 32 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
165164                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
165165                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
165166                 WHEN 35 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
165167                 WHEN 36 THEN TO_CHAR(h2.PAYMENT_TYPE)
165168                 WHEN 37 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
165169                 WHEN 38 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
165170                 
165171                 ELSE null
165172               END                           source_value
165173             , CASE r
165174                 WHEN 8 THEN fvl15.meaning
165175                 WHEN 12 THEN fvl19.meaning
165176                 WHEN 20 THEN fvl47.meaning
165177                 WHEN 31 THEN fvl113.meaning
165178                 WHEN 36 THEN fvl122.meaning
165179                 
165180                 ELSE null
165181               END               source_meaning
165182          FROM xla_events_gt     xet  
165183       , AP_PAYMENT_EXTRACT_HEADER_V  h2
165184       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
165185   , fnd_lookup_values    fvl15
165186   , fnd_lookup_values    fvl19
165187   , fnd_lookup_values    fvl47
165188   , fnd_lookup_values    fvl113
165189   , fnd_lookup_values    fvl122
165190              ,(select rownum r from all_objects where rownum <= 38 and owner = p_apps_owner)
165191          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
165192            AND xet.event_class_code = C_EVENT_CLASS_CODE
165193               AND h2.event_id = xet.event_id
165194  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
165195   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
165196   AND fvl15.view_application_id(+) = 200
165197   AND fvl15.language(+)            = USERENV('LANG')
165198      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
165199   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
165200   AND fvl19.view_application_id(+) = 200
165201   AND fvl19.language(+)            = USERENV('LANG')
165202      AND fvl47.lookup_type(+)         = 'YES_NO'
165203   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
165204   AND fvl47.view_application_id(+) = 0
165205   AND fvl47.language(+)            = USERENV('LANG')
165206      AND fvl113.lookup_type(+)         = 'YES_NO'
165207   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
165208   AND fvl113.view_application_id(+) = 0
165209   AND fvl113.language(+)            = USERENV('LANG')
165210      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
165211   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
165212   AND fvl122.view_application_id(+) = 200
165213   AND fvl122.language(+)            = USERENV('LANG')
165214   
165215 )
165216 ;
165217 --
165218 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165219 
165220       trace
165221          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
165222          ,p_level    => C_LEVEL_STATEMENT
165223          ,p_module   => l_log_module);
165224 
165225 END IF;
165226 --
165227 
165228 
165229 
165230 --
165231 INSERT INTO xla_diag_sources  --line2
165232 (
165233         event_id
165234       , ledger_id
165235       , sla_ledger_id
165236       , description_language
165237       , object_name
165238       , object_type_code
165239       , line_number
165240       , source_application_id
165241       , source_type_code
165242       , source_code
165243       , source_value
165244       , source_meaning
165245       , created_by
165246       , creation_date
165247       , last_update_date
165248       , last_updated_by
165249       , last_update_login
165250       , program_update_date
165251       , program_application_id
165252       , program_id
165253       , request_id
165254 )
165255 SELECT  event_id
165256       , p_target_ledger_id
165257       , p_sla_ledger_id
165258       , p_language
165259       , object_name
165260       , object_type_code
165261       , line_number
165262       , source_application_id
165263       , source_type_code
165264       , source_code
165265       , SUBSTR(source_value,1,1996)
165266       , SUBSTR(source_meaning ,1,200)
165267       , xla_environment_pkg.g_Usr_Id
165268       , TRUNC(SYSDATE)
165269       , TRUNC(SYSDATE)
165270       , xla_environment_pkg.g_Usr_Id
165271       , xla_environment_pkg.g_Login_Id
165272       , TRUNC(SYSDATE)
165273       , xla_environment_pkg.g_Prog_Appl_Id
165274       , xla_environment_pkg.g_Prog_Id
165275       , xla_environment_pkg.g_Req_Id
165276   FROM (
165277        SELECT xet.event_id                  event_id
165278             , l1.line_number                 line_number
165279             , CASE r
165280                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165281                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165282                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165283                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165284                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165285                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165286                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165287                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165288                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165289                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165290                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165294                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165291                 WHEN 12 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165292                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165293                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165295                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165296                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165297                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165298                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165299                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165300                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165301                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165302                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165303                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165304                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165305                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165306                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165307                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165308                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165309                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165310                 WHEN 31 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165311                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165312                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165313                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165314                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165315                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165316                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165317                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165318                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165319                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165320                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165321                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165322                 
165323                ELSE null
165324               END                           object_name
165325             , CASE r
165326                 WHEN 1 THEN 'LINE' 
165327                 WHEN 2 THEN 'LINE' 
165328                 WHEN 3 THEN 'LINE' 
165329                 WHEN 4 THEN 'LINE' 
165330                 WHEN 5 THEN 'LINE' 
165331                 WHEN 6 THEN 'LINE' 
165332                 WHEN 7 THEN 'LINE' 
165333                 WHEN 8 THEN 'LINE' 
165334                 WHEN 9 THEN 'LINE' 
165335                 WHEN 10 THEN 'LINE' 
165336                 WHEN 11 THEN 'LINE' 
165337                 WHEN 12 THEN 'LINE' 
165338                 WHEN 13 THEN 'LINE' 
165339                 WHEN 14 THEN 'LINE' 
165340                 WHEN 15 THEN 'LINE' 
165341                 WHEN 16 THEN 'LINE' 
165342                 WHEN 17 THEN 'LINE' 
165343                 WHEN 18 THEN 'LINE' 
165344                 WHEN 19 THEN 'LINE' 
165345                 WHEN 20 THEN 'LINE' 
165346                 WHEN 21 THEN 'LINE' 
165347                 WHEN 22 THEN 'LINE' 
165348                 WHEN 23 THEN 'LINE' 
165349                 WHEN 24 THEN 'LINE' 
165350                 WHEN 25 THEN 'LINE' 
165351                 WHEN 26 THEN 'LINE' 
165352                 WHEN 27 THEN 'LINE' 
165353                 WHEN 28 THEN 'LINE' 
165354                 WHEN 29 THEN 'LINE' 
165355                 WHEN 30 THEN 'LINE' 
165356                 WHEN 31 THEN 'LINE' 
165357                 WHEN 32 THEN 'LINE' 
165358                 WHEN 33 THEN 'LINE' 
165359                 WHEN 34 THEN 'LINE' 
165360                 WHEN 35 THEN 'LINE' 
165361                 WHEN 36 THEN 'LINE' 
165362                 WHEN 37 THEN 'LINE' 
165363                 WHEN 38 THEN 'LINE' 
165364                 WHEN 39 THEN 'LINE' 
165365                 WHEN 40 THEN 'LINE' 
165366                 WHEN 41 THEN 'LINE' 
165367                 WHEN 42 THEN 'LINE' 
165368                 
165369                 ELSE null
165370               END                           object_type_code
165371             , CASE r
165372                 WHEN 1 THEN '200' 
165373                 WHEN 2 THEN '200' 
165374                 WHEN 3 THEN '200' 
165375                 WHEN 4 THEN '200' 
165376                 WHEN 5 THEN '200' 
165377                 WHEN 6 THEN '200' 
165378                 WHEN 7 THEN '200' 
165379                 WHEN 8 THEN '200' 
165380                 WHEN 9 THEN '200' 
165381                 WHEN 10 THEN '200' 
165382                 WHEN 11 THEN '200' 
165383                 WHEN 12 THEN '200' 
165384                 WHEN 13 THEN '200' 
165385                 WHEN 14 THEN '200' 
165386                 WHEN 15 THEN '200' 
165387                 WHEN 16 THEN '200' 
165388                 WHEN 17 THEN '200' 
165389                 WHEN 18 THEN '200' 
165390                 WHEN 19 THEN '200' 
165391                 WHEN 20 THEN '200' 
165392                 WHEN 21 THEN '200' 
165393                 WHEN 22 THEN '200' 
165394                 WHEN 23 THEN '200' 
165395                 WHEN 24 THEN '200' 
165396                 WHEN 25 THEN '200' 
165397                 WHEN 26 THEN '200' 
165398                 WHEN 27 THEN '200' 
165399                 WHEN 28 THEN '200' 
165400                 WHEN 29 THEN '200' 
165401                 WHEN 30 THEN '200' 
165402                 WHEN 31 THEN '200' 
165403                 WHEN 32 THEN '200' 
165404                 WHEN 33 THEN '200' 
165405                 WHEN 34 THEN '200' 
165406                 WHEN 35 THEN '200' 
165407                 WHEN 36 THEN '200' 
165408                 WHEN 37 THEN '200' 
165409                 WHEN 38 THEN '200' 
165410                 WHEN 39 THEN '200' 
165411                 WHEN 40 THEN '200' 
165412                 WHEN 41 THEN '200' 
165413                 WHEN 42 THEN '200' 
165414                 
165415                 ELSE null
165419                 WHEN 1 THEN 'AID_DIST_CCID' 
165416               END                           source_application_id
165417             , 'S'             source_type_code
165418             , CASE r
165420                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
165421                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
165422                 WHEN 4 THEN 'POD_CCID' 
165423                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
165424                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
165425                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
165426                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
165427                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
165428                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
165429                 WHEN 11 THEN 'TAX_LINE_ID' 
165430                 WHEN 12 THEN 'SUMMARY_TAX_LINE_ID' 
165431                 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID' 
165432                 WHEN 14 THEN 'BUS_FLOW_INV_DIST_TYPE' 
165433                 WHEN 15 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
165434                 WHEN 16 THEN 'BUS_FLOW_INV_DIST_ID' 
165435                 WHEN 17 THEN 'BUS_FLOW_INV_ID' 
165436                 WHEN 18 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
165437                 WHEN 19 THEN 'APHD_AMOUNT' 
165438                 WHEN 20 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
165439                 WHEN 21 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
165440                 WHEN 22 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
165441                 WHEN 23 THEN 'BUS_FLOW_PAYMENT_ID' 
165442                 WHEN 24 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
165443                 WHEN 25 THEN 'APHD_CLEARING_BASE_AMT' 
165444                 WHEN 26 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
165445                 WHEN 27 THEN 'APHD_PAYMENT_BASE_AMT' 
165446                 WHEN 28 THEN 'APHD_INVOICE_BASE_AMT' 
165447                 WHEN 29 THEN 'BUS_FLOW_PAYMENT_MAT_DIST_ID' 
165448                 WHEN 30 THEN 'APHD_MATURED_BASE_AMOUNT' 
165449                 WHEN 31 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
165450                 WHEN 32 THEN 'INV_EXCHANGE_DATE' 
165451                 WHEN 33 THEN 'INV_EXCHANGE_RATE' 
165452                 WHEN 34 THEN 'INV_EXCHANGE_RATE_TYPE' 
165453                 WHEN 35 THEN 'INV_CLR_GAIN_LOSS_INDICATOR' 
165454                 WHEN 36 THEN 'INV_CLR_BASE_AMT_DIFF' 
165455                 WHEN 37 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
165456                 WHEN 38 THEN 'MAT_CLR_BASE_AMT_DIFF' 
165457                 WHEN 39 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
165458                 WHEN 40 THEN 'PMT_CLR_BASE_AMT_DIFF' 
165459                 WHEN 41 THEN 'AI_INVOICE_TYPE_PAID' 
165460                 WHEN 42 THEN 'AWT_AT_PMT_TIME' 
165461                 
165462                 ELSE null
165463               END                           source_code
165464             , CASE r
165465                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
165466                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
165467                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
165468                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
165469                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
165470                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
165471                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
165472                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
165473                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
165474                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
165475                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
165476                 WHEN 12 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
165477                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
165478                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
165479                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
165480                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
165481                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
165482                 WHEN 18 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
165483                 WHEN 19 THEN TO_CHAR(l1.APHD_AMOUNT)
165484                 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
165485                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
165486                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
165487                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
165488                 WHEN 24 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
165489                 WHEN 25 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
165490                 WHEN 26 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
165491                 WHEN 27 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
165492                 WHEN 28 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
165493                 WHEN 29 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_MAT_DIST_ID)
165494                 WHEN 30 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
165495                 WHEN 31 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
165496                 WHEN 32 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
165497                 WHEN 33 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
165498                 WHEN 34 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
165499                 WHEN 35 THEN TO_CHAR(l1.INV_CLR_GAIN_LOSS_INDICATOR)
165500                 WHEN 36 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
165501                 WHEN 37 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
165502                 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
165503                 WHEN 39 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
165504                 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
165505                 WHEN 41 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
165506                 WHEN 42 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
165507                 
165508                 ELSE null
165509               END                           source_value
165510             , CASE r
165511                 WHEN 2 THEN fvl33.meaning
165512                 WHEN 10 THEN fvl79.meaning
165513                 WHEN 18 THEN fvl97.meaning
165514                 WHEN 31 THEN fvl125.meaning
165515                 WHEN 41 THEN fvl160.meaning
165516                 WHEN 42 THEN fvl161.meaning
165517                 
165518                 ELSE null
165522         , ZX_AP_DEF_TAX_EXTRACT_V  l4
165519               END               source_meaning
165520          FROM  xla_events_gt     xet  
165521         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
165523   , fnd_lookup_values    fvl33
165524   , fnd_lookup_values    fvl79
165525   , fnd_lookup_values    fvl97
165526   , fnd_lookup_values    fvl125
165527   , fnd_lookup_values    fvl160
165528   , fnd_lookup_values    fvl161
165529             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
165530         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
165531           AND xet.event_class_code = C_EVENT_CLASS_CODE
165532             AND l1.event_id          = xet.event_id
165533  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
165534   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
165535   AND fvl33.view_application_id(+) = 200
165536   AND fvl33.language(+)            = USERENV('LANG')
165537      AND fvl79.lookup_type(+)         = 'YES_NO'
165538   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
165539   AND fvl79.view_application_id(+) = 0
165540   AND fvl79.language(+)            = USERENV('LANG')
165541      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
165542   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
165543   AND fvl97.view_application_id(+) = 200
165544   AND fvl97.language(+)            = USERENV('LANG')
165545      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
165546   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
165547   AND fvl125.view_application_id(+) = 0
165548   AND fvl125.language(+)            = USERENV('LANG')
165549      AND fvl160.lookup_type(+)         = 'INVOICE TYPE'
165550   AND fvl160.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
165551   AND fvl160.view_application_id(+) = 200
165552   AND fvl160.language(+)            = USERENV('LANG')
165553      AND fvl161.lookup_type(+)         = 'YES_NO'
165554   AND fvl161.lookup_code(+)         = l1.AWT_AT_PMT_TIME
165555   AND fvl161.view_application_id(+) = 0
165556   AND fvl161.language(+)            = USERENV('LANG')
165557   
165558 )
165559 ;
165560 --
165561 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165562 
165563       trace
165564          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
165565          ,p_level    => C_LEVEL_STATEMENT
165566          ,p_module   => l_log_module);
165567 
165568 END IF;
165569 
165570 
165571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165572       trace
165573          (p_msg      => 'END of insert_sources_233'
165574          ,p_level    => C_LEVEL_PROCEDURE
165575          ,p_module   => l_log_module);
165576 END IF;
165577 EXCEPTION
165578   WHEN xla_exceptions_pkg.application_exception THEN
165579       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165580             trace
165581                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165582                ,p_level    => C_LEVEL_EXCEPTION
165583                ,p_module   => l_log_module);
165584       END IF;
165585       RAISE;
165586   WHEN OTHERS THEN
165587       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165588             trace
165589                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165590                ,p_level    => C_LEVEL_EXCEPTION
165591                ,p_module   => l_log_module);
165592        END IF;
165593        xla_exceptions_pkg.raise_message
165594            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_233');
165595 END insert_sources_233;
165596 --
165597 
165598 ---------------------------------------
165599 --
165600 -- PRIVATE FUNCTION
165601 --         EventClass_233
165602 --
165603 ----------------------------------------
165604 --
165605 FUNCTION EventClass_233
165606        (p_application_id         IN NUMBER
165607        ,p_base_ledger_id         IN NUMBER
165608        ,p_target_ledger_id       IN NUMBER
165609        ,p_language               IN VARCHAR2
165610        ,p_currency_code          IN VARCHAR2
165611        ,p_sla_ledger_id          IN NUMBER
165612        ,p_pad_start_date         IN DATE
165613        ,p_pad_end_date           IN DATE
165614        ,p_primary_ledger_id      IN NUMBER)
165615 RETURN BOOLEAN IS
165616 --
165617 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
165618 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
165619 
165620 l_calculate_acctd_flag   VARCHAR2(1) :='N';
165621 l_calculate_g_l_flag     VARCHAR2(1) :='N';
165622 --
165623 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165624 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165625 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165626 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165627 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165628 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165629 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165630 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165631 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165632 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165633 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165634 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165635 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165636 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165637 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165638 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165639 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165643 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165640 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165641 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165642 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165644 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165645 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
165646 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165647 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165648 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165649 
165650 l_event_id                             NUMBER;
165651 l_previous_event_id                    NUMBER;
165652 l_first_event_id                       NUMBER;
165653 l_last_event_id                        NUMBER;
165654 
165655 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
165656 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
165657 --
165658 --
165659 l_result                    BOOLEAN := TRUE;
165660 l_rows                      NUMBER  := 1000;
165661 l_event_type_name           VARCHAR2(80) := 'All';
165662 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
165663 l_description               VARCHAR2(4000);
165664 l_transaction_reversal      NUMBER;
165665 l_ae_header_id              NUMBER;
165666 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
165667 l_log_module                VARCHAR2(240);
165668 --
165669 l_acct_reversal_source      VARCHAR2(30);
165670 l_trx_reversal_source       VARCHAR2(30);
165671 
165672 l_continue_with_lines       BOOLEAN := TRUE;
165673 --
165674 l_acc_rev_gl_date_source    DATE;                      -- 4262811
165675 --
165676 type t_array_event_id is table of number index by binary_integer;
165677 
165678 l_rec_array_event                    t_rec_array_event;
165679 l_null_rec_array_event               t_rec_array_event;
165680 l_array_ae_header_id                 xla_number_array_type;
165681 l_actual_flag                        VARCHAR2(1) := NULL;
165682 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
165683 l_balance_type_code                  VARCHAR2(1) :=NULL;
165684 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
165685 
165686 --
165687 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
165688 --
165689 
165690 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
165691 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
165692 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
165693 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
165694 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
165695 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165696 TYPE t_array_source_14 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
165697 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
165698 TYPE t_array_source_16 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
165699 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
165700 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165701 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
165702 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
165703 TYPE t_array_source_29 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
165704 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165705 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165706 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165707 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165708 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165709 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
165710 TYPE t_array_source_48 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
165711 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
165712 TYPE t_array_source_96 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
165713 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165714 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
165715 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
165716 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165717 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
165718 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
165719 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_ID%TYPE INDEX BY BINARY_INTEGER;
165720 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165721 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
165725 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
165722 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165723 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165724 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165726 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
165727 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
165728 
165729 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
165730 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165731 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165732 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
165733 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165734 TYPE t_array_source_51 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
165735 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
165736 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
165737 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165738 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165739 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165740 TYPE t_array_source_87 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165741 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
165742 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165743 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
165744 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165745 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
165746 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165747 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165748 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165749 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
165750 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165751 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
165752 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165753 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165754 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165755 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165756 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165757 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_MAT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165758 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165759 TYPE t_array_source_125 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
165760 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165761 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165762 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165763 TYPE t_array_source_148 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165764 TYPE t_array_source_149 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165765 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165766 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165767 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165768 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165769 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
165770 TYPE t_array_source_161 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
165771 
165772 l_array_source_6              t_array_source_6;
165773 l_array_source_9              t_array_source_9;
165774 l_array_source_10              t_array_source_10;
165775 l_array_source_11              t_array_source_11;
165776 l_array_source_12              t_array_source_12;
165777 l_array_source_13              t_array_source_13;
165778 l_array_source_14              t_array_source_14;
165779 l_array_source_15              t_array_source_15;
165780 l_array_source_15_meaning      t_array_lookup_meaning;
165781 l_array_source_16              t_array_source_16;
165782 l_array_source_17              t_array_source_17;
165783 l_array_source_18              t_array_source_18;
165784 l_array_source_19              t_array_source_19;
165788 l_array_source_36              t_array_source_36;
165785 l_array_source_19_meaning      t_array_lookup_meaning;
165786 l_array_source_28              t_array_source_28;
165787 l_array_source_29              t_array_source_29;
165789 l_array_source_37              t_array_source_37;
165790 l_array_source_38              t_array_source_38;
165791 l_array_source_39              t_array_source_39;
165792 l_array_source_44              t_array_source_44;
165793 l_array_source_47              t_array_source_47;
165794 l_array_source_47_meaning      t_array_lookup_meaning;
165795 l_array_source_48              t_array_source_48;
165796 l_array_source_82              t_array_source_82;
165797 l_array_source_96              t_array_source_96;
165798 l_array_source_104              t_array_source_104;
165799 l_array_source_105              t_array_source_105;
165800 l_array_source_106              t_array_source_106;
165801 l_array_source_107              t_array_source_107;
165802 l_array_source_109              t_array_source_109;
165803 l_array_source_110              t_array_source_110;
165804 l_array_source_112              t_array_source_112;
165805 l_array_source_113              t_array_source_113;
165806 l_array_source_113_meaning      t_array_lookup_meaning;
165807 l_array_source_114              t_array_source_114;
165808 l_array_source_117              t_array_source_117;
165809 l_array_source_118              t_array_source_118;
165810 l_array_source_119              t_array_source_119;
165811 l_array_source_122              t_array_source_122;
165812 l_array_source_122_meaning      t_array_lookup_meaning;
165813 l_array_source_170              t_array_source_170;
165814 l_array_source_171              t_array_source_171;
165815 
165816 l_array_source_30      t_array_source_30;
165817 l_array_source_33      t_array_source_33;
165818 l_array_source_33_meaning      t_array_lookup_meaning;
165819 l_array_source_43      t_array_source_43;
165820 l_array_source_45      t_array_source_45;
165821 l_array_source_46      t_array_source_46;
165822 l_array_source_51      t_array_source_51;
165823 l_array_source_52      t_array_source_52;
165824 l_array_source_54      t_array_source_54;
165825 l_array_source_66      t_array_source_66;
165826 l_array_source_79      t_array_source_79;
165827 l_array_source_79_meaning      t_array_lookup_meaning;
165828 l_array_source_85      t_array_source_85;
165829 l_array_source_87      t_array_source_87;
165830 l_array_source_90      t_array_source_90;
165831 l_array_source_91      t_array_source_91;
165832 l_array_source_92      t_array_source_92;
165833 l_array_source_93      t_array_source_93;
165834 l_array_source_94      t_array_source_94;
165835 l_array_source_97      t_array_source_97;
165836 l_array_source_97_meaning      t_array_lookup_meaning;
165837 l_array_source_98      t_array_source_98;
165838 l_array_source_99      t_array_source_99;
165839 l_array_source_100      t_array_source_100;
165840 l_array_source_101      t_array_source_101;
165841 l_array_source_102      t_array_source_102;
165842 l_array_source_103      t_array_source_103;
165843 l_array_source_108      t_array_source_108;
165844 l_array_source_111      t_array_source_111;
165845 l_array_source_115      t_array_source_115;
165846 l_array_source_116      t_array_source_116;
165847 l_array_source_120      t_array_source_120;
165848 l_array_source_121      t_array_source_121;
165849 l_array_source_125      t_array_source_125;
165850 l_array_source_125_meaning      t_array_lookup_meaning;
165851 l_array_source_136      t_array_source_136;
165852 l_array_source_137      t_array_source_137;
165853 l_array_source_138      t_array_source_138;
165854 l_array_source_148      t_array_source_148;
165855 l_array_source_149      t_array_source_149;
165856 l_array_source_153      t_array_source_153;
165857 l_array_source_154      t_array_source_154;
165858 l_array_source_156      t_array_source_156;
165859 l_array_source_157      t_array_source_157;
165860 l_array_source_160      t_array_source_160;
165861 l_array_source_160_meaning      t_array_lookup_meaning;
165862 l_array_source_161      t_array_source_161;
165863 l_array_source_161_meaning      t_array_lookup_meaning;
165864 
165865 --
165866 CURSOR header_cur
165867 IS
165868 SELECT /*+ leading(xet) cardinality(xet,1) */
165869 -- Event Class Code: RECONCILED PAYMENTS
165870     xet.entity_id
165871    ,xet.legal_entity_id
165872    ,xet.entity_code
165873    ,xet.transaction_number
165874    ,xet.event_id
165875    ,xet.event_class_code
165876    ,xet.event_type_code
165877    ,xet.event_number
165878    ,xet.event_date
165879    ,xet.transaction_date
165880    ,xet.reference_num_1
165881    ,xet.reference_num_2
165882    ,xet.reference_num_3
165883    ,xet.reference_num_4
165884    ,xet.reference_char_1
165885    ,xet.reference_char_2
165886    ,xet.reference_char_3
165887    ,xet.reference_char_4
165888    ,xet.reference_date_1
165889    ,xet.reference_date_2
165890    ,xet.reference_date_3
165891    ,xet.reference_date_4
165892    ,xet.event_created_by
165893    ,xet.budgetary_control_flag 
165894   , h2.DOC_SEQUENCE_NAME    source_6
165895   , h2.AC_DOC_SEQUENCE_VALUE    source_9
165896   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
165897   , h2.AC_CHECK_DATE    source_11
165898   , h2.CBA_BANK_ACCOUNT_NAME    source_12
165899   , h2.AC_CURRENCY_CODE    source_13
165900   , h2.CGAC_BANK_CHARGES_CCID    source_14
165901   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
165902   , fvl15.meaning   source_15_meaning
165903   , h2.CGAC_BANK_ERRORS_CCID    source_16
165904   , h2.CGAC_AP_ASSET_CCID    source_17
165905   , h3.FSP_DISC_TAKEN_CCID    source_18
165906   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
165907   , fvl19.meaning   source_19_meaning
165908   , h3.ASP_INTEREST_CCID    source_28
165909   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_29
165910   , h2.CGAC_GAIN_CCID    source_36
165911   , h3.ASP_GAIN_CCID    source_37
165912   , h2.CGAC_LOSS_CCID    source_38
165913   , h3.ASP_LOSS_CCID    source_39
165917   , h3.ASP_ROUNDING_ERROR_CCID    source_48
165914   , h3.ASP_DISC_TAKEN_CCID    source_44
165915   , h3.ASP_AUTO_OFFSET_FLAG    source_47
165916   , fvl47.meaning   source_47_meaning
165918   , h2.THIRD_PARTY_TYPE    source_82
165919   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_96
165920   , h2.APH_BANK_CURRENCY_CODE    source_104
165921   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_105
165922   , h2.APH_BANK_TO_BASE_XRATE    source_106
165923   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_107
165924   , h2.AC_VENDOR_ID    source_109
165925   , h2.AC_VENDOR_SITE_ID    source_110
165926   , h2.AC_CHECK_ID    source_112
165927   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
165928   , fvl113.meaning   source_113_meaning
165929   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
165930   , h2.AC_EXCHANGE_DATE    source_117
165931   , h2.AC_EXCHANGE_RATE    source_118
165932   , h2.AC_EXCHANGE_RATE_TYPE    source_119
165933   , h2.PAYMENT_TYPE    source_122
165934   , fvl122.meaning   source_122_meaning
165935   , h2.AC_DOC_CATEGORY_CODE    source_170
165936   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
165937   FROM xla_events_gt     xet 
165938   , AP_PAYMENT_EXTRACT_HEADER_V  h2
165939   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
165940   , fnd_lookup_values    fvl15
165941   , fnd_lookup_values    fvl19
165942   , fnd_lookup_values    fvl47
165943   , fnd_lookup_values    fvl113
165944   , fnd_lookup_values    fvl122
165945  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
165946    and xet.event_class_code = C_EVENT_CLASS_CODE
165947    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
165948  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
165949   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
165950   AND fvl15.view_application_id(+) = 200
165951   AND fvl15.language(+)            = USERENV('LANG')
165952      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
165953   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
165954   AND fvl19.view_application_id(+) = 200
165955   AND fvl19.language(+)            = USERENV('LANG')
165956      AND fvl47.lookup_type(+)         = 'YES_NO'
165957   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
165958   AND fvl47.view_application_id(+) = 0
165959   AND fvl47.language(+)            = USERENV('LANG')
165960      AND fvl113.lookup_type(+)         = 'YES_NO'
165961   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
165962   AND fvl113.view_application_id(+) = 0
165963   AND fvl113.language(+)            = USERENV('LANG')
165964      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
165965   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
165966   AND fvl122.view_application_id(+) = 200
165967   AND fvl122.language(+)            = USERENV('LANG')
165968   
165969  ORDER BY event_id
165970 ;
165971 
165972 
165973 --
165974 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
165975 IS
165976 SELECT  /*+ leading(xet) cardinality(xet,1) */
165977 -- Event Class Code: RECONCILED PAYMENTS
165978     xet.entity_id
165979    ,xet.legal_entity_id
165980    ,xet.entity_code
165981    ,xet.transaction_number
165982    ,xet.event_id
165983    ,xet.event_class_code
165984    ,xet.event_type_code
165985    ,xet.event_number
165986    ,xet.event_date
165987    ,xet.transaction_date
165988    ,xet.reference_num_1
165989    ,xet.reference_num_2
165990    ,xet.reference_num_3
165991    ,xet.reference_num_4
165992    ,xet.reference_char_1
165993    ,xet.reference_char_2
165994    ,xet.reference_char_3
165995    ,xet.reference_char_4
165996    ,xet.reference_date_1
165997    ,xet.reference_date_2
165998    ,xet.reference_date_3
165999    ,xet.reference_date_4
166000    ,xet.event_created_by
166001    ,xet.budgetary_control_flag
166002  , l1.LINE_NUMBER  
166003   , l1.AID_DIST_CCID    source_30
166004   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
166005   , fvl33.meaning   source_33_meaning
166006   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
166007   , l1.POD_CCID    source_45
166008   , l1.PO_VARIANCE_ACCOUNT    source_46
166009   , l4.TAX_ACCOUNT_CCID    source_51
166010   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
166011   , l1.DISTRIBUTION_LINK_TYPE    source_54
166012   , l1.AI_INVOICE_CURRENCY_CODE    source_66
166013   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
166014   , fvl79.meaning   source_79_meaning
166015   , l4.TAX_LINE_ID    source_85
166016   , l4.SUMMARY_TAX_LINE_ID    source_87
166017   , l1.BUS_FLOW_AP_APP_ID    source_90
166018   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
166019   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
166020   , l1.BUS_FLOW_INV_DIST_ID    source_93
166021   , l1.BUS_FLOW_INV_ID    source_94
166022   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_97
166023   , fvl97.meaning   source_97_meaning
166024   , l1.APHD_AMOUNT    source_98
166025   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_99
166026   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_100
166027   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_101
166028   , l1.BUS_FLOW_PAYMENT_ID    source_102
166029   , l1.APHD_PAYMENT_HIST_DIST_ID    source_103
166030   , l1.APHD_CLEARING_BASE_AMT    source_108
166031   , l1.APHD_REV_PAY_HIST_DIST_ID    source_111
166032   , l1.APHD_PAYMENT_BASE_AMT    source_115
166033   , l1.APHD_INVOICE_BASE_AMT    source_116
166034   , l1.BUS_FLOW_PAYMENT_MAT_DIST_ID    source_120
166035   , l1.APHD_MATURED_BASE_AMOUNT    source_121
166036   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_125
166037   , fvl125.meaning   source_125_meaning
166038   , l1.INV_EXCHANGE_DATE    source_136
166039   , l1.INV_EXCHANGE_RATE    source_137
166040   , l1.INV_EXCHANGE_RATE_TYPE    source_138
166041   , l1.INV_CLR_GAIN_LOSS_INDICATOR    source_148
166042   , l1.INV_CLR_BASE_AMT_DIFF    source_149
166043   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_153
166044   , l1.MAT_CLR_BASE_AMT_DIFF    source_154
166045   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_156
166049   , l1.AWT_AT_PMT_TIME    source_161
166046   , l1.PMT_CLR_BASE_AMT_DIFF    source_157
166047   , l1.AI_INVOICE_TYPE_PAID    source_160
166048   , fvl160.meaning   source_160_meaning
166050   , fvl161.meaning   source_161_meaning
166051   FROM xla_events_gt     xet 
166052   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
166053   , ZX_AP_DEF_TAX_EXTRACT_V  l4
166054   , fnd_lookup_values    fvl33
166055   , fnd_lookup_values    fvl79
166056   , fnd_lookup_values    fvl97
166057   , fnd_lookup_values    fvl125
166058   , fnd_lookup_values    fvl160
166059   , fnd_lookup_values    fvl161
166060  WHERE xet.event_id between x_first_event_id and x_last_event_id
166061    and xet.event_date between p_pad_start_date and p_pad_end_date
166062    and xet.event_class_code = C_EVENT_CLASS_CODE
166063    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
166064  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
166065   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
166066   AND fvl33.view_application_id(+) = 200
166067   AND fvl33.language(+)            = USERENV('LANG')
166068      AND fvl79.lookup_type(+)         = 'YES_NO'
166069   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
166070   AND fvl79.view_application_id(+) = 0
166071   AND fvl79.language(+)            = USERENV('LANG')
166072      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
166073   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
166074   AND fvl97.view_application_id(+) = 200
166075   AND fvl97.language(+)            = USERENV('LANG')
166076      AND fvl125.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
166077   AND fvl125.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
166078   AND fvl125.view_application_id(+) = 0
166079   AND fvl125.language(+)            = USERENV('LANG')
166080      AND fvl160.lookup_type(+)         = 'INVOICE TYPE'
166081   AND fvl160.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
166082   AND fvl160.view_application_id(+) = 200
166083   AND fvl160.language(+)            = USERENV('LANG')
166084      AND fvl161.lookup_type(+)         = 'YES_NO'
166085   AND fvl161.lookup_code(+)         = l1.AWT_AT_PMT_TIME
166086   AND fvl161.view_application_id(+) = 0
166087   AND fvl161.language(+)            = USERENV('LANG')
166088   ;
166089 
166090 --
166091 BEGIN
166092 IF g_log_enabled THEN
166093    l_log_module := C_DEFAULT_MODULE||'.EventClass_233';
166094 END IF;
166095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166096    trace
166097       (p_msg      => 'BEGIN of EventClass_233'
166098       ,p_level    => C_LEVEL_PROCEDURE
166099       ,p_module   => l_log_module);
166100 END IF;
166101 
166102 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166103    trace
166104       (p_msg      => 'p_application_id = '||p_application_id||
166105                      ' - p_base_ledger_id = '||p_base_ledger_id||
166106                      ' - p_target_ledger_id  = '||p_target_ledger_id||
166107                      ' - p_language = '||p_language||
166108                      ' - p_currency_code = '||p_currency_code||
166109                      ' - p_sla_ledger_id = '||p_sla_ledger_id
166110       ,p_level    => C_LEVEL_STATEMENT
166111       ,p_module   => l_log_module);
166112 END IF;
166113 --
166114 -- initialze arrays
166115 --
166116 g_array_event.DELETE;
166117 l_rec_array_event := l_null_rec_array_event;
166118 --
166119 --------------------------------------
166120 -- 4262811 Initialze MPA Line Number
166121 --------------------------------------
166122 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
166123 
166124 --
166125 
166126 --
166127 OPEN header_cur;
166128 --
166129 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166130    trace
166131    (p_msg      => 'SQL - FETCH header_cur'
166132    ,p_level    => C_LEVEL_STATEMENT
166133    ,p_module   => l_log_module);
166134 END IF;
166135 --
166136 LOOP
166137 FETCH header_cur BULK COLLECT INTO
166138         l_array_entity_id
166139       , l_array_legal_entity_id
166140       , l_array_entity_code
166141       , l_array_transaction_num
166142       , l_array_event_id
166143       , l_array_class_code
166144       , l_array_event_type
166145       , l_array_event_number
166146       , l_array_event_date
166147       , l_array_transaction_date
166148       , l_array_reference_num_1
166149       , l_array_reference_num_2
166150       , l_array_reference_num_3
166151       , l_array_reference_num_4
166152       , l_array_reference_char_1
166153       , l_array_reference_char_2
166154       , l_array_reference_char_3
166155       , l_array_reference_char_4
166156       , l_array_reference_date_1
166157       , l_array_reference_date_2
166158       , l_array_reference_date_3
166159       , l_array_reference_date_4
166160       , l_array_event_created_by
166161       , l_array_budgetary_control_flag 
166162       , l_array_source_6
166163       , l_array_source_9
166164       , l_array_source_10
166165       , l_array_source_11
166166       , l_array_source_12
166167       , l_array_source_13
166168       , l_array_source_14
166169       , l_array_source_15
166170       , l_array_source_15_meaning
166171       , l_array_source_16
166172       , l_array_source_17
166173       , l_array_source_18
166174       , l_array_source_19
166175       , l_array_source_19_meaning
166176       , l_array_source_28
166177       , l_array_source_29
166178       , l_array_source_36
166179       , l_array_source_37
166180       , l_array_source_38
166181       , l_array_source_39
166182       , l_array_source_44
166183       , l_array_source_47
166184       , l_array_source_47_meaning
166185       , l_array_source_48
166186       , l_array_source_82
166187       , l_array_source_96
166188       , l_array_source_104
166189       , l_array_source_105
166190       , l_array_source_106
166191       , l_array_source_107
166195       , l_array_source_113
166192       , l_array_source_109
166193       , l_array_source_110
166194       , l_array_source_112
166196       , l_array_source_113_meaning
166197       , l_array_source_114
166198       , l_array_source_117
166199       , l_array_source_118
166200       , l_array_source_119
166201       , l_array_source_122
166202       , l_array_source_122_meaning
166203       , l_array_source_170
166204       , l_array_source_171
166205       LIMIT l_rows;
166206 --
166207 IF (C_LEVEL_EVENT >= g_log_level) THEN
166208    trace
166209    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
166210    ,p_level    => C_LEVEL_EVENT
166211    ,p_module   => l_log_module);
166212 END IF;
166213 --
166214 EXIT WHEN l_array_entity_id.COUNT = 0;
166215 
166216 -- initialize arrays
166217 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
166218 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
166219 
166220 --
166221 -- Bug 4458708
166222 --
166223 XLA_AE_LINES_PKG.g_LineNumber := 0;
166224 
166225 
166226 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
166227 g_last_hdr_idx := l_array_event_id.LAST;
166228 --
166229 -- loop for the headers. Each iteration is for each header extract row
166230 -- fetched in header cursor
166231 --
166232 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
166233 
166234 --
166235 -- set event info as cache for other routines to refer event attributes
166236 --
166237 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166238    (p_application_id           => p_application_id
166239    ,p_primary_ledger_id        => p_primary_ledger_id
166240    ,p_base_ledger_id           => p_base_ledger_id
166241    ,p_target_ledger_id         => p_target_ledger_id
166242    ,p_entity_id                => l_array_entity_id(hdr_idx)
166243    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
166244    ,p_entity_code              => l_array_entity_code(hdr_idx)
166245    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
166246    ,p_event_id                 => l_array_event_id(hdr_idx)
166247    ,p_event_class_code         => l_array_class_code(hdr_idx)
166248    ,p_event_type_code          => l_array_event_type(hdr_idx)
166249    ,p_event_number             => l_array_event_number(hdr_idx)
166250    ,p_event_date               => l_array_event_date(hdr_idx)
166251    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
166252    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
166253    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
166254    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
166255    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
166256    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
166257    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
166258    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
166259    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
166260    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
166261    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
166262    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
166263    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
166264    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
166265    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
166266 
166267 --
166268 -- set the status of entry to C_VALID (0)
166269 --
166270 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166271 
166272 --
166273 -- initialize a row for ae header
166274 --
166275 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
166276 
166277 l_event_id := l_array_event_id(hdr_idx);
166278 
166279 --
166280 -- storing the hdr_idx for event. May be used by line cursor.
166281 --
166282 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
166283 
166284 --
166285 -- store sources from header extract. This can be improved to
166286 -- store only those sources from header extract that may be used in lines
166287 --
166288 
166289 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
166290 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
166291 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
166292 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
166293 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
166294 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
166295 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
166296 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
166297 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
166298 g_array_event(l_event_id).array_value_num('source_16') := l_array_source_16(hdr_idx);
166299 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
166300 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
166301 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
166302 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
166303 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
166304 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
166305 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
166306 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
166307 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
166308 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
166312 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
166309 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
166310 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
166311 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
166313 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
166314 g_array_event(l_event_id).array_value_char('source_96') := l_array_source_96(hdr_idx);
166315 g_array_event(l_event_id).array_value_char('source_104') := l_array_source_104(hdr_idx);
166316 g_array_event(l_event_id).array_value_date('source_105') := l_array_source_105(hdr_idx);
166317 g_array_event(l_event_id).array_value_num('source_106') := l_array_source_106(hdr_idx);
166318 g_array_event(l_event_id).array_value_char('source_107') := l_array_source_107(hdr_idx);
166319 g_array_event(l_event_id).array_value_num('source_109') := l_array_source_109(hdr_idx);
166320 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
166321 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
166322 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
166323 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
166324 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
166325 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
166326 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
166327 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
166328 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
166329 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
166330 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
166331 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
166332 
166333 --
166334 -- initilaize the status of ae headers for diffrent balance types
166335 -- the status is initialised to C_NOT_CREATED (2)
166336 --
166337 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166338 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166339 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166340 
166341 --
166342 -- call api to validate and store accounting attributes for header
166343 --
166344 
166345 ------------------------------------------------------------
166346 -- Accrual Reversal : to get date for Standard Source (NONE)
166347 ------------------------------------------------------------
166348 l_acc_rev_gl_date_source := NULL;
166349 
166350      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
166351       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
166352      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
166353       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
166354      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
166355       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
166356      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
166357       l_rec_acct_attrs.array_date_value(4) := 
166358 xla_ae_sources_pkg.GetSystemSourceDate(
166359    p_source_code           => 'XLA_EVENT_DATE'
166360  , p_source_type_code      => 'Y'
166361  , p_source_application_id =>  602
166362 );
166363 
166364 
166365 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
166366 
166367 XLA_AE_HEADER_PKG.SetJeCategoryName;
166368 
166369 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
166370 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
166371 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
166372 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
166373 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
166374 
166375 
166376 --
166377 xla_ae_header_pkg.SetHdrDescription(
166378    p_description => Description_3 (
166379    p_application_id => p_application_id 
166380  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
166381  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
166382  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
166383  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
166384  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
166385  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166386    )
166387 );
166388 --
166389 
166390 -- No header level analytical criteria
166391 
166392 --
166393 --accounting attribute enhancement, bug 3612931
166394 --
166395 l_trx_reversal_source := SUBSTR(NULL, 1,30);
166396 
166397 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
166398    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166399 
166400    xla_accounting_err_pkg.build_message
166401       (p_appli_s_name            => 'XLA'
166402       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
166403       ,p_token_1                 => 'ACCT_ATTR_NAME'
166404       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
166405       ,p_token_2                 => 'PRODUCT_NAME'
166406       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166407       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166408       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166412    --
166409       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166410 
166411 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
166413    -- following sets the accounting attributes needed to reverse
166414    -- accounting for a distributeion
166415    --
166416    xla_ae_lines_pkg.SetTrxReversalAttrs
166417       (p_event_id              => l_event_id
166418       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
166419       ,p_trx_reversal_source   => l_trx_reversal_source);
166420 
166421 END IF;
166422 
166423 
166424 ----------------------------------------------------------------
166425 -- 4262811 -  update the header statuses to invalid in need be
166426 ----------------------------------------------------------------
166427 --
166428 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
166429 
166430 
166431   -----------------------------------------------
166432   -- No accrual reversal for the event class/type
166433   -----------------------------------------------
166434 ----------------------------------------------------------------
166435 
166436 --
166437 -- this ends the header loop iteration for one bulk fetch
166438 --
166439 END LOOP;
166440 
166441 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
166442 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
166443 
166444 --
166445 -- insert dummy rows into lines gt table that were created due to
166446 -- transaction reversals
166447 --
166448 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
166449    l_result := XLA_AE_LINES_PKG.InsertLines;
166450 END IF;
166451 
166452 --
166453 -- reset the temp_line_num for each set of events fetched from header
166454 -- cursor rather than doing it for each new event in line cursor
166455 -- Bug 3939231
166456 --
166457 xla_ae_lines_pkg.g_temp_line_num := 0;
166458 
166459 
166460 
166461 --
166462 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
166463 --
166464 --
166465 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166466 
166467       trace
166468          (p_msg      => 'SQL - FETCH line_cur'
166469          ,p_level    => C_LEVEL_STATEMENT
166470          ,p_module   => l_log_module);
166471 
166472 END IF;
166473 --
166474 --
166475 LOOP
166476   --
166477   FETCH line_cur BULK COLLECT INTO
166478         l_array_entity_id
166479       , l_array_legal_entity_id
166480       , l_array_entity_code
166481       , l_array_transaction_num
166482       , l_array_event_id
166483       , l_array_class_code
166484       , l_array_event_type
166485       , l_array_event_number
166486       , l_array_event_date
166487       , l_array_transaction_date
166488       , l_array_reference_num_1
166489       , l_array_reference_num_2
166490       , l_array_reference_num_3
166491       , l_array_reference_num_4
166492       , l_array_reference_char_1
166493       , l_array_reference_char_2
166494       , l_array_reference_char_3
166495       , l_array_reference_char_4
166496       , l_array_reference_date_1
166497       , l_array_reference_date_2
166498       , l_array_reference_date_3
166499       , l_array_reference_date_4
166500       , l_array_event_created_by
166501       , l_array_budgetary_control_flag
166502       , l_array_extract_line_num 
166503       , l_array_source_30
166504       , l_array_source_33
166505       , l_array_source_33_meaning
166506       , l_array_source_43
166507       , l_array_source_45
166508       , l_array_source_46
166509       , l_array_source_51
166510       , l_array_source_52
166511       , l_array_source_54
166512       , l_array_source_66
166513       , l_array_source_79
166514       , l_array_source_79_meaning
166515       , l_array_source_85
166516       , l_array_source_87
166517       , l_array_source_90
166518       , l_array_source_91
166519       , l_array_source_92
166520       , l_array_source_93
166521       , l_array_source_94
166522       , l_array_source_97
166523       , l_array_source_97_meaning
166524       , l_array_source_98
166525       , l_array_source_99
166526       , l_array_source_100
166527       , l_array_source_101
166528       , l_array_source_102
166529       , l_array_source_103
166530       , l_array_source_108
166531       , l_array_source_111
166532       , l_array_source_115
166533       , l_array_source_116
166534       , l_array_source_120
166535       , l_array_source_121
166536       , l_array_source_125
166537       , l_array_source_125_meaning
166538       , l_array_source_136
166539       , l_array_source_137
166540       , l_array_source_138
166541       , l_array_source_148
166542       , l_array_source_149
166543       , l_array_source_153
166544       , l_array_source_154
166545       , l_array_source_156
166546       , l_array_source_157
166547       , l_array_source_160
166548       , l_array_source_160_meaning
166549       , l_array_source_161
166550       , l_array_source_161_meaning
166551       LIMIT l_rows;
166552 
166553   --
166554   IF (C_LEVEL_EVENT >= g_log_level) THEN
166555             trace
166556                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
166557                ,p_level    => C_LEVEL_EVENT
166558                ,p_module   => l_log_module);
166559   END IF;
166560   --
166561   EXIT WHEN l_array_entity_id.count = 0;
166562 
166563   XLA_AE_LINES_PKG.g_rec_lines := null;
166564 
166565 --
166566 -- Bug 4458708
166567 --
166568 XLA_AE_LINES_PKG.g_LineNumber := 0;
166569 --
166570 --
166571 
166572 FOR Idx IN 1..l_array_event_id.count LOOP
166573    --
166577 
166574    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
166575    --
166576    l_event_id := l_array_event_id(idx);  -- 5648433
166578    --
166579    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
166580    --
166581 
166582    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
166583              (g_array_event(l_event_id).array_value_num('header_index'))
166584          ,'N'
166585          ) <> 'Y'
166586    THEN
166587       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166588          trace
166589             (p_msg      => 'Trancaction revesal option is not Y '
166590             ,p_level    => C_LEVEL_STATEMENT
166591             ,p_module   => l_log_module);
166592       END IF;
166593 
166594 --
166595 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
166596 --
166597 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166598 --
166599 -- set event info as cache for other routines to refer event attributes
166600 --
166601 
166602 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
166603    l_previous_event_id := l_event_id;
166604 
166605    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166606       (p_application_id           => p_application_id
166607       ,p_primary_ledger_id        => p_primary_ledger_id
166608       ,p_base_ledger_id           => p_base_ledger_id
166609       ,p_target_ledger_id         => p_target_ledger_id
166610       ,p_entity_id                => l_array_entity_id(Idx)
166611       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
166612       ,p_entity_code              => l_array_entity_code(Idx)
166613       ,p_transaction_num          => l_array_transaction_num(Idx)
166614       ,p_event_id                 => l_array_event_id(Idx)
166615       ,p_event_class_code         => l_array_class_code(Idx)
166616       ,p_event_type_code          => l_array_event_type(Idx)
166617       ,p_event_number             => l_array_event_number(Idx)
166618       ,p_event_date               => l_array_event_date(Idx)
166619       ,p_transaction_date         => l_array_transaction_date(Idx)
166620       ,p_reference_num_1          => l_array_reference_num_1(Idx)
166621       ,p_reference_num_2          => l_array_reference_num_2(Idx)
166622       ,p_reference_num_3          => l_array_reference_num_3(Idx)
166623       ,p_reference_num_4          => l_array_reference_num_4(Idx)
166624       ,p_reference_char_1         => l_array_reference_char_1(Idx)
166625       ,p_reference_char_2         => l_array_reference_char_2(Idx)
166626       ,p_reference_char_3         => l_array_reference_char_3(Idx)
166627       ,p_reference_char_4         => l_array_reference_char_4(Idx)
166628       ,p_reference_date_1         => l_array_reference_date_1(Idx)
166629       ,p_reference_date_2         => l_array_reference_date_2(Idx)
166630       ,p_reference_date_3         => l_array_reference_date_3(Idx)
166631       ,p_reference_date_4         => l_array_reference_date_4(Idx)
166632       ,p_event_created_by         => l_array_event_created_by(Idx)
166633       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
166634        --
166635 END IF;
166636 
166637 
166638 
166639 --
166640 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
166641 
166642 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
166643 
166644 IF l_continue_with_lines THEN
166645    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
166646       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166647 
166648       xla_accounting_err_pkg.build_message
166649          (p_appli_s_name            => 'XLA'
166650          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
166651          ,p_token_1                 => 'LINE_NUMBER'
166652          ,p_value_1                 => l_array_extract_line_num(Idx)
166653          ,p_token_2                 => 'PRODUCT_NAME'
166654          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166655          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166656          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166657          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166658 
166659    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
166660       --
166661       -- following sets the accounting attributes needed to reverse
166662       -- accounting for a distributeion
166663       --
166664 
166665       --
166666       -- 5217187
166667       --
166668       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
166669       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
166670                                        g_array_event(l_event_id).array_value_num('header_index'));
166671       --
166672       --
166673 
166674       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
166675       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
166676       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
166677       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_103(Idx);
166678       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
166679       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
166680       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
166681       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_82');
166682       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
166683       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_111(Idx);
166684       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
166685       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_54(Idx);
166686       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
166690       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
166687       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_85(Idx);
166688       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
166689       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_85(Idx);
166691       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_87(Idx);
166692 
166693 
166694       xla_ae_lines_pkg.SetAcctReversalAttrs
166695          (p_event_id             => l_event_id
166696          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
166697          ,p_calculate_acctd_flag => l_calculate_acctd_flag
166698          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
166699    END IF;
166700 
166701    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
166702        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
166703 
166704 --
166705 AcctLineType_58 (
166706  p_application_id  => p_application_id
166707  ,p_event_id     => l_event_id
166708  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166709  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166710  ,p_actual_flag => l_actual_flag
166711  ,p_balance_type_code => l_balance_type_code
166712  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166713  
166714  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
166715  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166716  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166717  , p_source_30 => l_array_source_30(Idx)
166718  , p_source_52 => l_array_source_52(Idx)
166719  , p_source_54 => l_array_source_54(Idx)
166720  , p_source_79 => l_array_source_79(Idx)
166721  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166722  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166723  , p_source_85 => l_array_source_85(Idx)
166724  , p_source_87 => l_array_source_87(Idx)
166725  , p_source_90 => l_array_source_90(Idx)
166726  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166727  , p_source_97 => l_array_source_97(Idx)
166728  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166729  , p_source_98 => l_array_source_98(Idx)
166730  , p_source_99 => l_array_source_99(Idx)
166731  , p_source_100 => l_array_source_100(Idx)
166732  , p_source_101 => l_array_source_101(Idx)
166733  , p_source_102 => l_array_source_102(Idx)
166734  , p_source_103 => l_array_source_103(Idx)
166735  , p_source_104 => g_array_event(l_event_id).array_value_char('source_104')
166736  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
166737  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
166738  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
166739  , p_source_108 => l_array_source_108(Idx)
166740  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
166741  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166742  , p_source_111 => l_array_source_111(Idx)
166743  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
166744  );
166745 If(l_balance_type_code = 'A') THEN
166746   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166747 END IF;
166748 
166749 --
166750 
166751 
166752 --
166753 AcctLineType_59 (
166754  p_application_id  => p_application_id
166755  ,p_event_id     => l_event_id
166756  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166757  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166758  ,p_actual_flag => l_actual_flag
166759  ,p_balance_type_code => l_balance_type_code
166760  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166761  
166762  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166763  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166764  , p_source_16 => g_array_event(l_event_id).array_value_num('source_16')
166765  , p_source_30 => l_array_source_30(Idx)
166766  , p_source_52 => l_array_source_52(Idx)
166767  , p_source_54 => l_array_source_54(Idx)
166768  , p_source_79 => l_array_source_79(Idx)
166769  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166770  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166771  , p_source_85 => l_array_source_85(Idx)
166772  , p_source_87 => l_array_source_87(Idx)
166773  , p_source_90 => l_array_source_90(Idx)
166774  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166775  , p_source_97 => l_array_source_97(Idx)
166776  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166777  , p_source_98 => l_array_source_98(Idx)
166778  , p_source_99 => l_array_source_99(Idx)
166779  , p_source_100 => l_array_source_100(Idx)
166780  , p_source_101 => l_array_source_101(Idx)
166781  , p_source_102 => l_array_source_102(Idx)
166782  , p_source_103 => l_array_source_103(Idx)
166783  , p_source_104 => g_array_event(l_event_id).array_value_char('source_104')
166784  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
166785  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
166786  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
166787  , p_source_108 => l_array_source_108(Idx)
166788  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
166789  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166790  , p_source_111 => l_array_source_111(Idx)
166791  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
166792  );
166793 If(l_balance_type_code = 'A') THEN
166794   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166795 END IF;
166796 
166797 --
166798 
166799 
166800 --
166801 AcctLineType_60 (
166802  p_application_id  => p_application_id
166803  ,p_event_id     => l_event_id
166804  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166805  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166806  ,p_actual_flag => l_actual_flag
166807  ,p_balance_type_code => l_balance_type_code
166808  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166809  
166813  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
166810  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166811  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166812  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166814  , p_source_52 => l_array_source_52(Idx)
166815  , p_source_54 => l_array_source_54(Idx)
166816  , p_source_79 => l_array_source_79(Idx)
166817  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166818  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166819  , p_source_85 => l_array_source_85(Idx)
166820  , p_source_87 => l_array_source_87(Idx)
166821  , p_source_90 => l_array_source_90(Idx)
166822  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166823  , p_source_97 => l_array_source_97(Idx)
166824  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166825  , p_source_98 => l_array_source_98(Idx)
166826  , p_source_99 => l_array_source_99(Idx)
166827  , p_source_100 => l_array_source_100(Idx)
166828  , p_source_101 => l_array_source_101(Idx)
166829  , p_source_102 => l_array_source_102(Idx)
166830  , p_source_103 => l_array_source_103(Idx)
166831  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
166832  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
166833  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
166834  , p_source_108 => l_array_source_108(Idx)
166835  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
166836  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166837  , p_source_111 => l_array_source_111(Idx)
166838  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
166839  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
166840  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
166841  );
166842 If(l_balance_type_code = 'A') THEN
166843   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166844 END IF;
166845 
166846 --
166847 
166848 
166849 --
166850 AcctLineType_61 (
166851  p_application_id  => p_application_id
166852  ,p_event_id     => l_event_id
166853  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166854  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166855  ,p_actual_flag => l_actual_flag
166856  ,p_balance_type_code => l_balance_type_code
166857  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166858  
166859  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166860  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166861  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166862  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
166863  , p_source_52 => l_array_source_52(Idx)
166864  , p_source_54 => l_array_source_54(Idx)
166865  , p_source_79 => l_array_source_79(Idx)
166866  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166867  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166868  , p_source_85 => l_array_source_85(Idx)
166869  , p_source_87 => l_array_source_87(Idx)
166870  , p_source_90 => l_array_source_90(Idx)
166871  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166872  , p_source_97 => l_array_source_97(Idx)
166873  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166874  , p_source_98 => l_array_source_98(Idx)
166875  , p_source_99 => l_array_source_99(Idx)
166876  , p_source_100 => l_array_source_100(Idx)
166877  , p_source_101 => l_array_source_101(Idx)
166878  , p_source_102 => l_array_source_102(Idx)
166879  , p_source_103 => l_array_source_103(Idx)
166880  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
166881  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
166882  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
166883  , p_source_108 => l_array_source_108(Idx)
166884  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
166885  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166886  , p_source_111 => l_array_source_111(Idx)
166887  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
166888  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
166889  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
166890  );
166891 If(l_balance_type_code = 'A') THEN
166892   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166893 END IF;
166894 
166895 --
166896 
166897 
166898 --
166899 AcctLineType_62 (
166900  p_application_id  => p_application_id
166901  ,p_event_id     => l_event_id
166902  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166903  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166904  ,p_actual_flag => l_actual_flag
166905  ,p_balance_type_code => l_balance_type_code
166906  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166907  
166908  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166909  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
166910  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
166911  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
166912  , p_source_52 => l_array_source_52(Idx)
166913  , p_source_54 => l_array_source_54(Idx)
166914  , p_source_79 => l_array_source_79(Idx)
166915  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166916  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166917  , p_source_85 => l_array_source_85(Idx)
166918  , p_source_87 => l_array_source_87(Idx)
166919  , p_source_90 => l_array_source_90(Idx)
166920  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166921  , p_source_97 => l_array_source_97(Idx)
166922  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166923  , p_source_98 => l_array_source_98(Idx)
166924  , p_source_99 => l_array_source_99(Idx)
166928  , p_source_103 => l_array_source_103(Idx)
166925  , p_source_100 => l_array_source_100(Idx)
166926  , p_source_101 => l_array_source_101(Idx)
166927  , p_source_102 => l_array_source_102(Idx)
166929  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
166930  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
166931  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
166932  , p_source_108 => l_array_source_108(Idx)
166933  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
166934  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166935  , p_source_111 => l_array_source_111(Idx)
166936  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
166937  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
166938  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
166939  );
166940 If(l_balance_type_code = 'A') THEN
166941   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166942 END IF;
166943 
166944 --
166945 
166946 
166947 --
166948 AcctLineType_63 (
166949  p_application_id  => p_application_id
166950  ,p_event_id     => l_event_id
166951  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166952  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166953  ,p_actual_flag => l_actual_flag
166954  ,p_balance_type_code => l_balance_type_code
166955  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166956  
166957  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166958  , p_source_52 => l_array_source_52(Idx)
166959  , p_source_54 => l_array_source_54(Idx)
166960  , p_source_79 => l_array_source_79(Idx)
166961  , p_source_79_meaning => l_array_source_79_meaning(Idx)
166962  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
166963  , p_source_85 => l_array_source_85(Idx)
166964  , p_source_87 => l_array_source_87(Idx)
166965  , p_source_90 => l_array_source_90(Idx)
166966  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
166967  , p_source_97 => l_array_source_97(Idx)
166968  , p_source_97_meaning => l_array_source_97_meaning(Idx)
166969  , p_source_98 => l_array_source_98(Idx)
166970  , p_source_99 => l_array_source_99(Idx)
166971  , p_source_100 => l_array_source_100(Idx)
166972  , p_source_101 => l_array_source_101(Idx)
166973  , p_source_102 => l_array_source_102(Idx)
166974  , p_source_103 => l_array_source_103(Idx)
166975  , p_source_111 => l_array_source_111(Idx)
166976  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
166977  , p_source_115 => l_array_source_115(Idx)
166978  );
166979 If(l_balance_type_code = 'A') THEN
166980   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166981 END IF;
166982 
166983 --
166984 
166985 
166986 --
166987 AcctLineType_64 (
166988  p_application_id  => p_application_id
166989  ,p_event_id     => l_event_id
166990  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166991  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166992  ,p_actual_flag => l_actual_flag
166993  ,p_balance_type_code => l_balance_type_code
166994  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166995  
166996  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166997  , p_source_52 => l_array_source_52(Idx)
166998  , p_source_54 => l_array_source_54(Idx)
166999  , p_source_79 => l_array_source_79(Idx)
167000  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167001  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167002  , p_source_85 => l_array_source_85(Idx)
167003  , p_source_87 => l_array_source_87(Idx)
167004  , p_source_90 => l_array_source_90(Idx)
167005  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167006  , p_source_97 => l_array_source_97(Idx)
167007  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167008  , p_source_98 => l_array_source_98(Idx)
167009  , p_source_99 => l_array_source_99(Idx)
167010  , p_source_100 => l_array_source_100(Idx)
167011  , p_source_101 => l_array_source_101(Idx)
167012  , p_source_102 => l_array_source_102(Idx)
167013  , p_source_103 => l_array_source_103(Idx)
167014  , p_source_111 => l_array_source_111(Idx)
167015  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167016  , p_source_116 => l_array_source_116(Idx)
167017  );
167018 If(l_balance_type_code = 'A') THEN
167019   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167020 END IF;
167021 
167022 --
167023 
167024 
167025 --
167026 AcctLineType_67 (
167027  p_application_id  => p_application_id
167028  ,p_event_id     => l_event_id
167029  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167030  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167031  ,p_actual_flag => l_actual_flag
167032  ,p_balance_type_code => l_balance_type_code
167033  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167034  
167035  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167036  , p_source_52 => l_array_source_52(Idx)
167037  , p_source_54 => l_array_source_54(Idx)
167038  , p_source_79 => l_array_source_79(Idx)
167039  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167040  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167041  , p_source_85 => l_array_source_85(Idx)
167042  , p_source_87 => l_array_source_87(Idx)
167043  , p_source_90 => l_array_source_90(Idx)
167044  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167045  , p_source_97 => l_array_source_97(Idx)
167046  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167047  , p_source_98 => l_array_source_98(Idx)
167048  , p_source_99 => l_array_source_99(Idx)
167049  , p_source_100 => l_array_source_100(Idx)
167050  , p_source_102 => l_array_source_102(Idx)
167051  , p_source_103 => l_array_source_103(Idx)
167052  , p_source_111 => l_array_source_111(Idx)
167053  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167054  , p_source_120 => l_array_source_120(Idx)
167058   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167055  , p_source_121 => l_array_source_121(Idx)
167056  );
167057 If(l_balance_type_code = 'A') THEN
167059 END IF;
167060 
167061 --
167062 
167063 
167064 --
167065 AcctLineType_93 (
167066  p_application_id  => p_application_id
167067  ,p_event_id     => l_event_id
167068  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167069  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167070  ,p_actual_flag => l_actual_flag
167071  ,p_balance_type_code => l_balance_type_code
167072  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167073  
167074  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167075  , p_source_33 => l_array_source_33(Idx)
167076  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167077  , p_source_51 => l_array_source_51(Idx)
167078  , p_source_52 => l_array_source_52(Idx)
167079  , p_source_54 => l_array_source_54(Idx)
167080  , p_source_79 => l_array_source_79(Idx)
167081  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167082  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167083  , p_source_85 => l_array_source_85(Idx)
167084  , p_source_87 => l_array_source_87(Idx)
167085  , p_source_90 => l_array_source_90(Idx)
167086  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167087  , p_source_97 => l_array_source_97(Idx)
167088  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167089  , p_source_98 => l_array_source_98(Idx)
167090  , p_source_99 => l_array_source_99(Idx)
167091  , p_source_100 => l_array_source_100(Idx)
167092  , p_source_101 => l_array_source_101(Idx)
167093  , p_source_102 => l_array_source_102(Idx)
167094  , p_source_103 => l_array_source_103(Idx)
167095  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167096  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167097  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167098  , p_source_108 => l_array_source_108(Idx)
167099  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167100  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167101  , p_source_111 => l_array_source_111(Idx)
167102  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167103  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167104  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167105  , p_source_125 => l_array_source_125(Idx)
167106  , p_source_125_meaning => l_array_source_125_meaning(Idx)
167107  );
167108 If(l_balance_type_code = 'A') THEN
167109   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167110 END IF;
167111 
167112 --
167113 
167114 
167115 --
167116 AcctLineType_94 (
167117  p_application_id  => p_application_id
167118  ,p_event_id     => l_event_id
167119  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167120  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167121  ,p_actual_flag => l_actual_flag
167122  ,p_balance_type_code => l_balance_type_code
167123  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167124  
167125  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167126  , p_source_33 => l_array_source_33(Idx)
167127  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167128  , p_source_52 => l_array_source_52(Idx)
167129  , p_source_54 => l_array_source_54(Idx)
167130  , p_source_79 => l_array_source_79(Idx)
167131  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167132  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167133  , p_source_85 => l_array_source_85(Idx)
167134  , p_source_87 => l_array_source_87(Idx)
167135  , p_source_90 => l_array_source_90(Idx)
167136  , p_source_93 => l_array_source_93(Idx)
167137  , p_source_94 => l_array_source_94(Idx)
167138  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167139  , p_source_97 => l_array_source_97(Idx)
167140  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167141  , p_source_98 => l_array_source_98(Idx)
167142  , p_source_99 => l_array_source_99(Idx)
167143  , p_source_100 => l_array_source_100(Idx)
167144  , p_source_103 => l_array_source_103(Idx)
167145  , p_source_111 => l_array_source_111(Idx)
167146  , p_source_116 => l_array_source_116(Idx)
167147  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167148  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167149  , p_source_125 => l_array_source_125(Idx)
167150  , p_source_125_meaning => l_array_source_125_meaning(Idx)
167151  );
167152 If(l_balance_type_code = 'A') THEN
167153   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167154 END IF;
167155 
167156 --
167157 
167158 
167159 --
167160 AcctLineType_102 (
167161  p_application_id  => p_application_id
167162  ,p_event_id     => l_event_id
167163  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167164  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167165  ,p_actual_flag => l_actual_flag
167166  ,p_balance_type_code => l_balance_type_code
167167  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167168  
167169  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167170  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167171  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
167172  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
167173  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
167174  , p_source_30 => l_array_source_30(Idx)
167175  , p_source_33 => l_array_source_33(Idx)
167176  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167177  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
167178  , p_source_45 => l_array_source_45(Idx)
167179  , p_source_46 => l_array_source_46(Idx)
167180  , p_source_52 => l_array_source_52(Idx)
167181  , p_source_54 => l_array_source_54(Idx)
167185  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167182  , p_source_66 => l_array_source_66(Idx)
167183  , p_source_79 => l_array_source_79(Idx)
167184  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167186  , p_source_85 => l_array_source_85(Idx)
167187  , p_source_87 => l_array_source_87(Idx)
167188  , p_source_90 => l_array_source_90(Idx)
167189  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167190  , p_source_97 => l_array_source_97(Idx)
167191  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167192  , p_source_98 => l_array_source_98(Idx)
167193  , p_source_99 => l_array_source_99(Idx)
167194  , p_source_100 => l_array_source_100(Idx)
167195  , p_source_101 => l_array_source_101(Idx)
167196  , p_source_102 => l_array_source_102(Idx)
167197  , p_source_103 => l_array_source_103(Idx)
167198  , p_source_108 => l_array_source_108(Idx)
167199  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167200  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167201  , p_source_111 => l_array_source_111(Idx)
167202  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167203  , p_source_136 => l_array_source_136(Idx)
167204  , p_source_137 => l_array_source_137(Idx)
167205  , p_source_138 => l_array_source_138(Idx)
167206  );
167207 If(l_balance_type_code = 'A') THEN
167208   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167209 END IF;
167210 
167211 --
167212 
167213 
167214 --
167215 AcctLineType_110 (
167216  p_application_id  => p_application_id
167217  ,p_event_id     => l_event_id
167218  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167219  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167220  ,p_actual_flag => l_actual_flag
167221  ,p_balance_type_code => l_balance_type_code
167222  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167223  
167224  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167225  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167226  , p_source_30 => l_array_source_30(Idx)
167227  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
167228  , p_source_52 => l_array_source_52(Idx)
167229  , p_source_54 => l_array_source_54(Idx)
167230  , p_source_66 => l_array_source_66(Idx)
167231  , p_source_79 => l_array_source_79(Idx)
167232  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167233  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167234  , p_source_85 => l_array_source_85(Idx)
167235  , p_source_87 => l_array_source_87(Idx)
167236  , p_source_90 => l_array_source_90(Idx)
167237  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167238  , p_source_97 => l_array_source_97(Idx)
167239  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167240  , p_source_98 => l_array_source_98(Idx)
167241  , p_source_99 => l_array_source_99(Idx)
167242  , p_source_100 => l_array_source_100(Idx)
167243  , p_source_101 => l_array_source_101(Idx)
167244  , p_source_102 => l_array_source_102(Idx)
167245  , p_source_103 => l_array_source_103(Idx)
167246  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167247  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167248  , p_source_111 => l_array_source_111(Idx)
167249  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167250  , p_source_116 => l_array_source_116(Idx)
167251  , p_source_136 => l_array_source_136(Idx)
167252  , p_source_137 => l_array_source_137(Idx)
167253  , p_source_138 => l_array_source_138(Idx)
167254  );
167255 If(l_balance_type_code = 'A') THEN
167256   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167257 END IF;
167258 
167259 --
167260 
167261 
167262 --
167263 AcctLineType_122 (
167264  p_application_id  => p_application_id
167265  ,p_event_id     => l_event_id
167266  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167267  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167268  ,p_actual_flag => l_actual_flag
167269  ,p_balance_type_code => l_balance_type_code
167270  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167271  
167272  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167273  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167274  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167275  , p_source_30 => l_array_source_30(Idx)
167276  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167277  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167278  , p_source_52 => l_array_source_52(Idx)
167279  , p_source_54 => l_array_source_54(Idx)
167280  , p_source_79 => l_array_source_79(Idx)
167281  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167282  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167283  , p_source_85 => l_array_source_85(Idx)
167284  , p_source_87 => l_array_source_87(Idx)
167285  , p_source_90 => l_array_source_90(Idx)
167286  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167287  , p_source_97 => l_array_source_97(Idx)
167288  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167289  , p_source_98 => l_array_source_98(Idx)
167290  , p_source_99 => l_array_source_99(Idx)
167291  , p_source_100 => l_array_source_100(Idx)
167292  , p_source_101 => l_array_source_101(Idx)
167293  , p_source_102 => l_array_source_102(Idx)
167294  , p_source_103 => l_array_source_103(Idx)
167295  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167296  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167297  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167298  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167299  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167300  , p_source_111 => l_array_source_111(Idx)
167301  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167302  , p_source_148 => l_array_source_148(Idx)
167306   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167303  , p_source_149 => l_array_source_149(Idx)
167304  );
167305 If(l_balance_type_code = 'A') THEN
167307 END IF;
167308 
167309 --
167310 
167311 
167312 --
167313 AcctLineType_123 (
167314  p_application_id  => p_application_id
167315  ,p_event_id     => l_event_id
167316  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167317  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167318  ,p_actual_flag => l_actual_flag
167319  ,p_balance_type_code => l_balance_type_code
167320  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167321  
167322  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167323  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167324  , p_source_30 => l_array_source_30(Idx)
167325  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167326  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167327  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167328  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167329  , p_source_52 => l_array_source_52(Idx)
167330  , p_source_54 => l_array_source_54(Idx)
167331  , p_source_79 => l_array_source_79(Idx)
167332  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167333  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167334  , p_source_85 => l_array_source_85(Idx)
167335  , p_source_87 => l_array_source_87(Idx)
167336  , p_source_90 => l_array_source_90(Idx)
167337  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167338  , p_source_97 => l_array_source_97(Idx)
167339  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167340  , p_source_98 => l_array_source_98(Idx)
167341  , p_source_99 => l_array_source_99(Idx)
167342  , p_source_100 => l_array_source_100(Idx)
167343  , p_source_101 => l_array_source_101(Idx)
167344  , p_source_102 => l_array_source_102(Idx)
167345  , p_source_103 => l_array_source_103(Idx)
167346  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167347  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167348  , p_source_111 => l_array_source_111(Idx)
167349  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167350  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167351  , p_source_149 => l_array_source_149(Idx)
167352  );
167353 If(l_balance_type_code = 'A') THEN
167354   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167355 END IF;
167356 
167357 --
167358 
167359 
167360 --
167361 AcctLineType_128 (
167362  p_application_id  => p_application_id
167363  ,p_event_id     => l_event_id
167364  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167365  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167366  ,p_actual_flag => l_actual_flag
167367  ,p_balance_type_code => l_balance_type_code
167368  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167369  
167370  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167371  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167372  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167373  , p_source_30 => l_array_source_30(Idx)
167374  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167375  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167376  , p_source_52 => l_array_source_52(Idx)
167377  , p_source_54 => l_array_source_54(Idx)
167378  , p_source_79 => l_array_source_79(Idx)
167379  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167380  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167381  , p_source_85 => l_array_source_85(Idx)
167382  , p_source_87 => l_array_source_87(Idx)
167383  , p_source_90 => l_array_source_90(Idx)
167384  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167385  , p_source_97 => l_array_source_97(Idx)
167386  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167387  , p_source_98 => l_array_source_98(Idx)
167388  , p_source_99 => l_array_source_99(Idx)
167389  , p_source_100 => l_array_source_100(Idx)
167390  , p_source_101 => l_array_source_101(Idx)
167391  , p_source_102 => l_array_source_102(Idx)
167392  , p_source_103 => l_array_source_103(Idx)
167393  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167394  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167395  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167396  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167397  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167398  , p_source_111 => l_array_source_111(Idx)
167399  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167400  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167401  , p_source_153 => l_array_source_153(Idx)
167402  , p_source_154 => l_array_source_154(Idx)
167403  );
167404 If(l_balance_type_code = 'A') THEN
167405   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167406 END IF;
167407 
167408 --
167409 
167410 
167411 --
167412 AcctLineType_130 (
167413  p_application_id  => p_application_id
167414  ,p_event_id     => l_event_id
167415  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167416  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167417  ,p_actual_flag => l_actual_flag
167418  ,p_balance_type_code => l_balance_type_code
167419  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167420  
167421  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167422  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167423  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167424  , p_source_30 => l_array_source_30(Idx)
167425  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167426  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167430  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167427  , p_source_52 => l_array_source_52(Idx)
167428  , p_source_54 => l_array_source_54(Idx)
167429  , p_source_79 => l_array_source_79(Idx)
167431  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167432  , p_source_85 => l_array_source_85(Idx)
167433  , p_source_87 => l_array_source_87(Idx)
167434  , p_source_90 => l_array_source_90(Idx)
167435  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167436  , p_source_97 => l_array_source_97(Idx)
167437  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167438  , p_source_98 => l_array_source_98(Idx)
167439  , p_source_99 => l_array_source_99(Idx)
167440  , p_source_100 => l_array_source_100(Idx)
167441  , p_source_101 => l_array_source_101(Idx)
167442  , p_source_102 => l_array_source_102(Idx)
167443  , p_source_103 => l_array_source_103(Idx)
167444  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167445  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167446  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167447  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167448  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167449  , p_source_111 => l_array_source_111(Idx)
167450  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167451  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167452  , p_source_156 => l_array_source_156(Idx)
167453  , p_source_157 => l_array_source_157(Idx)
167454  );
167455 If(l_balance_type_code = 'A') THEN
167456   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167457 END IF;
167458 
167459 --
167460 
167461 
167462 --
167463 AcctLineType_134 (
167464  p_application_id  => p_application_id
167465  ,p_event_id     => l_event_id
167466  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167467  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167468  ,p_actual_flag => l_actual_flag
167469  ,p_balance_type_code => l_balance_type_code
167470  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167471  
167472  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167473  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
167474  , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
167475  , p_source_30 => l_array_source_30(Idx)
167476  , p_source_33 => l_array_source_33(Idx)
167477  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167478  , p_source_52 => l_array_source_52(Idx)
167479  , p_source_54 => l_array_source_54(Idx)
167480  , p_source_79 => l_array_source_79(Idx)
167481  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167482  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167483  , p_source_85 => l_array_source_85(Idx)
167484  , p_source_87 => l_array_source_87(Idx)
167485  , p_source_90 => l_array_source_90(Idx)
167486  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167487  , p_source_97 => l_array_source_97(Idx)
167488  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167489  , p_source_98 => l_array_source_98(Idx)
167490  , p_source_99 => l_array_source_99(Idx)
167491  , p_source_100 => l_array_source_100(Idx)
167492  , p_source_101 => l_array_source_101(Idx)
167493  , p_source_102 => l_array_source_102(Idx)
167494  , p_source_103 => l_array_source_103(Idx)
167495  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167496  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167497  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167498  , p_source_108 => l_array_source_108(Idx)
167499  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167500  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167501  , p_source_111 => l_array_source_111(Idx)
167502  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167503  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167504  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167505  , p_source_160 => l_array_source_160(Idx)
167506  , p_source_160_meaning => l_array_source_160_meaning(Idx)
167507  );
167508 If(l_balance_type_code = 'A') THEN
167509   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167510 END IF;
167511 
167512 --
167513 
167514 
167515 --
167516 AcctLineType_143 (
167517  p_application_id  => p_application_id
167518  ,p_event_id     => l_event_id
167519  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167520  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167521  ,p_actual_flag => l_actual_flag
167522  ,p_balance_type_code => l_balance_type_code
167523  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167524  
167525  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167526  , p_source_52 => l_array_source_52(Idx)
167527  , p_source_54 => l_array_source_54(Idx)
167528  , p_source_79 => l_array_source_79(Idx)
167529  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167530  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167531  , p_source_85 => l_array_source_85(Idx)
167532  , p_source_87 => l_array_source_87(Idx)
167533  , p_source_90 => l_array_source_90(Idx)
167534  , p_source_91 => l_array_source_91(Idx)
167535  , p_source_92 => l_array_source_92(Idx)
167536  , p_source_93 => l_array_source_93(Idx)
167537  , p_source_94 => l_array_source_94(Idx)
167538  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167539  , p_source_97 => l_array_source_97(Idx)
167540  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167541  , p_source_98 => l_array_source_98(Idx)
167542  , p_source_103 => l_array_source_103(Idx)
167543  , p_source_111 => l_array_source_111(Idx)
167544  , p_source_116 => l_array_source_116(Idx)
167545  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167549  , p_source_161 => l_array_source_161(Idx)
167546  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167547  , p_source_160 => l_array_source_160(Idx)
167548  , p_source_160_meaning => l_array_source_160_meaning(Idx)
167550  , p_source_161_meaning => l_array_source_161_meaning(Idx)
167551  );
167552 If(l_balance_type_code = 'A') THEN
167553   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167554 END IF;
167555 
167556 --
167557 
167558 
167559 --
167560 AcctLineType_145 (
167561  p_application_id  => p_application_id
167562  ,p_event_id     => l_event_id
167563  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167564  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167565  ,p_actual_flag => l_actual_flag
167566  ,p_balance_type_code => l_balance_type_code
167567  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167568  
167569  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167570  , p_source_52 => l_array_source_52(Idx)
167571  , p_source_54 => l_array_source_54(Idx)
167572  , p_source_79 => l_array_source_79(Idx)
167573  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167574  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167575  , p_source_85 => l_array_source_85(Idx)
167576  , p_source_87 => l_array_source_87(Idx)
167577  , p_source_90 => l_array_source_90(Idx)
167578  , p_source_91 => l_array_source_91(Idx)
167579  , p_source_92 => l_array_source_92(Idx)
167580  , p_source_93 => l_array_source_93(Idx)
167581  , p_source_94 => l_array_source_94(Idx)
167582  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167583  , p_source_97 => l_array_source_97(Idx)
167584  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167585  , p_source_98 => l_array_source_98(Idx)
167586  , p_source_103 => l_array_source_103(Idx)
167587  , p_source_111 => l_array_source_111(Idx)
167588  , p_source_116 => l_array_source_116(Idx)
167589  , p_source_160 => l_array_source_160(Idx)
167590  , p_source_160_meaning => l_array_source_160_meaning(Idx)
167591  );
167592 If(l_balance_type_code = 'A') THEN
167593   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167594 END IF;
167595 
167596 --
167597 
167598 
167599 --
167600 AcctLineType_161 (
167601  p_application_id  => p_application_id
167602  ,p_event_id     => l_event_id
167603  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167604  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167605  ,p_actual_flag => l_actual_flag
167606  ,p_balance_type_code => l_balance_type_code
167607  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167608  
167609  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167610  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167611  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167612  , p_source_30 => l_array_source_30(Idx)
167613  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167614  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167615  , p_source_52 => l_array_source_52(Idx)
167616  , p_source_54 => l_array_source_54(Idx)
167617  , p_source_79 => l_array_source_79(Idx)
167618  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167619  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167620  , p_source_85 => l_array_source_85(Idx)
167621  , p_source_87 => l_array_source_87(Idx)
167622  , p_source_90 => l_array_source_90(Idx)
167623  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167624  , p_source_97 => l_array_source_97(Idx)
167625  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167626  , p_source_98 => l_array_source_98(Idx)
167627  , p_source_99 => l_array_source_99(Idx)
167628  , p_source_100 => l_array_source_100(Idx)
167629  , p_source_101 => l_array_source_101(Idx)
167630  , p_source_102 => l_array_source_102(Idx)
167631  , p_source_103 => l_array_source_103(Idx)
167632  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167633  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167634  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167635  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167636  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167637  , p_source_111 => l_array_source_111(Idx)
167638  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167639  , p_source_148 => l_array_source_148(Idx)
167640  , p_source_149 => l_array_source_149(Idx)
167641  );
167642 If(l_balance_type_code = 'A') THEN
167643   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167644 END IF;
167645 
167646 --
167647 
167648 
167649 --
167650 AcctLineType_162 (
167651  p_application_id  => p_application_id
167652  ,p_event_id     => l_event_id
167653  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167654  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167655  ,p_actual_flag => l_actual_flag
167656  ,p_balance_type_code => l_balance_type_code
167657  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167658  
167659  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167660  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167661  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167662  , p_source_30 => l_array_source_30(Idx)
167663  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167664  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167665  , p_source_52 => l_array_source_52(Idx)
167666  , p_source_54 => l_array_source_54(Idx)
167667  , p_source_79 => l_array_source_79(Idx)
167668  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167669  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167670  , p_source_85 => l_array_source_85(Idx)
167671  , p_source_87 => l_array_source_87(Idx)
167672  , p_source_90 => l_array_source_90(Idx)
167676  , p_source_98 => l_array_source_98(Idx)
167673  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167674  , p_source_97 => l_array_source_97(Idx)
167675  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167677  , p_source_99 => l_array_source_99(Idx)
167678  , p_source_100 => l_array_source_100(Idx)
167679  , p_source_101 => l_array_source_101(Idx)
167680  , p_source_102 => l_array_source_102(Idx)
167681  , p_source_103 => l_array_source_103(Idx)
167682  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167683  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167684  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167685  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167686  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167687  , p_source_111 => l_array_source_111(Idx)
167688  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167689  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167690  , p_source_153 => l_array_source_153(Idx)
167691  , p_source_154 => l_array_source_154(Idx)
167692  );
167693 If(l_balance_type_code = 'A') THEN
167694   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167695 END IF;
167696 
167697 --
167698 
167699 
167700 --
167701 AcctLineType_164 (
167702  p_application_id  => p_application_id
167703  ,p_event_id     => l_event_id
167704  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167705  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167706  ,p_actual_flag => l_actual_flag
167707  ,p_balance_type_code => l_balance_type_code
167708  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167709  
167710  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167711  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167712  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167713  , p_source_30 => l_array_source_30(Idx)
167714  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167715  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167716  , p_source_52 => l_array_source_52(Idx)
167717  , p_source_54 => l_array_source_54(Idx)
167718  , p_source_79 => l_array_source_79(Idx)
167719  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167720  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167721  , p_source_85 => l_array_source_85(Idx)
167722  , p_source_87 => l_array_source_87(Idx)
167723  , p_source_90 => l_array_source_90(Idx)
167724  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167725  , p_source_97 => l_array_source_97(Idx)
167726  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167727  , p_source_98 => l_array_source_98(Idx)
167728  , p_source_99 => l_array_source_99(Idx)
167729  , p_source_100 => l_array_source_100(Idx)
167730  , p_source_101 => l_array_source_101(Idx)
167731  , p_source_102 => l_array_source_102(Idx)
167732  , p_source_103 => l_array_source_103(Idx)
167733  , p_source_105 => g_array_event(l_event_id).array_value_date('source_105')
167734  , p_source_106 => g_array_event(l_event_id).array_value_num('source_106')
167735  , p_source_107 => g_array_event(l_event_id).array_value_char('source_107')
167736  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167737  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167738  , p_source_111 => l_array_source_111(Idx)
167739  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167740  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167741  , p_source_156 => l_array_source_156(Idx)
167742  , p_source_157 => l_array_source_157(Idx)
167743  );
167744 If(l_balance_type_code = 'A') THEN
167745   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167746 END IF;
167747 
167748 --
167749 
167750 
167751 --
167752 AcctLineType_180 (
167753  p_application_id  => p_application_id
167754  ,p_event_id     => l_event_id
167755  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167756  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167757  ,p_actual_flag => l_actual_flag
167758  ,p_balance_type_code => l_balance_type_code
167759  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167760  
167761  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167762  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167763  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167764  , p_source_30 => l_array_source_30(Idx)
167765  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
167766  , p_source_52 => l_array_source_52(Idx)
167767  , p_source_54 => l_array_source_54(Idx)
167768  , p_source_79 => l_array_source_79(Idx)
167769  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167770  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167771  , p_source_85 => l_array_source_85(Idx)
167772  , p_source_87 => l_array_source_87(Idx)
167773  , p_source_90 => l_array_source_90(Idx)
167774  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167775  , p_source_97 => l_array_source_97(Idx)
167776  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167777  , p_source_98 => l_array_source_98(Idx)
167778  , p_source_99 => l_array_source_99(Idx)
167779  , p_source_100 => l_array_source_100(Idx)
167780  , p_source_101 => l_array_source_101(Idx)
167781  , p_source_102 => l_array_source_102(Idx)
167782  , p_source_103 => l_array_source_103(Idx)
167783  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167784  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167785  , p_source_111 => l_array_source_111(Idx)
167786  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167787  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167788  , p_source_115 => l_array_source_115(Idx)
167789  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167793 If(l_balance_type_code = 'A') THEN
167790  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
167791  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
167792  );
167794   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167795 END IF;
167796 
167797 --
167798 
167799 
167800 --
167801 AcctLineType_220 (
167802  p_application_id  => p_application_id
167803  ,p_event_id     => l_event_id
167804  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167805  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167806  ,p_actual_flag => l_actual_flag
167807  ,p_balance_type_code => l_balance_type_code
167808  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167809  
167810  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167811  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167812  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167813  , p_source_30 => l_array_source_30(Idx)
167814  , p_source_43 => l_array_source_43(Idx)
167815  , p_source_52 => l_array_source_52(Idx)
167816  , p_source_54 => l_array_source_54(Idx)
167817  , p_source_79 => l_array_source_79(Idx)
167818  , p_source_79_meaning => l_array_source_79_meaning(Idx)
167819  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
167820  , p_source_85 => l_array_source_85(Idx)
167821  , p_source_87 => l_array_source_87(Idx)
167822  , p_source_90 => l_array_source_90(Idx)
167823  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
167824  , p_source_97 => l_array_source_97(Idx)
167825  , p_source_97_meaning => l_array_source_97_meaning(Idx)
167826  , p_source_98 => l_array_source_98(Idx)
167827  , p_source_99 => l_array_source_99(Idx)
167828  , p_source_100 => l_array_source_100(Idx)
167829  , p_source_101 => l_array_source_101(Idx)
167830  , p_source_102 => l_array_source_102(Idx)
167831  , p_source_103 => l_array_source_103(Idx)
167832  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
167833  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167834  , p_source_111 => l_array_source_111(Idx)
167835  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
167836  , p_source_116 => l_array_source_116(Idx)
167837  , p_source_136 => l_array_source_136(Idx)
167838  , p_source_137 => l_array_source_137(Idx)
167839  , p_source_138 => l_array_source_138(Idx)
167840  , p_source_161 => l_array_source_161(Idx)
167841  , p_source_161_meaning => l_array_source_161_meaning(Idx)
167842  );
167843 If(l_balance_type_code = 'A') THEN
167844   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167845 END IF;
167846 
167847 --
167848 
167849       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
167850       -- or secondary ledger that has different currency with primary
167851       -- or alc that is calculated by sla
167852       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
167853             (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'))
167854 
167855 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
167856 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
167857           AND (l_actual_flag = 'A')) THEN
167858         XLA_AE_LINES_PKG.CreateGainOrLossLines(
167859           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
167860          ,p_application_id   => p_application_id
167861          ,p_amb_context_code => 'DEFAULT'
167862          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
167863          ,p_event_class_code => C_EVENT_CLASS_CODE
167864          ,p_event_type_code  => C_EVENT_TYPE_CODE
167865          
167866          ,p_gain_ccid        => -1
167867          ,p_loss_ccid        => -1
167868 
167869          ,p_actual_flag      => l_actual_flag
167870          ,p_enc_flag         => null
167871          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
167872          ,p_enc_g_l_ref      => null
167873          );
167874       END IF;
167875    END IF;
167876 END IF;
167877 
167878    ELSE
167879       --
167880       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
167881       --
167882       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
167883          trace
167884             (p_msg      => 'Trancaction revesal option is Y'
167885             ,p_level    => C_LEVEL_STATEMENT
167886             ,p_module   => l_log_module);
167887       END IF;
167888    END IF;
167889 
167890 END LOOP;
167891 l_result := XLA_AE_LINES_PKG.InsertLines ;
167892 end loop;
167893 close line_cur;
167894 
167895 
167896 --
167897 -- insert headers into xla_ae_headers_gt table
167898 --
167899 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
167900 
167901 -- insert into errors table here.
167902 
167903 END LOOP;
167904 
167905 --
167906 -- 4865292
167907 --
167908 -- Compare g_hdr_extract_count with event count in
167909 -- CreateHeadersAndLines.
167910 --
167911 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
167912 
167913 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
167914    trace (p_msg     => '# rows extracted from header extract objects '
167915                     || ' (running total): '
167916                     || g_hdr_extract_count
167917          ,p_level   => C_LEVEL_STATEMENT
167918          ,p_module  => l_log_module);
167919 END IF;
167920 
167921 CLOSE header_cur;
167922 --
167923 
167924 --
167925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
167926    trace
167927       (p_msg      => 'END of EventClass_233'
167928       ,p_level    => C_LEVEL_PROCEDURE
167929       ,p_module   => l_log_module);
167930 END IF;
167931 --
167932 RETURN l_result;
167936 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
167933 EXCEPTION
167934 WHEN xla_exceptions_pkg.application_exception THEN
167935    
167937 
167938    
167939 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
167940 
167941    RAISE;
167942 
167943 WHEN NO_DATA_FOUND THEN
167944 
167945 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
167946 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
167947 
167948 FOR header_record IN header_cur
167949 LOOP
167950     l_array_header_events(header_record.event_id) := header_record.event_id;
167951 END LOOP;
167952 
167953 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
167954 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
167955 
167956 fnd_file.put_line(fnd_file.LOG, '                    ');
167957 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
167958 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
167959 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
167960 
167961 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
167962 LOOP
167963 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
167964 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
167965         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
167966 	END IF;
167967 END LOOP;
167968 
167969 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
167970 fnd_file.put_line(fnd_file.LOG, '                    ');
167971 
167972 
167973 xla_exceptions_pkg.raise_message
167974       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_233');
167975 
167976 
167977 WHEN OTHERS THEN
167978    xla_exceptions_pkg.raise_message
167979       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_233');
167980 END EventClass_233;
167981 --
167982 
167983 ---------------------------------------
167984 --
167985 -- PRIVATE PROCEDURE
167986 --         insert_sources_234
167987 --
167988 ----------------------------------------
167989 --
167990 PROCEDURE insert_sources_234(
167991                                 p_target_ledger_id       IN NUMBER
167992                               , p_language               IN VARCHAR2
167993                               , p_sla_ledger_id          IN NUMBER
167994                               , p_pad_start_date         IN DATE
167995                               , p_pad_end_date           IN DATE
167996                          )
167997 IS
167998 
167999 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
168000 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
168001 p_apps_owner                   VARCHAR2(30);
168002 l_log_module                   VARCHAR2(240);
168003 BEGIN
168004 IF g_log_enabled THEN
168005       l_log_module := C_DEFAULT_MODULE||'.insert_sources_234';
168006 END IF;
168007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168008 
168009       trace
168010          (p_msg      => 'BEGIN of insert_sources_234'
168011          ,p_level    => C_LEVEL_PROCEDURE
168012          ,p_module   => l_log_module);
168013 
168014 END IF;
168015 
168016 -- select APPS owner
168017 SELECT oracle_username
168018   INTO p_apps_owner
168019   FROM fnd_oracle_userid
168020  WHERE read_only_flag = 'U'
168021 ;
168022 
168023 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168024       trace
168025          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
168026                         ' - p_language = '||p_language||
168027                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
168028                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
168029                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
168030                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
168031          ,p_level    => C_LEVEL_STATEMENT
168032          ,p_module   => l_log_module);
168033 END IF;
168034 
168035 
168036 --
168037 INSERT INTO xla_diag_sources --hdr2
168038 (
168039         event_id
168040       , ledger_id
168041       , sla_ledger_id
168042       , description_language
168043       , object_name
168044       , object_type_code
168045       , line_number
168046       , source_application_id
168047       , source_type_code
168048       , source_code
168049       , source_value
168050       , source_meaning
168051       , created_by
168052       , creation_date
168053       , last_update_date
168054       , last_updated_by
168055       , last_update_login
168056       , program_update_date
168057       , program_application_id
168058       , program_id
168059       , request_id
168060 )
168061 SELECT
168062         event_id
168063       , p_target_ledger_id
168064       , p_sla_ledger_id
168065       , p_language
168066       , object_name
168067       , object_type_code
168068       , line_number
168069       , source_application_id
168070       , source_type_code
168071       , source_code
168072       , SUBSTR(source_value ,1,1996)
168073       , SUBSTR(source_meaning ,1,200)
168074       , xla_environment_pkg.g_Usr_Id
168075       , TRUNC(SYSDATE)
168076       , TRUNC(SYSDATE)
168077       , xla_environment_pkg.g_Usr_Id
168078       , xla_environment_pkg.g_Login_Id
168079       , TRUNC(SYSDATE)
168080       , xla_environment_pkg.g_Prog_Appl_Id
168081       , xla_environment_pkg.g_Prog_Id
168082       , xla_environment_pkg.g_Req_Id
168083   FROM (
168084        SELECT xet.event_id                  event_id
168085             , 0                          line_number
168086             , CASE r
168087                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168091                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168088                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168089                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168090                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168092                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168093                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168094                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168095                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168096                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168097                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168098                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168099                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168100                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168101                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168102                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168103                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168104                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168105                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168106                 WHEN 20 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168107                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168108                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168109                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168110                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168111                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168112                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168113                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168114                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168115                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168116                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168117                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168118                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168119                 
168120                ELSE null
168121               END                           object_name
168122             , CASE r
168123                 WHEN 1 THEN 'HEADER' 
168124                 WHEN 2 THEN 'HEADER' 
168125                 WHEN 3 THEN 'HEADER' 
168126                 WHEN 4 THEN 'HEADER' 
168127                 WHEN 5 THEN 'HEADER' 
168128                 WHEN 6 THEN 'HEADER' 
168129                 WHEN 7 THEN 'HEADER' 
168130                 WHEN 8 THEN 'HEADER' 
168131                 WHEN 9 THEN 'HEADER' 
168132                 WHEN 10 THEN 'HEADER' 
168133                 WHEN 11 THEN 'HEADER' 
168134                 WHEN 12 THEN 'HEADER' 
168135                 WHEN 13 THEN 'HEADER' 
168136                 WHEN 14 THEN 'HEADER' 
168137                 WHEN 15 THEN 'HEADER' 
168138                 WHEN 16 THEN 'HEADER' 
168139                 WHEN 17 THEN 'HEADER' 
168140                 WHEN 18 THEN 'HEADER' 
168141                 WHEN 19 THEN 'HEADER' 
168142                 WHEN 20 THEN 'HEADER' 
168143                 WHEN 21 THEN 'HEADER' 
168144                 WHEN 22 THEN 'HEADER' 
168145                 WHEN 23 THEN 'HEADER' 
168146                 WHEN 24 THEN 'HEADER' 
168147                 WHEN 25 THEN 'HEADER' 
168148                 WHEN 26 THEN 'HEADER' 
168149                 WHEN 27 THEN 'HEADER' 
168150                 WHEN 28 THEN 'HEADER' 
168151                 WHEN 29 THEN 'HEADER' 
168152                 WHEN 30 THEN 'HEADER' 
168153                 WHEN 31 THEN 'HEADER' 
168154                 WHEN 32 THEN 'HEADER' 
168155                 
168156                 ELSE null
168157               END                           object_type_code
168158             , CASE r
168159                 WHEN 1 THEN '200' 
168160                 WHEN 2 THEN '200' 
168161                 WHEN 3 THEN '200' 
168162                 WHEN 4 THEN '200' 
168163                 WHEN 5 THEN '200' 
168164                 WHEN 6 THEN '200' 
168165                 WHEN 7 THEN '200' 
168166                 WHEN 8 THEN '200' 
168167                 WHEN 9 THEN '200' 
168168                 WHEN 10 THEN '200' 
168169                 WHEN 11 THEN '200' 
168170                 WHEN 12 THEN '200' 
168171                 WHEN 13 THEN '200' 
168172                 WHEN 14 THEN '200' 
168173                 WHEN 15 THEN '200' 
168174                 WHEN 16 THEN '200' 
168175                 WHEN 17 THEN '200' 
168176                 WHEN 18 THEN '200' 
168177                 WHEN 19 THEN '200' 
168178                 WHEN 20 THEN '200' 
168179                 WHEN 21 THEN '200' 
168180                 WHEN 22 THEN '200' 
168181                 WHEN 23 THEN '200' 
168182                 WHEN 24 THEN '200' 
168183                 WHEN 25 THEN '200' 
168184                 WHEN 26 THEN '200' 
168185                 WHEN 27 THEN '200' 
168186                 WHEN 28 THEN '200' 
168187                 WHEN 29 THEN '200' 
168188                 WHEN 30 THEN '200' 
168189                 WHEN 31 THEN '200' 
168190                 WHEN 32 THEN '200' 
168191                 
168192                 ELSE null
168193               END                           source_application_id
168194             , 'S'             source_type_code
168195             , CASE r
168196                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
168197                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
168198                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
168199                 WHEN 4 THEN 'AC_CHECK_DATE' 
168200                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
168201                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
168202                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
168203                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
168204                 WHEN 9 THEN 'FSP_DISC_TAKEN_CCID' 
168205                 WHEN 10 THEN 'ASP_DISCOUNT_DIST_METHOD' 
168206                 WHEN 11 THEN 'CGAC_CASH_CLEARING_CCID' 
168207                 WHEN 12 THEN 'CGAC_GAIN_CCID' 
168208                 WHEN 13 THEN 'ASP_GAIN_CCID' 
168212                 WHEN 17 THEN 'ASP_AUTO_OFFSET_FLAG' 
168209                 WHEN 14 THEN 'CGAC_LOSS_CCID' 
168210                 WHEN 15 THEN 'ASP_LOSS_CCID' 
168211                 WHEN 16 THEN 'ASP_DISC_TAKEN_CCID' 
168213                 WHEN 18 THEN 'ASP_ROUNDING_ERROR_CCID' 
168214                 WHEN 19 THEN 'THIRD_PARTY_TYPE' 
168215                 WHEN 20 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
168216                 WHEN 21 THEN 'AC_VENDOR_ID' 
168217                 WHEN 22 THEN 'AC_VENDOR_SITE_ID' 
168218                 WHEN 23 THEN 'AC_CHECK_ID' 
168219                 WHEN 24 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
168220                 WHEN 25 THEN 'AC_FUTURE_PAY_DUE_DATE' 
168221                 WHEN 26 THEN 'AC_EXCHANGE_DATE' 
168222                 WHEN 27 THEN 'AC_EXCHANGE_RATE' 
168223                 WHEN 28 THEN 'AC_EXCHANGE_RATE_TYPE' 
168224                 WHEN 29 THEN 'PAYMENT_TYPE' 
168225                 WHEN 30 THEN 'AC_DOC_CATEGORY_CODE' 
168226                 WHEN 31 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
168227                 WHEN 32 THEN 'TRANSAC_REVERSAL_FLAG' 
168228                 
168229                 ELSE null
168230               END                           source_code
168231             , CASE r
168232                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
168233                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
168234                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
168235                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
168236                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
168237                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
168238                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
168239                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
168240                 WHEN 9 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
168241                 WHEN 10 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
168242                 WHEN 11 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
168243                 WHEN 12 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
168244                 WHEN 13 THEN TO_CHAR(h3.ASP_GAIN_CCID)
168245                 WHEN 14 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
168246                 WHEN 15 THEN TO_CHAR(h3.ASP_LOSS_CCID)
168247                 WHEN 16 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
168248                 WHEN 17 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
168249                 WHEN 18 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
168250                 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
168251                 WHEN 20 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
168252                 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
168253                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
168254                 WHEN 23 THEN TO_CHAR(h2.AC_CHECK_ID)
168255                 WHEN 24 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
168256                 WHEN 25 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
168257                 WHEN 26 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
168258                 WHEN 27 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
168259                 WHEN 28 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
168260                 WHEN 29 THEN TO_CHAR(h2.PAYMENT_TYPE)
168261                 WHEN 30 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
168262                 WHEN 31 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
168263                 WHEN 32 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
168264                 
168265                 ELSE null
168266               END                           source_value
168267             , CASE r
168268                 WHEN 7 THEN fvl15.meaning
168269                 WHEN 10 THEN fvl19.meaning
168270                 WHEN 17 THEN fvl47.meaning
168271                 WHEN 24 THEN fvl113.meaning
168272                 WHEN 29 THEN fvl122.meaning
168273                 WHEN 32 THEN fvl172.meaning
168274                 
168275                 ELSE null
168276               END               source_meaning
168277          FROM xla_events_gt     xet  
168278       , AP_PAYMENT_EXTRACT_HEADER_V  h2
168279       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
168280   , fnd_lookup_values    fvl15
168281   , fnd_lookup_values    fvl19
168282   , fnd_lookup_values    fvl47
168283   , fnd_lookup_values    fvl113
168284   , fnd_lookup_values    fvl122
168285   , fnd_lookup_values    fvl172
168286              ,(select rownum r from all_objects where rownum <= 32 and owner = p_apps_owner)
168287          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168288            AND xet.event_class_code = C_EVENT_CLASS_CODE
168289               AND h2.event_id = xet.event_id
168290  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
168291   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
168292   AND fvl15.view_application_id(+) = 200
168293   AND fvl15.language(+)            = USERENV('LANG')
168294      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
168295   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
168296   AND fvl19.view_application_id(+) = 200
168297   AND fvl19.language(+)            = USERENV('LANG')
168298      AND fvl47.lookup_type(+)         = 'YES_NO'
168299   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
168300   AND fvl47.view_application_id(+) = 0
168301   AND fvl47.language(+)            = USERENV('LANG')
168302      AND fvl113.lookup_type(+)         = 'YES_NO'
168303   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
168304   AND fvl113.view_application_id(+) = 0
168305   AND fvl113.language(+)            = USERENV('LANG')
168306      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
168307   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
168308   AND fvl122.view_application_id(+) = 200
168309   AND fvl122.language(+)            = USERENV('LANG')
168310      AND fvl172.lookup_type(+)         = 'YES_NO'
168311   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
168312   AND fvl172.view_application_id(+) = 0
168313   AND fvl172.language(+)            = USERENV('LANG')
168314   
168315 )
168316 ;
168317 --
168318 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168319 
168320       trace
168324 
168321          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
168322          ,p_level    => C_LEVEL_STATEMENT
168323          ,p_module   => l_log_module);
168325 END IF;
168326 --
168327 
168328 
168329 
168330 --
168331 INSERT INTO xla_diag_sources  --line2
168332 (
168333         event_id
168334       , ledger_id
168335       , sla_ledger_id
168336       , description_language
168337       , object_name
168338       , object_type_code
168339       , line_number
168340       , source_application_id
168341       , source_type_code
168342       , source_code
168343       , source_value
168344       , source_meaning
168345       , created_by
168346       , creation_date
168347       , last_update_date
168348       , last_updated_by
168349       , last_update_login
168350       , program_update_date
168351       , program_application_id
168352       , program_id
168353       , request_id
168354 )
168355 SELECT  event_id
168356       , p_target_ledger_id
168357       , p_sla_ledger_id
168358       , p_language
168359       , object_name
168360       , object_type_code
168361       , line_number
168362       , source_application_id
168363       , source_type_code
168364       , source_code
168365       , SUBSTR(source_value,1,1996)
168366       , SUBSTR(source_meaning ,1,200)
168367       , xla_environment_pkg.g_Usr_Id
168368       , TRUNC(SYSDATE)
168369       , TRUNC(SYSDATE)
168370       , xla_environment_pkg.g_Usr_Id
168371       , xla_environment_pkg.g_Login_Id
168372       , TRUNC(SYSDATE)
168373       , xla_environment_pkg.g_Prog_Appl_Id
168374       , xla_environment_pkg.g_Prog_Id
168375       , xla_environment_pkg.g_Req_Id
168376   FROM (
168377        SELECT xet.event_id                  event_id
168378             , l1.line_number                 line_number
168379             , CASE r
168380                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168381                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168382                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168383                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168384                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168385                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168386                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168387                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168388                 WHEN 9 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168389                 WHEN 10 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
168390                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168391                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168392                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168393                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168394                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168395                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168396                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168397                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168398                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168399                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168400                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168401                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168402                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168403                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168404                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168405                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168406                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168407                 
168408                ELSE null
168409               END                           object_name
168410             , CASE r
168411                 WHEN 1 THEN 'LINE' 
168412                 WHEN 2 THEN 'LINE' 
168413                 WHEN 3 THEN 'LINE' 
168414                 WHEN 4 THEN 'LINE' 
168415                 WHEN 5 THEN 'LINE' 
168416                 WHEN 6 THEN 'LINE' 
168417                 WHEN 7 THEN 'LINE' 
168418                 WHEN 8 THEN 'LINE' 
168419                 WHEN 9 THEN 'LINE' 
168420                 WHEN 10 THEN 'LINE' 
168421                 WHEN 11 THEN 'LINE' 
168422                 WHEN 12 THEN 'LINE' 
168423                 WHEN 13 THEN 'LINE' 
168424                 WHEN 14 THEN 'LINE' 
168425                 WHEN 15 THEN 'LINE' 
168426                 WHEN 16 THEN 'LINE' 
168427                 WHEN 17 THEN 'LINE' 
168428                 WHEN 18 THEN 'LINE' 
168429                 WHEN 19 THEN 'LINE' 
168430                 WHEN 20 THEN 'LINE' 
168431                 WHEN 21 THEN 'LINE' 
168432                 WHEN 22 THEN 'LINE' 
168433                 WHEN 23 THEN 'LINE' 
168434                 WHEN 24 THEN 'LINE' 
168435                 WHEN 25 THEN 'LINE' 
168436                 WHEN 26 THEN 'LINE' 
168437                 WHEN 27 THEN 'LINE' 
168438                 
168439                 ELSE null
168440               END                           object_type_code
168441             , CASE r
168442                 WHEN 1 THEN '200' 
168443                 WHEN 2 THEN '200' 
168444                 WHEN 3 THEN '200' 
168445                 WHEN 4 THEN '200' 
168446                 WHEN 5 THEN '200' 
168447                 WHEN 6 THEN '200' 
168448                 WHEN 7 THEN '200' 
168449                 WHEN 8 THEN '200' 
168450                 WHEN 9 THEN '200' 
168451                 WHEN 10 THEN '200' 
168452                 WHEN 11 THEN '200' 
168453                 WHEN 12 THEN '200' 
168454                 WHEN 13 THEN '200' 
168455                 WHEN 14 THEN '200' 
168456                 WHEN 15 THEN '200' 
168457                 WHEN 16 THEN '200' 
168458                 WHEN 17 THEN '200' 
168459                 WHEN 18 THEN '200' 
168460                 WHEN 19 THEN '200' 
168461                 WHEN 20 THEN '200' 
168465                 WHEN 24 THEN '200' 
168462                 WHEN 21 THEN '200' 
168463                 WHEN 22 THEN '200' 
168464                 WHEN 23 THEN '200' 
168466                 WHEN 25 THEN '200' 
168467                 WHEN 26 THEN '200' 
168468                 WHEN 27 THEN '200' 
168469                 
168470                 ELSE null
168471               END                           source_application_id
168472             , 'S'             source_type_code
168473             , CASE r
168474                 WHEN 1 THEN 'AID_DIST_CCID' 
168475                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
168476                 WHEN 3 THEN 'POD_CCID' 
168477                 WHEN 4 THEN 'PO_VARIANCE_ACCOUNT' 
168478                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
168479                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
168480                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
168481                 WHEN 8 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
168482                 WHEN 9 THEN 'TAX_LINE_ID' 
168483                 WHEN 10 THEN 'REC_NREC_TAX_DIST_ID' 
168484                 WHEN 11 THEN 'SUMMARY_TAX_LINE_ID' 
168485                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
168486                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
168487                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
168488                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
168489                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
168490                 WHEN 17 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
168491                 WHEN 18 THEN 'APHD_AMOUNT' 
168492                 WHEN 19 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
168493                 WHEN 20 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
168494                 WHEN 21 THEN 'APHD_PAYMENT_BASE_AMT' 
168495                 WHEN 22 THEN 'APHD_INVOICE_BASE_AMT' 
168496                 WHEN 23 THEN 'INV_EXCHANGE_DATE' 
168497                 WHEN 24 THEN 'INV_EXCHANGE_RATE' 
168498                 WHEN 25 THEN 'INV_EXCHANGE_RATE_TYPE' 
168499                 WHEN 26 THEN 'INV_PMT_BASE_AMT_DIFF' 
168500                 WHEN 27 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
168501                 
168502                 ELSE null
168503               END                           source_code
168504             , CASE r
168505                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
168506                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
168507                 WHEN 3 THEN TO_CHAR(l1.POD_CCID)
168508                 WHEN 4 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
168509                 WHEN 5 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
168510                 WHEN 6 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
168511                 WHEN 7 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
168512                 WHEN 8 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
168513                 WHEN 9 THEN TO_CHAR(l4.TAX_LINE_ID)
168514                 WHEN 10 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
168515                 WHEN 11 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
168516                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
168517                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
168518                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
168519                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
168520                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
168521                 WHEN 17 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
168522                 WHEN 18 THEN TO_CHAR(l1.APHD_AMOUNT)
168523                 WHEN 19 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
168524                 WHEN 20 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
168525                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
168526                 WHEN 22 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
168527                 WHEN 23 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
168528                 WHEN 24 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
168529                 WHEN 25 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
168530                 WHEN 26 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
168531                 WHEN 27 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
168532                 
168533                 ELSE null
168534               END                           source_value
168535             , CASE r
168536                 WHEN 2 THEN fvl33.meaning
168537                 WHEN 8 THEN fvl79.meaning
168538                 WHEN 17 THEN fvl97.meaning
168539                 
168540                 ELSE null
168541               END               source_meaning
168542          FROM  xla_events_gt     xet  
168543         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
168544         , ZX_AP_DEF_TAX_EXTRACT_V  l4
168545         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
168546   , fnd_lookup_values    fvl33
168547   , fnd_lookup_values    fvl79
168548   , fnd_lookup_values    fvl97
168549             , (select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
168550         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168551           AND xet.event_class_code = C_EVENT_CLASS_CODE
168552             AND l1.event_id          = xet.event_id
168553  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'
168554   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
168555   AND fvl33.view_application_id(+) = 200
168556   AND fvl33.language(+)            = USERENV('LANG')
168557      AND fvl79.lookup_type(+)         = 'YES_NO'
168558   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
168559   AND fvl79.view_application_id(+) = 0
168560   AND fvl79.language(+)            = USERENV('LANG')
168561      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
168562   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
168563   AND fvl97.view_application_id(+) = 200
168564   AND fvl97.language(+)            = USERENV('LANG')
168565   
168566 )
168567 ;
168568 --
168569 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168570 
168571       trace
168572          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
168573          ,p_level    => C_LEVEL_STATEMENT
168577 
168574          ,p_module   => l_log_module);
168575 
168576 END IF;
168578 
168579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168580       trace
168581          (p_msg      => 'END of insert_sources_234'
168582          ,p_level    => C_LEVEL_PROCEDURE
168583          ,p_module   => l_log_module);
168584 END IF;
168585 EXCEPTION
168586   WHEN xla_exceptions_pkg.application_exception THEN
168587       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168588             trace
168589                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168590                ,p_level    => C_LEVEL_EXCEPTION
168591                ,p_module   => l_log_module);
168592       END IF;
168593       RAISE;
168594   WHEN OTHERS THEN
168595       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168596             trace
168597                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168598                ,p_level    => C_LEVEL_EXCEPTION
168599                ,p_module   => l_log_module);
168600        END IF;
168601        xla_exceptions_pkg.raise_message
168602            (p_location => 'XLA_00200_AAD_S_000020_PKG.insert_sources_234');
168603 END insert_sources_234;
168604 --
168605 
168606 ---------------------------------------
168607 --
168608 -- PRIVATE FUNCTION
168609 --         EventClass_234
168610 --
168611 ----------------------------------------
168612 --
168613 FUNCTION EventClass_234
168614        (p_application_id         IN NUMBER
168615        ,p_base_ledger_id         IN NUMBER
168616        ,p_target_ledger_id       IN NUMBER
168617        ,p_language               IN VARCHAR2
168618        ,p_currency_code          IN VARCHAR2
168619        ,p_sla_ledger_id          IN NUMBER
168620        ,p_pad_start_date         IN DATE
168621        ,p_pad_end_date           IN DATE
168622        ,p_primary_ledger_id      IN NUMBER)
168623 RETURN BOOLEAN IS
168624 --
168625 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
168626 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
168627 
168628 l_calculate_acctd_flag   VARCHAR2(1) :='N';
168629 l_calculate_g_l_flag     VARCHAR2(1) :='N';
168630 --
168631 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168632 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168633 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168634 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168635 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168636 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168637 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168638 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168639 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168640 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168641 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168642 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168643 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168644 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168645 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168646 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168647 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168648 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168649 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168650 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168651 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168652 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168653 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
168654 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168655 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
168656 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
168657 
168658 l_event_id                             NUMBER;
168659 l_previous_event_id                    NUMBER;
168660 l_first_event_id                       NUMBER;
168661 l_last_event_id                        NUMBER;
168662 
168663 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
168664 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
168665 --
168666 --
168667 l_result                    BOOLEAN := TRUE;
168668 l_rows                      NUMBER  := 1000;
168669 l_event_type_name           VARCHAR2(80) := 'All';
168670 l_event_class_name          VARCHAR2(80) := 'Refunds';
168671 l_description               VARCHAR2(4000);
168672 l_transaction_reversal      NUMBER;
168673 l_ae_header_id              NUMBER;
168674 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
168675 l_log_module                VARCHAR2(240);
168676 --
168677 l_acct_reversal_source      VARCHAR2(30);
168678 l_trx_reversal_source       VARCHAR2(30);
168679 
168680 l_continue_with_lines       BOOLEAN := TRUE;
168681 --
168682 l_acc_rev_gl_date_source    DATE;                      -- 4262811
168683 --
168684 type t_array_event_id is table of number index by binary_integer;
168685 
168686 l_rec_array_event                    t_rec_array_event;
168687 l_null_rec_array_event               t_rec_array_event;
168688 l_array_ae_header_id                 xla_number_array_type;
168689 l_actual_flag                        VARCHAR2(1) := NULL;
168690 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
168691 l_balance_type_code                  VARCHAR2(1) :=NULL;
168692 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
168693 
168694 --
168698 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
168695 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
168696 --
168697 
168699 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
168700 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
168701 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
168702 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
168703 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
168704 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
168705 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
168706 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
168707 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
168708 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
168709 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
168710 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
168711 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
168712 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
168713 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
168714 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
168715 TYPE t_array_source_48 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
168716 TYPE t_array_source_82 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
168717 TYPE t_array_source_96 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
168718 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
168719 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
168720 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_ID%TYPE INDEX BY BINARY_INTEGER;
168721 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
168722 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
168723 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
168724 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
168725 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
168726 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
168727 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
168728 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
168729 TYPE t_array_source_172 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
168730 
168731 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
168732 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
168733 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
168734 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
168735 TYPE t_array_source_52 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
168736 TYPE t_array_source_54 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
168737 TYPE t_array_source_66 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
168738 TYPE t_array_source_79 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
168739 TYPE t_array_source_85 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
168740 TYPE t_array_source_86 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168741 TYPE t_array_source_87 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
168742 TYPE t_array_source_90 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
168743 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
168744 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
168745 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168746 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
168747 TYPE t_array_source_97 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
168748 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
168749 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168750 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168751 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
168752 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
168756 TYPE t_array_source_150 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
168753 TYPE t_array_source_136 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
168754 TYPE t_array_source_137 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
168755 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
168757 TYPE t_array_source_155 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
168758 
168759 l_array_source_6              t_array_source_6;
168760 l_array_source_9              t_array_source_9;
168761 l_array_source_10              t_array_source_10;
168762 l_array_source_11              t_array_source_11;
168763 l_array_source_12              t_array_source_12;
168764 l_array_source_13              t_array_source_13;
168765 l_array_source_15              t_array_source_15;
168766 l_array_source_15_meaning      t_array_lookup_meaning;
168767 l_array_source_17              t_array_source_17;
168768 l_array_source_18              t_array_source_18;
168769 l_array_source_19              t_array_source_19;
168770 l_array_source_19_meaning      t_array_lookup_meaning;
168771 l_array_source_35              t_array_source_35;
168772 l_array_source_36              t_array_source_36;
168773 l_array_source_37              t_array_source_37;
168774 l_array_source_38              t_array_source_38;
168775 l_array_source_39              t_array_source_39;
168776 l_array_source_44              t_array_source_44;
168777 l_array_source_47              t_array_source_47;
168778 l_array_source_47_meaning      t_array_lookup_meaning;
168779 l_array_source_48              t_array_source_48;
168780 l_array_source_82              t_array_source_82;
168781 l_array_source_96              t_array_source_96;
168782 l_array_source_109              t_array_source_109;
168783 l_array_source_110              t_array_source_110;
168784 l_array_source_112              t_array_source_112;
168785 l_array_source_113              t_array_source_113;
168786 l_array_source_113_meaning      t_array_lookup_meaning;
168787 l_array_source_114              t_array_source_114;
168788 l_array_source_117              t_array_source_117;
168789 l_array_source_118              t_array_source_118;
168790 l_array_source_119              t_array_source_119;
168791 l_array_source_122              t_array_source_122;
168792 l_array_source_122_meaning      t_array_lookup_meaning;
168793 l_array_source_170              t_array_source_170;
168794 l_array_source_171              t_array_source_171;
168795 l_array_source_172              t_array_source_172;
168796 l_array_source_172_meaning      t_array_lookup_meaning;
168797 
168798 l_array_source_30      t_array_source_30;
168799 l_array_source_33      t_array_source_33;
168800 l_array_source_33_meaning      t_array_lookup_meaning;
168801 l_array_source_45      t_array_source_45;
168802 l_array_source_46      t_array_source_46;
168803 l_array_source_52      t_array_source_52;
168804 l_array_source_54      t_array_source_54;
168805 l_array_source_66      t_array_source_66;
168806 l_array_source_79      t_array_source_79;
168807 l_array_source_79_meaning      t_array_lookup_meaning;
168808 l_array_source_85      t_array_source_85;
168809 l_array_source_86      t_array_source_86;
168810 l_array_source_87      t_array_source_87;
168811 l_array_source_90      t_array_source_90;
168812 l_array_source_91      t_array_source_91;
168813 l_array_source_92      t_array_source_92;
168814 l_array_source_93      t_array_source_93;
168815 l_array_source_94      t_array_source_94;
168816 l_array_source_97      t_array_source_97;
168817 l_array_source_97_meaning      t_array_lookup_meaning;
168818 l_array_source_98      t_array_source_98;
168819 l_array_source_103      t_array_source_103;
168820 l_array_source_111      t_array_source_111;
168821 l_array_source_115      t_array_source_115;
168822 l_array_source_116      t_array_source_116;
168823 l_array_source_136      t_array_source_136;
168824 l_array_source_137      t_array_source_137;
168825 l_array_source_138      t_array_source_138;
168826 l_array_source_150      t_array_source_150;
168827 l_array_source_155      t_array_source_155;
168828 
168829 --
168830 CURSOR header_cur
168831 IS
168832 SELECT /*+ leading(xet) cardinality(xet,1) */
168833 -- Event Class Code: REFUNDS
168834     xet.entity_id
168835    ,xet.legal_entity_id
168836    ,xet.entity_code
168837    ,xet.transaction_number
168838    ,xet.event_id
168839    ,xet.event_class_code
168840    ,xet.event_type_code
168841    ,xet.event_number
168842    ,xet.event_date
168843    ,xet.transaction_date
168844    ,xet.reference_num_1
168845    ,xet.reference_num_2
168846    ,xet.reference_num_3
168847    ,xet.reference_num_4
168848    ,xet.reference_char_1
168849    ,xet.reference_char_2
168850    ,xet.reference_char_3
168851    ,xet.reference_char_4
168852    ,xet.reference_date_1
168853    ,xet.reference_date_2
168854    ,xet.reference_date_3
168855    ,xet.reference_date_4
168856    ,xet.event_created_by
168857    ,xet.budgetary_control_flag 
168858   , h2.DOC_SEQUENCE_NAME    source_6
168859   , h2.AC_DOC_SEQUENCE_VALUE    source_9
168860   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
168861   , h2.AC_CHECK_DATE    source_11
168862   , h2.CBA_BANK_ACCOUNT_NAME    source_12
168863   , h2.AC_CURRENCY_CODE    source_13
168864   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
168865   , fvl15.meaning   source_15_meaning
168866   , h2.CGAC_AP_ASSET_CCID    source_17
168867   , h3.FSP_DISC_TAKEN_CCID    source_18
168868   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
168869   , fvl19.meaning   source_19_meaning
168870   , h2.CGAC_CASH_CLEARING_CCID    source_35
168871   , h2.CGAC_GAIN_CCID    source_36
168872   , h3.ASP_GAIN_CCID    source_37
168873   , h2.CGAC_LOSS_CCID    source_38
168874   , h3.ASP_LOSS_CCID    source_39
168875   , h3.ASP_DISC_TAKEN_CCID    source_44
168876   , h3.ASP_AUTO_OFFSET_FLAG    source_47
168880   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_96
168877   , fvl47.meaning   source_47_meaning
168878   , h3.ASP_ROUNDING_ERROR_CCID    source_48
168879   , h2.THIRD_PARTY_TYPE    source_82
168881   , h2.AC_VENDOR_ID    source_109
168882   , h2.AC_VENDOR_SITE_ID    source_110
168883   , h2.AC_CHECK_ID    source_112
168884   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
168885   , fvl113.meaning   source_113_meaning
168886   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
168887   , h2.AC_EXCHANGE_DATE    source_117
168888   , h2.AC_EXCHANGE_RATE    source_118
168889   , h2.AC_EXCHANGE_RATE_TYPE    source_119
168890   , h2.PAYMENT_TYPE    source_122
168891   , fvl122.meaning   source_122_meaning
168892   , h2.AC_DOC_CATEGORY_CODE    source_170
168893   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
168894   , h2.TRANSAC_REVERSAL_FLAG    source_172
168895   , fvl172.meaning   source_172_meaning
168896   FROM xla_events_gt     xet 
168897   , AP_PAYMENT_EXTRACT_HEADER_V  h2
168898   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
168899   , fnd_lookup_values    fvl15
168900   , fnd_lookup_values    fvl19
168901   , fnd_lookup_values    fvl47
168902   , fnd_lookup_values    fvl113
168903   , fnd_lookup_values    fvl122
168904   , fnd_lookup_values    fvl172
168905  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
168906    and xet.event_class_code = C_EVENT_CLASS_CODE
168907    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
168908  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
168909   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
168910   AND fvl15.view_application_id(+) = 200
168911   AND fvl15.language(+)            = USERENV('LANG')
168912      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
168913   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
168914   AND fvl19.view_application_id(+) = 200
168915   AND fvl19.language(+)            = USERENV('LANG')
168916      AND fvl47.lookup_type(+)         = 'YES_NO'
168917   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
168918   AND fvl47.view_application_id(+) = 0
168919   AND fvl47.language(+)            = USERENV('LANG')
168920      AND fvl113.lookup_type(+)         = 'YES_NO'
168921   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
168922   AND fvl113.view_application_id(+) = 0
168923   AND fvl113.language(+)            = USERENV('LANG')
168924      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
168925   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
168926   AND fvl122.view_application_id(+) = 200
168927   AND fvl122.language(+)            = USERENV('LANG')
168928      AND fvl172.lookup_type(+)         = 'YES_NO'
168929   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
168930   AND fvl172.view_application_id(+) = 0
168931   AND fvl172.language(+)            = USERENV('LANG')
168932   
168933  ORDER BY event_id
168934 ;
168935 
168936 
168937 --
168938 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
168939 IS
168940 SELECT  /*+ leading(xet) cardinality(xet,1) */
168941 -- Event Class Code: REFUNDS
168942     xet.entity_id
168943    ,xet.legal_entity_id
168944    ,xet.entity_code
168945    ,xet.transaction_number
168946    ,xet.event_id
168947    ,xet.event_class_code
168948    ,xet.event_type_code
168949    ,xet.event_number
168950    ,xet.event_date
168951    ,xet.transaction_date
168952    ,xet.reference_num_1
168953    ,xet.reference_num_2
168954    ,xet.reference_num_3
168955    ,xet.reference_num_4
168956    ,xet.reference_char_1
168957    ,xet.reference_char_2
168958    ,xet.reference_char_3
168959    ,xet.reference_char_4
168960    ,xet.reference_date_1
168961    ,xet.reference_date_2
168962    ,xet.reference_date_3
168963    ,xet.reference_date_4
168964    ,xet.event_created_by
168965    ,xet.budgetary_control_flag
168966  , l1.LINE_NUMBER  
168967   , l1.AID_DIST_CCID    source_30
168968   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
168969   , fvl33.meaning   source_33_meaning
168970   , l1.POD_CCID    source_45
168971   , l1.PO_VARIANCE_ACCOUNT    source_46
168972   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_52
168973   , l1.DISTRIBUTION_LINK_TYPE    source_54
168974   , l1.AI_INVOICE_CURRENCY_CODE    source_66
168975   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_79
168976   , fvl79.meaning   source_79_meaning
168977   , l4.TAX_LINE_ID    source_85
168978   , l5.REC_NREC_TAX_DIST_ID    source_86
168979   , l4.SUMMARY_TAX_LINE_ID    source_87
168980   , l1.BUS_FLOW_AP_APP_ID    source_90
168981   , l1.BUS_FLOW_INV_DIST_TYPE    source_91
168982   , l1.BUS_FLOW_INV_ENTITY_CODE    source_92
168983   , l1.BUS_FLOW_INV_DIST_ID    source_93
168984   , l1.BUS_FLOW_INV_ID    source_94
168985   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_97
168986   , fvl97.meaning   source_97_meaning
168987   , l1.APHD_AMOUNT    source_98
168988   , l1.APHD_PAYMENT_HIST_DIST_ID    source_103
168989   , l1.APHD_REV_PAY_HIST_DIST_ID    source_111
168990   , l1.APHD_PAYMENT_BASE_AMT    source_115
168991   , l1.APHD_INVOICE_BASE_AMT    source_116
168992   , l1.INV_EXCHANGE_DATE    source_136
168993   , l1.INV_EXCHANGE_RATE    source_137
168994   , l1.INV_EXCHANGE_RATE_TYPE    source_138
168995   , l1.INV_PMT_BASE_AMT_DIFF    source_150
168996   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_155
168997   FROM xla_events_gt     xet 
168998   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
168999   , ZX_AP_DEF_TAX_EXTRACT_V  l4
169000   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
169001   , fnd_lookup_values    fvl33
169002   , fnd_lookup_values    fvl79
169003   , fnd_lookup_values    fvl97
169004  WHERE xet.event_id between x_first_event_id and x_last_event_id
169005    and xet.event_date between p_pad_start_date and p_pad_end_date
169006    and xet.event_class_code = C_EVENT_CLASS_CODE
169007    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
169011   AND fvl33.language(+)            = USERENV('LANG')
169008  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'
169009   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
169010   AND fvl33.view_application_id(+) = 200
169012      AND fvl79.lookup_type(+)         = 'YES_NO'
169013   AND fvl79.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
169014   AND fvl79.view_application_id(+) = 0
169015   AND fvl79.language(+)            = USERENV('LANG')
169016      AND fvl97.lookup_type(+)         = 'PAY_DIST_TYPES'
169017   AND fvl97.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
169018   AND fvl97.view_application_id(+) = 200
169019   AND fvl97.language(+)            = USERENV('LANG')
169020   ;
169021 
169022 --
169023 BEGIN
169024 IF g_log_enabled THEN
169025    l_log_module := C_DEFAULT_MODULE||'.EventClass_234';
169026 END IF;
169027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169028    trace
169029       (p_msg      => 'BEGIN of EventClass_234'
169030       ,p_level    => C_LEVEL_PROCEDURE
169031       ,p_module   => l_log_module);
169032 END IF;
169033 
169034 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169035    trace
169036       (p_msg      => 'p_application_id = '||p_application_id||
169037                      ' - p_base_ledger_id = '||p_base_ledger_id||
169038                      ' - p_target_ledger_id  = '||p_target_ledger_id||
169039                      ' - p_language = '||p_language||
169040                      ' - p_currency_code = '||p_currency_code||
169041                      ' - p_sla_ledger_id = '||p_sla_ledger_id
169042       ,p_level    => C_LEVEL_STATEMENT
169043       ,p_module   => l_log_module);
169044 END IF;
169045 --
169046 -- initialze arrays
169047 --
169048 g_array_event.DELETE;
169049 l_rec_array_event := l_null_rec_array_event;
169050 --
169051 --------------------------------------
169052 -- 4262811 Initialze MPA Line Number
169053 --------------------------------------
169054 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
169055 
169056 --
169057 
169058 --
169059 OPEN header_cur;
169060 --
169061 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169062    trace
169063    (p_msg      => 'SQL - FETCH header_cur'
169064    ,p_level    => C_LEVEL_STATEMENT
169065    ,p_module   => l_log_module);
169066 END IF;
169067 --
169068 LOOP
169069 FETCH header_cur BULK COLLECT INTO
169070         l_array_entity_id
169071       , l_array_legal_entity_id
169072       , l_array_entity_code
169073       , l_array_transaction_num
169074       , l_array_event_id
169075       , l_array_class_code
169076       , l_array_event_type
169077       , l_array_event_number
169078       , l_array_event_date
169079       , l_array_transaction_date
169080       , l_array_reference_num_1
169081       , l_array_reference_num_2
169082       , l_array_reference_num_3
169083       , l_array_reference_num_4
169084       , l_array_reference_char_1
169085       , l_array_reference_char_2
169086       , l_array_reference_char_3
169087       , l_array_reference_char_4
169088       , l_array_reference_date_1
169089       , l_array_reference_date_2
169090       , l_array_reference_date_3
169091       , l_array_reference_date_4
169092       , l_array_event_created_by
169093       , l_array_budgetary_control_flag 
169094       , l_array_source_6
169095       , l_array_source_9
169096       , l_array_source_10
169097       , l_array_source_11
169098       , l_array_source_12
169099       , l_array_source_13
169100       , l_array_source_15
169101       , l_array_source_15_meaning
169102       , l_array_source_17
169103       , l_array_source_18
169104       , l_array_source_19
169105       , l_array_source_19_meaning
169106       , l_array_source_35
169107       , l_array_source_36
169108       , l_array_source_37
169109       , l_array_source_38
169110       , l_array_source_39
169111       , l_array_source_44
169112       , l_array_source_47
169113       , l_array_source_47_meaning
169114       , l_array_source_48
169115       , l_array_source_82
169116       , l_array_source_96
169117       , l_array_source_109
169118       , l_array_source_110
169119       , l_array_source_112
169120       , l_array_source_113
169121       , l_array_source_113_meaning
169122       , l_array_source_114
169123       , l_array_source_117
169124       , l_array_source_118
169125       , l_array_source_119
169126       , l_array_source_122
169127       , l_array_source_122_meaning
169128       , l_array_source_170
169129       , l_array_source_171
169130       , l_array_source_172
169131       , l_array_source_172_meaning
169132       LIMIT l_rows;
169133 --
169134 IF (C_LEVEL_EVENT >= g_log_level) THEN
169135    trace
169136    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
169137    ,p_level    => C_LEVEL_EVENT
169138    ,p_module   => l_log_module);
169139 END IF;
169140 --
169141 EXIT WHEN l_array_entity_id.COUNT = 0;
169142 
169143 -- initialize arrays
169144 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
169145 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
169146 
169147 --
169148 -- Bug 4458708
169149 --
169150 XLA_AE_LINES_PKG.g_LineNumber := 0;
169151 
169152 
169153 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
169154 g_last_hdr_idx := l_array_event_id.LAST;
169155 --
169156 -- loop for the headers. Each iteration is for each header extract row
169157 -- fetched in header cursor
169158 --
169159 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
169160 
169161 --
169162 -- set event info as cache for other routines to refer event attributes
169163 --
169164 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169168    ,p_target_ledger_id         => p_target_ledger_id
169165    (p_application_id           => p_application_id
169166    ,p_primary_ledger_id        => p_primary_ledger_id
169167    ,p_base_ledger_id           => p_base_ledger_id
169169    ,p_entity_id                => l_array_entity_id(hdr_idx)
169170    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
169171    ,p_entity_code              => l_array_entity_code(hdr_idx)
169172    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
169173    ,p_event_id                 => l_array_event_id(hdr_idx)
169174    ,p_event_class_code         => l_array_class_code(hdr_idx)
169175    ,p_event_type_code          => l_array_event_type(hdr_idx)
169176    ,p_event_number             => l_array_event_number(hdr_idx)
169177    ,p_event_date               => l_array_event_date(hdr_idx)
169178    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
169179    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
169180    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
169181    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
169182    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
169183    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
169184    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
169185    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
169186    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
169187    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
169188    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
169189    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
169190    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
169191    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
169192    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
169193 
169194 --
169195 -- set the status of entry to C_VALID (0)
169196 --
169197 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169198 
169199 --
169200 -- initialize a row for ae header
169201 --
169202 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
169203 
169204 l_event_id := l_array_event_id(hdr_idx);
169205 
169206 --
169207 -- storing the hdr_idx for event. May be used by line cursor.
169208 --
169209 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
169210 
169211 --
169212 -- store sources from header extract. This can be improved to
169213 -- store only those sources from header extract that may be used in lines
169214 --
169215 
169216 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
169217 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
169218 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
169219 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
169220 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
169221 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
169222 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
169223 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
169224 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
169225 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
169226 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
169227 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
169228 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
169229 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
169230 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
169231 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
169232 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
169233 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
169234 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
169235 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
169236 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
169237 g_array_event(l_event_id).array_value_char('source_82') := l_array_source_82(hdr_idx);
169238 g_array_event(l_event_id).array_value_char('source_96') := l_array_source_96(hdr_idx);
169239 g_array_event(l_event_id).array_value_num('source_109') := l_array_source_109(hdr_idx);
169240 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
169241 g_array_event(l_event_id).array_value_num('source_112') := l_array_source_112(hdr_idx);
169242 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
169243 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
169244 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
169245 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
169246 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
169247 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
169248 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
169249 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
169250 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
169251 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
169252 g_array_event(l_event_id).array_value_char('source_172') := l_array_source_172(hdr_idx);
169253 g_array_event(l_event_id).array_value_char('source_172_meaning') := l_array_source_172_meaning(hdr_idx);
169254 
169255 --
169256 -- initilaize the status of ae headers for diffrent balance types
169260 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169257 -- the status is initialised to C_NOT_CREATED (2)
169258 --
169259 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169261 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169262 
169263 --
169264 -- call api to validate and store accounting attributes for header
169265 --
169266 
169267 ------------------------------------------------------------
169268 -- Accrual Reversal : to get date for Standard Source (NONE)
169269 ------------------------------------------------------------
169270 l_acc_rev_gl_date_source := NULL;
169271 
169272      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
169273       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
169274      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
169275       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
169276      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
169277       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
169278      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
169279       l_rec_acct_attrs.array_date_value(4) := 
169280 xla_ae_sources_pkg.GetSystemSourceDate(
169281    p_source_code           => 'XLA_EVENT_DATE'
169282  , p_source_type_code      => 'Y'
169283  , p_source_application_id =>  602
169284 );
169285      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
169286       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_172');
169287 
169288 
169289 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
169290 
169291 XLA_AE_HEADER_PKG.SetJeCategoryName;
169292 
169293 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
169294 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
169295 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
169296 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
169297 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
169298 
169299 
169300 --
169301 xla_ae_header_pkg.SetHdrDescription(
169302    p_description => Description_3 (
169303    p_application_id => p_application_id 
169304  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
169305  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
169306  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
169307  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
169308  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
169309  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169310    )
169311 );
169312 --
169313 
169314 -- No header level analytical criteria
169315 
169316 --
169317 --accounting attribute enhancement, bug 3612931
169318 --
169319 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_172'), 1,30);
169320 
169321 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
169322    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169323 
169324    xla_accounting_err_pkg.build_message
169325       (p_appli_s_name            => 'XLA'
169326       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
169327       ,p_token_1                 => 'ACCT_ATTR_NAME'
169328       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
169329       ,p_token_2                 => 'PRODUCT_NAME'
169330       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169331       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169332       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169333       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169334 
169335 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
169336    --
169337    -- following sets the accounting attributes needed to reverse
169338    -- accounting for a distributeion
169339    --
169340    xla_ae_lines_pkg.SetTrxReversalAttrs
169341       (p_event_id              => l_event_id
169342       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
169343       ,p_trx_reversal_source   => l_trx_reversal_source);
169344 
169345 END IF;
169346 
169347 
169348 ----------------------------------------------------------------
169349 -- 4262811 -  update the header statuses to invalid in need be
169350 ----------------------------------------------------------------
169351 --
169352 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
169353 
169354 
169355   -----------------------------------------------
169356   -- No accrual reversal for the event class/type
169357   -----------------------------------------------
169358 ----------------------------------------------------------------
169359 
169360 --
169361 -- this ends the header loop iteration for one bulk fetch
169362 --
169363 END LOOP;
169364 
169365 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
169366 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
169367 
169368 --
169369 -- insert dummy rows into lines gt table that were created due to
169370 -- transaction reversals
169371 --
169372 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
169373    l_result := XLA_AE_LINES_PKG.InsertLines;
169374 END IF;
169375 
169376 --
169377 -- reset the temp_line_num for each set of events fetched from header
169378 -- cursor rather than doing it for each new event in line cursor
169379 -- Bug 3939231
169383 
169380 --
169381 xla_ae_lines_pkg.g_temp_line_num := 0;
169382 
169384 
169385 --
169386 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
169387 --
169388 --
169389 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169390 
169391       trace
169392          (p_msg      => 'SQL - FETCH line_cur'
169393          ,p_level    => C_LEVEL_STATEMENT
169394          ,p_module   => l_log_module);
169395 
169396 END IF;
169397 --
169398 --
169399 LOOP
169400   --
169401   FETCH line_cur BULK COLLECT INTO
169402         l_array_entity_id
169403       , l_array_legal_entity_id
169404       , l_array_entity_code
169405       , l_array_transaction_num
169406       , l_array_event_id
169407       , l_array_class_code
169408       , l_array_event_type
169409       , l_array_event_number
169410       , l_array_event_date
169411       , l_array_transaction_date
169412       , l_array_reference_num_1
169413       , l_array_reference_num_2
169414       , l_array_reference_num_3
169415       , l_array_reference_num_4
169416       , l_array_reference_char_1
169417       , l_array_reference_char_2
169418       , l_array_reference_char_3
169419       , l_array_reference_char_4
169420       , l_array_reference_date_1
169421       , l_array_reference_date_2
169422       , l_array_reference_date_3
169423       , l_array_reference_date_4
169424       , l_array_event_created_by
169425       , l_array_budgetary_control_flag
169426       , l_array_extract_line_num 
169427       , l_array_source_30
169428       , l_array_source_33
169429       , l_array_source_33_meaning
169430       , l_array_source_45
169431       , l_array_source_46
169432       , l_array_source_52
169433       , l_array_source_54
169434       , l_array_source_66
169435       , l_array_source_79
169436       , l_array_source_79_meaning
169437       , l_array_source_85
169438       , l_array_source_86
169439       , l_array_source_87
169440       , l_array_source_90
169441       , l_array_source_91
169442       , l_array_source_92
169443       , l_array_source_93
169444       , l_array_source_94
169445       , l_array_source_97
169446       , l_array_source_97_meaning
169447       , l_array_source_98
169448       , l_array_source_103
169449       , l_array_source_111
169450       , l_array_source_115
169451       , l_array_source_116
169452       , l_array_source_136
169453       , l_array_source_137
169454       , l_array_source_138
169455       , l_array_source_150
169456       , l_array_source_155
169457       LIMIT l_rows;
169458 
169459   --
169460   IF (C_LEVEL_EVENT >= g_log_level) THEN
169461             trace
169462                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
169463                ,p_level    => C_LEVEL_EVENT
169464                ,p_module   => l_log_module);
169465   END IF;
169466   --
169467   EXIT WHEN l_array_entity_id.count = 0;
169468 
169469   XLA_AE_LINES_PKG.g_rec_lines := null;
169470 
169471 --
169472 -- Bug 4458708
169473 --
169474 XLA_AE_LINES_PKG.g_LineNumber := 0;
169475 --
169476 --
169477 
169478 FOR Idx IN 1..l_array_event_id.count LOOP
169479    --
169480    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
169481    --
169482    l_event_id := l_array_event_id(idx);  -- 5648433
169483 
169484    --
169485    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
169486    --
169487 
169488    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
169489              (g_array_event(l_event_id).array_value_num('header_index'))
169490          ,'N'
169491          ) <> 'Y'
169492    THEN
169493       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169494          trace
169495             (p_msg      => 'Trancaction revesal option is not Y '
169496             ,p_level    => C_LEVEL_STATEMENT
169497             ,p_module   => l_log_module);
169498       END IF;
169499 
169500 --
169501 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
169502 --
169503 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169504 --
169505 -- set event info as cache for other routines to refer event attributes
169506 --
169507 
169508 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
169509    l_previous_event_id := l_event_id;
169510 
169511    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169512       (p_application_id           => p_application_id
169513       ,p_primary_ledger_id        => p_primary_ledger_id
169514       ,p_base_ledger_id           => p_base_ledger_id
169515       ,p_target_ledger_id         => p_target_ledger_id
169516       ,p_entity_id                => l_array_entity_id(Idx)
169517       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
169518       ,p_entity_code              => l_array_entity_code(Idx)
169519       ,p_transaction_num          => l_array_transaction_num(Idx)
169520       ,p_event_id                 => l_array_event_id(Idx)
169521       ,p_event_class_code         => l_array_class_code(Idx)
169522       ,p_event_type_code          => l_array_event_type(Idx)
169523       ,p_event_number             => l_array_event_number(Idx)
169524       ,p_event_date               => l_array_event_date(Idx)
169525       ,p_transaction_date         => l_array_transaction_date(Idx)
169526       ,p_reference_num_1          => l_array_reference_num_1(Idx)
169527       ,p_reference_num_2          => l_array_reference_num_2(Idx)
169528       ,p_reference_num_3          => l_array_reference_num_3(Idx)
169529       ,p_reference_num_4          => l_array_reference_num_4(Idx)
169530       ,p_reference_char_1         => l_array_reference_char_1(Idx)
169531       ,p_reference_char_2         => l_array_reference_char_2(Idx)
169532       ,p_reference_char_3         => l_array_reference_char_3(Idx)
169536       ,p_reference_date_3         => l_array_reference_date_3(Idx)
169533       ,p_reference_char_4         => l_array_reference_char_4(Idx)
169534       ,p_reference_date_1         => l_array_reference_date_1(Idx)
169535       ,p_reference_date_2         => l_array_reference_date_2(Idx)
169537       ,p_reference_date_4         => l_array_reference_date_4(Idx)
169538       ,p_event_created_by         => l_array_event_created_by(Idx)
169539       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
169540        --
169541 END IF;
169542 
169543 
169544 
169545 --
169546 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
169547 
169548 l_acct_reversal_source := SUBSTR(l_array_source_52(Idx), 1,30);
169549 
169550 IF l_continue_with_lines THEN
169551    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
169552       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169553 
169554       xla_accounting_err_pkg.build_message
169555          (p_appli_s_name            => 'XLA'
169556          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
169557          ,p_token_1                 => 'LINE_NUMBER'
169558          ,p_value_1                 => l_array_extract_line_num(Idx)
169559          ,p_token_2                 => 'PRODUCT_NAME'
169560          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169561          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169562          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169563          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169564 
169565    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
169566       --
169567       -- following sets the accounting attributes needed to reverse
169568       -- accounting for a distributeion
169569       --
169570 
169571       --
169572       -- 5217187
169573       --
169574       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
169575       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
169576                                        g_array_event(l_event_id).array_value_num('header_index'));
169577       --
169578       --
169579 
169580       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
169581       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_52(Idx);
169582       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
169583       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_103(Idx);
169584       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
169585       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_54(Idx);
169586       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
169587       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_82');
169588       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
169589       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_111(Idx);
169590       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
169591       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_54(Idx);
169592       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
169593       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_85(Idx);
169594       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
169595       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_86(Idx);
169596       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
169597       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_87(Idx);
169598 
169599 
169600       xla_ae_lines_pkg.SetAcctReversalAttrs
169601          (p_event_id             => l_event_id
169602          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
169603          ,p_calculate_acctd_flag => l_calculate_acctd_flag
169604          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
169605    END IF;
169606 
169607    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
169608        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
169609 
169610 --
169611 AcctLineType_78 (
169612  p_application_id  => p_application_id
169613  ,p_event_id     => l_event_id
169614  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169615  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169616  ,p_actual_flag => l_actual_flag
169617  ,p_balance_type_code => l_balance_type_code
169618  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169619  
169620  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169621  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169622  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
169623  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
169624  , p_source_52 => l_array_source_52(Idx)
169625  , p_source_54 => l_array_source_54(Idx)
169626  , p_source_79 => l_array_source_79(Idx)
169627  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169628  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169629  , p_source_85 => l_array_source_85(Idx)
169630  , p_source_86 => l_array_source_86(Idx)
169631  , p_source_87 => l_array_source_87(Idx)
169632  , p_source_90 => l_array_source_90(Idx)
169633  , p_source_91 => l_array_source_91(Idx)
169634  , p_source_92 => l_array_source_92(Idx)
169635  , p_source_93 => l_array_source_93(Idx)
169636  , p_source_94 => l_array_source_94(Idx)
169637  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169638  , p_source_97 => l_array_source_97(Idx)
169639  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169640  , p_source_98 => l_array_source_98(Idx)
169641  , p_source_103 => l_array_source_103(Idx)
169642  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169643  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169647  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169644  , p_source_111 => l_array_source_111(Idx)
169645  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169646  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169648  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169649  , p_source_115 => l_array_source_115(Idx)
169650  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169651  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169652  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169653  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169654  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169655  );
169656 If(l_balance_type_code = 'A') THEN
169657   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169658 END IF;
169659 
169660 --
169661 
169662 
169663 --
169664 AcctLineType_79 (
169665  p_application_id  => p_application_id
169666  ,p_event_id     => l_event_id
169667  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169668  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169669  ,p_actual_flag => l_actual_flag
169670  ,p_balance_type_code => l_balance_type_code
169671  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169672  
169673  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169674  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169675  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169676  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169677  , p_source_52 => l_array_source_52(Idx)
169678  , p_source_54 => l_array_source_54(Idx)
169679  , p_source_79 => l_array_source_79(Idx)
169680  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169681  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169682  , p_source_85 => l_array_source_85(Idx)
169683  , p_source_86 => l_array_source_86(Idx)
169684  , p_source_87 => l_array_source_87(Idx)
169685  , p_source_90 => l_array_source_90(Idx)
169686  , p_source_91 => l_array_source_91(Idx)
169687  , p_source_92 => l_array_source_92(Idx)
169688  , p_source_93 => l_array_source_93(Idx)
169689  , p_source_94 => l_array_source_94(Idx)
169690  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169691  , p_source_97 => l_array_source_97(Idx)
169692  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169693  , p_source_98 => l_array_source_98(Idx)
169694  , p_source_103 => l_array_source_103(Idx)
169695  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169696  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169697  , p_source_111 => l_array_source_111(Idx)
169698  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169699  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169700  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169701  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169702  , p_source_115 => l_array_source_115(Idx)
169703  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169704  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169705  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169706  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169707  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169708  );
169709 If(l_balance_type_code = 'A') THEN
169710   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169711 END IF;
169712 
169713 --
169714 
169715 
169716 --
169717 AcctLineType_80 (
169718  p_application_id  => p_application_id
169719  ,p_event_id     => l_event_id
169720  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169721  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169722  ,p_actual_flag => l_actual_flag
169723  ,p_balance_type_code => l_balance_type_code
169724  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169725  
169726  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169727  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169728  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169729  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169730  , p_source_52 => l_array_source_52(Idx)
169731  , p_source_54 => l_array_source_54(Idx)
169732  , p_source_79 => l_array_source_79(Idx)
169733  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169734  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169735  , p_source_85 => l_array_source_85(Idx)
169736  , p_source_86 => l_array_source_86(Idx)
169737  , p_source_87 => l_array_source_87(Idx)
169738  , p_source_90 => l_array_source_90(Idx)
169739  , p_source_91 => l_array_source_91(Idx)
169740  , p_source_92 => l_array_source_92(Idx)
169741  , p_source_93 => l_array_source_93(Idx)
169742  , p_source_94 => l_array_source_94(Idx)
169743  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169744  , p_source_97 => l_array_source_97(Idx)
169745  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169746  , p_source_98 => l_array_source_98(Idx)
169747  , p_source_103 => l_array_source_103(Idx)
169748  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169749  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169750  , p_source_111 => l_array_source_111(Idx)
169751  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169752  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169753  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169754  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169755  , p_source_115 => l_array_source_115(Idx)
169759  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169756  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169757  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169758  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169760  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169761  );
169762 If(l_balance_type_code = 'A') THEN
169763   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169764 END IF;
169765 
169766 --
169767 
169768 
169769 --
169770 AcctLineType_81 (
169771  p_application_id  => p_application_id
169772  ,p_event_id     => l_event_id
169773  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169774  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169775  ,p_actual_flag => l_actual_flag
169776  ,p_balance_type_code => l_balance_type_code
169777  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169778  
169779  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169780  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169781  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169782  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169783  , p_source_52 => l_array_source_52(Idx)
169784  , p_source_54 => l_array_source_54(Idx)
169785  , p_source_79 => l_array_source_79(Idx)
169786  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169787  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169788  , p_source_85 => l_array_source_85(Idx)
169789  , p_source_86 => l_array_source_86(Idx)
169790  , p_source_87 => l_array_source_87(Idx)
169791  , p_source_90 => l_array_source_90(Idx)
169792  , p_source_91 => l_array_source_91(Idx)
169793  , p_source_92 => l_array_source_92(Idx)
169794  , p_source_93 => l_array_source_93(Idx)
169795  , p_source_94 => l_array_source_94(Idx)
169796  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169797  , p_source_97 => l_array_source_97(Idx)
169798  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169799  , p_source_98 => l_array_source_98(Idx)
169800  , p_source_103 => l_array_source_103(Idx)
169801  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169802  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169803  , p_source_111 => l_array_source_111(Idx)
169804  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169805  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169806  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169807  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169808  , p_source_116 => l_array_source_116(Idx)
169809  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169810  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169811  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169812  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169813  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169814  );
169815 If(l_balance_type_code = 'A') THEN
169816   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169817 END IF;
169818 
169819 --
169820 
169821 
169822 --
169823 AcctLineType_82 (
169824  p_application_id  => p_application_id
169825  ,p_event_id     => l_event_id
169826  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169827  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169828  ,p_actual_flag => l_actual_flag
169829  ,p_balance_type_code => l_balance_type_code
169830  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169831  
169832  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169833  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169834  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169835  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169836  , p_source_52 => l_array_source_52(Idx)
169837  , p_source_54 => l_array_source_54(Idx)
169838  , p_source_79 => l_array_source_79(Idx)
169839  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169840  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169841  , p_source_85 => l_array_source_85(Idx)
169842  , p_source_86 => l_array_source_86(Idx)
169843  , p_source_87 => l_array_source_87(Idx)
169844  , p_source_90 => l_array_source_90(Idx)
169845  , p_source_91 => l_array_source_91(Idx)
169846  , p_source_92 => l_array_source_92(Idx)
169847  , p_source_93 => l_array_source_93(Idx)
169848  , p_source_94 => l_array_source_94(Idx)
169849  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169850  , p_source_97 => l_array_source_97(Idx)
169851  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169852  , p_source_98 => l_array_source_98(Idx)
169853  , p_source_103 => l_array_source_103(Idx)
169854  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169855  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169856  , p_source_111 => l_array_source_111(Idx)
169857  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169858  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169859  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169860  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169861  , p_source_116 => l_array_source_116(Idx)
169862  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169863  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169864  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169865  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169866  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169867  );
169868 If(l_balance_type_code = 'A') THEN
169872 --
169869   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169870 END IF;
169871 
169873 
169874 
169875 --
169876 AcctLineType_83 (
169877  p_application_id  => p_application_id
169878  ,p_event_id     => l_event_id
169879  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169880  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169881  ,p_actual_flag => l_actual_flag
169882  ,p_balance_type_code => l_balance_type_code
169883  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169884  
169885  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169886  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169887  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
169888  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
169889  , p_source_52 => l_array_source_52(Idx)
169890  , p_source_54 => l_array_source_54(Idx)
169891  , p_source_79 => l_array_source_79(Idx)
169892  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169893  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169894  , p_source_85 => l_array_source_85(Idx)
169895  , p_source_86 => l_array_source_86(Idx)
169896  , p_source_87 => l_array_source_87(Idx)
169897  , p_source_90 => l_array_source_90(Idx)
169898  , p_source_91 => l_array_source_91(Idx)
169899  , p_source_92 => l_array_source_92(Idx)
169900  , p_source_93 => l_array_source_93(Idx)
169901  , p_source_94 => l_array_source_94(Idx)
169902  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169903  , p_source_97 => l_array_source_97(Idx)
169904  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169905  , p_source_98 => l_array_source_98(Idx)
169906  , p_source_103 => l_array_source_103(Idx)
169907  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169908  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169909  , p_source_111 => l_array_source_111(Idx)
169910  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169911  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169912  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169913  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169914  , p_source_116 => l_array_source_116(Idx)
169915  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169916  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169917  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169918  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169919  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169920  );
169921 If(l_balance_type_code = 'A') THEN
169922   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169923 END IF;
169924 
169925 --
169926 
169927 
169928 --
169929 AcctLineType_90 (
169930  p_application_id  => p_application_id
169931  ,p_event_id     => l_event_id
169932  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169933  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169934  ,p_actual_flag => l_actual_flag
169935  ,p_balance_type_code => l_balance_type_code
169936  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169937  
169938  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169939  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
169940  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
169941  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
169942  , p_source_52 => l_array_source_52(Idx)
169943  , p_source_54 => l_array_source_54(Idx)
169944  , p_source_79 => l_array_source_79(Idx)
169945  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169946  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
169947  , p_source_85 => l_array_source_85(Idx)
169948  , p_source_86 => l_array_source_86(Idx)
169949  , p_source_87 => l_array_source_87(Idx)
169950  , p_source_90 => l_array_source_90(Idx)
169951  , p_source_91 => l_array_source_91(Idx)
169952  , p_source_92 => l_array_source_92(Idx)
169953  , p_source_93 => l_array_source_93(Idx)
169954  , p_source_94 => l_array_source_94(Idx)
169955  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
169956  , p_source_97 => l_array_source_97(Idx)
169957  , p_source_97_meaning => l_array_source_97_meaning(Idx)
169958  , p_source_98 => l_array_source_98(Idx)
169959  , p_source_103 => l_array_source_103(Idx)
169960  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
169961  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169962  , p_source_111 => l_array_source_111(Idx)
169963  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
169964  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169965  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169966  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169967  , p_source_115 => l_array_source_115(Idx)
169968  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169969  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169970  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169971  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169972  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169973  );
169974 If(l_balance_type_code = 'A') THEN
169975   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169976 END IF;
169977 
169978 --
169979 
169980 
169981 --
169982 AcctLineType_91 (
169983  p_application_id  => p_application_id
169984  ,p_event_id     => l_event_id
169985  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169986  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169987  ,p_actual_flag => l_actual_flag
169988  ,p_balance_type_code => l_balance_type_code
169992  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169989  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169990  
169991  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169993  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169994  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
169995  , p_source_52 => l_array_source_52(Idx)
169996  , p_source_54 => l_array_source_54(Idx)
169997  , p_source_79 => l_array_source_79(Idx)
169998  , p_source_79_meaning => l_array_source_79_meaning(Idx)
169999  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170000  , p_source_85 => l_array_source_85(Idx)
170001  , p_source_86 => l_array_source_86(Idx)
170002  , p_source_87 => l_array_source_87(Idx)
170003  , p_source_90 => l_array_source_90(Idx)
170004  , p_source_91 => l_array_source_91(Idx)
170005  , p_source_92 => l_array_source_92(Idx)
170006  , p_source_93 => l_array_source_93(Idx)
170007  , p_source_94 => l_array_source_94(Idx)
170008  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170009  , p_source_97 => l_array_source_97(Idx)
170010  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170011  , p_source_98 => l_array_source_98(Idx)
170012  , p_source_103 => l_array_source_103(Idx)
170013  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170014  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170015  , p_source_111 => l_array_source_111(Idx)
170016  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170017  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170018  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170019  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170020  , p_source_115 => l_array_source_115(Idx)
170021  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170022  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170023  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170024  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170025  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170026  );
170027 If(l_balance_type_code = 'A') THEN
170028   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170029 END IF;
170030 
170031 --
170032 
170033 
170034 --
170035 AcctLineType_92 (
170036  p_application_id  => p_application_id
170037  ,p_event_id     => l_event_id
170038  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170039  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170040  ,p_actual_flag => l_actual_flag
170041  ,p_balance_type_code => l_balance_type_code
170042  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170043  
170044  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170045  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170046  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170047  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
170048  , p_source_52 => l_array_source_52(Idx)
170049  , p_source_54 => l_array_source_54(Idx)
170050  , p_source_79 => l_array_source_79(Idx)
170051  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170052  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170053  , p_source_85 => l_array_source_85(Idx)
170054  , p_source_86 => l_array_source_86(Idx)
170055  , p_source_87 => l_array_source_87(Idx)
170056  , p_source_90 => l_array_source_90(Idx)
170057  , p_source_91 => l_array_source_91(Idx)
170058  , p_source_92 => l_array_source_92(Idx)
170059  , p_source_93 => l_array_source_93(Idx)
170060  , p_source_94 => l_array_source_94(Idx)
170061  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170062  , p_source_97 => l_array_source_97(Idx)
170063  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170064  , p_source_98 => l_array_source_98(Idx)
170065  , p_source_103 => l_array_source_103(Idx)
170066  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170067  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170068  , p_source_111 => l_array_source_111(Idx)
170069  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170070  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170071  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170072  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170073  , p_source_115 => l_array_source_115(Idx)
170074  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170075  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170076  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170077  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170078  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170079  );
170080 If(l_balance_type_code = 'A') THEN
170081   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170082 END IF;
170083 
170084 --
170085 
170086 
170087 --
170088 AcctLineType_104 (
170089  p_application_id  => p_application_id
170090  ,p_event_id     => l_event_id
170091  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170092  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170093  ,p_actual_flag => l_actual_flag
170094  ,p_balance_type_code => l_balance_type_code
170095  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170096  
170097  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170098  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170099  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170100  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
170101  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
170105  , p_source_33_meaning => l_array_source_33_meaning(Idx)
170102  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
170103  , p_source_30 => l_array_source_30(Idx)
170104  , p_source_33 => l_array_source_33(Idx)
170106  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
170107  , p_source_45 => l_array_source_45(Idx)
170108  , p_source_46 => l_array_source_46(Idx)
170109  , p_source_52 => l_array_source_52(Idx)
170110  , p_source_54 => l_array_source_54(Idx)
170111  , p_source_79 => l_array_source_79(Idx)
170112  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170113  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170114  , p_source_85 => l_array_source_85(Idx)
170115  , p_source_86 => l_array_source_86(Idx)
170116  , p_source_87 => l_array_source_87(Idx)
170117  , p_source_90 => l_array_source_90(Idx)
170118  , p_source_91 => l_array_source_91(Idx)
170119  , p_source_92 => l_array_source_92(Idx)
170120  , p_source_93 => l_array_source_93(Idx)
170121  , p_source_94 => l_array_source_94(Idx)
170122  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170123  , p_source_97 => l_array_source_97(Idx)
170124  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170125  , p_source_98 => l_array_source_98(Idx)
170126  , p_source_103 => l_array_source_103(Idx)
170127  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170128  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170129  , p_source_111 => l_array_source_111(Idx)
170130  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170131  , p_source_116 => l_array_source_116(Idx)
170132  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170133  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170134  , p_source_136 => l_array_source_136(Idx)
170135  , p_source_137 => l_array_source_137(Idx)
170136  , p_source_138 => l_array_source_138(Idx)
170137  );
170138 If(l_balance_type_code = 'A') THEN
170139   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170140 END IF;
170141 
170142 --
170143 
170144 
170145 --
170146 AcctLineType_112 (
170147  p_application_id  => p_application_id
170148  ,p_event_id     => l_event_id
170149  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170150  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170151  ,p_actual_flag => l_actual_flag
170152  ,p_balance_type_code => l_balance_type_code
170153  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170154  
170155  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170156  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170157  , p_source_30 => l_array_source_30(Idx)
170158  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
170159  , p_source_52 => l_array_source_52(Idx)
170160  , p_source_54 => l_array_source_54(Idx)
170161  , p_source_66 => l_array_source_66(Idx)
170162  , p_source_79 => l_array_source_79(Idx)
170163  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170164  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170165  , p_source_85 => l_array_source_85(Idx)
170166  , p_source_86 => l_array_source_86(Idx)
170167  , p_source_87 => l_array_source_87(Idx)
170168  , p_source_90 => l_array_source_90(Idx)
170169  , p_source_91 => l_array_source_91(Idx)
170170  , p_source_92 => l_array_source_92(Idx)
170171  , p_source_93 => l_array_source_93(Idx)
170172  , p_source_94 => l_array_source_94(Idx)
170173  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170174  , p_source_97 => l_array_source_97(Idx)
170175  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170176  , p_source_98 => l_array_source_98(Idx)
170177  , p_source_103 => l_array_source_103(Idx)
170178  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170179  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170180  , p_source_111 => l_array_source_111(Idx)
170181  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170182  , p_source_116 => l_array_source_116(Idx)
170183  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170184  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170185  , p_source_136 => l_array_source_136(Idx)
170186  , p_source_137 => l_array_source_137(Idx)
170187  , p_source_138 => l_array_source_138(Idx)
170188  );
170189 If(l_balance_type_code = 'A') THEN
170190   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170191 END IF;
170192 
170193 --
170194 
170195 
170196 --
170197 AcctLineType_127 (
170198  p_application_id  => p_application_id
170199  ,p_event_id     => l_event_id
170200  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170201  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170202  ,p_actual_flag => l_actual_flag
170203  ,p_balance_type_code => l_balance_type_code
170204  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170205  
170206  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170207  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170208  , p_source_30 => l_array_source_30(Idx)
170209  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
170210  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
170211  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
170212  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
170213  , p_source_52 => l_array_source_52(Idx)
170214  , p_source_54 => l_array_source_54(Idx)
170215  , p_source_79 => l_array_source_79(Idx)
170216  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170217  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170218  , p_source_85 => l_array_source_85(Idx)
170219  , p_source_86 => l_array_source_86(Idx)
170220  , p_source_87 => l_array_source_87(Idx)
170221  , p_source_90 => l_array_source_90(Idx)
170225  , p_source_94 => l_array_source_94(Idx)
170222  , p_source_91 => l_array_source_91(Idx)
170223  , p_source_92 => l_array_source_92(Idx)
170224  , p_source_93 => l_array_source_93(Idx)
170226  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170227  , p_source_97 => l_array_source_97(Idx)
170228  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170229  , p_source_103 => l_array_source_103(Idx)
170230  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170231  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170232  , p_source_111 => l_array_source_111(Idx)
170233  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170234  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170235  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170236  , p_source_150 => l_array_source_150(Idx)
170237  );
170238 If(l_balance_type_code = 'A') THEN
170239   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170240 END IF;
170241 
170242 --
170243 
170244 
170245 --
170246 AcctLineType_133 (
170247  p_application_id  => p_application_id
170248  ,p_event_id     => l_event_id
170249  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170250  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170251  ,p_actual_flag => l_actual_flag
170252  ,p_balance_type_code => l_balance_type_code
170253  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170254  
170255  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170256  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170257  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170258  , p_source_30 => l_array_source_30(Idx)
170259  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
170260  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
170261  , p_source_52 => l_array_source_52(Idx)
170262  , p_source_54 => l_array_source_54(Idx)
170263  , p_source_79 => l_array_source_79(Idx)
170264  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170265  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170266  , p_source_85 => l_array_source_85(Idx)
170267  , p_source_86 => l_array_source_86(Idx)
170268  , p_source_87 => l_array_source_87(Idx)
170269  , p_source_90 => l_array_source_90(Idx)
170270  , p_source_91 => l_array_source_91(Idx)
170271  , p_source_92 => l_array_source_92(Idx)
170272  , p_source_93 => l_array_source_93(Idx)
170273  , p_source_94 => l_array_source_94(Idx)
170274  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170275  , p_source_97 => l_array_source_97(Idx)
170276  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170277  , p_source_98 => l_array_source_98(Idx)
170278  , p_source_103 => l_array_source_103(Idx)
170279  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170280  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170281  , p_source_111 => l_array_source_111(Idx)
170282  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170283  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170284  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170285  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170286  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170287  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170288  , p_source_150 => l_array_source_150(Idx)
170289  , p_source_155 => l_array_source_155(Idx)
170290  );
170291 If(l_balance_type_code = 'A') THEN
170292   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170293 END IF;
170294 
170295 --
170296 
170297 
170298 --
170299 AcctLineType_160 (
170300  p_application_id  => p_application_id
170301  ,p_event_id     => l_event_id
170302  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170303  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170304  ,p_actual_flag => l_actual_flag
170305  ,p_balance_type_code => l_balance_type_code
170306  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170307  
170308  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170309  , p_source_52 => l_array_source_52(Idx)
170310  , p_source_54 => l_array_source_54(Idx)
170311  , p_source_79 => l_array_source_79(Idx)
170312  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170313  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170314  , p_source_85 => l_array_source_85(Idx)
170315  , p_source_86 => l_array_source_86(Idx)
170316  , p_source_87 => l_array_source_87(Idx)
170317  , p_source_90 => l_array_source_90(Idx)
170318  , p_source_91 => l_array_source_91(Idx)
170319  , p_source_92 => l_array_source_92(Idx)
170320  , p_source_93 => l_array_source_93(Idx)
170321  , p_source_94 => l_array_source_94(Idx)
170322  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170323  , p_source_97 => l_array_source_97(Idx)
170324  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170325  , p_source_98 => l_array_source_98(Idx)
170326  , p_source_103 => l_array_source_103(Idx)
170327  , p_source_111 => l_array_source_111(Idx)
170328  , p_source_116 => l_array_source_116(Idx)
170329  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170330  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170331  );
170332 If(l_balance_type_code = 'A') THEN
170333   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170334 END IF;
170335 
170336 --
170337 
170338 
170339 --
170340 AcctLineType_167 (
170341  p_application_id  => p_application_id
170342  ,p_event_id     => l_event_id
170343  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170344  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170345  ,p_actual_flag => l_actual_flag
170346  ,p_balance_type_code => l_balance_type_code
170347  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170351  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170348  
170349  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170350  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170352  , p_source_30 => l_array_source_30(Idx)
170353  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
170354  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
170355  , p_source_52 => l_array_source_52(Idx)
170356  , p_source_54 => l_array_source_54(Idx)
170357  , p_source_79 => l_array_source_79(Idx)
170358  , p_source_79_meaning => l_array_source_79_meaning(Idx)
170359  , p_source_82 => g_array_event(l_event_id).array_value_char('source_82')
170360  , p_source_85 => l_array_source_85(Idx)
170361  , p_source_86 => l_array_source_86(Idx)
170362  , p_source_87 => l_array_source_87(Idx)
170363  , p_source_90 => l_array_source_90(Idx)
170364  , p_source_91 => l_array_source_91(Idx)
170365  , p_source_92 => l_array_source_92(Idx)
170366  , p_source_93 => l_array_source_93(Idx)
170367  , p_source_94 => l_array_source_94(Idx)
170368  , p_source_96 => g_array_event(l_event_id).array_value_char('source_96')
170369  , p_source_97 => l_array_source_97(Idx)
170370  , p_source_97_meaning => l_array_source_97_meaning(Idx)
170371  , p_source_98 => l_array_source_98(Idx)
170372  , p_source_103 => l_array_source_103(Idx)
170373  , p_source_109 => g_array_event(l_event_id).array_value_num('source_109')
170374  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170375  , p_source_111 => l_array_source_111(Idx)
170376  , p_source_112 => g_array_event(l_event_id).array_value_num('source_112')
170377  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170378  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170379  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170380  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170381  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170382  , p_source_150 => l_array_source_150(Idx)
170383  , p_source_155 => l_array_source_155(Idx)
170384  );
170385 If(l_balance_type_code = 'A') THEN
170386   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170387 END IF;
170388 
170389 --
170390 
170391       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
170392       -- or secondary ledger that has different currency with primary
170393       -- or alc that is calculated by sla
170394       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
170395             (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'))
170396 
170397 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
170398 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
170399           AND (l_actual_flag = 'A')) THEN
170400         XLA_AE_LINES_PKG.CreateGainOrLossLines(
170401           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
170402          ,p_application_id   => p_application_id
170403          ,p_amb_context_code => 'DEFAULT'
170404          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
170405          ,p_event_class_code => C_EVENT_CLASS_CODE
170406          ,p_event_type_code  => C_EVENT_TYPE_CODE
170407          
170408          ,p_gain_ccid        => -1
170409          ,p_loss_ccid        => -1
170410 
170411          ,p_actual_flag      => l_actual_flag
170412          ,p_enc_flag         => null
170413          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
170414          ,p_enc_g_l_ref      => null
170415          );
170416       END IF;
170417    END IF;
170418 END IF;
170419 
170420    ELSE
170421       --
170422       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
170423       --
170424       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170425          trace
170426             (p_msg      => 'Trancaction revesal option is Y'
170427             ,p_level    => C_LEVEL_STATEMENT
170428             ,p_module   => l_log_module);
170429       END IF;
170430    END IF;
170431 
170432 END LOOP;
170433 l_result := XLA_AE_LINES_PKG.InsertLines ;
170434 end loop;
170435 close line_cur;
170436 
170437 
170438 --
170439 -- insert headers into xla_ae_headers_gt table
170440 --
170441 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
170442 
170443 -- insert into errors table here.
170444 
170445 END LOOP;
170446 
170447 --
170448 -- 4865292
170449 --
170450 -- Compare g_hdr_extract_count with event count in
170451 -- CreateHeadersAndLines.
170452 --
170453 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
170454 
170455 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170456    trace (p_msg     => '# rows extracted from header extract objects '
170457                     || ' (running total): '
170458                     || g_hdr_extract_count
170459          ,p_level   => C_LEVEL_STATEMENT
170460          ,p_module  => l_log_module);
170461 END IF;
170462 
170463 CLOSE header_cur;
170464 --
170465 
170466 --
170467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170468    trace
170469       (p_msg      => 'END of EventClass_234'
170470       ,p_level    => C_LEVEL_PROCEDURE
170471       ,p_module   => l_log_module);
170472 END IF;
170473 --
170474 RETURN l_result;
170475 EXCEPTION
170476 WHEN xla_exceptions_pkg.application_exception THEN
170477    
170478 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170479 
170480    
170481 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170482 
170483    RAISE;
170484 
170485 WHEN NO_DATA_FOUND THEN
170486 
170487 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170491 LOOP
170488 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170489 
170490 FOR header_record IN header_cur
170492     l_array_header_events(header_record.event_id) := header_record.event_id;
170493 END LOOP;
170494 
170495 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
170496 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
170497 
170498 fnd_file.put_line(fnd_file.LOG, '                    ');
170499 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170500 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
170501 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
170502 
170503 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
170504 LOOP
170505 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
170506 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
170507         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
170508 	END IF;
170509 END LOOP;
170510 
170511 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170512 fnd_file.put_line(fnd_file.LOG, '                    ');
170513 
170514 
170515 xla_exceptions_pkg.raise_message
170516       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_234');
170517 
170518 
170519 WHEN OTHERS THEN
170520    xla_exceptions_pkg.raise_message
170521       (p_location => 'XLA_00200_AAD_S_000020_PKG.EventClass_234');
170522 END EventClass_234;
170523 --
170524 
170525 --
170526 --+============================================+
170527 --|                                            |
170528 --|  PRIVATE FUNCTION                          |
170529 --|                                            |
170530 --+============================================+
170531 --
170532 FUNCTION CreateHeadersAndLines
170533        (p_application_id         IN NUMBER
170534        ,p_base_ledger_id         IN NUMBER
170535        ,p_target_ledger_id       IN NUMBER
170536        ,p_pad_start_date         IN DATE
170537        ,p_pad_end_date           IN DATE
170538        ,p_primary_ledger_id      IN NUMBER)
170539 RETURN BOOLEAN IS
170540 l_created                   BOOLEAN:=FALSE;
170541 l_event_id                  NUMBER;
170542 l_event_date                DATE;
170543 l_language                  VARCHAR2(30);
170544 l_currency_code             VARCHAR2(30);
170545 l_sla_ledger_id             NUMBER;
170546 l_log_module                VARCHAR2(240);
170547 
170548 BEGIN
170549 --
170550 IF g_log_enabled THEN
170551    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
170552 END IF;
170553 --
170554 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170555    trace
170556       (p_msg      => 'BEGIN of CreateHeadersAndLines'
170557       ,p_level    => C_LEVEL_PROCEDURE
170558       ,p_module   => l_log_module);
170559 END IF;
170560 
170561 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
170562 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
170563 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
170564 
170565 --
170566 -- initialize array of lines with NULL
170567 --
170568 xla_ae_lines_pkg.SetNullLine;
170569 
170570 --
170571 -- initialize header extract count -- Bug 4865292
170572 --
170573 g_hdr_extract_count:= 0;
170574 
170575 
170576 l_created := EventClass_226(
170577    p_application_id         => p_application_id
170578  , p_base_ledger_id         => p_base_ledger_id
170579  , p_target_ledger_id       => p_target_ledger_id
170580  , p_language               => l_language
170581  , p_currency_code          => l_currency_code
170582  , p_sla_ledger_id          => l_sla_ledger_id
170583  , p_pad_start_date         => p_pad_start_date
170584  , p_pad_end_date           => p_pad_end_date
170585  , p_primary_ledger_id      => p_primary_ledger_id
170586 );
170587 
170588 
170589 
170590      IF ( g_diagnostics_mode ='Y' ) THEN
170591 
170592          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170593           trace
170594               (p_msg      => 'CALL Transaction Objects Diagnostics'
170595               ,p_level    => C_LEVEL_STATEMENT
170596               ,p_module   => l_log_module);
170597 
170598          END IF;
170599 
170600          insert_sources_226(
170601                           p_target_ledger_id => p_target_ledger_id
170602                         , p_language         => l_language
170603                         , p_sla_ledger_id    => l_sla_ledger_id
170604                         , p_pad_start_date   => p_pad_start_date
170605                         , p_pad_end_date     => p_pad_end_date
170606                           );
170607 
170608      END IF;
170609 
170610 l_created := EventClass_227(
170611    p_application_id         => p_application_id
170612  , p_base_ledger_id         => p_base_ledger_id
170613  , p_target_ledger_id       => p_target_ledger_id
170614  , p_language               => l_language
170615  , p_currency_code          => l_currency_code
170616  , p_sla_ledger_id          => l_sla_ledger_id
170617  , p_pad_start_date         => p_pad_start_date
170618  , p_pad_end_date           => p_pad_end_date
170619  , p_primary_ledger_id      => p_primary_ledger_id
170620 );
170621 
170622 
170623 
170624      IF ( g_diagnostics_mode ='Y' ) THEN
170625 
170626          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170627           trace
170628               (p_msg      => 'CALL Transaction Objects Diagnostics'
170629               ,p_level    => C_LEVEL_STATEMENT
170630               ,p_module   => l_log_module);
170631 
170632          END IF;
170633 
170637                         , p_sla_ledger_id    => l_sla_ledger_id
170634          insert_sources_227(
170635                           p_target_ledger_id => p_target_ledger_id
170636                         , p_language         => l_language
170638                         , p_pad_start_date   => p_pad_start_date
170639                         , p_pad_end_date     => p_pad_end_date
170640                           );
170641 
170642      END IF;
170643 
170644 l_created := EventClass_228(
170645    p_application_id         => p_application_id
170646  , p_base_ledger_id         => p_base_ledger_id
170647  , p_target_ledger_id       => p_target_ledger_id
170648  , p_language               => l_language
170649  , p_currency_code          => l_currency_code
170650  , p_sla_ledger_id          => l_sla_ledger_id
170651  , p_pad_start_date         => p_pad_start_date
170652  , p_pad_end_date           => p_pad_end_date
170653  , p_primary_ledger_id      => p_primary_ledger_id
170654 );
170655 
170656 
170657 
170658      IF ( g_diagnostics_mode ='Y' ) THEN
170659 
170660          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170661           trace
170662               (p_msg      => 'CALL Transaction Objects Diagnostics'
170663               ,p_level    => C_LEVEL_STATEMENT
170664               ,p_module   => l_log_module);
170665 
170666          END IF;
170667 
170668          insert_sources_228(
170669                           p_target_ledger_id => p_target_ledger_id
170670                         , p_language         => l_language
170671                         , p_sla_ledger_id    => l_sla_ledger_id
170672                         , p_pad_start_date   => p_pad_start_date
170673                         , p_pad_end_date     => p_pad_end_date
170674                           );
170675 
170676      END IF;
170677 
170678 l_created := EventClass_229(
170679    p_application_id         => p_application_id
170680  , p_base_ledger_id         => p_base_ledger_id
170681  , p_target_ledger_id       => p_target_ledger_id
170682  , p_language               => l_language
170683  , p_currency_code          => l_currency_code
170684  , p_sla_ledger_id          => l_sla_ledger_id
170685  , p_pad_start_date         => p_pad_start_date
170686  , p_pad_end_date           => p_pad_end_date
170687  , p_primary_ledger_id      => p_primary_ledger_id
170688 );
170689 
170690 
170691 
170692      IF ( g_diagnostics_mode ='Y' ) THEN
170693 
170694          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170695           trace
170696               (p_msg      => 'CALL Transaction Objects Diagnostics'
170697               ,p_level    => C_LEVEL_STATEMENT
170698               ,p_module   => l_log_module);
170699 
170700          END IF;
170701 
170702          insert_sources_229(
170703                           p_target_ledger_id => p_target_ledger_id
170704                         , p_language         => l_language
170705                         , p_sla_ledger_id    => l_sla_ledger_id
170706                         , p_pad_start_date   => p_pad_start_date
170707                         , p_pad_end_date     => p_pad_end_date
170708                           );
170709 
170710      END IF;
170711 
170712 l_created := EventClass_230(
170713    p_application_id         => p_application_id
170714  , p_base_ledger_id         => p_base_ledger_id
170715  , p_target_ledger_id       => p_target_ledger_id
170716  , p_language               => l_language
170717  , p_currency_code          => l_currency_code
170718  , p_sla_ledger_id          => l_sla_ledger_id
170719  , p_pad_start_date         => p_pad_start_date
170720  , p_pad_end_date           => p_pad_end_date
170721  , p_primary_ledger_id      => p_primary_ledger_id
170722 );
170723 
170724 
170725 
170726      IF ( g_diagnostics_mode ='Y' ) THEN
170727 
170728          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170729           trace
170730               (p_msg      => 'CALL Transaction Objects Diagnostics'
170731               ,p_level    => C_LEVEL_STATEMENT
170732               ,p_module   => l_log_module);
170733 
170734          END IF;
170735 
170736          insert_sources_230(
170737                           p_target_ledger_id => p_target_ledger_id
170738                         , p_language         => l_language
170739                         , p_sla_ledger_id    => l_sla_ledger_id
170740                         , p_pad_start_date   => p_pad_start_date
170741                         , p_pad_end_date     => p_pad_end_date
170742                           );
170743 
170744      END IF;
170745 
170746 l_created := EventClass_231(
170747    p_application_id         => p_application_id
170748  , p_base_ledger_id         => p_base_ledger_id
170749  , p_target_ledger_id       => p_target_ledger_id
170750  , p_language               => l_language
170751  , p_currency_code          => l_currency_code
170752  , p_sla_ledger_id          => l_sla_ledger_id
170753  , p_pad_start_date         => p_pad_start_date
170754  , p_pad_end_date           => p_pad_end_date
170755  , p_primary_ledger_id      => p_primary_ledger_id
170756 );
170757 
170758 
170759 
170760      IF ( g_diagnostics_mode ='Y' ) THEN
170761 
170762          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170763           trace
170764               (p_msg      => 'CALL Transaction Objects Diagnostics'
170765               ,p_level    => C_LEVEL_STATEMENT
170766               ,p_module   => l_log_module);
170767 
170768          END IF;
170769 
170770          insert_sources_231(
170771                           p_target_ledger_id => p_target_ledger_id
170772                         , p_language         => l_language
170773                         , p_sla_ledger_id    => l_sla_ledger_id
170774                         , p_pad_start_date   => p_pad_start_date
170775                         , p_pad_end_date     => p_pad_end_date
170776                           );
170777 
170778      END IF;
170779 
170783  , p_target_ledger_id       => p_target_ledger_id
170780 l_created := EventClass_232(
170781    p_application_id         => p_application_id
170782  , p_base_ledger_id         => p_base_ledger_id
170784  , p_language               => l_language
170785  , p_currency_code          => l_currency_code
170786  , p_sla_ledger_id          => l_sla_ledger_id
170787  , p_pad_start_date         => p_pad_start_date
170788  , p_pad_end_date           => p_pad_end_date
170789  , p_primary_ledger_id      => p_primary_ledger_id
170790 );
170791 
170792 
170793 
170794      IF ( g_diagnostics_mode ='Y' ) THEN
170795 
170796          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170797           trace
170798               (p_msg      => 'CALL Transaction Objects Diagnostics'
170799               ,p_level    => C_LEVEL_STATEMENT
170800               ,p_module   => l_log_module);
170801 
170802          END IF;
170803 
170804          insert_sources_232(
170805                           p_target_ledger_id => p_target_ledger_id
170806                         , p_language         => l_language
170807                         , p_sla_ledger_id    => l_sla_ledger_id
170808                         , p_pad_start_date   => p_pad_start_date
170809                         , p_pad_end_date     => p_pad_end_date
170810                           );
170811 
170812      END IF;
170813 
170814 l_created := EventClass_233(
170815    p_application_id         => p_application_id
170816  , p_base_ledger_id         => p_base_ledger_id
170817  , p_target_ledger_id       => p_target_ledger_id
170818  , p_language               => l_language
170819  , p_currency_code          => l_currency_code
170820  , p_sla_ledger_id          => l_sla_ledger_id
170821  , p_pad_start_date         => p_pad_start_date
170822  , p_pad_end_date           => p_pad_end_date
170823  , p_primary_ledger_id      => p_primary_ledger_id
170824 );
170825 
170826 
170827 
170828      IF ( g_diagnostics_mode ='Y' ) THEN
170829 
170830          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170831           trace
170832               (p_msg      => 'CALL Transaction Objects Diagnostics'
170833               ,p_level    => C_LEVEL_STATEMENT
170834               ,p_module   => l_log_module);
170835 
170836          END IF;
170837 
170838          insert_sources_233(
170839                           p_target_ledger_id => p_target_ledger_id
170840                         , p_language         => l_language
170841                         , p_sla_ledger_id    => l_sla_ledger_id
170842                         , p_pad_start_date   => p_pad_start_date
170843                         , p_pad_end_date     => p_pad_end_date
170844                           );
170845 
170846      END IF;
170847 
170848 l_created := EventClass_234(
170849    p_application_id         => p_application_id
170850  , p_base_ledger_id         => p_base_ledger_id
170851  , p_target_ledger_id       => p_target_ledger_id
170852  , p_language               => l_language
170853  , p_currency_code          => l_currency_code
170854  , p_sla_ledger_id          => l_sla_ledger_id
170855  , p_pad_start_date         => p_pad_start_date
170856  , p_pad_end_date           => p_pad_end_date
170857  , p_primary_ledger_id      => p_primary_ledger_id
170858 );
170859 
170860 
170861 
170862      IF ( g_diagnostics_mode ='Y' ) THEN
170863 
170864          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170865           trace
170866               (p_msg      => 'CALL Transaction Objects Diagnostics'
170867               ,p_level    => C_LEVEL_STATEMENT
170868               ,p_module   => l_log_module);
170869 
170870          END IF;
170871 
170872          insert_sources_234(
170873                           p_target_ledger_id => p_target_ledger_id
170874                         , p_language         => l_language
170875                         , p_sla_ledger_id    => l_sla_ledger_id
170876                         , p_pad_start_date   => p_pad_start_date
170877                         , p_pad_end_date     => p_pad_end_date
170878                           );
170879 
170880      END IF;
170881 
170882 
170883  --
170884  -- Bug 4865292
170885  -- When the number of events and that of header extract do not match,
170886  -- set the no header extract flag to indicate there are some issues
170887  -- in header extract.
170888  --
170889  -- Event count context is set in xla_accounting_pkg.unit_processor.
170890  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
170891  -- to report it as a general error.
170892  --
170893  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
170894  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
170895 
170896      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170897         trace
170898           (p_msg      => '# of extracted headers and events does not match'
170899           ,p_level    => C_LEVEL_STATEMENT
170900           ,p_module   => l_log_module);
170901 
170902         trace
170903           (p_msg      => '# of extracted headers: '
170904                          ||g_hdr_extract_count
170905           ,p_level    => C_LEVEL_STATEMENT
170906           ,p_module   => l_log_module);
170907 
170908         trace
170909           (p_msg      => '# of events in xla_events_gt: '
170910                          ||xla_context_pkg.get_event_count_context
170911           ,p_level    => C_LEVEL_STATEMENT
170912           ,p_module   => l_log_module);
170913 
170914         trace
170915           (p_msg      => 'Event No Header Extract Context: '
170916                          ||xla_context_pkg.get_event_nohdr_context
170917           ,p_level    => C_LEVEL_STATEMENT
170918           ,p_module   => l_log_module);
170919 
170920      END IF;
170921 
170922 
170923      xla_context_pkg.set_event_nohdr_context
170924        (p_nohdr_extract_flag => 'Y'
170928         trace
170925        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
170926 
170927      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170929           (p_msg      => 'No Header Extract Flag is set to Y'
170930           ,p_level    => C_LEVEL_STATEMENT
170931           ,p_module   => l_log_module);
170932      END IF;
170933 
170934  END IF;
170935 
170936 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170937    trace
170938       (p_msg      => 'END of CreateHeadersAndLines'
170939       ,p_level    => C_LEVEL_PROCEDURE
170940       ,p_module   => l_log_module);
170941 END IF;
170942 
170943 RETURN l_created;
170944 EXCEPTION
170945 WHEN xla_exceptions_pkg.application_exception THEN
170946    RAISE;
170947 WHEN OTHERS THEN
170948    xla_exceptions_pkg.raise_message
170949       (p_location => 'XLA_00200_AAD_S_000020_PKG.CreateHeadersAndLines');
170950 END CreateHeadersAndLines;
170951 --
170952 --
170953 
170954 --
170955 --+============================================+
170956 --|                                            |
170957 --|  PUBLIC FUNCTION                           |
170958 --|                                            |
170959 --+============================================+
170960 --
170961 FUNCTION CreateJournalEntries
170962        (p_application_id         IN NUMBER
170963        ,p_base_ledger_id         IN NUMBER
170964        ,p_pad_start_date         IN DATE
170965        ,p_pad_end_date           IN DATE
170966        ,p_primary_ledger_id      IN NUMBER)
170967 RETURN NUMBER IS
170968 l_log_module                   VARCHAR2(240);
170969 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
170970 l_temp_result                  BOOLEAN;
170971 l_result                       NUMBER;
170972 BEGIN
170973 --
170974 IF g_log_enabled THEN
170975    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
170976 END IF;
170977 --
170978 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170979    trace
170980       (p_msg      => 'BEGIN of CreateJournalEntries'||
170981                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
170982       ,p_level    => C_LEVEL_PROCEDURE
170983       ,p_module   => l_log_module);
170984 
170985 END IF;
170986 
170987 --
170988 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
170989 
170990 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170991    trace
170992       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
170993       ,p_level    => C_LEVEL_STATEMENT
170994       ,p_module   => l_log_module);
170995 END IF;
170996 --
170997 xla_ae_journal_entry_pkg.SetProductAcctDefinition
170998    (p_product_rule_code      => 'JA_CN_ACCRUAL'
170999    ,p_product_rule_type_code => 'S'
171000    ,p_product_rule_version   => ''
171001    ,p_product_rule_name      => 'China Accrual Basis'
171002    ,p_amb_context_code       => 'DEFAULT'
171003    );
171004 
171005 l_array_ledgers :=
171006    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
171007       (p_base_ledger_id  => p_base_ledger_id);
171008 
171009 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
171010    l_temp_result :=
171011       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
171012          (p_application_id           => p_application_id
171013          ,p_base_ledger_id           => p_base_ledger_id
171014          ,p_target_ledger_id         => l_array_ledgers(Idx)
171015          ,p_primary_ledger_id        => p_primary_ledger_id
171016          ,p_pad_start_date           => p_pad_start_date
171017          ,p_pad_end_date             => p_pad_end_date);
171018 
171019    l_temp_result :=
171020       l_temp_result AND
171021       CreateHeadersAndLines
171022          (p_application_id             => p_application_id
171023          ,p_base_ledger_id             => p_base_ledger_id
171024          ,p_target_ledger_id           => l_array_ledgers(Idx)
171025          ,p_pad_start_date             => p_pad_start_date
171026          ,p_pad_end_date               => p_pad_end_date
171027          ,p_primary_ledger_id          => p_primary_ledger_id
171028          );
171029 END LOOP;
171030 
171031 
171032 IF (g_diagnostics_mode = 'Y' AND
171033     C_LEVEL_UNEXPECTED >= g_log_level AND
171034     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
171035 
171036    xla_accounting_dump_pkg.acctg_event_extract_log(
171037     p_application_id  => p_application_id
171038     ,p_request_id     => xla_environment_pkg.g_Req_Id
171039    );
171040 
171041 END IF;
171042 
171043 CASE l_temp_result
171044   WHEN TRUE THEN l_result := 0;
171045   ELSE l_result := 2;
171046 END CASE;
171047 
171048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171049    trace
171050       (p_msg      => 'return value. = '||TO_CHAR(l_result)
171051       ,p_level    => C_LEVEL_PROCEDURE
171052       ,p_module   => l_log_module);
171053    trace
171054       (p_msg      => 'END of CreateJournalEntries '
171055       ,p_level    => C_LEVEL_PROCEDURE
171056       ,p_module   => l_log_module);
171057 END IF;
171058 
171059 RETURN l_result;
171060 EXCEPTION
171061 WHEN xla_exceptions_pkg.application_exception THEN
171062    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171063    trace
171064       (p_msg      => 'ERROR. = '||sqlerrm
171065       ,p_level    => C_LEVEL_PROCEDURE
171066       ,p_module   => l_log_module);
171067    END IF;
171068    RAISE;
171069 WHEN OTHERS THEN
171070    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171071    trace
171072       (p_msg      => 'ERROR. = '||sqlerrm
171073       ,p_level    => C_LEVEL_PROCEDURE
171074       ,p_module   => l_log_module);
171075    END IF;
171076    xla_exceptions_pkg.raise_message
171077       (p_location => 'XLA_00200_AAD_S_000020_PKG.CreateJournalEntries');
171078 END CreateJournalEntries;
171079 --
171080 --=============================================================================
171081 --
171082 --
171083 --
171084 --
171085 --
171086 --
171087 --
171088 --
171089 --
171090 --
171091 --
171092 --
171093 --
171094 --
171095 --
171096 --
171097 --
171098 --
171099 --
171100 --
171101 --
171102 --
171103 --=============================================================================
171104 --=============================================================================
171105 --          *********** Initialization routine **********
171106 --=============================================================================
171107 
171108 BEGIN
171109    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
171110    g_log_enabled    := fnd_log.test
171111                           (log_level  => g_log_level
171112                           ,module     => C_DEFAULT_MODULE);
171113 
171114    IF NOT g_log_enabled  THEN
171115       g_log_level := C_LEVEL_LOG_DISABLED;
171116    END IF;
171117 --
171118 END XLA_00200_AAD_S_000020_PKG;
171119 --